aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.clang-format1
-rw-r--r--.github/CONTRIBUTING.md6
-rw-r--r--.github/workflows/android.yml42
-rw-r--r--.github/workflows/build.yml31
-rw-r--r--.gitlab-ci.yml193
-rw-r--r--.luacheckrc8
-rw-r--r--.mailmap74
-rw-r--r--AppImageBuilder.yml51
-rw-r--r--CMakeLists.txt29
-rw-r--r--Dockerfile4
-rw-r--r--LICENSE.txt13
-rw-r--r--README.md13
-rw-r--r--build/android/app/build.gradle16
-rw-r--r--build/android/app/src/main/AndroidManifest.xml7
-rw-r--r--build/android/app/src/main/java/net/minetest/minetest/CustomEditText.java45
-rw-r--r--build/android/app/src/main/java/net/minetest/minetest/GameActivity.java77
-rw-r--r--build/android/app/src/main/java/net/minetest/minetest/InputDialogActivity.java98
-rw-r--r--build/android/app/src/main/res/values/styles.xml9
-rw-r--r--build/android/build.gradle11
-rw-r--r--build/android/gradle/wrapper/gradle-wrapper.properties8
-rw-r--r--build/android/native/build.gradle65
-rw-r--r--builtin/client/chatcommands.lua5
-rw-r--r--builtin/client/register.lua8
-rw-r--r--builtin/common/after.lua6
-rw-r--r--builtin/common/information_formspecs.lua2
-rw-r--r--builtin/common/misc_helpers.lua4
-rw-r--r--builtin/common/tests/vector_spec.lua4
-rw-r--r--builtin/common/vector.lua6
-rw-r--r--builtin/fstk/ui.lua17
-rw-r--r--builtin/game/chat.lua22
-rw-r--r--builtin/game/deprecated.lua25
-rw-r--r--builtin/game/falling.lua52
-rw-r--r--builtin/game/features.lua2
-rw-r--r--builtin/game/item.lua16
-rw-r--r--builtin/game/item_entity.lua5
-rw-r--r--builtin/game/knockback.lua2
-rw-r--r--builtin/game/misc.lua29
-rw-r--r--builtin/game/register.lua9
-rw-r--r--builtin/game/statbars.lua4
-rw-r--r--builtin/init.lua15
-rw-r--r--builtin/mainmenu/common.lua91
-rw-r--r--builtin/mainmenu/dlg_config_world.lua2
-rw-r--r--builtin/mainmenu/dlg_contentstore.lua576
-rw-r--r--builtin/mainmenu/dlg_create_world.lua19
-rw-r--r--builtin/mainmenu/init.lua112
-rw-r--r--builtin/mainmenu/pkgmgr.lua65
-rw-r--r--builtin/mainmenu/serverlistmgr.lua250
-rw-r--r--builtin/mainmenu/tab_credits.lua74
-rw-r--r--builtin/mainmenu/tab_local.lua34
-rw-r--r--builtin/mainmenu/tab_online.lua124
-rw-r--r--builtin/mainmenu/tab_settings.lua116
-rw-r--r--builtin/mainmenu/tab_simple_main.lua220
-rw-r--r--builtin/mainmenu/tests/favorites_wellformed.txt29
-rw-r--r--builtin/mainmenu/tests/serverlistmgr_spec.lua36
-rw-r--r--builtin/profiler/instrumentation.lua1
-rw-r--r--builtin/settingtypes.txt152
-rw-r--r--client/shaders/3d_interlaced_merge/opengl_fragment.glsl4
-rw-r--r--client/shaders/3d_interlaced_merge/opengl_vertex.glsl7
-rw-r--r--client/shaders/default_shader/opengl_fragment.glsl4
-rw-r--r--client/shaders/default_shader/opengl_vertex.glsl8
-rw-r--r--client/shaders/minimap_shader/opengl_fragment.glsl7
-rw-r--r--client/shaders/minimap_shader/opengl_vertex.glsl10
-rw-r--r--client/shaders/nodes_shader/opengl_fragment.glsl169
-rw-r--r--client/shaders/nodes_shader/opengl_vertex.glsl94
-rw-r--r--client/shaders/object_shader/opengl_fragment.glsl110
-rw-r--r--client/shaders/object_shader/opengl_vertex.glsl34
-rw-r--r--client/shaders/selection_shader/opengl_fragment.glsl7
-rw-r--r--client/shaders/selection_shader/opengl_vertex.glsl9
-rw-r--r--client/shaders/stars_shader/opengl_fragment.glsl6
-rw-r--r--client/shaders/stars_shader/opengl_vertex.glsl4
-rw-r--r--clientmods/preview/init.lua4
-rw-r--r--doc/builtin_entities.txt101
-rw-r--r--doc/client_lua_api.txt27
-rw-r--r--doc/lua_api.txt702
-rw-r--r--doc/menu_lua_api.txt38
-rw-r--r--doc/texture_packs.txt26
-rw-r--r--doc/world_format.txt11
-rw-r--r--fonts/DroidSansFallbackFull-LICENSE.txt2
-rw-r--r--fonts/DroidSansFallbackFull.ttfbin4529044 -> 5398328 bytes
-rw-r--r--games/devtest/README.md3
-rw-r--r--games/devtest/mods/basenodes/init.lua63
-rw-r--r--games/devtest/mods/basenodes/textures/default_dirt.pngbin790 -> 7303 bytes
-rw-r--r--games/devtest/mods/basenodes/textures/dirt_with_grass/default_grass.pngbin0 -> 829 bytes
-rw-r--r--games/devtest/mods/basenodes/textures/dirt_with_grass/default_grass_side.png (renamed from games/devtest/mods/basenodes/textures/default_grass_side.png)bin796 -> 796 bytes
-rw-r--r--games/devtest/mods/basenodes/textures/info.txt7
-rw-r--r--games/devtest/mods/basetools/init.lua132
-rw-r--r--games/devtest/mods/bucket/init.lua3
-rw-r--r--games/devtest/mods/chest/init.lua19
-rw-r--r--games/devtest/mods/chest_of_everything/init.lua3
-rw-r--r--games/devtest/mods/experimental/commands.lua3
-rw-r--r--games/devtest/mods/experimental/items.lua6
-rw-r--r--games/devtest/mods/soundstuff/init.lua18
-rw-r--r--games/devtest/mods/testentities/armor.lua2
-rw-r--r--games/devtest/mods/testentities/callbacks.lua3
-rw-r--r--games/devtest/mods/testentities/visuals.lua57
-rw-r--r--games/devtest/mods/testfood/init.lua7
-rw-r--r--games/devtest/mods/testfood/textures/testfood_replace.pngbin0 -> 135 bytes
-rw-r--r--games/devtest/mods/testformspec/LICENSE.txt14
-rw-r--r--games/devtest/mods/testformspec/formspec.lua42
-rw-r--r--games/devtest/mods/testformspec/models/testformspec_character.b3dbin0 -> 73433 bytes
-rw-r--r--games/devtest/mods/testformspec/models/testformspec_chest.obj79
-rw-r--r--games/devtest/mods/testformspec/textures/default_chest_front.pngbin0 -> 423 bytes
-rw-r--r--games/devtest/mods/testformspec/textures/default_chest_inside.pngbin0 -> 102 bytes
-rw-r--r--games/devtest/mods/testformspec/textures/default_chest_side.pngbin0 -> 375 bytes
-rw-r--r--games/devtest/mods/testformspec/textures/default_chest_top.pngbin0 -> 423 bytes
-rw-r--r--games/devtest/mods/testformspec/textures/testformspec_character.pngbin0 -> 2754 bytes
-rw-r--r--games/devtest/mods/testnodes/drawtypes.lua141
-rw-r--r--games/devtest/mods/testnodes/light.lua6
-rw-r--r--games/devtest/mods/testnodes/liquids.lua16
-rw-r--r--games/devtest/mods/testnodes/mod.conf1
-rw-r--r--games/devtest/mods/testnodes/nodeboxes.lua9
-rw-r--r--games/devtest/mods/testnodes/properties.lua6
-rw-r--r--games/devtest/mods/testnodes/textures.lua18
-rw-r--r--games/devtest/mods/testpathfinder/init.lua6
-rw-r--r--games/devtest/mods/testtools/init.lua76
-rw-r--r--games/devtest/mods/testtools/light.lua22
-rw-r--r--games/devtest/mods/testtools/textures/testtools_lighttool.pngbin0 -> 1659 bytes
-rw-r--r--games/devtest/mods/unittests/init.lua2
-rw-r--r--games/devtest/mods/unittests/itemdescription.lua51
-rw-r--r--games/devtest/mods/unittests/mod.conf1
-rw-r--r--games/devtest/mods/unittests/textures/default_dirt.pngbin0 -> 790 bytes
-rw-r--r--games/devtest/mods/util_commands/init.lua66
-rw-r--r--lib/jsoncpp/json/UPDATING2
-rw-r--r--lib/jsoncpp/json/json-forwards.h366
-rw-r--r--lib/jsoncpp/json/json.h1626
-rw-r--r--lib/jsoncpp/jsoncpp.cpp2762
-rw-r--r--lib/lua/CMakeLists.txt13
-rw-r--r--minetest.conf.example189
-rw-r--r--misc/debpkg-control4
-rw-r--r--misc/minetest.exe.manifest2
-rw-r--r--misc/net.minetest.minetest.appdata.xml2
-rw-r--r--po/ar/minetest.po1073
-rw-r--r--po/be/minetest.po940
-rw-r--r--po/bg/minetest.po (renamed from po/fil/minetest.po)729
-rw-r--r--po/ca/minetest.po608
-rw-r--r--po/cs/minetest.po771
-rw-r--r--po/da/minetest.po709
-rw-r--r--po/de/minetest.po1071
-rw-r--r--po/dv/minetest.po519
-rw-r--r--po/el/minetest.po504
-rw-r--r--po/eo/minetest.po961
-rw-r--r--po/es/minetest.po1096
-rw-r--r--po/et/minetest.po1057
-rw-r--r--po/eu/minetest.po613
-rw-r--r--po/fi/minetest.po (renamed from po/my/minetest.po)526
-rw-r--r--po/fr/minetest.po1103
-rw-r--r--po/gd/minetest.po5568
-rw-r--r--po/gl/minetest.po4426
-rw-r--r--po/he/minetest.po1712
-rw-r--r--po/hi/minetest.po605
-rw-r--r--po/hu/minetest.po861
-rw-r--r--po/id/minetest.po1015
-rw-r--r--po/it/minetest.po1166
-rw-r--r--po/ja/minetest.po969
-rw-r--r--po/ja_KS/minetest.po6323
-rw-r--r--po/jbo/minetest.po622
-rw-r--r--po/kk/minetest.po523
-rw-r--r--po/kn/minetest.po635
-rw-r--r--po/ko/minetest.po1969
-rw-r--r--po/ky/minetest.po563
-rw-r--r--po/lt/minetest.po685
-rw-r--r--po/lv/minetest.po566
-rw-r--r--po/minetest.pot474
-rw-r--r--po/ms/minetest.po1048
-rw-r--r--po/ms_Arab/minetest.po6892
-rw-r--r--po/nb/minetest.po743
-rw-r--r--po/nl/minetest.po1789
-rw-r--r--po/nn/minetest.po879
-rw-r--r--po/pl/minetest.po955
-rw-r--r--po/pt/minetest.po1354
-rw-r--r--po/pt_BR/minetest.po1779
-rw-r--r--po/ro/minetest.po823
-rw-r--r--po/ru/minetest.po1390
-rw-r--r--po/sk/minetest.po7505
-rw-r--r--po/sl/minetest.po913
-rw-r--r--po/sr_Cyrl/minetest.po598
-rw-r--r--po/sr_Latn/minetest.po (renamed from po/lo/minetest.po)676
-rw-r--r--po/sv/minetest.po620
-rw-r--r--po/sw/minetest.po767
-rw-r--r--po/th/minetest.po777
-rw-r--r--po/tr/minetest.po973
-rw-r--r--po/uk/minetest.po791
-rw-r--r--po/vi/minetest.po492
-rw-r--r--po/zh_CN/minetest.po1156
-rw-r--r--po/zh_TW/minetest.po882
-rw-r--r--src/CMakeLists.txt83
-rw-r--r--src/activeobject.h14
-rw-r--r--src/activeobjectmgr.h3
-rw-r--r--src/chat.cpp17
-rw-r--r--src/chat.h2
-rw-r--r--src/client/camera.cpp46
-rw-r--r--src/client/camera.h49
-rw-r--r--src/client/client.cpp48
-rw-r--r--src/client/client.h9
-rw-r--r--src/client/clientenvironment.cpp143
-rw-r--r--src/client/clientlauncher.cpp220
-rw-r--r--src/client/clientlauncher.h23
-rw-r--r--src/client/clientmap.cpp133
-rw-r--r--src/client/clientmap.h19
-rw-r--r--src/client/clientmedia.cpp3
-rw-r--r--src/client/clouds.cpp60
-rw-r--r--src/client/content_cao.cpp181
-rw-r--r--src/client/content_cao.h12
-rw-r--r--src/client/content_mapblock.cpp11
-rw-r--r--src/client/content_mapblock.h2
-rw-r--r--src/client/event_manager.h2
-rw-r--r--src/client/fontengine.cpp80
-rw-r--r--src/client/fontengine.h12
-rw-r--r--src/client/game.cpp478
-rw-r--r--src/client/game.h13
-rw-r--r--src/client/gameui.cpp33
-rw-r--r--src/client/gameui.h1
-rw-r--r--src/client/guiscalingfilter.cpp5
-rw-r--r--src/client/guiscalingfilter.h3
-rw-r--r--src/client/hud.cpp213
-rw-r--r--src/client/hud.h14
-rw-r--r--src/client/inputhandler.cpp159
-rw-r--r--src/client/inputhandler.h164
-rw-r--r--src/client/joystick_controller.cpp68
-rw-r--r--src/client/joystick_controller.h38
-rw-r--r--src/client/keycode.cpp3
-rw-r--r--src/client/keys.h8
-rw-r--r--src/client/localplayer.cpp2
-rw-r--r--src/client/mapblock_mesh.cpp116
-rw-r--r--src/client/mapblock_mesh.h15
-rw-r--r--src/client/mesh.cpp9
-rw-r--r--src/client/mesh.h7
-rw-r--r--src/client/mesh_generator_thread.cpp6
-rw-r--r--src/client/mesh_generator_thread.h2
-rw-r--r--src/client/minimap.cpp269
-rw-r--r--src/client/minimap.h51
-rw-r--r--src/client/render/core.cpp1
-rw-r--r--src/client/render/factory.cpp7
-rw-r--r--src/client/render/interlaced.cpp2
-rw-r--r--src/client/renderingengine.cpp2
-rw-r--r--src/client/shader.cpp617
-rw-r--r--src/client/shader.h23
-rw-r--r--src/client/sky.cpp225
-rw-r--r--src/client/sky.h17
-rw-r--r--src/client/sound_openal.cpp56
-rw-r--r--src/client/tile.cpp14
-rw-r--r--src/client/tile.h5
-rw-r--r--src/client/wieldmesh.cpp211
-rw-r--r--src/clientiface.cpp124
-rw-r--r--src/clientiface.h25
-rw-r--r--src/constants.h2
-rw-r--r--src/content/CMakeLists.txt1
-rw-r--r--src/content/packages.cpp69
-rw-r--r--src/content/packages.h52
-rw-r--r--src/content/subgames.cpp82
-rw-r--r--src/content/subgames.h8
-rw-r--r--src/content_nodemeta.cpp18
-rw-r--r--src/database/database-dummy.cpp23
-rw-r--r--src/database/database-dummy.h9
-rw-r--r--src/database/database-files.cpp124
-rw-r--r--src/database/database-files.h9
-rw-r--r--src/database/database-leveldb.cpp16
-rw-r--r--src/defaultsettings.cpp60
-rw-r--r--src/defaultsettings.h9
-rw-r--r--src/emerge.cpp13
-rw-r--r--src/emerge.h1
-rw-r--r--src/environment.cpp1
-rw-r--r--src/environment.h1
-rw-r--r--src/exceptions.h5
-rw-r--r--src/filesys.cpp58
-rw-r--r--src/filesys.h5
-rw-r--r--src/gameparams.h19
-rw-r--r--src/gui/CMakeLists.txt2
-rw-r--r--src/gui/StyleSpec.h163
-rw-r--r--src/gui/guiBox.cpp87
-rw-r--r--src/gui/guiBox.h11
-rw-r--r--src/gui/guiButton.cpp22
-rw-r--r--src/gui/guiButton.h1
-rw-r--r--src/gui/guiButtonItemImage.cpp1
-rw-r--r--src/gui/guiButtonItemImage.h1
-rw-r--r--src/gui/guiChatConsole.cpp9
-rw-r--r--src/gui/guiChatConsole.h6
-rw-r--r--src/gui/guiConfirmRegistration.cpp24
-rw-r--r--src/gui/guiEditBox.cpp911
-rw-r--r--src/gui/guiEditBox.h220
-rw-r--r--src/gui/guiEditBoxWithScrollbar.cpp878
-rw-r--r--src/gui/guiEditBoxWithScrollbar.h140
-rw-r--r--src/gui/guiEngine.cpp23
-rw-r--r--src/gui/guiEngine.h13
-rw-r--r--src/gui/guiFormSpecMenu.cpp600
-rw-r--r--src/gui/guiFormSpecMenu.h62
-rw-r--r--src/gui/guiHyperText.cpp2
-rw-r--r--src/gui/guiInventoryList.cpp2
-rw-r--r--src/gui/guiKeyChangeMenu.cpp4
-rw-r--r--src/gui/guiMainMenu.h1
-rw-r--r--src/gui/guiPasswordChange.cpp21
-rw-r--r--src/gui/guiScene.cpp266
-rw-r--r--src/gui/guiScene.h86
-rw-r--r--src/gui/guiScrollBar.cpp2
-rw-r--r--src/gui/guiScrollBar.h1
-rw-r--r--src/gui/guiScrollContainer.cpp12
-rw-r--r--src/gui/guiScrollContainer.h2
-rw-r--r--src/gui/guiSkin.cpp2
-rw-r--r--src/gui/guiTable.cpp27
-rw-r--r--src/gui/guiTable.h6
-rw-r--r--src/gui/guiVolumeChange.cpp2
-rw-r--r--src/gui/intlGUIEditBox.cpp1241
-rw-r--r--src/gui/intlGUIEditBox.h154
-rw-r--r--src/gui/modalMenu.cpp261
-rw-r--r--src/gui/modalMenu.h37
-rw-r--r--src/gui/touchscreengui.cpp3
-rw-r--r--src/gui/touchscreengui.h1
-rw-r--r--src/httpfetch.cpp66
-rw-r--r--src/httpfetch.h22
-rw-r--r--src/hud.cpp3
-rw-r--r--src/hud.h21
-rw-r--r--src/inventory.cpp23
-rw-r--r--src/inventory.h1
-rw-r--r--src/inventorymanager.cpp330
-rw-r--r--src/inventorymanager.h12
-rw-r--r--src/irr_ptr.h89
-rw-r--r--src/irrlicht_changes/CGUITTFont.h2
-rw-r--r--src/irrlicht_changes/irrUString.h4
-rw-r--r--src/itemdef.cpp61
-rw-r--r--src/itemdef.h1
-rw-r--r--src/itemstackmetadata.cpp17
-rw-r--r--src/light.cpp7
-rw-r--r--src/log.cpp11
-rw-r--r--src/log.h10
-rw-r--r--src/main.cpp32
-rw-r--r--src/map.cpp238
-rw-r--r--src/map.h33
-rw-r--r--src/map_settings_manager.cpp76
-rw-r--r--src/map_settings_manager.h5
-rw-r--r--src/mapblock.cpp20
-rw-r--r--src/mapblock.h11
-rw-r--r--src/mapgen/mapgen.cpp36
-rw-r--r--src/mapgen/mapgen.h10
-rw-r--r--src/mapgen/mapgen_carpathian.cpp9
-rw-r--r--src/mapgen/mapgen_flat.cpp73
-rw-r--r--src/mapgen/mapgen_flat.h22
-rw-r--r--src/mapgen/mapgen_fractal.cpp9
-rw-r--r--src/mapgen/mapgen_singlenode.cpp6
-rw-r--r--src/mapgen/mapgen_v5.cpp9
-rw-r--r--src/mapgen/mapgen_v6.cpp18
-rw-r--r--src/mapgen/mapgen_v6.h1
-rw-r--r--src/mapgen/mapgen_v7.cpp90
-rw-r--r--src/mapgen/mapgen_v7.h2
-rw-r--r--src/mapgen/mapgen_valleys.cpp9
-rw-r--r--src/mapgen/mg_ore.cpp6
-rw-r--r--src/mapgen/mg_ore.h47
-rw-r--r--src/mapgen/mg_schematic.cpp8
-rw-r--r--src/mapgen/treegen.cpp16
-rw-r--r--src/mapgen/treegen.h2
-rw-r--r--src/mapnode.cpp34
-rw-r--r--src/mapnode.h4
-rw-r--r--src/mapsector.h1
-rw-r--r--src/mtevent.h (renamed from src/event.h)0
-rw-r--r--src/nameidmapping.cpp4
-rw-r--r--src/network/CMakeLists.txt5
-rw-r--r--src/network/clientopcodes.cpp1
-rw-r--r--src/network/clientpackethandler.cpp57
-rw-r--r--src/network/connection.cpp5
-rw-r--r--src/network/connection.h11
-rw-r--r--src/network/connectionthreads.cpp31
-rw-r--r--src/network/networkexceptions.h8
-rw-r--r--src/network/networkpacket.cpp56
-rw-r--r--src/network/networkpacket.h3
-rw-r--r--src/network/networkprotocol.h33
-rw-r--r--src/network/serveropcodes.cpp1
-rw-r--r--src/network/serverpackethandler.cpp560
-rw-r--r--src/nodedef.cpp241
-rw-r--r--src/nodedef.h77
-rw-r--r--src/nodemetadata.cpp8
-rw-r--r--src/noise.cpp2
-rw-r--r--src/noise.h7
-rw-r--r--src/object_properties.cpp58
-rw-r--r--src/object_properties.h3
-rw-r--r--src/particles.cpp4
-rw-r--r--src/pathfinder.cpp6
-rw-r--r--src/player.h12
-rw-r--r--src/porting.cpp47
-rw-r--r--src/porting.h22
-rw-r--r--src/porting_android.cpp6
-rw-r--r--src/porting_android.h2
-rw-r--r--src/profiler.cpp2
-rw-r--r--src/remoteplayer.cpp116
-rw-r--r--src/remoteplayer.h10
-rw-r--r--src/script/common/c_content.cpp86
-rw-r--r--src/script/common/c_content.h3
-rw-r--r--src/script/common/c_converter.cpp45
-rw-r--r--src/script/common/c_converter.h2
-rw-r--r--src/script/common/c_internal.cpp20
-rw-r--r--src/script/common/c_internal.h20
-rw-r--r--src/script/common/helper.cpp60
-rw-r--r--src/script/common/helper.h8
-rw-r--r--src/script/cpp_api/s_async.cpp29
-rw-r--r--src/script/cpp_api/s_async.h6
-rw-r--r--src/script/cpp_api/s_entity.cpp26
-rw-r--r--src/script/cpp_api/s_entity.h1
-rw-r--r--src/script/cpp_api/s_node.cpp19
-rw-r--r--src/script/cpp_api/s_node.h1
-rw-r--r--src/script/cpp_api/s_player.cpp13
-rw-r--r--src/script/cpp_api/s_player.h1
-rw-r--r--src/script/cpp_api/s_security.cpp11
-rw-r--r--src/script/lua_api/l_base.cpp60
-rw-r--r--src/script/lua_api/l_base.h21
-rw-r--r--src/script/lua_api/l_camera.cpp3
-rw-r--r--src/script/lua_api/l_env.cpp254
-rw-r--r--src/script/lua_api/l_env.h13
-rw-r--r--src/script/lua_api/l_http.cpp29
-rw-r--r--src/script/lua_api/l_http.h4
-rw-r--r--src/script/lua_api/l_internal.h11
-rw-r--r--src/script/lua_api/l_inventory.cpp1
-rw-r--r--src/script/lua_api/l_item.cpp14
-rw-r--r--src/script/lua_api/l_item.h3
-rw-r--r--src/script/lua_api/l_localplayer.cpp4
-rw-r--r--src/script/lua_api/l_mainmenu.cpp259
-rw-r--r--src/script/lua_api/l_mainmenu.h12
-rw-r--r--src/script/lua_api/l_mapgen.cpp13
-rw-r--r--src/script/lua_api/l_metadata.cpp8
-rw-r--r--src/script/lua_api/l_minimap.cpp24
-rw-r--r--src/script/lua_api/l_noise.cpp2
-rw-r--r--src/script/lua_api/l_object.cpp1362
-rw-r--r--src/script/lua_api/l_object.h68
-rw-r--r--src/script/lua_api/l_server.cpp124
-rw-r--r--src/script/lua_api/l_server.h2
-rw-r--r--src/script/lua_api/l_settings.cpp2
-rw-r--r--src/script/lua_api/l_util.cpp18
-rw-r--r--src/script/lua_api/l_util.h6
-rw-r--r--src/script/scripting_mainmenu.cpp1
-rw-r--r--src/server.cpp262
-rw-r--r--src/server.h59
-rw-r--r--src/server/activeobjectmgr.cpp15
-rw-r--r--src/server/activeobjectmgr.h3
-rw-r--r--src/server/luaentity_sao.cpp56
-rw-r--r--src/server/luaentity_sao.h6
-rw-r--r--src/server/mods.cpp13
-rw-r--r--src/server/mods.h8
-rw-r--r--src/server/player_sao.cpp55
-rw-r--r--src/server/player_sao.h4
-rw-r--r--src/server/serveractiveobject.cpp18
-rw-r--r--src/server/serveractiveobject.h62
-rw-r--r--src/server/unit_sao.cpp23
-rw-r--r--src/server/unit_sao.h5
-rw-r--r--src/serverenvironment.cpp117
-rw-r--r--src/serverenvironment.h18
-rw-r--r--src/serverlist.cpp183
-rw-r--r--src/serverlist.h13
-rw-r--r--src/settings.cpp394
-rw-r--r--src/settings.h91
-rw-r--r--src/settings_translation_file.cpp68
-rw-r--r--src/sound.h4
-rw-r--r--src/staticobject.cpp4
-rw-r--r--src/texture_override.cpp38
-rw-r--r--src/texture_override.h18
-rw-r--r--src/threading/thread.cpp69
-rw-r--r--src/threading/thread.h12
-rw-r--r--src/tool.cpp8
-rw-r--r--src/translation.cpp23
-rw-r--r--src/translation.h5
-rw-r--r--src/unittest/test.cpp4
-rw-r--r--src/unittest/test_connection.cpp35
-rw-r--r--src/unittest/test_map_settings_manager.cpp112
-rw-r--r--src/unittest/test_serialization.cpp374
-rw-r--r--src/unittest/test_servermodmanager.cpp2
-rw-r--r--src/unittest/test_settings.cpp89
-rw-r--r--src/unittest/test_threading.cpp25
-rw-r--r--src/unittest/test_utilities.cpp19
-rw-r--r--src/util/Optional.h77
-rw-r--r--src/util/base64.cpp5
-rw-r--r--src/util/md32_common.h2
-rw-r--r--src/util/serialize.cpp412
-rw-r--r--src/util/serialize.h252
-rw-r--r--src/util/sha256.c6
-rw-r--r--src/util/srp.cpp4
-rw-r--r--src/util/string.cpp186
-rw-r--r--src/util/string.h42
-rw-r--r--src/version.cpp5
-rw-r--r--textures/base/pack/cdb_add.pngbin0 -> 147 bytes
-rw-r--r--textures/base/pack/cdb_clear.pngbin0 -> 182 bytes
-rw-r--r--textures/base/pack/cdb_downloading.pngbin0 -> 201 bytes
-rw-r--r--textures/base/pack/cdb_queued.pngbin0 -> 210 bytes
-rw-r--r--textures/base/pack/cdb_update.pngbin0 -> 173 bytes
-rw-r--r--textures/base/pack/cdb_viewonline.pngbin0 -> 191 bytes
-rw-r--r--textures/base/pack/clear.pngbin0 -> 708 bytes
-rw-r--r--textures/base/pack/no_texture_airlike.pngbin0 -> 178 bytes
-rw-r--r--textures/base/pack/search.pngbin0 -> 1908 bytes
-rwxr-xr-xutil/bump_version.sh22
-rw-r--r--util/ci/clang-format-whitelist.txt2
-rw-r--r--util/ci/common.sh6
-rwxr-xr-x[-rw-r--r--]util/ci/lint.sh0
-rwxr-xr-xutil/gather_git_credits.py67
-rw-r--r--util/wireshark/minetest.lua35
489 files changed, 53781 insertions, 50231 deletions
diff --git a/.clang-format b/.clang-format
index dc7380ffd..0db8ab167 100644
--- a/.clang-format
+++ b/.clang-format
@@ -29,3 +29,4 @@ AlignAfterOpenBracket: DontAlign
ContinuationIndentWidth: 16
ConstructorInitializerIndentWidth: 16
BreakConstructorInitializers: AfterColon
+AlwaysBreakTemplateDeclarations: Yes
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index b234fb283..b01a89509 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -43,6 +43,12 @@ Contributions are welcome! Here's how you can help:
4. The code's interfaces are well designed, regardless of other aspects that might need more work in the future.
5. It uses protocols and formats which include the required compatibility.
+### Important note about automated GitHub checks
+
+When you submit a pull request, GitHub automatically runs checks on the Minetest Engine combined with your changes. One of these checks is called 'cpp lint / clang format', which checks code formatting. Because formatting for readability requires human judgement this check often fails and often makes unsuitable formatting requests which make code readability worse.
+
+If this check fails, look at the details to check for any clear mistakes and correct those. However, you should not apply everything ClangFormat requests. Ignore requests that make code readability worse and any other clearly unsuitable requests. Discuss in the pull request with a core developer about how to progress.
+
## Issues
If you experience an issue, we would like to know the details - especially when a stable release is on the way.
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
new file mode 100644
index 000000000..0fcfe2390
--- /dev/null
+++ b/.github/workflows/android.yml
@@ -0,0 +1,42 @@
+name: android
+
+# build on c/cpp changes or workflow changes
+on:
+ push:
+ paths:
+ - 'lib/**.[ch]'
+ - 'lib/**.cpp'
+ - 'src/**.[ch]'
+ - 'src/**.cpp'
+ - 'build/android/**'
+ - '.github/workflows/android.yml'
+ pull_request:
+ paths:
+ - 'lib/**.[ch]'
+ - 'lib/**.cpp'
+ - 'src/**.[ch]'
+ - 'src/**.cpp'
+ - 'build/android/**'
+ - '.github/workflows/android.yml'
+
+jobs:
+ build:
+ runs-on: ubuntu-18.04
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK 1.8
+ uses: actions/setup-java@v1
+ with:
+ java-version: 1.8
+ - name: Build with Gradle
+ run: cd build/android; ./gradlew assemblerelease
+ - name: Save armeabi artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: Minetest-armeabi-v7a.apk
+ path: build/android/app/build/outputs/apk/release/app-armeabi-v7a-release-unsigned.apk
+ - name: Save arm64 artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: Minetest-arm64-v8a.apk
+ path: build/android/app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index ae359f5d8..a3cc92a8e 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -33,9 +33,8 @@ jobs:
- uses: actions/checkout@v2
- name: Install deps
run: |
- sudo apt-get install g++-6 gcc-6 -qyy
source ./util/ci/common.sh
- install_linux_deps
+ install_linux_deps g++-6
- name: Build
run: |
@@ -55,9 +54,8 @@ jobs:
- uses: actions/checkout@v2
- name: Install deps
run: |
- sudo apt-get install g++-8 gcc-8 -qyy
source ./util/ci/common.sh
- install_linux_deps
+ install_linux_deps g++-8
- name: Build
run: |
@@ -77,9 +75,8 @@ jobs:
- uses: actions/checkout@v2
- name: Install deps
run: |
- sudo apt-get install clang-3.9 -qyy
source ./util/ci/common.sh
- install_linux_deps
+ install_linux_deps clang-3.9
- name: Build
run: |
@@ -99,11 +96,8 @@ jobs:
- uses: actions/checkout@v2
- name: Install deps
run: |
- sudo apt-get install clang-9 valgrind -qyy
source ./util/ci/common.sh
- install_linux_deps
- env:
- WITH_LUAJIT: 1
+ install_linux_deps clang-9 valgrind libluajit-5.1-dev
- name: Build
run: |
@@ -111,6 +105,7 @@ jobs:
env:
CC: clang-9
CXX: clang++-9
+ CMAKE_FLAGS: "-DREQUIRE_LUAJIT=1"
- name: Test
run: |
@@ -128,9 +123,8 @@ jobs:
- uses: actions/checkout@v2
- name: Install deps
run: |
- sudo apt-get install clang-9 -qyy
source ./util/ci/common.sh
- install_linux_deps
+ install_linux_deps clang-9
- name: Build prometheus-cpp
run: |
@@ -156,9 +150,8 @@ jobs:
- uses: actions/checkout@v2
- name: Install deps
run: |
- sudo apt-get install clang-9 -qyy
source ./util/ci/common.sh
- install_linux_deps
+ install_linux_deps clang-9
- name: Build
run: |
@@ -188,7 +181,7 @@ jobs:
- uses: actions/checkout@v2
- name: Install compiler
run: |
- sudo apt-get install gettext -qyy
+ sudo apt-get update -q && sudo apt-get install gettext -qyy
wget http://minetest.kitsunemimi.pw/mingw-w64-i686_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz
sudo tar -xaf mingw.tar.xz -C /usr
@@ -206,7 +199,7 @@ jobs:
- uses: actions/checkout@v2
- name: Install compiler
run: |
- sudo apt-get install gettext -qyy
+ sudo apt-get update -q && sudo apt-get install gettext -qyy
wget http://minetest.kitsunemimi.pw/mingw-w64-x86_64_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz
sudo tar -xaf mingw.tar.xz -C /usr
@@ -221,8 +214,8 @@ jobs:
name: VS 2019 ${{ matrix.config.arch }}-${{ matrix.type }}
runs-on: windows-2019
env:
- VCPKG_VERSION: c7ab9d3110813979a873b2dbac630a9ab79850dc
-# 2020.04
+ VCPKG_VERSION: 0bf3923f9fab4001c00f0f429682a0853b5749e0
+# 2020.11
vcpkg_packages: irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit
strategy:
fail-fast: false
@@ -248,7 +241,7 @@ jobs:
uses: actions/checkout@v2
- name: Restore from cache and run vcpkg
- uses: lukka/run-vcpkg@v2
+ uses: lukka/run-vcpkg@v5
with:
vcpkgArguments: ${{env.vcpkg_packages}}
vcpkgDirectory: '${{ github.workspace }}\vcpkg'
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d03b7b601..0441aeaa1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,12 +18,12 @@ variables:
- mkdir cmakebuild
- mkdir -p artifact/minetest/usr/
- cd cmakebuild
- - cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DCMAKE_BUILD_TYPE=Release -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE -DBUILD_SERVER=TRUE ..
+ - cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DCMAKE_BUILD_TYPE=Release -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE -DENABLE_SYSTEM_JSONCPP=TRUE -DBUILD_SERVER=TRUE ..
- make -j2
- make install
artifacts:
when: on_success
- expire_in: 2h
+ expire_in: 1h
paths:
- artifact/*
@@ -34,15 +34,14 @@ variables:
- apt-get install -y git
- mkdir -p build/deb/minetest/DEBIAN/
- cp misc/debpkg-control build/deb/minetest/DEBIAN/control
- - cp -Rp artifact/minetest/usr build/deb/minetest/
+ - cp -a artifact/minetest/usr build/deb/minetest/
script:
- - git clone $MINETEST_GAME_REPO build/deb/minetest/usr/share/minetest/games/minetest
- - rm -Rf build/deb/minetest/usr/share/minetest/games/minetest/.git
+ - git clone $MINETEST_GAME_REPO build/deb/minetest/usr/share/minetest/games/minetest_game
+ - rm -rf build/deb/minetest/usr/share/minetest/games/minetest/.git
- sed -i 's/DATEPLACEHOLDER/'$(date +%y.%m.%d)'/g' build/deb/minetest/DEBIAN/control
- sed -i 's/LEVELDB_PLACEHOLDER/'$LEVELDB_PKG'/g' build/deb/minetest/DEBIAN/control
- cd build/deb/ && dpkg-deb -b minetest/ && mv minetest.deb ../../
artifacts:
- when: on_success
expire_in: 90 day
paths:
- ./*.deb
@@ -51,44 +50,14 @@ variables:
stage: deploy
before_script:
- apt-get update -y
- - apt-get install -y libc6 libcurl3-gnutls libfreetype6 libirrlicht1.8 $LEVELDB_PKG liblua5.1-0 libluajit-5.1-2 libopenal1 libstdc++6 libvorbisfile3 libx11-6 zlib1g
script:
- - dpkg -i ./*.deb
+ - apt-get install -y ./*.deb
+ - minetest --version
##
## Debian
##
-# Jessie
-
-build:debian-8:
- extends: .build_template
- image: debian:8
- before_script:
- - echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list
- - apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F
- - apt-get update -y
- - apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
- variables:
- CC: gcc-6
- CXX: g++-6
-
-package:debian-8:
- extends: .debpkg_template
- image: debian:8
- dependencies:
- - build:debian-8
- variables:
- LEVELDB_PKG: libleveldb1
-
-deploy:debian-8:
- extends: .debpkg_install
- image: debian:8
- dependencies:
- - package:debian-8
- variables:
- LEVELDB_PKG: libleveldb1
-
# Stretch
build:debian-9:
@@ -101,7 +70,7 @@ build:debian-9:
package:debian-9:
extends: .debpkg_template
image: debian:9
- dependencies:
+ needs:
- build:debian-9
variables:
LEVELDB_PKG: libleveldb1v5
@@ -109,12 +78,10 @@ package:debian-9:
deploy:debian-9:
extends: .debpkg_install
image: debian:9
- dependencies:
+ needs:
- package:debian-9
- variables:
- LEVELDB_PKG: libleveldb1v5
-# Stretch
+# Buster
build:debian-10:
extends: .build_template
@@ -126,7 +93,7 @@ build:debian-10:
package:debian-10:
extends: .debpkg_template
image: debian:10
- dependencies:
+ needs:
- build:debian-10
variables:
LEVELDB_PKG: libleveldb1d
@@ -134,44 +101,13 @@ package:debian-10:
deploy:debian-10:
extends: .debpkg_install
image: debian:10
- dependencies:
+ needs:
- package:debian-10
- variables:
- LEVELDB_PKG: libleveldb1d
+
##
## Ubuntu
##
-# Trusty
-
-build:ubuntu-14.04:
- extends: .build_template
- image: ubuntu:trusty
- before_script:
- - echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list
- - apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F
- - apt-get update -y
- - apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
- variables:
- CC: gcc-6
- CXX: g++-6
-
-package:ubuntu-14.04:
- extends: .debpkg_template
- image: ubuntu:trusty
- dependencies:
- - build:ubuntu-14.04
- variables:
- LEVELDB_PKG: libleveldb1
-
-deploy:ubuntu-14.04:
- extends: .debpkg_install
- image: ubuntu:trusty
- dependencies:
- - package:ubuntu-14.04
- variables:
- LEVELDB_PKG: libleveldb1
-
# Xenial
build:ubuntu-16.04:
@@ -184,7 +120,7 @@ build:ubuntu-16.04:
package:ubuntu-16.04:
extends: .debpkg_template
image: ubuntu:xenial
- dependencies:
+ needs:
- build:ubuntu-16.04
variables:
LEVELDB_PKG: libleveldb1v5
@@ -192,25 +128,45 @@ package:ubuntu-16.04:
deploy:ubuntu-16.04:
extends: .debpkg_install
image: ubuntu:xenial
- dependencies:
+ needs:
- package:ubuntu-16.04
+
+# Bionic
+
+build:ubuntu-18.04:
+ extends: .build_template
+ image: ubuntu:bionic
+ before_script:
+ - apt-get update -y
+ - apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
+
+package:ubuntu-18.04:
+ extends: .debpkg_template
+ image: ubuntu:bionic
+ needs:
+ - build:ubuntu-18.04
variables:
LEVELDB_PKG: libleveldb1v5
+deploy:ubuntu-18.04:
+ extends: .debpkg_install
+ image: ubuntu:bionic
+ needs:
+ - package:ubuntu-18.04
+
##
## Fedora
##
-# Do we need to support this old version ?
-build:fedora-24:
+# Fedora 28 <-> RHEL 8
+build:fedora-28:
extends: .build_template
- image: fedora:24
+ image: fedora:28
before_script:
- - dnf -y install make automake gcc gcc-c++ kernel-devel cmake libcurl* openal* libvorbis* libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel
-
+ - dnf -y install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel spatialindex-devel
##
-## Mingw for Windows
+## MinGW for Windows
##
.generic_win_template:
@@ -218,68 +174,63 @@ build:fedora-24:
before_script:
- apt-get update -y
- apt-get install -y wget xz-utils unzip git cmake gettext
- - wget -q http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz
+ - wget -nv http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz
- tar -xaf mingw.tar.xz -C /usr
.build_win_template:
extends: .generic_win_template
stage: build
artifacts:
- when: on_success
- expire_in: 2h
+ expire_in: 1h
paths:
- - build/*
+ - build/minetest/_build/*
.package_win_template:
extends: .generic_win_template
stage: package
script:
- - cd build/minetest/_build
- - make package
- - cd ../../../
- - mkdir minetest-win-${WIN_ARCH}
- - unzip build/minetest/_build/minetest-*-win*.zip -d minetest-win-${WIN_ARCH}
- - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libgcc*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin
- - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libstdc++*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin
- - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libwinpthread*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin
+ - unzip build/minetest/_build/minetest-*.zip
+ - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libgcc*.dll minetest-*-win*/bin/
+ - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libstdc++*.dll minetest-*-win*/bin/
+ - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libwinpthread*.dll minetest-*-win*/bin/
artifacts:
- when: on_success
expire_in: 90 day
paths:
- - minetest-win-*/*
+ - minetest-*-win*/*
build:win32:
extends: .build_win_template
script:
- ./util/buildbot/buildwin32.sh build
variables:
- NO_PACKAGE: "1"
WIN_ARCH: "i686"
package:win32:
extends: .package_win_template
- dependencies:
+ needs:
- build:win32
variables:
- NO_PACKAGE: "1"
WIN_ARCH: "i686"
+
build:win64:
extends: .build_win_template
script:
- ./util/buildbot/buildwin64.sh build
variables:
- NO_PACKAGE: "1"
WIN_ARCH: "x86_64"
package:win64:
extends: .package_win_template
- dependencies:
+ needs:
- build:win64
variables:
- NO_PACKAGE: "1"
WIN_ARCH: "x86_64"
+##
+## Docker
+##
+
package:docker:
stage: package
image: docker:stable
@@ -293,6 +244,10 @@ package:docker:
- docker push ${CONTAINER_IMAGE}/server:$CI_COMMIT_REF_NAME
- docker push ${CONTAINER_IMAGE}/server:latest
+##
+## Gitlab Pages (Lua API documentation)
+##
+
pages:
stage: deploy
image: python:3.8
@@ -308,3 +263,31 @@ pages:
only:
- master
+##
+## AppImage
+##
+
+package:appimage-client:
+ stage: package
+ image: appimagecrafters/appimage-builder
+ needs:
+ - build:ubuntu-18.04
+ before_script:
+ - apt-get update -y
+ - apt-get install -y git wget
+ # Collect files
+ - mkdir AppDir
+ - cp -a artifact/minetest/usr/ AppDir/usr/
+ - rm AppDir/usr/bin/minetestserver
+ - cp -a clientmods AppDir/usr/share/minetest
+ script:
+ - git clone $MINETEST_GAME_REPO AppDir/usr/share/minetest/games/minetest_game
+ - rm -rf AppDir/usr/share/minetest/games/minetest/.git
+ - export VERSION=$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA
+ # Remove PrefersNonDefaultGPU property due to validation errors
+ - sed -i '/PrefersNonDefaultGPU/d' AppDir/usr/share/applications/net.minetest.minetest.desktop
+ - appimage-builder --skip-test
+ artifacts:
+ expire_in: 90 day
+ paths:
+ - ./*.AppImage
diff --git a/.luacheckrc b/.luacheckrc
index 3ab6e10c8..e010ab95c 100644
--- a/.luacheckrc
+++ b/.luacheckrc
@@ -72,3 +72,11 @@ files["builtin/mainmenu"] = {
"PLATFORM",
},
}
+
+files["builtin/common/tests"] = {
+ read_globals = {
+ "describe",
+ "it",
+ "assert",
+ },
+}
diff --git a/.mailmap b/.mailmap
index c487460a0..fcc763411 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1,33 +1,67 @@
+# Documentation: https://git-scm.com/docs/git-check-mailmap#_mapping_authors
+
0gb.us <0gb.us@0gb.us> <us_0gb@laptop-0gb-us.0gb.us>
-Calinou <calinou9999@gmail.com> <calinou9999spam@gmail.com>
-Perttu Ahola <celeron55@gmail.com> celeron55 <celeron55@gmail.com>
+Calinou <calinou@opmbx.org> <calinou9999@gmail.com>
+Calinou <calinou@opmbx.org> <calinou9999spam@gmail.com>
+Perttu Ahola <celeron55@gmail.com>
Perttu Ahola <celeron55@gmail.com> celeron55 <celeron55@armada.(none)>
-Craig Robbins <kde.psych@gmail.com> <crobbins@localhost.localdomain>
+Zeno- <kde.psych@gmail.com>
+Zeno- <kde.psych@gmail.com> <crobbins@localhost.localdomain>
+Diego Martínez <kaeza@users.sf.net>
Diego Martínez <kaeza@users.sf.net> <lkaezadl3@gmail.com>
+Ilya Zhuravlev <zhuravlevilya@ya.ru>
Ilya Zhuravlev <zhuravlevilya@ya.ru> <whatever@xyz.is>
kwolekr <kwolekr@minetest.net> <mirrorisim@gmail.com>
-PilzAdam <pilzadam@minetest.net> PilzAdam <adam-k@outlook.com>
-PilzAdam <pilzadam@minetest.net> Pilz Adam <PilzAdam@gmx.de>
-PilzAdam <pilzadam@minetest.net> PilzAdam <PilzAdam@gmx.de>
+PilzAdam <pilzadam@minetest.net> <adam-k@outlook.com>
+PilzAdam <pilzadam@minetest.net> <PilzAdam@gmx.de>
proller <proller@github.com> <proler@github.com>
proller <proller@github.com> <proler@gmail.com>
RealBadAngel <maciej.kasatkin@o2.pl> <mk@realbadangel.pl>
RealBadAngel <maciej.kasatkin@o2.pl> <maciej.kasatkin@yahoo.com>
Selat <LongExampleTestName@gmail.com> <LongExampletestName@gmail.com>
ShadowNinja <shadowninja@minetest.net> ShadowNinja <noreply@gmail.com>
-Shen Zheyu <arsdragonfly@gmail.com> arsdragonfly <arsdragonfly@gmail.com>
-Pavel Elagin <elagin.pasha@gmail.com> elagin <elagin.pasha@gmail.com>
-Esteban I. Ruiz Moreno <exio4.com@gmail.com> Esteban I. RM <exio4.com@gmail.com>
-manuel duarte <ffrogger0@yahoo.com> manuel joaquim <ffrogger0@yahoo.com>
-manuel duarte <ffrogger0@yahoo.com> sweetbomber <ffrogger _zero_ at yahoo dot com>
-Diego Martínez <kaeza@users.sf.net> kaeza <kaeza@users.sf.net>
-Diego Martínez <kaeza@users.sf.net> Diego Martinez <kaeza@users.sf.net>
-Lord James <neftali_dtctv@hotmail.com> Lord89James <neftali_dtctv@hotmail.com>
-BlockMen <nmuelll@web.de> Block Men <nmuelll@web.de>
-sfan5 <sfan5@live.de> Sfan5 <sfan5@live.de>
-DannyDark <the_skeleton_of_a_child@yahoo.co.uk> dannydark <the_skeleton_of_a_child@yahoo.co.uk>
-Ilya Pavlov <TTChangeTheWorld@gmail.com> Ilya <TTChangeTheWorld@gmail.com>
-Ilya Zhuravlev <zhuravlevilya@ya.ru> xyzz <zhuravlevilya@ya.ru>
+Esteban I. Ruiz Moreno <exio4.com@gmail.com>
+Esteban I. Ruiz Moreno <exio4.com@gmail.com> <me@exio4.xyz>
+Lord James <neftali_dtctv@hotmail.com>
+BlockMen <nmuelll@web.de>
+sfan5 <sfan5@live.de>
+DannyDark <the_skeleton_of_a_child@yahoo.co.uk>
+Ilya Pavlov <TTChangeTheWorld@gmail.com>
sapier <Sapier at GMX dot net> sapier <sapier AT gmx DOT net>
sapier <Sapier at GMX dot net> sapier <sapier at gmx dot net>
-
+SmallJoker <SmallJoker@users.noreply.github.com> <mk939@ymail.com>
+Loïc Blot <nerzhul@users.noreply.github.com>
+Loïc Blot <nerzhul@users.noreply.github.com> <loic.blot@unix-experience.fr>
+numzero <numzer0@yandex.ru> Vitaliy <numzer0@yandex.ru>
+numzero <numzer0@yandex.ru> <silverunicorn2011@yandex.ru>
+Jean-Patrick Guerrero <kilbith@users.noreply.github.com>
+Jean-Patrick Guerrero <kilbith@users.noreply.github.com> <jeanpatrick.guerrero@gmail.com>
+HybridDog <3192173+HybridDog@users.noreply.github.com> <ovvv@web.de>
+srfqi <muhammadrifqipriyosusanto@gmail.com>
+Dániel Juhász <juhdanad@gmail.com>
+rubenwardy <rw@rubenwardy.com>
+rubenwardy <rw@rubenwardy.com> <rubenwardy@gmail.com>
+Paul Ouellette <oue.paul18@gmail.com>
+Vanessa Dannenberg <vanessa.e.dannenberg@gmail.com> <vanessaezekowitz@gmail.com>
+ClobberXD <ClobberXD@gmail.com>
+ClobberXD <ClobberXD@gmail.com> <ClobberXD@protonmail.com>
+ClobberXD <ClobberXD@gmail.com> <36130650+ClobberXD@users.noreply.github.com>
+Auke Kok <sofar+github@foo-projects.org>
+Auke Kok <sofar+github@foo-projects.org> <sofar@foo-projects.org>
+Desour <vorunbekannt75@web.de>
+Nathanaël Courant <Ekdohibs@users.noreply.github.com> <nathanael.courant@laposte.net>
+Ezhh <owlecho@live.com>
+paramat <paramat@users.noreply.github.com>
+paramat <paramat@users.noreply.github.com> <mat.gregory@virginmedia.com>
+lhofhansl <lhofhansl@yahoo.com> <larsh@apache.org>
+red-001 <red-001@outlook.ie> <red-001@openmailbox.org>
+Wuzzy <wuzzy2@mail.ru> <Wuzzy2@mail.ru>
+Wuzzy <wuzzy2@mail.ru> <almikes@aol.com>
+Jordach <jordach.snelling@gmail.com>
+MoNTE48 <MoNTE48@mail.ua>
+v-rob <robinsonvincent89@gmail.com>
+v-rob <robinsonvincent89@gmail.com> <31123645+v-rob@users.noreply.github.com>
+EvidenceB <49488517+EvidenceBKidscode@users.noreply.github.com>
+gregorycu <gregory.currie@gmail.com>
+Rogier <rogier777@gmail.com>
+Rogier <rogier777@gmail.com> <Rogier-5@users.noreply.github.com>
diff --git a/AppImageBuilder.yml b/AppImageBuilder.yml
new file mode 100644
index 000000000..9ecad5d8e
--- /dev/null
+++ b/AppImageBuilder.yml
@@ -0,0 +1,51 @@
+version: 1
+
+AppDir:
+ path: ./AppDir
+
+ app_info:
+ id: minetest
+ name: Minetest
+ icon: minetest
+ version: !ENV ${VERSION}
+ exec: usr/bin/minetest
+ exec_args: $@
+ runtime:
+ env:
+ APPDIR_LIBRARY_PATH: $APPDIR/usr/lib/x86_64-linux-gnu
+
+ apt:
+ arch: amd64
+ sources:
+ - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic main universe
+ key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32'
+ - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-updates main universe
+ - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-backports main universe
+ - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-security main universe
+
+ include:
+ - libirrlicht1.8
+ - libxxf86vm1
+ - libgl1-mesa-glx
+ - libsqlite3-0
+ - libogg0
+ - libvorbis0a
+ - libopenal1
+ - libcurl3-gnutls
+ - libfreetype6
+ - zlib1g
+ - libgmp10
+ - libjsoncpp1
+
+ files:
+ exclude:
+ - usr/share/man
+ - usr/share/doc/*/README.*
+ - usr/share/doc/*/changelog.*
+ - usr/share/doc/*/NEWS.*
+ - usr/share/doc/*/TODO.*
+
+AppImage:
+ update-information: None
+ sign-key: None
+ arch: x86_64
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8d33a2a7e..f6a0d22fe 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,22 +1,18 @@
-cmake_minimum_required(VERSION 2.6)
+cmake_minimum_required(VERSION 3.5)
-if(${CMAKE_VERSION} STREQUAL "2.8.2")
- # Bug http://vtk.org/Bug/view.php?id=11020
- message(WARNING "CMake/CPack version 2.8.2 will not create working .deb packages!")
-endif()
+cmake_policy(SET CMP0025 OLD)
# This can be read from ${PROJECT_NAME} after project() is called
project(minetest)
set(PROJECT_NAME_CAPITALIZED "Minetest")
-# Works only for cmake 3.1 and greater
set(CMAKE_CXX_STANDARD 11)
set(GCC_MINIMUM_VERSION "4.8")
set(CLANG_MINIMUM_VERSION "3.4")
# Also remember to set PROTOCOL_VERSION in network/networkprotocol.h when releasing
set(VERSION_MAJOR 5)
-set(VERSION_MINOR 3)
+set(VERSION_MINOR 4)
set(VERSION_PATCH 0)
set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string")
@@ -165,7 +161,7 @@ if(RUN_IN_PLACE)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/textures/texture_packs_here.txt" DESTINATION "${SHAREDIR}/textures")
endif()
-install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/minetest_game" DESTINATION "${SHAREDIR}/games/"
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/minetest_game" DESTINATION "${SHAREDIR}/games/"
COMPONENT "SUBGAME_MINETEST_GAME" OPTIONAL PATTERN ".git*" EXCLUDE )
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/games/devtest" DESTINATION "${SHAREDIR}/games/"
COMPONENT "SUBGAME_MINIMAL" OPTIONAL PATTERN ".git*" EXCLUDE )
@@ -249,15 +245,15 @@ cpack_add_component(Docs
cpack_add_component(SUBGAME_MINETEST_GAME
DISPLAY_NAME "Minetest Game"
- DESCRIPTION "The official subgame for the Minetest engine, that can easily extended by mods."
- GROUP "Subgames"
+ DESCRIPTION "The default game bundled in the Minetest engine. Mainly used as a modding base."
+ GROUP "Games"
)
cpack_add_component(SUBGAME_MINIMAL
DISPLAY_NAME "Development Test"
- DESCRIPTION "A minimal test game helping to develop the engine."
+ DESCRIPTION "A basic testing environment used for engine development and sometimes for testing mods."
DISABLED #DISABLED does not mean it is disabled, and is just not selected by default.
- GROUP "Subgames"
+ GROUP "Games"
)
cpack_add_component_group(Subgames
@@ -278,19 +274,20 @@ if(WIN32)
set(CPACK_GENERATOR ZIP)
else()
- set(CPACK_GENERATOR WIX ZIP)
+ set(CPACK_GENERATOR WIX)
set(CPACK_PACKAGE_NAME "${PROJECT_NAME_CAPITALIZED}")
- set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME_CAPITALIZED}")
+ set(CPACK_PACKAGE_INSTALL_DIRECTORY ".")
set(CPACK_PACKAGE_EXECUTABLES ${PROJECT_NAME} "${PROJECT_NAME_CAPITALIZED}")
set(CPACK_CREATE_DESKTOP_LINKS ${PROJECT_NAME})
+ set(CPACK_PACKAGING_INSTALL_PREFIX "/${PROJECT_NAME_CAPITALIZED}")
set(CPACK_WIX_PRODUCT_ICON "${CMAKE_CURRENT_SOURCE_DIR}/misc/minetest-icon.ico")
- # Supported languages can be found at
+ # Supported languages can be found at
# http://wixtoolset.org/documentation/manual/v3/wixui/wixui_localization.html
#set(CPACK_WIX_CULTURES "ar-SA,bg-BG,ca-ES,hr-HR,cs-CZ,da-DK,nl-NL,en-US,et-EE,fi-FI,fr-FR,de-DE")
set(CPACK_WIX_UI_BANNER "${CMAKE_CURRENT_SOURCE_DIR}/misc/CPACK_WIX_UI_BANNER.BMP")
set(CPACK_WIX_UI_DIALOG "${CMAKE_CURRENT_SOURCE_DIR}/misc/CPACK_WIX_UI_DIALOG.BMP")
-
+
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/doc/lgpl-2.1.txt")
# The correct way would be to include both x32 and x64 into one installer
diff --git a/Dockerfile b/Dockerfile
index 72343ab9c..871ca9825 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -21,7 +21,7 @@ WORKDIR /usr/src/minetest
RUN apk add --no-cache git build-base irrlicht-dev cmake bzip2-dev libpng-dev \
jpeg-dev libxxf86vm-dev mesa-dev sqlite-dev libogg-dev \
libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev \
- gmp-dev jsoncpp-dev postgresql-dev ca-certificates && \
+ gmp-dev jsoncpp-dev postgresql-dev luajit-dev ca-certificates && \
git clone --depth=1 -b ${MINETEST_GAME_VERSION} https://github.com/minetest/minetest_game.git ./games/minetest_game && \
rm -fr ./games/minetest_game/.git
@@ -51,7 +51,7 @@ RUN mkdir build && \
FROM alpine:3.11
-RUN apk add --no-cache sqlite-libs curl gmp libstdc++ libgcc libpq && \
+RUN apk add --no-cache sqlite-libs curl gmp libstdc++ libgcc libpq luajit && \
adduser -D minetest --uid 30000 -h /var/lib/minetest && \
chown -R minetest:minetest /var/lib/minetest
diff --git a/LICENSE.txt b/LICENSE.txt
index f5c51833b..9b8ee851a 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -11,6 +11,9 @@ http://creativecommons.org/licenses/by-sa/3.0/
textures/base/pack/refresh.png is under the Apache 2 license
https://www.apache.org/licenses/LICENSE-2.0.html
+Textures by Zughy are under CC BY-SA 4.0
+https://creativecommons.org/licenses/by-sa/4.0/
+
Authors of media files
-----------------------
Everything not listed in here:
@@ -23,6 +26,8 @@ paramat:
textures/base/pack/menu_header.png
textures/base/pack/next_icon.png
textures/base/pack/prev_icon.png
+ textures/base/pack/clear.png
+ textures/base/pack/search.png
rubenwardy, paramat:
textures/base/pack/start_icon.png
@@ -45,6 +50,14 @@ srifqi
textures/base/pack/joystick_off.png
textures/base/pack/minimap_btn.png
+Zughy:
+ textures/base/pack/cdb_add.png
+ textures/base/pack/cdb_clear.png
+ textures/base/pack/cdb_downloading.png
+ textures/base/pack/cdb_queued.png
+ textures/base/pack/cdb_update.png
+ textures/base/pack/cdb_viewonline.png
+
License of Minetest source code
-------------------------------
diff --git a/README.md b/README.md
index 6a3c11f40..58ec0c821 100644
--- a/README.md
+++ b/README.md
@@ -31,10 +31,10 @@ Table of Contents
Further documentation
----------------------
-- Website: http://minetest.net/
-- Wiki: http://wiki.minetest.net/
-- Developer wiki: http://dev.minetest.net/
-- Forum: http://forum.minetest.net/
+- Website: https://minetest.net/
+- Wiki: https://wiki.minetest.net/
+- Developer wiki: https://dev.minetest.net/
+- Forum: https://forum.minetest.net/
- GitHub: https://github.com/minetest/minetest/
- [doc/](doc/) directory of source distribution
@@ -314,13 +314,14 @@ It is highly recommended to use vcpkg as package manager.
After you successfully built vcpkg you can easily install the required libraries:
```powershell
-vcpkg install irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit --triplet x64-windows
+vcpkg install irrlicht zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit gmp jsoncpp --triplet x64-windows
```
- `curl` is optional, but required to read the serverlist, `curl[winssl]` is required to use the content store.
- `openal-soft`, `libvorbis` and `libogg` are optional, but required to use sound.
- `freetype` is optional, it allows true-type font rendering.
- `luajit` is optional, it replaces the integrated Lua interpreter with a faster just-in-time interpreter.
+- `gmp` and `jsoncpp` are optional, otherwise the bundled versions will be compiled
There are other optional libraries, but they are not tested if they can build and link correctly.
@@ -353,7 +354,7 @@ This is outdated and not recommended. Follow the instructions on https://dev.min
Run the following script in PowerShell:
```powershell
-cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=0 -DENABLE_CURSES=0
+cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=OFF -DENABLE_CURSES=OFF -DENABLE_SYSTEM_JSONCPP=ON
cmake --build . --config Release
```
Make sure that the right compiler is selected and the path to the vcpkg toolchain is correct.
diff --git a/build/android/app/build.gradle b/build/android/app/build.gradle
index e3619af17..7f4eba8c4 100644
--- a/build/android/app/build.gradle
+++ b/build/android/app/build.gradle
@@ -1,8 +1,8 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
- buildToolsVersion '29.0.3'
- ndkVersion '21.1.6352462'
+ buildToolsVersion '30.0.3'
+ ndkVersion '22.0.7026061'
defaultConfig {
applicationId 'net.minetest.minetest'
minSdkVersion 16
@@ -11,8 +11,11 @@ android {
versionCode project.versionCode
}
+ // load properties
Properties props = new Properties()
- props.load(new FileInputStream(file('../local.properties')))
+ def propfile = file('../local.properties')
+ if (propfile.exists())
+ props.load(new FileInputStream(propfile))
if (props.getProperty('keystore') != null) {
signingConfigs {
@@ -61,10 +64,9 @@ task prepareAssets() {
copy {
from "${projRoot}/builtin" into "${assetsFolder}/builtin"
}
- /*copy {
- // ToDo: fix Minetest shaders that currently don't work with OpenGL ES
+ copy {
from "${projRoot}/client/shaders" into "${assetsFolder}/client/shaders"
- }*/
+ }
copy {
from "../native/deps/Android/Irrlicht/shaders" into "${assetsFolder}/client/shaders/Irrlicht"
}
@@ -107,5 +109,5 @@ android.applicationVariants.all { variant ->
dependencies {
implementation project(':native')
- implementation 'androidx.appcompat:appcompat:1.1.0'
+ implementation 'androidx.appcompat:appcompat:1.2.0'
}
diff --git a/build/android/app/src/main/AndroidManifest.xml b/build/android/app/src/main/AndroidManifest.xml
index 0a7c8d95a..fa93e7069 100644
--- a/build/android/app/src/main/AndroidManifest.xml
+++ b/build/android/app/src/main/AndroidManifest.xml
@@ -17,8 +17,8 @@
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/label"
- android:resizeableActivity="false"
android:requestLegacyExternalStorage="true"
+ android:resizeableActivity="false"
tools:ignore="UnusedAttribute">
<meta-data
@@ -53,11 +53,6 @@
android:value="Minetest" />
</activity>
- <activity
- android:name=".InputDialogActivity"
- android:maxAspectRatio="3.0"
- android:theme="@style/InputTheme" />
-
<service
android:name=".UnzipService"
android:enabled="true"
diff --git a/build/android/app/src/main/java/net/minetest/minetest/CustomEditText.java b/build/android/app/src/main/java/net/minetest/minetest/CustomEditText.java
new file mode 100644
index 000000000..8d0a503d0
--- /dev/null
+++ b/build/android/app/src/main/java/net/minetest/minetest/CustomEditText.java
@@ -0,0 +1,45 @@
+/*
+Minetest
+Copyright (C) 2014-2020 MoNTE48, Maksim Gamarnik <MoNTE48@mail.ua>
+Copyright (C) 2014-2020 ubulem, Bektur Mambetov <berkut87@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+package net.minetest.minetest;
+
+import android.content.Context;
+import android.view.KeyEvent;
+import android.view.inputmethod.InputMethodManager;
+
+import androidx.appcompat.widget.AppCompatEditText;
+
+import java.util.Objects;
+
+public class CustomEditText extends AppCompatEditText {
+ public CustomEditText(Context context) {
+ super(context);
+ }
+
+ @Override
+ public boolean onKeyPreIme(int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ InputMethodManager mgr = (InputMethodManager)
+ getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
+ Objects.requireNonNull(mgr).hideSoftInputFromWindow(this.getWindowToken(), 0);
+ }
+ return false;
+ }
+}
diff --git a/build/android/app/src/main/java/net/minetest/minetest/GameActivity.java b/build/android/app/src/main/java/net/minetest/minetest/GameActivity.java
index 635512569..38a388230 100644
--- a/build/android/app/src/main/java/net/minetest/minetest/GameActivity.java
+++ b/build/android/app/src/main/java/net/minetest/minetest/GameActivity.java
@@ -25,8 +25,16 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
+import android.text.InputType;
+import android.view.KeyEvent;
import android.view.View;
import android.view.WindowManager;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.EditText;
+
+import androidx.appcompat.app.AlertDialog;
+
+import java.util.Objects;
public class GameActivity extends NativeActivity {
static {
@@ -34,8 +42,8 @@ public class GameActivity extends NativeActivity {
System.loadLibrary("Minetest");
}
- private int messageReturnCode;
- private String messageReturnValue;
+ private int messageReturnCode = -1;
+ private String messageReturnValue = "";
public static native void putMessageBoxResult(String text);
@@ -43,8 +51,6 @@ public class GameActivity extends NativeActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
- messageReturnCode = -1;
- messageReturnValue = "";
}
private void makeFullScreen() {
@@ -73,29 +79,46 @@ public class GameActivity extends NativeActivity {
// Ignore the back press so Minetest can handle it
}
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == 101) {
- if (resultCode == RESULT_OK) {
- String text = data.getStringExtra("text");
- messageReturnCode = 0;
- messageReturnValue = text;
- } else
- messageReturnCode = 1;
- }
+ public void showDialog(String acceptButton, String hint, String current, int editType) {
+ runOnUiThread(() -> showDialogUI(hint, current, editType));
}
- public void showDialog(String acceptButton, String hint, String current, int editType) {
- Intent intent = new Intent(this, InputDialogActivity.class);
- Bundle params = new Bundle();
- params.putString("acceptButton", acceptButton);
- params.putString("hint", hint);
- params.putString("current", current);
- params.putInt("editType", editType);
- intent.putExtras(params);
- startActivityForResult(intent, 101);
- messageReturnValue = "";
- messageReturnCode = -1;
+ private void showDialogUI(String hint, String current, int editType) {
+ final AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ EditText editText = new CustomEditText(this);
+ builder.setView(editText);
+ AlertDialog alertDialog = builder.create();
+ editText.requestFocus();
+ editText.setHint(hint);
+ editText.setText(current);
+ final InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
+ Objects.requireNonNull(imm).toggleSoftInput(InputMethodManager.SHOW_FORCED,
+ InputMethodManager.HIDE_IMPLICIT_ONLY);
+ if (editType == 1)
+ editText.setInputType(InputType.TYPE_CLASS_TEXT |
+ InputType.TYPE_TEXT_FLAG_MULTI_LINE);
+ else if (editType == 3)
+ editText.setInputType(InputType.TYPE_CLASS_TEXT |
+ InputType.TYPE_TEXT_VARIATION_PASSWORD);
+ else
+ editText.setInputType(InputType.TYPE_CLASS_TEXT);
+ editText.setSelection(editText.getText().length());
+ editText.setOnKeyListener((view, KeyCode, event) -> {
+ if (KeyCode == KeyEvent.KEYCODE_ENTER) {
+ imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
+ messageReturnCode = 0;
+ messageReturnValue = editText.getText().toString();
+ alertDialog.dismiss();
+ return true;
+ }
+ return false;
+ });
+ alertDialog.show();
+ alertDialog.setOnCancelListener(dialog -> {
+ getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
+ messageReturnValue = current;
+ messageReturnCode = -1;
+ });
}
public int getDialogState() {
@@ -119,8 +142,8 @@ public class GameActivity extends NativeActivity {
return getResources().getDisplayMetrics().widthPixels;
}
- public void openURL(String url) {
- Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+ public void openURI(String uri) {
+ Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(browserIntent);
}
}
diff --git a/build/android/app/src/main/java/net/minetest/minetest/InputDialogActivity.java b/build/android/app/src/main/java/net/minetest/minetest/InputDialogActivity.java
deleted file mode 100644
index 7c6aa111d..000000000
--- a/build/android/app/src/main/java/net/minetest/minetest/InputDialogActivity.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
-Minetest
-Copyright (C) 2014-2020 MoNTE48, Maksim Gamarnik <MoNTE48@mail.ua>
-Copyright (C) 2014-2020 ubulem, Bektur Mambetov <berkut87@gmail.com>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 2.1 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-*/
-
-package net.minetest.minetest;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Build;
-import android.os.Bundle;
-import android.text.InputType;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.appcompat.app.AppCompatActivity;
-
-import java.util.Objects;
-
-public class InputDialogActivity extends AppCompatActivity {
- private AlertDialog alertDialog;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Bundle b = getIntent().getExtras();
- int editType = Objects.requireNonNull(b).getInt("editType");
- String hint = b.getString("hint");
- String current = b.getString("current");
- final AlertDialog.Builder builder = new AlertDialog.Builder(this);
- EditText editText = new EditText(this);
- builder.setView(editText);
- editText.requestFocus();
- editText.setHint(hint);
- editText.setText(current);
- final InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
- Objects.requireNonNull(imm).toggleSoftInput(InputMethodManager.SHOW_FORCED,
- InputMethodManager.HIDE_IMPLICIT_ONLY);
- if (editType == 3)
- editText.setInputType(InputType.TYPE_CLASS_TEXT |
- InputType.TYPE_TEXT_VARIATION_PASSWORD);
- else
- editText.setInputType(InputType.TYPE_CLASS_TEXT);
- editText.setOnKeyListener((view, KeyCode, event) -> {
- if (KeyCode == KeyEvent.KEYCODE_ENTER) {
- imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
- pushResult(editText.getText().toString());
- return true;
- }
- return false;
- });
- alertDialog = builder.create();
- if (!this.isFinishing())
- alertDialog.show();
- alertDialog.setOnCancelListener(dialog -> {
- pushResult(editText.getText().toString());
- setResult(Activity.RESULT_CANCELED);
- alertDialog.dismiss();
- makeFullScreen();
- finish();
- });
- }
-
- private void pushResult(String text) {
- Intent resultData = new Intent();
- resultData.putExtra("text", text);
- setResult(AppCompatActivity.RESULT_OK, resultData);
- alertDialog.dismiss();
- makeFullScreen();
- finish();
- }
-
- private void makeFullScreen() {
- if (Build.VERSION.SDK_INT >= 19)
- this.getWindow().getDecorView().setSystemUiVisibility(
- View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
- View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
- View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
- }
-}
diff --git a/build/android/app/src/main/res/values/styles.xml b/build/android/app/src/main/res/values/styles.xml
index 618507e63..291a4eaf1 100644
--- a/build/android/app/src/main/res/values/styles.xml
+++ b/build/android/app/src/main/res/values/styles.xml
@@ -8,15 +8,8 @@
<item name="android:windowLayoutInDisplayCutoutMode" tools:targetApi="p">shortEdges</item>
</style>
- <style name="InputTheme" parent="Theme.AppCompat.DayNight.Dialog">
- <item name="windowNoTitle">true</item>
- <item name="android:windowBackground">@android:color/transparent</item>
- </style>
-
- <style name="CustomProgressBar" parent="@style/Widget.AppCompat.ProgressBar.Horizontal">
+ <style name="CustomProgressBar" parent="Widget.AppCompat.ProgressBar.Horizontal">
<item name="android:indeterminateOnly">false</item>
- <item name="android:minHeight">10dip</item>
- <item name="android:maxHeight">20dip</item>
</style>
</resources>
diff --git a/build/android/build.gradle b/build/android/build.gradle
index 8707b563c..be9eaada4 100644
--- a/build/android/build.gradle
+++ b/build/android/build.gradle
@@ -1,10 +1,10 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
project.ext.set("versionMajor", 5) // Version Major
-project.ext.set("versionMinor", 3) // Version Minor
+project.ext.set("versionMinor", 4) // Version Minor
project.ext.set("versionPatch", 0) // Version Patch
-project.ext.set("versionExtra", "-dev") // Version Extra
-project.ext.set("versionCode", 30) // Android Version Code
+project.ext.set("versionExtra", "") // Version Extra
+project.ext.set("versionCode", 32) // Android Version Code
// NOTE: +2 after each release!
// +1 for ARM and +1 for ARM64 APK's, because
// each APK must have a larger `versionCode` than the previous
@@ -15,8 +15,8 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.6.3'
- classpath 'org.ajoberstar.grgit:grgit-gradle:4.0.2'
+ classpath 'com.android.tools.build:gradle:4.1.1'
+ classpath 'de.undercouch:gradle-download-task:4.1.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
@@ -31,4 +31,5 @@ allprojects {
task clean(type: Delete) {
delete rootProject.buildDir
+ delete 'native/deps'
}
diff --git a/build/android/gradle/wrapper/gradle-wrapper.properties b/build/android/gradle/wrapper/gradle-wrapper.properties
index d612cf333..7fd9307d7 100644
--- a/build/android/gradle/wrapper/gradle-wrapper.properties
+++ b/build/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,2 +1,6 @@
-#Mon Apr 06 00:06:16 CEST 2020
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
+#Fri Jan 08 17:52:00 UTC 2020
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-all.zip
diff --git a/build/android/native/build.gradle b/build/android/native/build.gradle
index cbd50db6a..8ea6347b3 100644
--- a/build/android/native/build.gradle
+++ b/build/android/native/build.gradle
@@ -1,16 +1,16 @@
apply plugin: 'com.android.library'
-import org.ajoberstar.grgit.Grgit
+apply plugin: 'de.undercouch.download'
android {
compileSdkVersion 29
- buildToolsVersion '29.0.3'
- ndkVersion '21.1.6352462'
+ buildToolsVersion '30.0.3'
+ ndkVersion '22.0.7026061'
defaultConfig {
minSdkVersion 16
targetSdkVersion 29
externalNativeBuild {
ndkBuild {
- arguments '-j8',
+ arguments '-j' + Runtime.getRuntime().availableProcessors(),
"versionMajor=${versionMajor}",
"versionMinor=${versionMinor}",
"versionPatch=${versionPatch}",
@@ -45,15 +45,54 @@ android {
}
}
-task cloneGitRepo() {
- def destination = file('deps')
- if(!destination.exists()) {
- def grgit = Grgit.clone(
- dir: destination,
- uri: 'https://github.com/minetest/minetest_android_deps_binaries'
- )
- grgit.close()
+// get precompiled deps
+def folder = 'minetest_android_deps_binaries'
+
+task downloadDeps(type: Download) {
+ src 'https://github.com/minetest/' + folder + '/archive/master.zip'
+ dest new File(buildDir, 'deps.zip')
+ overwrite false
+}
+
+task getDeps(dependsOn: downloadDeps, type: Copy) {
+ def deps = file('deps')
+ def f = file("$buildDir/" + folder + "-master")
+
+ if (!deps.exists() && !f.exists()) {
+ from zipTree(downloadDeps.dest)
+ into buildDir
+ }
+
+ doLast {
+ if (!deps.exists()) {
+ file(f).renameTo(file(deps))
+ }
+ }
+}
+
+// get sqlite
+def sqlite_ver = '3340000'
+task downloadSqlite(dependsOn: getDeps, type: Download) {
+ src 'https://www.sqlite.org/2020/sqlite-amalgamation-' + sqlite_ver + '.zip'
+ dest new File(buildDir, 'sqlite.zip')
+ overwrite false
+}
+
+task getSqlite(dependsOn: downloadSqlite, type: Copy) {
+ def sqlite = file('deps/Android/sqlite')
+ def f = file("$buildDir/sqlite-amalgamation-" + sqlite_ver)
+
+ if (!sqlite.exists() && !f.exists()) {
+ from zipTree(downloadSqlite.dest)
+ into buildDir
+ }
+
+ doLast {
+ if (!sqlite.exists()) {
+ file(f).renameTo(file(sqlite))
+ }
}
}
-preBuild.dependsOn cloneGitRepo
+preBuild.dependsOn getDeps
+preBuild.dependsOn getSqlite
diff --git a/builtin/client/chatcommands.lua b/builtin/client/chatcommands.lua
index 5cb1b40bb..0e8d4dd03 100644
--- a/builtin/client/chatcommands.lua
+++ b/builtin/client/chatcommands.lua
@@ -23,6 +23,11 @@ core.register_on_sending_chat_message(function(message)
return true
end
+ -- Run core.registered_on_chatcommand callbacks.
+ if core.run_callbacks(core.registered_on_chatcommand, 5, cmd, param) then
+ return true
+ end
+
local cmd_def = core.registered_chatcommands[cmd]
if cmd_def then
core.set_last_run_mod(cmd_def.mod_origin)
diff --git a/builtin/client/register.lua b/builtin/client/register.lua
index c1b4965c1..27a6b02d9 100644
--- a/builtin/client/register.lua
+++ b/builtin/client/register.lua
@@ -4,6 +4,13 @@ core.callback_origins = {}
local getinfo = debug.getinfo
debug.getinfo = nil
+--- Runs given callbacks.
+--
+-- Note: this function is also called from C++
+-- @tparam table callbacks a table with registered callbacks, like `core.registered_on_*`
+-- @tparam number mode a RunCallbacksMode, as defined in src/script/common/c_internal.h
+-- @param ... arguments for the callback
+-- @return depends on mode
function core.run_callbacks(callbacks, mode, ...)
assert(type(callbacks) == "table")
local cb_len = #callbacks
@@ -63,6 +70,7 @@ core.registered_on_mods_loaded, core.register_on_mods_loaded = make_registration
core.registered_on_shutdown, core.register_on_shutdown = make_registration()
core.registered_on_receiving_chat_message, core.register_on_receiving_chat_message = make_registration()
core.registered_on_sending_chat_message, core.register_on_sending_chat_message = make_registration()
+core.registered_on_chatcommand, core.register_on_chatcommand = make_registration()
core.registered_on_death, core.register_on_death = make_registration()
core.registered_on_hp_modification, core.register_on_hp_modification = make_registration()
core.registered_on_damage_taken, core.register_on_damage_taken = make_registration()
diff --git a/builtin/common/after.lua b/builtin/common/after.lua
index b314711c9..e20f292f0 100644
--- a/builtin/common/after.lua
+++ b/builtin/common/after.lua
@@ -31,11 +31,13 @@ function core.after(after, func, ...)
assert(tonumber(after) and type(func) == "function",
"Invalid minetest.after invocation")
local expire = time + after
- jobs[#jobs + 1] = {
+ local new_job = {
func = func,
expire = expire,
arg = {...},
- mod_origin = core.get_last_run_mod()
+ mod_origin = core.get_last_run_mod(),
}
+ jobs[#jobs + 1] = new_job
time_next = math.min(time_next, expire)
+ return { cancel = function() new_job.func = function() end end }
end
diff --git a/builtin/common/information_formspecs.lua b/builtin/common/information_formspecs.lua
index 8afa5bc87..3e2f1f079 100644
--- a/builtin/common/information_formspecs.lua
+++ b/builtin/common/information_formspecs.lua
@@ -115,7 +115,7 @@ core.register_on_player_receive_fields(function(player, formname, fields)
return
end
- local event = minetest.explode_table_event(fields.list)
+ local event = core.explode_table_event(fields.list)
if event.type ~= "INV" then
local name = player:get_player_name()
core.show_formspec(name, "__builtin:help_cmds",
diff --git a/builtin/common/misc_helpers.lua b/builtin/common/misc_helpers.lua
index e29a9f422..0f3897f47 100644
--- a/builtin/common/misc_helpers.lua
+++ b/builtin/common/misc_helpers.lua
@@ -697,3 +697,7 @@ function core.privs_to_string(privs, delim)
end
return table.concat(list, delim)
end
+
+function core.is_nan(number)
+ return number ~= number
+end
diff --git a/builtin/common/tests/vector_spec.lua b/builtin/common/tests/vector_spec.lua
index 6f308a4a8..0f287363a 100644
--- a/builtin/common/tests/vector_spec.lua
+++ b/builtin/common/tests/vector_spec.lua
@@ -44,6 +44,10 @@ describe("vector", function()
assert.same({ x = 2, y = 4, z = 6 }, vector.add(vector.new(1, 2, 3), { x = 1, y = 2, z = 3 }))
end)
+ it("offset()", function()
+ assert.same({ x = 41, y = 52, z = 63 }, vector.offset(vector.new(1, 2, 3), 40, 50, 60))
+ end)
+
-- This function is needed because of floating point imprecision.
local function almost_equal(a, b)
if type(a) == "number" then
diff --git a/builtin/common/vector.lua b/builtin/common/vector.lua
index 1fd784ce2..d6437deda 100644
--- a/builtin/common/vector.lua
+++ b/builtin/common/vector.lua
@@ -137,6 +137,12 @@ function vector.divide(a, b)
end
end
+function vector.offset(v, x, y, z)
+ return {x = v.x + x,
+ y = v.y + y,
+ z = v.z + z}
+end
+
function vector.sort(a, b)
return {x = math.min(a.x, b.x), y = math.min(a.y, b.y), z = math.min(a.z, b.z)},
{x = math.max(a.x, b.x), y = math.max(a.y, b.y), z = math.max(a.z, b.z)}
diff --git a/builtin/fstk/ui.lua b/builtin/fstk/ui.lua
index 6d26aabf0..976659ed3 100644
--- a/builtin/fstk/ui.lua
+++ b/builtin/fstk/ui.lua
@@ -18,6 +18,8 @@
ui = {}
ui.childlist = {}
ui.default = nil
+-- Whether fstk is currently showing its own formspec instead of active ui elements.
+ui.overridden = false
--------------------------------------------------------------------------------
function ui.add(child)
@@ -55,6 +57,7 @@ end
--------------------------------------------------------------------------------
function ui.update()
+ ui.overridden = false
local formspec = {}
-- handle errors
@@ -64,12 +67,14 @@ function ui.update()
formspec = {
"size[14,8]",
"real_coordinates[true]",
+ "set_focus[btn_reconnect_yes;true]",
"box[0.5,1.2;13,5;#000]",
("textarea[0.5,1.2;13,5;;%s;%s]"):format(
fgettext("The server has requested a reconnect:"), error_message),
"button[2,6.6;4,1;btn_reconnect_yes;" .. fgettext("Reconnect") .. "]",
"button[8,6.6;4,1;btn_reconnect_no;" .. fgettext("Main menu") .. "]"
}
+ ui.overridden = true
elseif gamedata ~= nil and gamedata.errormessage ~= nil then
local error_message = core.formspec_escape(gamedata.errormessage)
@@ -82,11 +87,13 @@ function ui.update()
formspec = {
"size[14,8]",
"real_coordinates[true]",
+ "set_focus[btn_error_confirm;true]",
"box[0.5,1.2;13,5;#000]",
("textarea[0.5,1.2;13,5;;%s;%s]"):format(
error_title, error_message),
"button[5,6.6;4,1;btn_error_confirm;" .. fgettext("OK") .. "]"
}
+ ui.overridden = true
else
local active_toplevel_ui_elements = 0
for key,value in pairs(ui.childlist) do
@@ -183,6 +190,16 @@ end
--------------------------------------------------------------------------------
core.event_handler = function(event)
+ -- Handle error messages
+ if ui.overridden then
+ if event == "MenuQuit" then
+ gamedata.errormessage = nil
+ gamedata.reconnect_requested = false
+ ui.update()
+ end
+ return
+ end
+
if ui.handle_events(event) then
ui.update()
return
diff --git a/builtin/game/chat.lua b/builtin/game/chat.lua
index aae811794..945707623 100644
--- a/builtin/game/chat.lua
+++ b/builtin/game/chat.lua
@@ -58,6 +58,11 @@ core.register_on_chat_message(function(name, message)
param = param or ""
+ -- Run core.registered_on_chatcommands callbacks.
+ if core.run_callbacks(core.registered_on_chatcommands, 5, name, cmd, param) then
+ return true
+ end
+
local cmd_def = core.registered_chatcommands[cmd]
if not cmd_def then
core.chat_send_player(name, "-!- Invalid command: " .. cmd)
@@ -66,8 +71,17 @@ core.register_on_chat_message(function(name, message)
local has_privs, missing_privs = core.check_player_privs(name, cmd_def.privs)
if has_privs then
core.set_last_run_mod(cmd_def.mod_origin)
- local _, result = cmd_def.func(name, param)
- if result then
+ local success, result = cmd_def.func(name, param)
+ if success == false and result == nil then
+ core.chat_send_player(name, "-!- Invalid command usage")
+ local help_def = core.registered_chatcommands["help"]
+ if help_def then
+ local _, helpmsg = help_def.func(name, cmd)
+ if helpmsg then
+ core.chat_send_player(name, helpmsg)
+ end
+ end
+ elseif result then
core.chat_send_player(name, result)
end
else
@@ -1070,10 +1084,10 @@ core.register_chatcommand("last-login", {
local pauth = core.get_auth_handler().get_auth(param)
if pauth and pauth.last_login and pauth.last_login ~= -1 then
-- Time in UTC, ISO 8601 format
- return true, "Last login time was " ..
+ return true, param.."'s last login time was " ..
os.date("!%Y-%m-%dT%H:%M:%SZ", pauth.last_login)
end
- return false, "Last login time is unknown"
+ return false, param.."'s last login time is unknown"
end,
})
diff --git a/builtin/game/deprecated.lua b/builtin/game/deprecated.lua
index 20f0482eb..c5c7848f5 100644
--- a/builtin/game/deprecated.lua
+++ b/builtin/game/deprecated.lua
@@ -1,29 +1,6 @@
-- Minetest: builtin/deprecated.lua
--
--- Default material types
---
-local function digprop_err()
- core.log("deprecated", "The core.digprop_* functions are obsolete and need to be replaced by item groups.")
-end
-
-core.digprop_constanttime = digprop_err
-core.digprop_stonelike = digprop_err
-core.digprop_dirtlike = digprop_err
-core.digprop_gravellike = digprop_err
-core.digprop_woodlike = digprop_err
-core.digprop_leaveslike = digprop_err
-core.digprop_glasslike = digprop_err
-
-function core.node_metadata_inventory_move_allow_all()
- core.log("deprecated", "core.node_metadata_inventory_move_allow_all is obsolete and does nothing.")
-end
-
-function core.add_to_creative_inventory(itemstring)
- core.log("deprecated", "core.add_to_creative_inventory is obsolete and does nothing.")
-end
-
---
-- EnvRef
--
core.env = {}
@@ -77,7 +54,7 @@ core.setting_save = setting_proxy("write")
function core.register_on_auth_fail(func)
core.log("deprecated", "core.register_on_auth_fail " ..
- "is obsolete and should be replaced by " ..
+ "is deprecated and should be replaced by " ..
"core.register_on_authplayer instead.")
core.register_on_authplayer(function (player_name, ip, is_success)
diff --git a/builtin/game/falling.lua b/builtin/game/falling.lua
index 714506a5f..057d0d0ed 100644
--- a/builtin/game/falling.lua
+++ b/builtin/game/falling.lua
@@ -52,6 +52,7 @@ core.register_entity(":__builtin:falling_node", {
floats = false,
set_node = function(self, node, meta)
+ node.param2 = node.param2 or 0
self.node = node
meta = meta or {}
if type(meta.to_table) == "function" then
@@ -83,6 +84,9 @@ core.register_entity(":__builtin:falling_node", {
local textures
if def.tiles and def.tiles[1] then
local tile = def.tiles[1]
+ if def.drawtype == "torchlike" and def.paramtype2 ~= "wallmounted" then
+ tile = def.tiles[2] or def.tiles[1]
+ end
if type(tile) == "table" then
tile = tile.name
end
@@ -126,7 +130,7 @@ core.register_entity(":__builtin:falling_node", {
-- Set collision box (certain nodeboxes only for now)
local nb_types = {fixed=true, leveled=true, connected=true}
if def.drawtype == "nodebox" and def.node_box and
- nb_types[def.node_box.type] then
+ nb_types[def.node_box.type] and def.node_box.fixed then
local box = table.copy(def.node_box.fixed)
if type(box[1]) == "table" then
box = #box == 1 and box[1] or nil -- We can only use a single box
@@ -143,9 +147,13 @@ core.register_entity(":__builtin:falling_node", {
-- Rotate entity
if def.drawtype == "torchlike" then
- self.object:set_yaw(math.pi*0.25)
- elseif (node.param2 ~= 0 and (def.wield_image == ""
- or def.wield_image == nil))
+ if def.paramtype2 == "wallmounted" then
+ self.object:set_yaw(math.pi*0.25)
+ else
+ self.object:set_yaw(-math.pi*0.25)
+ end
+ elseif ((node.param2 ~= 0 or def.drawtype == "nodebox" or def.drawtype == "mesh")
+ and (def.wield_image == "" or def.wield_image == nil))
or def.drawtype == "signlike"
or def.drawtype == "mesh"
or def.drawtype == "normal"
@@ -160,16 +168,30 @@ core.register_entity(":__builtin:falling_node", {
elseif (def.paramtype2 == "wallmounted" or def.paramtype2 == "colorwallmounted") then
local rot = node.param2 % 8
local pitch, yaw, roll = 0, 0, 0
- if rot == 1 then
- pitch, yaw = math.pi, math.pi
- elseif rot == 2 then
- pitch, yaw = math.pi/2, math.pi/2
- elseif rot == 3 then
- pitch, yaw = math.pi/2, -math.pi/2
- elseif rot == 4 then
- pitch, yaw = math.pi/2, math.pi
- elseif rot == 5 then
- pitch, yaw = math.pi/2, 0
+ if def.drawtype == "nodebox" or def.drawtype == "mesh" then
+ if rot == 0 then
+ pitch, yaw = math.pi/2, 0
+ elseif rot == 1 then
+ pitch, yaw = -math.pi/2, math.pi
+ elseif rot == 2 then
+ pitch, yaw = 0, math.pi/2
+ elseif rot == 3 then
+ pitch, yaw = 0, -math.pi/2
+ elseif rot == 4 then
+ pitch, yaw = 0, math.pi
+ end
+ else
+ if rot == 1 then
+ pitch, yaw = math.pi, math.pi
+ elseif rot == 2 then
+ pitch, yaw = math.pi/2, math.pi/2
+ elseif rot == 3 then
+ pitch, yaw = math.pi/2, -math.pi/2
+ elseif rot == 4 then
+ pitch, yaw = math.pi/2, math.pi
+ elseif rot == 5 then
+ pitch, yaw = math.pi/2, 0
+ end
end
if def.drawtype == "signlike" then
pitch = pitch - math.pi/2
@@ -178,7 +200,7 @@ core.register_entity(":__builtin:falling_node", {
elseif rot == 1 then
yaw = yaw - math.pi/2
end
- elseif def.drawtype == "mesh" or def.drawtype == "normal" then
+ elseif def.drawtype == "mesh" or def.drawtype == "normal" or def.drawtype == "nodebox" then
if rot >= 0 and rot <= 1 then
roll = roll + math.pi
else
diff --git a/builtin/game/features.lua b/builtin/game/features.lua
index a15475333..36ff1f0b0 100644
--- a/builtin/game/features.lua
+++ b/builtin/game/features.lua
@@ -17,6 +17,8 @@ core.features = {
area_store_persistent_ids = true,
pathfinder_works = true,
object_step_has_moveresult = true,
+ direct_velocity_on_players = true,
+ use_texture_alpha_string_modes = true,
}
function core.has_feature(arg)
diff --git a/builtin/game/item.lua b/builtin/game/item.lua
index f680ce0d4..b68177c22 100644
--- a/builtin/game/item.lua
+++ b/builtin/game/item.lua
@@ -551,12 +551,13 @@ function core.node_dig(pos, node, digger)
local diggername = user_name(digger)
local log = make_log(diggername)
local def = core.registered_nodes[node.name]
+ -- Copy pos because the callback could modify it
if def and (not def.diggable or
- (def.can_dig and not def.can_dig(pos, digger))) then
+ (def.can_dig and not def.can_dig(vector.new(pos), digger))) then
log("info", diggername .. " tried to dig "
.. node.name .. " which is not diggable "
.. core.pos_to_string(pos))
- return
+ return false
end
if core.is_protected(pos, diggername) then
@@ -565,7 +566,7 @@ function core.node_dig(pos, node, digger)
.. " at protected position "
.. core.pos_to_string(pos))
core.record_protection_violation(pos, diggername)
- return
+ return false
end
log('action', diggername .. " digs "
@@ -648,6 +649,8 @@ function core.node_dig(pos, node, digger)
local node_copy = {name=node.name, param1=node.param1, param2=node.param2}
callback(pos_copy, node_copy, digger)
end
+
+ return true
end
function core.itemstring_with_palette(item, palette_index)
@@ -675,7 +678,7 @@ end
-- Item definition defaults
--
-local default_stack_max = tonumber(minetest.settings:get("default_stack_max")) or 99
+local default_stack_max = tonumber(core.settings:get("default_stack_max")) or 99
core.nodedef_default = {
-- Item properties
@@ -704,10 +707,6 @@ core.nodedef_default = {
on_receive_fields = nil,
- on_metadata_inventory_move = core.node_metadata_inventory_move_allow_all,
- on_metadata_inventory_offer = core.node_metadata_inventory_offer_allow_all,
- on_metadata_inventory_take = core.node_metadata_inventory_take_allow_all,
-
-- Node properties
drawtype = "normal",
visual_scale = 1.0,
@@ -718,7 +717,6 @@ core.nodedef_default = {
-- {name="", backface_culling=true},
-- {name="", backface_culling=true},
--},
- alpha = 255,
post_effect_color = {a=0, r=0, g=0, b=0},
paramtype = "none",
paramtype2 = "none",
diff --git a/builtin/game/item_entity.lua b/builtin/game/item_entity.lua
index 20dd18044..9b1b23bfd 100644
--- a/builtin/game/item_entity.lua
+++ b/builtin/game/item_entity.lua
@@ -54,8 +54,9 @@ core.register_entity(":__builtin:item", {
local max_count = stack:get_stack_max()
local count = math.min(stack:get_count(), max_count)
local size = 0.2 + 0.1 * (count / max_count) ^ (1 / 3)
- local def = core.registered_nodes[itemname]
- local glow = def and math.floor(def.light_source / 2 + 0.5)
+ local def = core.registered_items[itemname]
+ local glow = def and def.light_source and
+ math.floor(def.light_source / 2 + 0.5)
self.object:set_properties({
is_visible = true,
diff --git a/builtin/game/knockback.lua b/builtin/game/knockback.lua
index b5c4cbc5a..a937aa186 100644
--- a/builtin/game/knockback.lua
+++ b/builtin/game/knockback.lua
@@ -42,5 +42,5 @@ core.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool
return -- barely noticeable, so don't even send
end
- player:add_player_velocity(kdir)
+ player:add_velocity(kdir)
end)
diff --git a/builtin/game/misc.lua b/builtin/game/misc.lua
index 341e613c2..b8c5e16a9 100644
--- a/builtin/game/misc.lua
+++ b/builtin/game/misc.lua
@@ -151,6 +151,12 @@ function core.setting_get_pos(name)
end
+-- See l_env.cpp for the other functions
+function core.get_artificial_light(param1)
+ return math.floor(param1 / 16)
+end
+
+
-- To be overriden by protection mods
function core.is_protected(pos, name)
@@ -260,3 +266,26 @@ end
function core.cancel_shutdown_requests()
core.request_shutdown("", false, -1)
end
+
+
+-- Callback handling for dynamic_add_media
+
+local dynamic_add_media_raw = core.dynamic_add_media_raw
+core.dynamic_add_media_raw = nil
+function core.dynamic_add_media(filepath, callback)
+ local ret = dynamic_add_media_raw(filepath)
+ if ret == false then
+ return ret
+ end
+ if callback == nil then
+ core.log("deprecated", "Calling minetest.dynamic_add_media without "..
+ "a callback is deprecated and will stop working in future versions.")
+ else
+ -- At the moment async loading is not actually implemented, so we
+ -- immediately call the callback ourselves
+ for _, name in ipairs(ret) do
+ callback(name)
+ end
+ end
+ return true
+end
diff --git a/builtin/game/register.lua b/builtin/game/register.lua
index 1034d4f2b..1cff85813 100644
--- a/builtin/game/register.lua
+++ b/builtin/game/register.lua
@@ -320,13 +320,6 @@ for name in pairs(forbidden_item_names) do
register_alias_raw(name, "")
end
-
--- Obsolete:
--- Aliases for core.register_alias (how ironic...)
--- core.alias_node = core.register_alias
--- core.alias_tool = core.register_alias
--- core.alias_craftitem = core.register_alias
-
--
-- Built-in node definitions. Also defined in C.
--
@@ -584,6 +577,7 @@ core.unregister_biome = make_wrap_deregistration(core.register_biome,
core.clear_registered_biomes, core.registered_biomes)
core.registered_on_chat_messages, core.register_on_chat_message = make_registration()
+core.registered_on_chatcommands, core.register_on_chatcommand = make_registration()
core.registered_globalsteps, core.register_globalstep = make_registration()
core.registered_playerevents, core.register_playerevent = make_registration()
core.registered_on_mods_loaded, core.register_on_mods_loaded = make_registration()
@@ -612,6 +606,7 @@ core.registered_can_bypass_userlimit, core.register_can_bypass_userlimit = make_
core.registered_on_modchannel_message, core.register_on_modchannel_message = make_registration()
core.registered_on_player_inventory_actions, core.register_on_player_inventory_action = make_registration()
core.registered_allow_player_inventory_actions, core.register_allow_player_inventory_action = make_registration()
+core.registered_on_rightclickplayers, core.register_on_rightclickplayer = make_registration()
--
-- Compatibility for on_mapgen_init()
diff --git a/builtin/game/statbars.lua b/builtin/game/statbars.lua
index d192029c5..db5087a16 100644
--- a/builtin/game/statbars.lua
+++ b/builtin/game/statbars.lua
@@ -84,8 +84,8 @@ local function update_builtin_statbars(player)
end
if hud.id_breathbar and (not show_breathbar or breath == breath_max) then
- minetest.after(1, function(player_name, breath_bar)
- local player = minetest.get_player_by_name(player_name)
+ core.after(1, function(player_name, breath_bar)
+ local player = core.get_player_by_name(player_name)
if player then
player:hud_remove(breath_bar)
end
diff --git a/builtin/init.lua b/builtin/init.lua
index 75bb3db85..89b1fdc64 100644
--- a/builtin/init.lua
+++ b/builtin/init.lua
@@ -39,9 +39,20 @@ if INIT == "game" then
assert(not core.get_http_api)
elseif INIT == "mainmenu" then
local mm_script = core.settings:get("main_menu_script")
+ local custom_loaded = false
if mm_script and mm_script ~= "" then
- dofile(mm_script)
- else
+ local testfile = io.open(mm_script, "r")
+ if testfile then
+ testfile:close()
+ dofile(mm_script)
+ custom_loaded = true
+ core.log("info", "Loaded custom main menu script: "..mm_script)
+ else
+ core.log("error", "Failed to load custom main menu script: "..mm_script)
+ core.log("info", "Falling back to default main menu script")
+ end
+ end
+ if not custom_loaded then
dofile(core.get_mainmenu_path() .. DIR_DELIM .. "init.lua")
end
elseif INIT == "async" then
diff --git a/builtin/mainmenu/common.lua b/builtin/mainmenu/common.lua
index 782d6973f..cd896f9ec 100644
--- a/builtin/mainmenu/common.lua
+++ b/builtin/mainmenu/common.lua
@@ -62,24 +62,6 @@ function image_column(tooltip, flagname)
"5=" .. core.formspec_escape(defaulttexturedir .. "server_ping_1.png")
end
---------------------------------------------------------------------------------
-function order_favorite_list(list)
- local res = {}
- --orders the favorite list after support
- for i = 1, #list do
- local fav = list[i]
- if is_server_protocol_compat(fav.proto_min, fav.proto_max) then
- res[#res + 1] = fav
- end
- end
- for i = 1, #list do
- local fav = list[i]
- if not is_server_protocol_compat(fav.proto_min, fav.proto_max) then
- res[#res + 1] = fav
- end
- end
- return res
-end
--------------------------------------------------------------------------------
function render_serverlist_row(spec, is_favorite)
@@ -87,7 +69,7 @@ function render_serverlist_row(spec, is_favorite)
if spec.name then
text = text .. core.formspec_escape(spec.name:trim())
elseif spec.address then
- text = text .. spec.address:trim()
+ text = text .. core.formspec_escape(spec.address:trim())
if spec.port then
text = text .. ":" .. spec.port
end
@@ -164,35 +146,15 @@ end
--------------------------------------------------------------------------------
os.tempfolder = function()
- if core.settings:get("TMPFolder") then
- return core.settings:get("TMPFolder") .. DIR_DELIM .. "MT_" .. math.random(0,10000)
- end
-
- local filetocheck = os.tmpname()
- os.remove(filetocheck)
-
- -- luacheck: ignore
- -- https://blogs.msdn.microsoft.com/vcblog/2014/06/18/c-runtime-crt-features-fixes-and-breaking-changes-in-visual-studio-14-ctp1/
- -- The C runtime (CRT) function called by os.tmpname is tmpnam.
- -- Microsofts tmpnam implementation in older CRT / MSVC releases is defective.
- -- tmpnam return values starting with a backslash characterize this behavior.
- -- https://sourceforge.net/p/mingw-w64/bugs/555/
- -- MinGW tmpnam implementation is forwarded to the CRT directly.
- -- https://sourceforge.net/p/mingw-w64/discussion/723797/thread/55520785/
- -- MinGW links to an older CRT release (msvcrt.dll).
- -- Due to legal concerns MinGW will never use a newer CRT.
- --
- -- Make use of TEMP to compose the temporary filename if an old
- -- style tmpnam return value is detected.
- if filetocheck:sub(1, 1) == "\\" then
- local tempfolder = os.getenv("TEMP")
- return tempfolder .. filetocheck
- end
+ local temp = core.get_temp_path()
+ return temp .. DIR_DELIM .. "MT_" .. math.random(0, 10000)
+end
- local randname = "MTTempModFolder_" .. math.random(0,10000)
- local backstring = filetocheck:reverse()
- return filetocheck:sub(0, filetocheck:len() - backstring:find(DIR_DELIM) + 1) ..
- randname
+--------------------------------------------------------------------------------
+os.tmpname = function()
+ local path = os.tempfolder()
+ io.open(path, "w"):close()
+ return path
end
--------------------------------------------------------------------------------
@@ -227,41 +189,6 @@ function menu_handle_key_up_down(fields, textlist, settingname)
end
--------------------------------------------------------------------------------
-function asyncOnlineFavourites()
- if not menudata.public_known then
- menudata.public_known = {{
- name = fgettext("Loading..."),
- description = fgettext_ne("Try reenabling public serverlist and check your internet connection.")
- }}
- end
- menudata.favorites = menudata.public_known
- menudata.favorites_is_public = true
-
- if not menudata.public_downloading then
- menudata.public_downloading = true
- else
- return
- end
-
- core.handle_async(
- function(param)
- return core.get_favorites("online")
- end,
- nil,
- function(result)
- menudata.public_downloading = nil
- local favs = order_favorite_list(result)
- if favs[1] then
- menudata.public_known = favs
- menudata.favorites = menudata.public_known
- menudata.favorites_is_public = true
- end
- core.event_handler("Refresh")
- end
- )
-end
-
---------------------------------------------------------------------------------
function text2textlist(xpos, ypos, width, height, tl_name, textlen, text, transparency)
local textlines = core.wrap_text(text, textlen, true)
local retval = "textlist[" .. xpos .. "," .. ypos .. ";" .. width ..
diff --git a/builtin/mainmenu/dlg_config_world.lua b/builtin/mainmenu/dlg_config_world.lua
index 2cf70c9c9..9bdf92a74 100644
--- a/builtin/mainmenu/dlg_config_world.lua
+++ b/builtin/mainmenu/dlg_config_world.lua
@@ -74,7 +74,7 @@ local function get_formspec(data)
"label[1.75,0;" .. data.worldspec.name .. "]"
if mod.is_modpack or mod.type == "game" then
- local info = minetest.formspec_escape(
+ local info = core.formspec_escape(
core.get_content_info(mod.path).description)
if info == "" then
if mod.is_modpack then
diff --git a/builtin/mainmenu/dlg_contentstore.lua b/builtin/mainmenu/dlg_contentstore.lua
index 01c42be0b..b0736a4fd 100644
--- a/builtin/mainmenu/dlg_contentstore.lua
+++ b/builtin/mainmenu/dlg_contentstore.lua
@@ -15,7 +15,7 @@
--with this program; if not, write to the Free Software Foundation, Inc.,
--51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-if not minetest.get_http_api then
+if not core.get_http_api then
function create_store_dlg()
return messagebox("store",
fgettext("ContentDB is not available when Minetest was compiled without cURL"))
@@ -23,9 +23,11 @@ if not minetest.get_http_api then
return
end
-local store = { packages = {}, packages_full = {} }
+-- Unordered preserves the original order of the ContentDB API,
+-- before the package list is ordered based on installed state.
+local store = { packages = {}, packages_full = {}, packages_full_unordered = {} }
-local http = minetest.get_http_api()
+local http = core.get_http_api()
-- Screenshot
local screenshot_dir = core.get_cache_path() .. DIR_DELIM .. "cdb"
@@ -45,6 +47,9 @@ local filter_types_titles = {
fgettext("Texture packs"),
}
+local number_downloading = 0
+local download_queue = {}
+
local filter_types_type = {
nil,
"game",
@@ -67,12 +72,14 @@ local function download_package(param)
end
end
-local function start_install(calling_dialog, package)
+local function start_install(package)
local params = {
package = package,
filename = os.tempfolder() .. "_MODNAME_" .. package.name .. ".zip",
}
+ number_downloading = number_downloading + 1
+
local function callback(result)
if result.successful then
local path, msg = pkgmgr.install(package.type,
@@ -121,9 +128,20 @@ local function start_install(calling_dialog, package)
end
package.downloading = false
+
+ number_downloading = number_downloading - 1
+
+ local next = download_queue[1]
+ if next then
+ table.remove(download_queue, 1)
+
+ start_install(next)
+ end
+
ui.update()
end
+ package.queued = false
package.downloading = true
if not core.handle_async(download_package, params, callback) then
@@ -133,6 +151,341 @@ local function start_install(calling_dialog, package)
end
end
+local function queue_download(package)
+ local max_concurrent_downloads = tonumber(core.settings:get("contentdb_max_concurrent_downloads"))
+ if number_downloading < max_concurrent_downloads then
+ start_install(package)
+ else
+ table.insert(download_queue, package)
+ package.queued = true
+ end
+end
+
+local function get_raw_dependencies(package)
+ if package.raw_deps then
+ return package.raw_deps
+ end
+
+ local url_fmt = "/api/packages/%s/dependencies/?only_hard=1&protocol_version=%s&engine_version=%s"
+ local version = core.get_version()
+ local base_url = core.settings:get("contentdb_url")
+ local url = base_url .. url_fmt:format(package.id, core.get_max_supp_proto(), version.string)
+
+ local response = http.fetch_sync({ url = url })
+ if not response.succeeded then
+ return
+ end
+
+ local data = core.parse_json(response.data) or {}
+
+ local content_lookup = {}
+ for _, pkg in pairs(store.packages_full) do
+ content_lookup[pkg.id] = pkg
+ end
+
+ for id, raw_deps in pairs(data) do
+ local package2 = content_lookup[id:lower()]
+ if package2 and not package2.raw_deps then
+ package2.raw_deps = raw_deps
+
+ for _, dep in pairs(raw_deps) do
+ local packages = {}
+ for i=1, #dep.packages do
+ packages[#packages + 1] = content_lookup[dep.packages[i]:lower()]
+ end
+ dep.packages = packages
+ end
+ end
+ end
+
+ return package.raw_deps
+end
+
+local function has_hard_deps(raw_deps)
+ for i=1, #raw_deps do
+ if not raw_deps[i].is_optional then
+ return true
+ end
+ end
+
+ return false
+end
+
+-- Recursively resolve dependencies, given the installed mods
+local function resolve_dependencies_2(raw_deps, installed_mods, out)
+ local function resolve_dep(dep)
+ -- Check whether it's already installed
+ if installed_mods[dep.name] then
+ return {
+ is_optional = dep.is_optional,
+ name = dep.name,
+ installed = true,
+ }
+ end
+
+ -- Find exact name matches
+ local fallback
+ for _, package in pairs(dep.packages) do
+ if package.type ~= "game" then
+ if package.name == dep.name then
+ return {
+ is_optional = dep.is_optional,
+ name = dep.name,
+ installed = false,
+ package = package,
+ }
+ elseif not fallback then
+ fallback = package
+ end
+ end
+ end
+
+ -- Otherwise, find the first mod that fulfils it
+ if fallback then
+ return {
+ is_optional = dep.is_optional,
+ name = dep.name,
+ installed = false,
+ package = fallback,
+ }
+ end
+
+ return {
+ is_optional = dep.is_optional,
+ name = dep.name,
+ installed = false,
+ }
+ end
+
+ for _, dep in pairs(raw_deps) do
+ if not dep.is_optional and not out[dep.name] then
+ local result = resolve_dep(dep)
+ out[dep.name] = result
+ if result and result.package and not result.installed then
+ local raw_deps2 = get_raw_dependencies(result.package)
+ if raw_deps2 then
+ resolve_dependencies_2(raw_deps2, installed_mods, out)
+ end
+ end
+ end
+ end
+
+ return true
+end
+
+-- Resolve dependencies for a package, calls the recursive version.
+local function resolve_dependencies(raw_deps, game)
+ assert(game)
+
+ local installed_mods = {}
+
+ local mods = {}
+ pkgmgr.get_game_mods(game, mods)
+ for _, mod in pairs(mods) do
+ installed_mods[mod.name] = true
+ end
+
+ for _, mod in pairs(pkgmgr.global_mods:get_list()) do
+ installed_mods[mod.name] = true
+ end
+
+ local out = {}
+ if not resolve_dependencies_2(raw_deps, installed_mods, out) then
+ return nil
+ end
+
+ local retval = {}
+ for _, dep in pairs(out) do
+ retval[#retval + 1] = dep
+ end
+
+ table.sort(retval, function(a, b)
+ return a.name < b.name
+ end)
+
+ return retval
+end
+
+local install_dialog = {}
+function install_dialog.get_formspec()
+ local package = install_dialog.package
+ local raw_deps = install_dialog.raw_deps
+ local will_install_deps = install_dialog.will_install_deps
+
+ local selected_game_idx = 1
+ local selected_gameid = core.settings:get("menu_last_game")
+ local games = table.copy(pkgmgr.games)
+ for i=1, #games do
+ if selected_gameid and games[i].id == selected_gameid then
+ selected_game_idx = i
+ end
+
+ games[i] = core.formspec_escape(games[i].name)
+ end
+
+ local selected_game = pkgmgr.games[selected_game_idx]
+ local deps_to_install = 0
+ local deps_not_found = 0
+
+ install_dialog.dependencies = resolve_dependencies(raw_deps, selected_game)
+ local formatted_deps = {}
+ for _, dep in pairs(install_dialog.dependencies) do
+ formatted_deps[#formatted_deps + 1] = "#fff"
+ formatted_deps[#formatted_deps + 1] = core.formspec_escape(dep.name)
+ if dep.installed then
+ formatted_deps[#formatted_deps + 1] = "#ccf"
+ formatted_deps[#formatted_deps + 1] = fgettext("Already installed")
+ elseif dep.package then
+ formatted_deps[#formatted_deps + 1] = "#cfc"
+ formatted_deps[#formatted_deps + 1] = fgettext("$1 by $2", dep.package.title, dep.package.author)
+ deps_to_install = deps_to_install + 1
+ else
+ formatted_deps[#formatted_deps + 1] = "#f00"
+ formatted_deps[#formatted_deps + 1] = fgettext("Not found")
+ deps_not_found = deps_not_found + 1
+ end
+ end
+
+ local message_bg = "#3333"
+ local message
+ if will_install_deps then
+ message = fgettext("$1 and $2 dependencies will be installed.", package.title, deps_to_install)
+ else
+ message = fgettext("$1 will be installed, and $2 dependencies will be skipped.", package.title, deps_to_install)
+ end
+ if deps_not_found > 0 then
+ message = fgettext("$1 required dependencies could not be found.", deps_not_found) ..
+ " " .. fgettext("Please check that the base game is correct.", deps_not_found) ..
+ "\n" .. message
+ message_bg = mt_color_orange
+ end
+
+ local formspec = {
+ "formspec_version[3]",
+ "size[7,7.85]",
+ "style[title;border=false]",
+ "box[0,0;7,0.5;#3333]",
+ "button[0,0;7,0.5;title;", fgettext("Install $1", package.title) , "]",
+
+ "container[0.375,0.70]",
+
+ "label[0,0.25;", fgettext("Base Game:"), "]",
+ "dropdown[2,0;4.25,0.5;gameid;", table.concat(games, ","), ";", selected_game_idx, "]",
+
+ "label[0,0.8;", fgettext("Dependencies:"), "]",
+
+ "tablecolumns[color;text;color;text]",
+ "table[0,1.1;6.25,3;packages;", table.concat(formatted_deps, ","), "]",
+
+ "container_end[]",
+
+ "checkbox[0.375,5.1;will_install_deps;",
+ fgettext("Install missing dependencies"), ";",
+ will_install_deps and "true" or "false", "]",
+
+ "box[0,5.4;7,1.2;", message_bg, "]",
+ "textarea[0.375,5.5;6.25,1;;;", message, "]",
+
+ "container[1.375,6.85]",
+ "button[0,0;2,0.8;install_all;", fgettext("Install"), "]",
+ "button[2.25,0;2,0.8;cancel;", fgettext("Cancel"), "]",
+ "container_end[]",
+ }
+
+ return table.concat(formspec, "")
+end
+
+function install_dialog.handle_submit(this, fields)
+ if fields.cancel then
+ this:delete()
+ return true
+ end
+
+ if fields.will_install_deps ~= nil then
+ install_dialog.will_install_deps = core.is_yes(fields.will_install_deps)
+ return true
+ end
+
+ if fields.install_all then
+ queue_download(install_dialog.package)
+
+ if install_dialog.will_install_deps then
+ for _, dep in pairs(install_dialog.dependencies) do
+ if not dep.is_optional and not dep.installed and dep.package then
+ queue_download(dep.package)
+ end
+ end
+ end
+
+ this:delete()
+ return true
+ end
+
+ if fields.gameid then
+ for _, game in pairs(pkgmgr.games) do
+ if game.name == fields.gameid then
+ core.settings:set("menu_last_game", game.id)
+ break
+ end
+ end
+ return true
+ end
+
+ return false
+end
+
+function install_dialog.create(package, raw_deps)
+ install_dialog.dependencies = nil
+ install_dialog.package = package
+ install_dialog.raw_deps = raw_deps
+ install_dialog.will_install_deps = true
+ return dialog_create("install_dialog",
+ install_dialog.get_formspec,
+ install_dialog.handle_submit,
+ nil)
+end
+
+
+local confirm_overwrite = {}
+function confirm_overwrite.get_formspec()
+ local package = confirm_overwrite.package
+
+ return "size[11.5,4.5,true]" ..
+ "label[2,2;" ..
+ fgettext("\"$1\" already exists. Would you like to overwrite it?", package.name) .. "]"..
+ "style[install;bgcolor=red]" ..
+ "button[3.25,3.5;2.5,0.5;install;" .. fgettext("Overwrite") .. "]" ..
+ "button[5.75,3.5;2.5,0.5;cancel;" .. fgettext("Cancel") .. "]"
+end
+
+function confirm_overwrite.handle_submit(this, fields)
+ if fields.cancel then
+ this:delete()
+ return true
+ end
+
+ if fields.install then
+ this:delete()
+ confirm_overwrite.callback()
+ return true
+ end
+
+ return false
+end
+
+function confirm_overwrite.create(package, callback)
+ assert(type(package) == "table")
+ assert(type(callback) == "function")
+
+ confirm_overwrite.package = package
+ confirm_overwrite.callback = callback
+ return dialog_create("confirm_overwrite",
+ confirm_overwrite.get_formspec,
+ confirm_overwrite.handle_submit,
+ nil)
+end
+
+
local function get_file_extension(path)
local parts = path:split(".")
return parts[#parts]
@@ -200,7 +553,7 @@ function store.load()
end
end
- local timeout = tonumber(minetest.settings:get("curl_file_download_timeout"))
+ local timeout = tonumber(core.settings:get("curl_file_download_timeout"))
local response = http.fetch_sync({ url = url, timeout = timeout })
if not response.succeeded then
return
@@ -221,6 +574,7 @@ function store.load()
end
end
+ store.packages_full_unordered = store.packages_full
store.packages = store.packages_full
store.loaded = true
end
@@ -229,7 +583,7 @@ function store.update_paths()
local mod_hash = {}
pkgmgr.refresh_globals()
for _, mod in pairs(pkgmgr.global_mods:get_list()) do
- if mod.author then
+ if mod.author and mod.release > 0 then
mod_hash[mod.author:lower() .. "/" .. mod.name] = mod
end
end
@@ -237,14 +591,14 @@ function store.update_paths()
local game_hash = {}
pkgmgr.update_gamelist()
for _, game in pairs(pkgmgr.games) do
- if game.author ~= "" then
+ if game.author ~= "" and game.release > 0 then
game_hash[game.author:lower() .. "/" .. game.id] = game
end
end
local txp_hash = {}
for _, txp in pairs(pkgmgr.get_texture_packs()) do
- if txp.author then
+ if txp.author and txp.release > 0 then
txp_hash[txp.author:lower() .. "/" .. txp.name] = txp
end
end
@@ -268,6 +622,33 @@ function store.update_paths()
end
end
+function store.sort_packages()
+ local ret = {}
+
+ -- Add installed content
+ for i=1, #store.packages_full_unordered do
+ local package = store.packages_full_unordered[i]
+ if package.path then
+ ret[#ret + 1] = package
+ end
+ end
+
+ -- Sort installed content by title
+ table.sort(ret, function(a, b)
+ return a.title < b.title
+ end)
+
+ -- Add uninstalled content
+ for i=1, #store.packages_full_unordered do
+ local package = store.packages_full_unordered[i]
+ if not package.path then
+ ret[#ret + 1] = package
+ end
+ end
+
+ store.packages_full = ret
+end
+
function store.filter_packages(query)
if query == "" and filter_type == 1 then
store.packages = store.packages_full
@@ -279,7 +660,7 @@ function store.filter_packages(query)
table.insert(keywords, word)
end
- local function matches_keywords(package, keywords)
+ local function matches_keywords(package)
for k = 1, #keywords do
local keyword = keywords[k]
@@ -296,12 +677,11 @@ function store.filter_packages(query)
store.packages = {}
for _, package in pairs(store.packages_full) do
- if (query == "" or matches_keywords(package, keywords)) and
+ if (query == "" or matches_keywords(package)) and
(filter_type == 1 or package.type == filter_types_type[filter_type]) then
store.packages[#store.packages + 1] = package
end
end
-
end
function store.get_formspec(dlgdata)
@@ -314,18 +694,21 @@ function store.get_formspec(dlgdata)
local W = 15.75
local H = 9.5
-
local formspec
if #store.packages_full > 0 then
formspec = {
"formspec_version[3]",
"size[15.75,9.5]",
"position[0.5,0.55]",
+
+ "style[status,downloading,queued;border=false]",
+
"container[0.375,0.375]",
- "field[0,0;10.225,0.8;search_string;;", core.formspec_escape(search_string), "]",
+ "field[0,0;7.225,0.8;search_string;;", core.formspec_escape(search_string), "]",
"field_close_on_enter[search_string;false]",
- "button[10.225,0;2,0.8;search;", fgettext("Search"), "]",
- "dropdown[12.6,0;2.4,0.8;type;", table.concat(filter_types_titles, ","), ";", filter_type, "]",
+ "image_button[7.3,0;0.8,0.8;", core.formspec_escape(defaulttexturedir .. "search.png"), ";search;]",
+ "image_button[8.125,0;0.8,0.8;", core.formspec_escape(defaulttexturedir .. "clear.png"), ";clear;]",
+ "dropdown[9.6,0;2.4,0.8;type;", table.concat(filter_types_titles, ","), ";", filter_type, "]",
"container_end[]",
-- Page nav buttons
@@ -344,6 +727,35 @@ function store.get_formspec(dlgdata)
"container_end[]",
}
+ if number_downloading > 0 then
+ formspec[#formspec + 1] = "button[12.75,0.375;2.625,0.8;downloading;"
+ if #download_queue > 0 then
+ formspec[#formspec + 1] = fgettext("$1 downloading,\n$2 queued", number_downloading, #download_queue)
+ else
+ formspec[#formspec + 1] = fgettext("$1 downloading...", number_downloading)
+ end
+ formspec[#formspec + 1] = "]"
+ else
+ local num_avail_updates = 0
+ for i=1, #store.packages_full do
+ local package = store.packages_full[i]
+ if package.path and package.installed_release < package.release and
+ not (package.downloading or package.queued) then
+ num_avail_updates = num_avail_updates + 1
+ end
+ end
+
+ if num_avail_updates == 0 then
+ formspec[#formspec + 1] = "button[12.75,0.375;2.625,0.8;status;"
+ formspec[#formspec + 1] = fgettext("No updates")
+ formspec[#formspec + 1] = "]"
+ else
+ formspec[#formspec + 1] = "button[12.75,0.375;2.625,0.8;update_all;"
+ formspec[#formspec + 1] = fgettext("Update All [$1]", num_avail_updates)
+ formspec[#formspec + 1] = "]"
+ end
+ end
+
if #store.packages == 0 then
formspec[#formspec + 1] = "label[4,3;"
formspec[#formspec + 1] = fgettext("No results")
@@ -360,11 +772,17 @@ function store.get_formspec(dlgdata)
}
end
+ -- download/queued tooltips always have the same message
+ local tooltip_colors = ";#dff6f5;#302c2e]"
+ formspec[#formspec + 1] = "tooltip[downloading;" .. fgettext("Downloading...") .. tooltip_colors
+ formspec[#formspec + 1] = "tooltip[queued;" .. fgettext("Queued") .. tooltip_colors
+
local start_idx = (cur_page - 1) * num_per_page + 1
for i=start_idx, math.min(#store.packages, start_idx+num_per_page-1) do
local package = store.packages[i]
+ local container_y = (i - start_idx) * 1.375 + (2*0.375 + 0.8)
formspec[#formspec + 1] = "container[0.375,"
- formspec[#formspec + 1] = (i - start_idx) * 1.375 + (2*0.375 + 0.8)
+ formspec[#formspec + 1] = container_y
formspec[#formspec + 1] = "]"
-- image
@@ -375,55 +793,55 @@ function store.get_formspec(dlgdata)
-- title
formspec[#formspec + 1] = "label[1.875,0.1;"
formspec[#formspec + 1] = core.formspec_escape(
- minetest.colorize(mt_color_green, package.title) ..
- minetest.colorize("#BFBFBF", " by " .. package.author))
+ core.colorize(mt_color_green, package.title) ..
+ core.colorize("#BFBFBF", " by " .. package.author))
formspec[#formspec + 1] = "]"
-- buttons
- local description_width = W - 0.375*5 - 1 - 2*1.5
+ local left_base = "image_button[-1.55,0;0.7,0.7;" .. core.formspec_escape(defaulttexturedir)
formspec[#formspec + 1] = "container["
formspec[#formspec + 1] = W - 0.375*2
formspec[#formspec + 1] = ",0.1]"
if package.downloading then
- formspec[#formspec + 1] = "style[download;border=false]"
-
- formspec[#formspec + 1] = "button[-3.5,0;2,0.8;download;"
- formspec[#formspec + 1] = fgettext("Downloading...")
- formspec[#formspec + 1] = "]"
+ formspec[#formspec + 1] = "animated_image[-1.7,-0.15;1,1;downloading;"
+ formspec[#formspec + 1] = core.formspec_escape(defaulttexturedir)
+ formspec[#formspec + 1] = "cdb_downloading.png;3;400;]"
+ elseif package.queued then
+ formspec[#formspec + 1] = left_base
+ formspec[#formspec + 1] = core.formspec_escape(defaulttexturedir)
+ formspec[#formspec + 1] = "cdb_queued.png;queued]"
elseif not package.path then
- formspec[#formspec + 1] = "button[-3,0;1.5,0.8;install_"
- formspec[#formspec + 1] = tostring(i)
- formspec[#formspec + 1] = ";"
- formspec[#formspec + 1] = fgettext("Install")
- formspec[#formspec + 1] = "]"
+ local elem_name = "install_" .. i .. ";"
+ formspec[#formspec + 1] = "style[" .. elem_name .. "bgcolor=#71aa34]"
+ formspec[#formspec + 1] = left_base .. "cdb_add.png;" .. elem_name .. "]"
+ formspec[#formspec + 1] = "tooltip[" .. elem_name .. fgettext("Install") .. tooltip_colors
else
if package.installed_release < package.release then
- description_width = description_width - 1.5
-- The install_ action also handles updating
- formspec[#formspec + 1] = "button[-4.5,0;1.5,0.8;install_"
- formspec[#formspec + 1] = tostring(i)
- formspec[#formspec + 1] = ";"
- formspec[#formspec + 1] = fgettext("Update")
- formspec[#formspec + 1] = "]"
- end
+ local elem_name = "install_" .. i .. ";"
+ formspec[#formspec + 1] = "style[" .. elem_name .. "bgcolor=#28ccdf]"
+ formspec[#formspec + 1] = left_base .. "cdb_update.png;" .. elem_name .. "]"
+ formspec[#formspec + 1] = "tooltip[" .. elem_name .. fgettext("Update") .. tooltip_colors
+ else
- formspec[#formspec + 1] = "button[-3,0;1.5,0.8;uninstall_"
- formspec[#formspec + 1] = tostring(i)
- formspec[#formspec + 1] = ";"
- formspec[#formspec + 1] = fgettext("Uninstall")
- formspec[#formspec + 1] = "]"
+ local elem_name = "uninstall_" .. i .. ";"
+ formspec[#formspec + 1] = "style[" .. elem_name .. "bgcolor=#a93b3b]"
+ formspec[#formspec + 1] = left_base .. "cdb_clear.png;" .. elem_name .. "]"
+ formspec[#formspec + 1] = "tooltip[" .. elem_name .. fgettext("Uninstall") .. tooltip_colors
+ end
end
- formspec[#formspec + 1] = "button[-1.5,0;1.5,0.8;view_"
- formspec[#formspec + 1] = tostring(i)
- formspec[#formspec + 1] = ";"
- formspec[#formspec + 1] = fgettext("View")
- formspec[#formspec + 1] = "]"
+ local web_elem_name = "view_" .. i .. ";"
+ formspec[#formspec + 1] = "image_button[-0.7,0;0.7,0.7;" ..
+ core.formspec_escape(defaulttexturedir) .. "cdb_viewonline.png;" .. web_elem_name .. "]"
+ formspec[#formspec + 1] = "tooltip[" .. web_elem_name ..
+ fgettext("View more information in a web browser") .. tooltip_colors
formspec[#formspec + 1] = "container_end[]"
-- description
+ local description_width = W - 0.375*5 - 0.85 - 2*0.7
formspec[#formspec + 1] = "textarea[1.855,0.3;"
formspec[#formspec + 1] = tostring(description_width)
formspec[#formspec + 1] = ",0.8;;;"
@@ -444,6 +862,13 @@ function store.handle_submit(this, fields)
return true
end
+ if fields.clear then
+ search_string = ""
+ cur_page = 1
+ store.filter_packages("")
+ return true
+ end
+
if fields.back then
this:delete()
return true
@@ -485,6 +910,17 @@ function store.handle_submit(this, fields)
end
end
+ if fields.update_all then
+ for i=1, #store.packages_full do
+ local package = store.packages_full[i]
+ if package.path and package.installed_release < package.release and
+ not (package.downloading or package.queued) then
+ queue_download(package)
+ end
+ end
+ return true
+ end
+
local start_idx = (cur_page - 1) * num_per_page + 1
assert(start_idx ~= nil)
for i=start_idx, math.min(#store.packages, start_idx+num_per_page-1) do
@@ -492,21 +928,54 @@ function store.handle_submit(this, fields)
assert(package)
if fields["install_" .. i] then
- start_install(this, package)
+ local install_parent
+ if package.type == "mod" then
+ install_parent = core.get_modpath()
+ elseif package.type == "game" then
+ install_parent = core.get_gamepath()
+ elseif package.type == "txp" then
+ install_parent = core.get_texturepath()
+ else
+ error("Unknown package type: " .. package.type)
+ end
+
+
+ local function on_confirm()
+ local deps = get_raw_dependencies(package)
+ if deps and has_hard_deps(deps) then
+ local dlg = install_dialog.create(package, deps)
+ dlg:set_parent(this)
+ this:hide()
+ dlg:show()
+ else
+ queue_download(package)
+ end
+ end
+
+ if not package.path and core.is_dir(install_parent .. DIR_DELIM .. package.name) then
+ local dlg = confirm_overwrite.create(package, on_confirm)
+ dlg:set_parent(this)
+ this:hide()
+ dlg:show()
+ else
+ on_confirm()
+ end
+
return true
end
if fields["uninstall_" .. i] then
- local dlg_delmod = create_delete_content_dlg(package)
- dlg_delmod:set_parent(this)
+ local dlg = create_delete_content_dlg(package)
+ dlg:set_parent(this)
this:hide()
- dlg_delmod:show()
+ dlg:show()
return true
end
if fields["view_" .. i] then
- local url = ("%s/packages/%s?protocol_version=%d"):format(
- core.settings:get("contentdb_url"), package.id, core.get_max_supp_proto())
+ local url = ("%s/packages/%s/%s?protocol_version=%d"):format(
+ core.settings:get("contentdb_url"),
+ package.author, package.name, core.get_max_supp_proto())
core.open_url(url)
return true
end
@@ -520,6 +989,9 @@ function create_store_dlg(type)
store.load()
end
+ store.update_paths()
+ store.sort_packages()
+
search_string = ""
cur_page = 1
diff --git a/builtin/mainmenu/dlg_create_world.lua b/builtin/mainmenu/dlg_create_world.lua
index 36df23cce..1938747fe 100644
--- a/builtin/mainmenu/dlg_create_world.lua
+++ b/builtin/mainmenu/dlg_create_world.lua
@@ -61,6 +61,7 @@ local flag_checkboxes = {
fgettext("Low humidity and high heat causes shallow or dry rivers") },
},
flat = {
+ cb_caverns,
{ "hills", fgettext("Hills"), "hills" },
{ "lakes", fgettext("Lakes"), "lakes" },
},
@@ -97,7 +98,7 @@ local function create_world_formspec(dialogdata)
-- Error out when no games found
if #pkgmgr.games == 0 then
return "size[12.25,3,true]" ..
- "box[0,0;12,2;#ff8800]" ..
+ "box[0,0;12,2;" .. mt_color_orange .. "]" ..
"textarea[0.3,0;11.7,2;;;"..
fgettext("You have no games installed.") .. "\n" ..
fgettext("Download one from minetest.net") .. "]" ..
@@ -362,10 +363,18 @@ local function create_world_buttonhandler(this, fields)
local gameindex = core.get_textlist_index("games")
if gameindex ~= nil then
+ -- For unnamed worlds use the generated name 'world<number>',
+ -- where the number increments: it is set to 1 larger than the largest
+ -- generated name number found.
if worldname == "" then
- local random_number = math.random(10000, 99999)
- local random_world_name = "Unnamed" .. random_number
- worldname = random_world_name
+ local worldnum_max = 0
+ for _, world in ipairs(menudata.worldlist:get_list()) do
+ if world.name:match("^world%d+$") then
+ local worldnum = tonumber(world.name:sub(6))
+ worldnum_max = math.max(worldnum_max, worldnum)
+ end
+ end
+ worldname = "world" .. worldnum_max + 1
end
core.settings:set("fixed_map_seed", fields["te_seed"])
@@ -434,7 +443,7 @@ local function create_world_buttonhandler(this, fields)
end
if fields["mgv6_biomes"] then
- local entry = minetest.formspec_escape(fields["mgv6_biomes"])
+ local entry = core.formspec_escape(fields["mgv6_biomes"])
for b=1, #mgv6_biomes do
if entry == mgv6_biomes[b][1] then
local ftable = core.settings:get_flags("mgv6_spflags")
diff --git a/builtin/mainmenu/init.lua b/builtin/mainmenu/init.lua
index c17e79270..45089c7c9 100644
--- a/builtin/mainmenu/init.lua
+++ b/builtin/mainmenu/init.lua
@@ -19,10 +19,10 @@ mt_color_grey = "#AAAAAA"
mt_color_blue = "#6389FF"
mt_color_green = "#72FF63"
mt_color_dark_green = "#25C191"
+mt_color_orange = "#FF8800"
local menupath = core.get_mainmenu_path()
local basepath = core.get_builtin_path()
-local menustyle = core.settings:get("main_menu_style")
defaulttexturedir = core.get_texturepath_share() .. DIR_DELIM .. "base" ..
DIR_DELIM .. "pack" .. DIR_DELIM
@@ -34,29 +34,24 @@ dofile(basepath .. "fstk" .. DIR_DELIM .. "ui.lua")
dofile(menupath .. DIR_DELIM .. "async_event.lua")
dofile(menupath .. DIR_DELIM .. "common.lua")
dofile(menupath .. DIR_DELIM .. "pkgmgr.lua")
+dofile(menupath .. DIR_DELIM .. "serverlistmgr.lua")
dofile(menupath .. DIR_DELIM .. "textures.lua")
dofile(menupath .. DIR_DELIM .. "dlg_config_world.lua")
dofile(menupath .. DIR_DELIM .. "dlg_settings_advanced.lua")
dofile(menupath .. DIR_DELIM .. "dlg_contentstore.lua")
-if menustyle ~= "simple" then
- dofile(menupath .. DIR_DELIM .. "dlg_create_world.lua")
- dofile(menupath .. DIR_DELIM .. "dlg_delete_content.lua")
- dofile(menupath .. DIR_DELIM .. "dlg_delete_world.lua")
- dofile(menupath .. DIR_DELIM .. "dlg_rename_modpack.lua")
-end
+dofile(menupath .. DIR_DELIM .. "dlg_create_world.lua")
+dofile(menupath .. DIR_DELIM .. "dlg_delete_content.lua")
+dofile(menupath .. DIR_DELIM .. "dlg_delete_world.lua")
+dofile(menupath .. DIR_DELIM .. "dlg_rename_modpack.lua")
local tabs = {}
tabs.settings = dofile(menupath .. DIR_DELIM .. "tab_settings.lua")
tabs.content = dofile(menupath .. DIR_DELIM .. "tab_content.lua")
tabs.credits = dofile(menupath .. DIR_DELIM .. "tab_credits.lua")
-if menustyle == "simple" then
- tabs.simple_main = dofile(menupath .. DIR_DELIM .. "tab_simple_main.lua")
-else
- tabs.local_game = dofile(menupath .. DIR_DELIM .. "tab_local.lua")
- tabs.play_online = dofile(menupath .. DIR_DELIM .. "tab_online.lua")
-end
+tabs.local_game = dofile(menupath .. DIR_DELIM .. "tab_local.lua")
+tabs.play_online = dofile(menupath .. DIR_DELIM .. "tab_online.lua")
--------------------------------------------------------------------------------
local function main_event_handler(tabview, event)
@@ -71,68 +66,35 @@ local function init_globals()
-- Init gamedata
gamedata.worldindex = 0
- if menustyle == "simple" then
- local world_list = core.get_worlds()
- local world_index
-
- local found_singleplayerworld = false
- for i, world in ipairs(world_list) do
- if world.name == "singleplayerworld" then
- found_singleplayerworld = true
- world_index = i
- break
- end
- end
-
- if not found_singleplayerworld then
- core.create_world("singleplayerworld", 1)
-
- world_list = core.get_worlds()
-
- for i, world in ipairs(world_list) do
- if world.name == "singleplayerworld" then
- world_index = i
- break
- end
- end
+ menudata.worldlist = filterlist.create(
+ core.get_worlds,
+ compare_worlds,
+ -- Unique id comparison function
+ function(element, uid)
+ return element.name == uid
+ end,
+ -- Filter function
+ function(element, gameid)
+ return element.gameid == gameid
end
+ )
- gamedata.worldindex = world_index
- else
- menudata.worldlist = filterlist.create(
- core.get_worlds,
- compare_worlds,
- -- Unique id comparison function
- function(element, uid)
- return element.name == uid
- end,
- -- Filter function
- function(element, gameid)
- return element.gameid == gameid
- end
- )
-
- menudata.worldlist:add_sort_mechanism("alphabetic", sort_worlds_alphabetic)
- menudata.worldlist:set_sortmode("alphabetic")
-
- if not core.settings:get("menu_last_game") then
- local default_game = core.settings:get("default_game") or "minetest"
- core.settings:set("menu_last_game", default_game)
- end
+ menudata.worldlist:add_sort_mechanism("alphabetic", sort_worlds_alphabetic)
+ menudata.worldlist:set_sortmode("alphabetic")
- mm_texture.init()
+ if not core.settings:get("menu_last_game") then
+ local default_game = core.settings:get("default_game") or "minetest"
+ core.settings:set("menu_last_game", default_game)
end
+ mm_texture.init()
+
-- Create main tabview
local tv_main = tabview_create("maintab", {x = 12, y = 5.4}, {x = 0, y = 0})
- if menustyle == "simple" then
- tv_main:add(tabs.simple_main)
- else
- tv_main:set_autosave_tab(true)
- tv_main:add(tabs.local_game)
- tv_main:add(tabs.play_online)
- end
+ tv_main:set_autosave_tab(true)
+ tv_main:add(tabs.local_game)
+ tv_main:add(tabs.play_online)
tv_main:add(tabs.content)
tv_main:add(tabs.settings)
@@ -141,12 +103,20 @@ local function init_globals()
tv_main:set_global_event_handler(main_event_handler)
tv_main:set_fixed_size(false)
- if menustyle ~= "simple" then
- local last_tab = core.settings:get("maintab_LAST")
- if last_tab and tv_main.current_tab ~= last_tab then
- tv_main:set_tab(last_tab)
+ local last_tab = core.settings:get("maintab_LAST")
+ if last_tab and tv_main.current_tab ~= last_tab then
+ tv_main:set_tab(last_tab)
+ end
+
+ -- In case the folder of the last selected game has been deleted,
+ -- display "Minetest" as a header
+ if tv_main.current_tab == "local" then
+ local game = pkgmgr.find_by_gameid(core.settings:get("menu_last_game"))
+ if game == nil then
+ mm_texture.reset()
end
end
+
ui.set_default("maintab")
tv_main:show()
diff --git a/builtin/mainmenu/pkgmgr.lua b/builtin/mainmenu/pkgmgr.lua
index 5b8807310..19127d8d3 100644
--- a/builtin/mainmenu/pkgmgr.lua
+++ b/builtin/mainmenu/pkgmgr.lua
@@ -72,6 +72,34 @@ local function cleanup_path(temppath)
return temppath
end
+local function load_texture_packs(txtpath, retval)
+ local list = core.get_dir_list(txtpath, true)
+ local current_texture_path = core.settings:get("texture_path")
+
+ for _, item in ipairs(list) do
+ if item ~= "base" then
+ local name = item
+
+ local path = txtpath .. DIR_DELIM .. item .. DIR_DELIM
+ if path == current_texture_path then
+ name = fgettext("$1 (Enabled)", name)
+ end
+
+ local conf = Settings(path .. "texture_pack.conf")
+
+ retval[#retval + 1] = {
+ name = item,
+ author = conf:get("author"),
+ release = tonumber(conf:get("release") or "0"),
+ list_name = name,
+ type = "txp",
+ path = path,
+ enabled = path == current_texture_path,
+ }
+ end
+ end
+end
+
function get_mods(path,retval,modpack)
local mods = core.get_dir_list(path, true)
@@ -112,7 +140,7 @@ function get_mods(path,retval,modpack)
toadd.type = "mod"
-- Check modpack.txt
- -- Note: modpack.conf is already checked above
+ -- Note: modpack.conf is already checked above
local modpackfile = io.open(prefix .. DIR_DELIM .. "modpack.txt")
if modpackfile then
modpackfile:close()
@@ -136,32 +164,13 @@ pkgmgr = {}
function pkgmgr.get_texture_packs()
local txtpath = core.get_texturepath()
- local list = core.get_dir_list(txtpath, true)
+ local txtpath_system = core.get_texturepath_share()
local retval = {}
- local current_texture_path = core.settings:get("texture_path")
-
- for _, item in ipairs(list) do
- if item ~= "base" then
- local name = item
-
- local path = txtpath .. DIR_DELIM .. item .. DIR_DELIM
- if path == current_texture_path then
- name = fgettext("$1 (Enabled)", name)
- end
-
- local conf = Settings(path .. "texture_pack.conf")
-
- retval[#retval + 1] = {
- name = item,
- author = conf:get("author"),
- release = tonumber(conf:get("release") or "0"),
- list_name = name,
- type = "txp",
- path = path,
- enabled = path == current_texture_path,
- }
- end
+ load_texture_packs(txtpath, retval)
+ -- on portable versions these two paths coincide. It avoids loading the path twice
+ if txtpath ~= txtpath_system then
+ load_texture_packs(txtpath_system, retval)
end
table.sort(retval, function(a, b)
@@ -450,7 +459,7 @@ function pkgmgr.enable_mod(this, toset)
if not toset then
-- Mod(s) were disabled, so no dependencies need to be enabled
table.sort(toggled_mods)
- minetest.log("info", "Following mods were disabled: " ..
+ core.log("info", "Following mods were disabled: " ..
table.concat(toggled_mods, ", "))
return
end
@@ -487,7 +496,7 @@ function pkgmgr.enable_mod(this, toset)
enabled_mods[name] = true
local mod_to_enable = list[mod_ids[name]]
if not mod_to_enable then
- minetest.log("warning", "Mod dependency \"" .. name ..
+ core.log("warning", "Mod dependency \"" .. name ..
"\" not found!")
else
if mod_to_enable.enabled == false then
@@ -508,7 +517,7 @@ function pkgmgr.enable_mod(this, toset)
-- Log the list of enabled mods
table.sort(toggled_mods)
- minetest.log("info", "Following mods were enabled: " ..
+ core.log("info", "Following mods were enabled: " ..
table.concat(toggled_mods, ", "))
end
diff --git a/builtin/mainmenu/serverlistmgr.lua b/builtin/mainmenu/serverlistmgr.lua
new file mode 100644
index 000000000..9876d8ac5
--- /dev/null
+++ b/builtin/mainmenu/serverlistmgr.lua
@@ -0,0 +1,250 @@
+--Minetest
+--Copyright (C) 2020 rubenwardy
+--
+--This program is free software; you can redistribute it and/or modify
+--it under the terms of the GNU Lesser General Public License as published by
+--the Free Software Foundation; either version 2.1 of the License, or
+--(at your option) any later version.
+--
+--This program is distributed in the hope that it will be useful,
+--but WITHOUT ANY WARRANTY; without even the implied warranty of
+--MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+--GNU Lesser General Public License for more details.
+--
+--You should have received a copy of the GNU Lesser General Public License along
+--with this program; if not, write to the Free Software Foundation, Inc.,
+--51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+serverlistmgr = {}
+
+--------------------------------------------------------------------------------
+local function order_server_list(list)
+ local res = {}
+ --orders the favorite list after support
+ for i = 1, #list do
+ local fav = list[i]
+ if is_server_protocol_compat(fav.proto_min, fav.proto_max) then
+ res[#res + 1] = fav
+ end
+ end
+ for i = 1, #list do
+ local fav = list[i]
+ if not is_server_protocol_compat(fav.proto_min, fav.proto_max) then
+ res[#res + 1] = fav
+ end
+ end
+ return res
+end
+
+local public_downloading = false
+
+--------------------------------------------------------------------------------
+function serverlistmgr.sync()
+ if not serverlistmgr.servers then
+ serverlistmgr.servers = {{
+ name = fgettext("Loading..."),
+ description = fgettext_ne("Try reenabling public serverlist and check your internet connection.")
+ }}
+ end
+
+ local serverlist_url = core.settings:get("serverlist_url") or ""
+ if not core.get_http_api or serverlist_url == "" then
+ serverlistmgr.servers = {{
+ name = fgettext("Public server list is disabled"),
+ description = ""
+ }}
+ return
+ end
+
+ if public_downloading then
+ return
+ end
+ public_downloading = true
+
+ core.handle_async(
+ function(param)
+ local http = core.get_http_api()
+ local url = ("%s/list?proto_version_min=%d&proto_version_max=%d"):format(
+ core.settings:get("serverlist_url"),
+ core.get_min_supp_proto(),
+ core.get_max_supp_proto())
+
+ local response = http.fetch_sync({ url = url })
+ if not response.succeeded then
+ return {}
+ end
+
+ local retval = core.parse_json(response.data)
+ return retval and retval.list or {}
+ end,
+ nil,
+ function(result)
+ public_downloading = nil
+ local favs = order_server_list(result)
+ if favs[1] then
+ serverlistmgr.servers = favs
+ end
+ core.event_handler("Refresh")
+ end
+ )
+end
+
+--------------------------------------------------------------------------------
+local function get_favorites_path()
+ local base = core.get_user_path() .. DIR_DELIM .. "client" .. DIR_DELIM .. "serverlist" .. DIR_DELIM
+ return base .. core.settings:get("serverlist_file")
+end
+
+--------------------------------------------------------------------------------
+local function save_favorites(favorites)
+ local filename = core.settings:get("serverlist_file")
+ -- If setting specifies legacy format change the filename to the new one
+ if filename:sub(#filename - 3):lower() == ".txt" then
+ core.settings:set("serverlist_file", filename:sub(1, #filename - 4) .. ".json")
+ end
+
+ local path = get_favorites_path()
+ core.create_dir(path)
+ core.safe_file_write(path, core.write_json(favorites))
+end
+
+--------------------------------------------------------------------------------
+function serverlistmgr.read_legacy_favorites(path)
+ local file = io.open(path, "r")
+ if not file then
+ return nil
+ end
+
+ local lines = {}
+ for line in file:lines() do
+ lines[#lines + 1] = line
+ end
+ file:close()
+
+ local favorites = {}
+
+ local i = 1
+ while i < #lines do
+ local function pop()
+ local line = lines[i]
+ i = i + 1
+ return line and line:trim()
+ end
+
+ if pop():lower() == "[server]" then
+ local name = pop()
+ local address = pop()
+ local port = tonumber(pop())
+ local description = pop()
+
+ if name == "" then
+ name = nil
+ end
+
+ if description == "" then
+ description = nil
+ end
+
+ if not address or #address < 3 then
+ core.log("warning", "Malformed favorites file, missing address at line " .. i)
+ elseif not port or port < 1 or port > 65535 then
+ core.log("warning", "Malformed favorites file, missing port at line " .. i)
+ elseif (name and name:upper() == "[SERVER]") or
+ (address and address:upper() == "[SERVER]") or
+ (description and description:upper() == "[SERVER]") then
+ core.log("warning", "Potentially malformed favorites file, overran at line " .. i)
+ else
+ favorites[#favorites + 1] = {
+ name = name,
+ address = address,
+ port = port,
+ description = description
+ }
+ end
+ end
+ end
+
+ return favorites
+end
+
+--------------------------------------------------------------------------------
+local function read_favorites()
+ local path = get_favorites_path()
+
+ -- If new format configured fall back to reading the legacy file
+ if path:sub(#path - 4):lower() == ".json" then
+ local file = io.open(path, "r")
+ if file then
+ local json = file:read("*all")
+ file:close()
+ return core.parse_json(json)
+ end
+
+ path = path:sub(1, #path - 5) .. ".txt"
+ end
+
+ local favs = serverlistmgr.read_legacy_favorites(path)
+ if favs then
+ save_favorites(favs)
+ os.remove(path)
+ end
+ return favs
+end
+
+--------------------------------------------------------------------------------
+local function delete_favorite(favorites, del_favorite)
+ for i=1, #favorites do
+ local fav = favorites[i]
+
+ if fav.address == del_favorite.address and fav.port == del_favorite.port then
+ table.remove(favorites, i)
+ return
+ end
+ end
+end
+
+--------------------------------------------------------------------------------
+function serverlistmgr.get_favorites()
+ if serverlistmgr.favorites then
+ return serverlistmgr.favorites
+ end
+
+ serverlistmgr.favorites = {}
+
+ -- Add favorites, removing duplicates
+ local seen = {}
+ for _, fav in ipairs(read_favorites() or {}) do
+ local key = ("%s:%d"):format(fav.address:lower(), fav.port)
+ if not seen[key] then
+ seen[key] = true
+ serverlistmgr.favorites[#serverlistmgr.favorites + 1] = fav
+ end
+ end
+
+ return serverlistmgr.favorites
+end
+
+--------------------------------------------------------------------------------
+function serverlistmgr.add_favorite(new_favorite)
+ assert(type(new_favorite.port) == "number")
+
+ -- Whitelist favorite keys
+ new_favorite = {
+ name = new_favorite.name,
+ address = new_favorite.address,
+ port = new_favorite.port,
+ description = new_favorite.description,
+ }
+
+ local favorites = serverlistmgr.get_favorites()
+ delete_favorite(favorites, new_favorite)
+ table.insert(favorites, 1, new_favorite)
+ save_favorites(favorites)
+end
+
+--------------------------------------------------------------------------------
+function serverlistmgr.delete_favorite(del_favorite)
+ local favorites = serverlistmgr.get_favorites()
+ delete_favorite(favorites, del_favorite)
+ save_favorites(favorites)
+end
diff --git a/builtin/mainmenu/tab_credits.lua b/builtin/mainmenu/tab_credits.lua
index c2b7e503a..a34dd58bb 100644
--- a/builtin/mainmenu/tab_credits.lua
+++ b/builtin/mainmenu/tab_credits.lua
@@ -23,28 +23,37 @@ local core_developers = {
"Nathanaël Courant (Nore/Ekdohibs) <nore@mesecons.net>",
"Loic Blot (nerzhul/nrz) <loic.blot@unix-experience.fr>",
"paramat",
- "Auke Kok (sofar) <sofar@foo-projects.org>",
"Andrew Ward (rubenwardy) <rw@rubenwardy.com>",
"Krock/SmallJoker <mk939@ymail.com>",
"Lars Hofhansl <larsh@apache.org>",
+ "Pierre-Yves Rollo <dev@pyrollo.com>",
+ "v-rob <robinsonvincent89@gmail.com>",
}
+-- For updating active/previous contributors, see the script in ./util/gather_git_credits.py
+
local active_contributors = {
- "Hugues Ross [Formspecs]",
+ "Wuzzy [devtest game, visual corrections]",
+ "Zughy [Visual improvements, various fixes]",
"Maksim (MoNTE48) [Android]",
- "DS [Formspecs]",
- "pyrollo [Formspecs: Hypertext]",
- "v-rob [Formspecs]",
- "Jordach [set_sky]",
- "random-geek [Formspecs]",
- "Wuzzy [Pathfinder, builtin, translations]",
- "ANAND (ClobberXD) [Fixes, per-player FOV]",
- "Warr1024 [Fixes]",
- "Paul Ouellette (pauloue) [Fixes, Script API]",
- "Jean-Patrick G (kilbith) <jeanpatrick.guerrero@gmail.com> [Audiovisuals]",
- "HybridDog [Script API]",
+ "numzero [Graphics and rendering]",
+ "appgurueu [Various internal fixes]",
+ "Desour [Formspec and vector API changes]",
+ "HybridDog [Rendering fixes and documentation]",
+ "Hugues Ross [Graphics-related improvements]",
+ "ANAND (ClobberXD) [Mouse buttons rebinding]",
+ "luk3yx [Fixes]",
+ "hecks [Audiovisuals, Lua API]",
+ "LoneWolfHT [Object crosshair, documentation fixes]",
+ "Lejo [Server-related improvements]",
+ "EvidenceB [Compass HUD element]",
+ "Paul Ouellette (pauloue) [Lua API, documentation]",
+ "TheTermos [Collision detection, physics]",
+ "David CARLIER [Unix & Haiku build fixes]",
"dcbrwn [Object shading]",
- "srifqi [Fixes]",
+ "Elias Fleckenstein [API features/fixes]",
+ "Jean-Patrick Guerrero (kilbith) [model element, visual fixes]",
+ "k.h.lai [Memory leak fixes, documentation]",
}
local previous_core_developers = {
@@ -60,30 +69,23 @@ local previous_core_developers = {
"sapier",
"Zeno",
"ShadowNinja <shadowninja@minetest.net>",
+ "Auke Kok (sofar) <sofar@foo-projects.org>",
}
local previous_contributors = {
"Nils Dagsson Moskopp (erlehmann) <nils@dieweltistgarnichtso.net> [Minetest Logo]",
- "Dániel Juhász (juhdanad) <juhdanad@gmail.com>",
"red-001 <red-001@outlook.ie>",
- "numberZero [Audiovisuals: meshgen]",
"Giuseppe Bilotta",
+ "Dániel Juhász (juhdanad) <juhdanad@gmail.com>",
"MirceaKitsune <mirceakitsune@gmail.com>",
"Constantin Wenger (SpeedProg)",
"Ciaran Gultnieks (CiaranG)",
"stujones11 [Android UX improvements]",
- "Jeija <jeija@mesecons.net> [HTTP, particles]",
- "Vincent Glize (Dumbeldor) [Cleanups, CSM APIs]",
- "Ben Deutsch [Rendering, Fixes, SQLite auth]",
- "TeTpaAka [Hand overriding, nametag colors]",
- "Rui [Sound Pitch]",
- "Duane Robertson <duane@duanerobertson.com> [MGValleys]",
- "Raymoo [Tool Capabilities]",
"Rogier <rogier777@gmail.com> [Fixes]",
"Gregory Currie (gregorycu) [optimisation]",
- "TriBlade9 <triblade9@mail.com> [Audiovisuals]",
- "T4im [Profiler]",
- "Jurgen Doser (doserj) <jurgen.doser@gmail.com>",
+ "srifqi [Fixes]",
+ "JacobF",
+ "Jeija <jeija@mesecons.net> [HTTP, particles]",
}
local function buildCreditList(source)
@@ -100,9 +102,10 @@ return {
cbf_formspec = function(tabview, name, tabdata)
local logofile = defaulttexturedir .. "logo.png"
local version = core.get_version()
- return "image[0.5,1;" .. core.formspec_escape(logofile) .. "]" ..
- "label[0.5,2.8;" .. version.project .. " " .. version.string .. "]" ..
- "button[0.5,3;2,2;homepage;minetest.net]" ..
+ local fs = "image[0.75,0.5;2.2,2.2;" .. core.formspec_escape(logofile) .. "]" ..
+ "style[label_button;border=false]" ..
+ "button[0.5,2;2.5,2;label_button;" .. version.project .. " " .. version.string .. "]" ..
+ "button[0.75,2.75;2,2;homepage;minetest.net]" ..
"tablecolumns[color;text]" ..
"tableoptions[background=#00000000;highlight=#00000000;border=false]" ..
"table[3.5,-0.25;8.5,6.05;list_credits;" ..
@@ -115,10 +118,23 @@ return {
"#FFFF00," .. fgettext("Previous Contributors") .. ",," ..
buildCreditList(previous_contributors) .. "," ..
";1]"
+
+ if PLATFORM ~= "Android" then
+ fs = fs .. "tooltip[userdata;" ..
+ fgettext("Opens the directory that contains user-provided worlds, games, mods,\n" ..
+ "and texture packs in a file manager / explorer.") .. "]"
+ fs = fs .. "button[0,4.75;3.5,1;userdata;" .. fgettext("Open User Data Directory") .. "]"
+ end
+
+ return fs
end,
cbf_button_handler = function(this, fields, name, tabdata)
if fields.homepage then
core.open_url("https://www.minetest.net")
end
+
+ if fields.userdata then
+ core.open_dir(core.get_user_path())
+ end
end,
}
diff --git a/builtin/mainmenu/tab_local.lua b/builtin/mainmenu/tab_local.lua
index a21cf12b1..0e06c3bef 100644
--- a/builtin/mainmenu/tab_local.lua
+++ b/builtin/mainmenu/tab_local.lua
@@ -18,6 +18,7 @@
local enable_gamebar = PLATFORM ~= "Android"
local current_game, singleplayer_refresh_gamebar
+
if enable_gamebar then
function current_game()
local last_game_id = core.settings:get("menu_last_game")
@@ -114,45 +115,44 @@ local function get_formspec(tabview, name, tabdata)
)
retval = retval ..
- "button[4,3.95;2.6,1;world_delete;".. fgettext("Delete") .. "]" ..
- "button[6.5,3.95;2.8,1;world_configure;".. fgettext("Configure") .. "]" ..
- "button[9.2,3.95;2.5,1;world_create;".. fgettext("New") .. "]" ..
- "label[4,-0.25;".. fgettext("Select World:") .. "]"..
- "checkbox[0.25,0.25;cb_creative_mode;".. fgettext("Creative Mode") .. ";" ..
+ "button[3.9,3.8;2.8,1;world_delete;".. fgettext("Delete") .. "]" ..
+ "button[6.55,3.8;2.8,1;world_configure;".. fgettext("Select Mods") .. "]" ..
+ "button[9.2,3.8;2.8,1;world_create;".. fgettext("New") .. "]" ..
+ "label[3.9,-0.05;".. fgettext("Select World:") .. "]"..
+ "checkbox[0,-0.20;cb_creative_mode;".. fgettext("Creative Mode") .. ";" ..
dump(core.settings:get_bool("creative_mode")) .. "]"..
- "checkbox[0.25,0.7;cb_enable_damage;".. fgettext("Enable Damage") .. ";" ..
+ "checkbox[0,0.25;cb_enable_damage;".. fgettext("Enable Damage") .. ";" ..
dump(core.settings:get_bool("enable_damage")) .. "]"..
- "checkbox[0.25,1.15;cb_server;".. fgettext("Host Server") ..";" ..
+ "checkbox[0,0.7;cb_server;".. fgettext("Host Server") ..";" ..
dump(core.settings:get_bool("enable_server")) .. "]" ..
- "textlist[4,0.25;7.5,3.7;sp_worlds;" ..
+ "textlist[3.9,0.4;7.9,3.45;sp_worlds;" ..
menu_render_worldlist() ..
";" .. index .. "]"
if core.settings:get_bool("enable_server") then
retval = retval ..
- "button[8.5,4.8;3.2,1;play;".. fgettext("Host Game") .. "]" ..
- "checkbox[0.25,1.6;cb_server_announce;" .. fgettext("Announce Server") .. ";" ..
+ "button[7.9,4.75;4.1,1;play;".. fgettext("Host Game") .. "]" ..
+ "checkbox[0,1.15;cb_server_announce;" .. fgettext("Announce Server") .. ";" ..
dump(core.settings:get_bool("server_announce")) .. "]" ..
- "label[0.25,2.2;" .. fgettext("Name/Password") .. "]" ..
- "field[0.55,3.2;3.5,0.5;te_playername;;" ..
+ "field[0.3,2.85;3.8,0.5;te_playername;" .. fgettext("Name") .. ";" ..
core.formspec_escape(core.settings:get("name")) .. "]" ..
- "pwdfield[0.55,4;3.5,0.5;te_passwd;]"
+ "pwdfield[0.3,4.05;3.8,0.5;te_passwd;" .. fgettext("Password") .. "]"
local bind_addr = core.settings:get("bind_address")
if bind_addr ~= nil and bind_addr ~= "" then
retval = retval ..
- "field[0.55,5.2;2.25,0.5;te_serveraddr;" .. fgettext("Bind Address") .. ";" ..
+ "field[0.3,5.25;2.5,0.5;te_serveraddr;" .. fgettext("Bind Address") .. ";" ..
core.formspec_escape(core.settings:get("bind_address")) .. "]" ..
- "field[2.8,5.2;1.25,0.5;te_serverport;" .. fgettext("Port") .. ";" ..
+ "field[2.85,5.25;1.25,0.5;te_serverport;" .. fgettext("Port") .. ";" ..
core.formspec_escape(core.settings:get("port")) .. "]"
else
retval = retval ..
- "field[0.55,5.2;3.5,0.5;te_serverport;" .. fgettext("Server Port") .. ";" ..
+ "field[0.3,5.25;3.8,0.5;te_serverport;" .. fgettext("Server Port") .. ";" ..
core.formspec_escape(core.settings:get("port")) .. "]"
end
else
retval = retval ..
- "button[8.5,4.8;3.2,1;play;".. fgettext("Play Game") .. "]"
+ "button[7.9,4.75;4.1,1;play;" .. fgettext("Play Game") .. "]"
end
return retval
diff --git a/builtin/mainmenu/tab_online.lua b/builtin/mainmenu/tab_online.lua
index 7985fd84a..e6748ed88 100644
--- a/builtin/mainmenu/tab_online.lua
+++ b/builtin/mainmenu/tab_online.lua
@@ -20,11 +20,11 @@ local function get_formspec(tabview, name, tabdata)
-- Update the cached supported proto info,
-- it may have changed after a change by the settings menu.
common_update_cached_supp_proto()
- local fav_selected
+ local selected
if menudata.search_result then
- fav_selected = menudata.search_result[tabdata.fav_selected]
+ selected = menudata.search_result[tabdata.selected]
else
- fav_selected = menudata.favorites[tabdata.fav_selected]
+ selected = serverlistmgr.servers[tabdata.selected]
end
if not tabdata.search_for then
@@ -34,7 +34,8 @@ local function get_formspec(tabview, name, tabdata)
local retval =
-- Search
"field[0.15,0.075;5.91,1;te_search;;" .. core.formspec_escape(tabdata.search_for) .. "]" ..
- "button[5.62,-0.25;1.5,1;btn_mp_search;" .. fgettext("Search") .. "]" ..
+ "image_button[5.63,-.165;.83,.83;" .. core.formspec_escape(defaulttexturedir .. "search.png") .. ";btn_mp_search;]" ..
+ "image_button[6.3,-.165;.83,.83;" .. core.formspec_escape(defaulttexturedir .. "clear.png") .. ";btn_mp_clear;]" ..
"image_button[6.97,-.165;.83,.83;" .. core.formspec_escape(defaulttexturedir .. "refresh.png")
.. ";btn_mp_refresh;]" ..
@@ -57,18 +58,18 @@ local function get_formspec(tabview, name, tabdata)
-- Connect
"button[9.88,4.9;2.3,1;btn_mp_connect;" .. fgettext("Connect") .. "]"
- if tabdata.fav_selected and fav_selected then
+ if tabdata.selected and selected then
if gamedata.fav then
retval = retval .. "button[7.73,4.9;2.3,1;btn_delete_favorite;" ..
fgettext("Del. Favorite") .. "]"
end
- if fav_selected.description then
+ if selected.description then
retval = retval .. "textarea[8.1,2.3;4.23,2.9;;;" ..
core.formspec_escape((gamedata.serverdescription or ""), true) .. "]"
end
end
- --favourites
+ --favorites
retval = retval .. "tablecolumns[" ..
image_column(fgettext("Favorite"), "favorite") .. ";" ..
image_column(fgettext("Ping")) .. ",padding=0.25;" ..
@@ -82,13 +83,12 @@ local function get_formspec(tabview, name, tabdata)
image_column(fgettext("PvP enabled"), "pvp") .. ",padding=0.25;" ..
"color,span=1;" ..
"text,padding=1]" ..
- "table[-0.15,0.6;7.75,5.15;favourites;"
+ "table[-0.15,0.6;7.75,5.15;favorites;"
if menudata.search_result then
+ local favs = serverlistmgr.get_favorites()
for i = 1, #menudata.search_result do
- local favs = core.get_favorites("local")
local server = menudata.search_result[i]
-
for fav_id = 1, #favs do
if server.address == favs[fav_id].address and
server.port == favs[fav_id].port then
@@ -102,29 +102,30 @@ local function get_formspec(tabview, name, tabdata)
retval = retval .. render_serverlist_row(server, server.is_favorite)
end
- elseif #menudata.favorites > 0 then
- local favs = core.get_favorites("local")
+ elseif #serverlistmgr.servers > 0 then
+ local favs = serverlistmgr.get_favorites()
if #favs > 0 then
for i = 1, #favs do
- for j = 1, #menudata.favorites do
- if menudata.favorites[j].address == favs[i].address and
- menudata.favorites[j].port == favs[i].port then
- table.insert(menudata.favorites, i, table.remove(menudata.favorites, j))
+ for j = 1, #serverlistmgr.servers do
+ if serverlistmgr.servers[j].address == favs[i].address and
+ serverlistmgr.servers[j].port == favs[i].port then
+ table.insert(serverlistmgr.servers, i, table.remove(serverlistmgr.servers, j))
+ end
end
- end
- if favs[i].address ~= menudata.favorites[i].address then
- table.insert(menudata.favorites, i, favs[i])
+ if favs[i].address ~= serverlistmgr.servers[i].address then
+ table.insert(serverlistmgr.servers, i, favs[i])
end
end
end
- retval = retval .. render_serverlist_row(menudata.favorites[1], (#favs > 0))
- for i = 2, #menudata.favorites do
- retval = retval .. "," .. render_serverlist_row(menudata.favorites[i], (i <= #favs))
+
+ retval = retval .. render_serverlist_row(serverlistmgr.servers[1], (#favs > 0))
+ for i = 2, #serverlistmgr.servers do
+ retval = retval .. "," .. render_serverlist_row(serverlistmgr.servers[i], (i <= #favs))
end
end
- if tabdata.fav_selected then
- retval = retval .. ";" .. tabdata.fav_selected .. "]"
+ if tabdata.selected then
+ retval = retval .. ";" .. tabdata.selected .. "]"
else
retval = retval .. ";0]"
end
@@ -134,21 +135,20 @@ end
--------------------------------------------------------------------------------
local function main_button_handler(tabview, fields, name, tabdata)
- local serverlist = menudata.search_result or menudata.favorites
+ local serverlist = menudata.search_result or serverlistmgr.servers
if fields.te_name then
gamedata.playername = fields.te_name
core.settings:set("name", fields.te_name)
end
- if fields.favourites then
- local event = core.explode_table_event(fields.favourites)
+ if fields.favorites then
+ local event = core.explode_table_event(fields.favorites)
local fav = serverlist[event.row]
if event.type == "DCL" then
if event.row <= #serverlist then
- if menudata.favorites_is_public and
- not is_server_protocol_compat_or_error(
+ if not is_server_protocol_compat_or_error(
fav.proto_min, fav.proto_max) then
return true
end
@@ -177,7 +177,7 @@ local function main_button_handler(tabview, fields, name, tabdata)
if event.type == "CHG" then
if event.row <= #serverlist then
gamedata.fav = false
- local favs = core.get_favorites("local")
+ local favs = serverlistmgr.get_favorites()
local address = fav.address
local port = fav.port
gamedata.serverdescription = fav.description
@@ -193,28 +193,28 @@ local function main_button_handler(tabview, fields, name, tabdata)
core.settings:set("address", address)
core.settings:set("remote_port", port)
end
- tabdata.fav_selected = event.row
+ tabdata.selected = event.row
end
return true
end
end
if fields.key_up or fields.key_down then
- local fav_idx = core.get_table_index("favourites")
+ local fav_idx = core.get_table_index("favorites")
local fav = serverlist[fav_idx]
if fav_idx then
if fields.key_up and fav_idx > 1 then
fav_idx = fav_idx - 1
- elseif fields.key_down and fav_idx < #menudata.favorites then
+ elseif fields.key_down and fav_idx < #serverlistmgr.servers then
fav_idx = fav_idx + 1
end
else
fav_idx = 1
end
- if not menudata.favorites or not fav then
- tabdata.fav_selected = 0
+ if not serverlistmgr.servers or not fav then
+ tabdata.selected = 0
return true
end
@@ -226,29 +226,35 @@ local function main_button_handler(tabview, fields, name, tabdata)
core.settings:set("remote_port", port)
end
- tabdata.fav_selected = fav_idx
+ tabdata.selected = fav_idx
return true
end
if fields.btn_delete_favorite then
- local current_favourite = core.get_table_index("favourites")
- if not current_favourite then return end
+ local current_favorite = core.get_table_index("favorites")
+ if not current_favorite then return end
- core.delete_favorite(current_favourite)
- asyncOnlineFavourites()
- tabdata.fav_selected = nil
+ serverlistmgr.delete_favorite(serverlistmgr.servers[current_favorite])
+ serverlistmgr.sync()
+ tabdata.selected = nil
core.settings:set("address", "")
core.settings:set("remote_port", "30000")
return true
end
+ if fields.btn_mp_clear then
+ tabdata.search_for = ""
+ menudata.search_result = nil
+ return true
+ end
+
if fields.btn_mp_search or fields.key_enter_field == "te_search" then
- tabdata.fav_selected = 1
+ tabdata.selected = 1
local input = fields.te_search:lower()
tabdata.search_for = fields.te_search
- if #menudata.favorites < 2 then
+ if #serverlistmgr.servers < 2 then
return true
end
@@ -268,8 +274,8 @@ local function main_button_handler(tabview, fields, name, tabdata)
-- Search the serverlist
local search_result = {}
- for i = 1, #menudata.favorites do
- local server = menudata.favorites[i]
+ for i = 1, #serverlistmgr.servers do
+ local server = serverlistmgr.servers[i]
local found = 0
for k = 1, #keywords do
local keyword = keywords[k]
@@ -286,7 +292,7 @@ local function main_button_handler(tabview, fields, name, tabdata)
end
end
if found > 0 then
- local points = (#menudata.favorites - i) / 5 + found
+ local points = (#serverlistmgr.servers - i) / 5 + found
server.points = points
table.insert(search_result, server)
end
@@ -305,7 +311,7 @@ local function main_button_handler(tabview, fields, name, tabdata)
end
if fields.btn_mp_refresh then
- asyncOnlineFavourites()
+ serverlistmgr.sync()
return true
end
@@ -314,30 +320,36 @@ local function main_button_handler(tabview, fields, name, tabdata)
gamedata.playername = fields.te_name
gamedata.password = fields.te_pwd
gamedata.address = fields.te_address
- gamedata.port = fields.te_port
+ gamedata.port = tonumber(fields.te_port)
gamedata.selected_world = 0
- local fav_idx = core.get_table_index("favourites")
+ local fav_idx = core.get_table_index("favorites")
local fav = serverlist[fav_idx]
if fav_idx and fav_idx <= #serverlist and
- fav.address == fields.te_address and
- fav.port == fields.te_port then
+ fav.address == gamedata.address and
+ fav.port == gamedata.port then
+
+ serverlistmgr.add_favorite(fav)
gamedata.servername = fav.name
gamedata.serverdescription = fav.description
- if menudata.favorites_is_public and
- not is_server_protocol_compat_or_error(
+ if not is_server_protocol_compat_or_error(
fav.proto_min, fav.proto_max) then
return true
end
else
gamedata.servername = ""
gamedata.serverdescription = ""
+
+ serverlistmgr.add_favorite({
+ address = gamedata.address,
+ port = gamedata.port,
+ })
end
- core.settings:set("address", fields.te_address)
- core.settings:set("remote_port", fields.te_port)
+ core.settings:set("address", gamedata.address)
+ core.settings:set("remote_port", gamedata.port)
core.start()
return true
@@ -347,7 +359,7 @@ end
local function on_change(type, old_tab, new_tab)
if type == "LEAVE" then return end
- asyncOnlineFavourites()
+ serverlistmgr.sync()
end
--------------------------------------------------------------------------------
diff --git a/builtin/mainmenu/tab_settings.lua b/builtin/mainmenu/tab_settings.lua
index 1e5264904..29744048a 100644
--- a/builtin/mainmenu/tab_settings.lua
+++ b/builtin/mainmenu/tab_settings.lua
@@ -122,56 +122,6 @@ local function antialiasing_fname_to_name(fname)
return 0
end
-local function dlg_confirm_reset_formspec(data)
- return "size[8,3]" ..
- "label[1,1;" .. fgettext("Are you sure to reset your singleplayer world?") .. "]" ..
- "button[1,2;2.6,0.5;dlg_reset_singleplayer_confirm;" .. fgettext("Yes") .. "]" ..
- "button[4,2;2.8,0.5;dlg_reset_singleplayer_cancel;" .. fgettext("No") .. "]"
-end
-
-local function dlg_confirm_reset_btnhandler(this, fields, dialogdata)
-
- if fields["dlg_reset_singleplayer_confirm"] ~= nil then
- local worldlist = core.get_worlds()
- local found_singleplayerworld = false
-
- for i = 1, #worldlist do
- if worldlist[i].name == "singleplayerworld" then
- found_singleplayerworld = true
- gamedata.worldindex = i
- end
- end
-
- if found_singleplayerworld then
- core.delete_world(gamedata.worldindex)
- end
-
- core.create_world("singleplayerworld", 1)
- worldlist = core.get_worlds()
-
- for i = 1, #worldlist do
- if worldlist[i].name == "singleplayerworld" then
- gamedata.worldindex = i
- end
- end
- end
-
- this.parent:show()
- this:hide()
- this:delete()
- return true
-end
-
-local function showconfirm_reset(tabview)
- local new_dlg = dialog_create("reset_spworld",
- dlg_confirm_reset_formspec,
- dlg_confirm_reset_btnhandler,
- nil)
- new_dlg:set_parent(tabview)
- tabview:hide()
- new_dlg:show()
-end
-
local function formspec(tabview, name, tabdata)
local tab_string =
"box[0,0;3.75,4.5;#999999]" ..
@@ -204,30 +154,26 @@ local function formspec(tabview, name, tabdata)
"box[8,0;3.75,4.5;#999999]"
local video_driver = core.settings:get("video_driver")
- local shaders_supported = video_driver == "opengl"
- local shaders_enabled = false
- if shaders_supported then
- shaders_enabled = core.settings:get_bool("enable_shaders")
+ local shaders_enabled = core.settings:get_bool("enable_shaders")
+ if video_driver == "opengl" then
tab_string = tab_string ..
"checkbox[8.25,0;cb_shaders;" .. fgettext("Shaders") .. ";"
.. tostring(shaders_enabled) .. "]"
+ elseif video_driver == "ogles2" then
+ tab_string = tab_string ..
+ "checkbox[8.25,0;cb_shaders;" .. fgettext("Shaders (experimental)") .. ";"
+ .. tostring(shaders_enabled) .. "]"
else
core.settings:set_bool("enable_shaders", false)
+ shaders_enabled = false
tab_string = tab_string ..
"label[8.38,0.2;" .. core.colorize("#888888",
fgettext("Shaders (unavailable)")) .. "]"
end
- if core.settings:get("main_menu_style") == "simple" then
- -- 'Reset singleplayer world' only functions with simple menu
- tab_string = tab_string ..
- "button[8,4.75;3.95,1;btn_reset_singleplayer;"
- .. fgettext("Reset singleplayer world") .. "]"
- else
- tab_string = tab_string ..
- "button[8,4.75;3.95,1;btn_change_keys;"
- .. fgettext("Change Keys") .. "]"
- end
+ tab_string = tab_string ..
+ "button[8,4.75;3.95,1;btn_change_keys;"
+ .. fgettext("Change Keys") .. "]"
tab_string = tab_string ..
"button[0,4.75;3.95,1;btn_advanced_settings;"
@@ -244,35 +190,23 @@ local function formspec(tabview, name, tabdata)
if shaders_enabled then
tab_string = tab_string ..
- "checkbox[8.25,0.5;cb_bumpmapping;" .. fgettext("Bump Mapping") .. ";"
- .. dump(core.settings:get_bool("enable_bumpmapping")) .. "]" ..
- "checkbox[8.25,1;cb_tonemapping;" .. fgettext("Tone Mapping") .. ";"
+ "checkbox[8.25,0.5;cb_tonemapping;" .. fgettext("Tone Mapping") .. ";"
.. dump(core.settings:get_bool("tone_mapping")) .. "]" ..
- "checkbox[8.25,1.5;cb_generate_normalmaps;" .. fgettext("Generate Normal Maps") .. ";"
- .. dump(core.settings:get_bool("generate_normalmaps")) .. "]" ..
- "checkbox[8.25,2;cb_parallax;" .. fgettext("Parallax Occlusion") .. ";"
- .. dump(core.settings:get_bool("enable_parallax_occlusion")) .. "]" ..
- "checkbox[8.25,2.5;cb_waving_water;" .. fgettext("Waving Liquids") .. ";"
+ "checkbox[8.25,1;cb_waving_water;" .. fgettext("Waving Liquids") .. ";"
.. dump(core.settings:get_bool("enable_waving_water")) .. "]" ..
- "checkbox[8.25,3;cb_waving_leaves;" .. fgettext("Waving Leaves") .. ";"
+ "checkbox[8.25,1.5;cb_waving_leaves;" .. fgettext("Waving Leaves") .. ";"
.. dump(core.settings:get_bool("enable_waving_leaves")) .. "]" ..
- "checkbox[8.25,3.5;cb_waving_plants;" .. fgettext("Waving Plants") .. ";"
+ "checkbox[8.25,2;cb_waving_plants;" .. fgettext("Waving Plants") .. ";"
.. dump(core.settings:get_bool("enable_waving_plants")) .. "]"
else
tab_string = tab_string ..
"label[8.38,0.7;" .. core.colorize("#888888",
- fgettext("Bump Mapping")) .. "]" ..
- "label[8.38,1.2;" .. core.colorize("#888888",
fgettext("Tone Mapping")) .. "]" ..
- "label[8.38,1.7;" .. core.colorize("#888888",
- fgettext("Generate Normal Maps")) .. "]" ..
- "label[8.38,2.2;" .. core.colorize("#888888",
- fgettext("Parallax Occlusion")) .. "]" ..
- "label[8.38,2.7;" .. core.colorize("#888888",
+ "label[8.38,1.2;" .. core.colorize("#888888",
fgettext("Waving Liquids")) .. "]" ..
- "label[8.38,3.2;" .. core.colorize("#888888",
+ "label[8.38,1.7;" .. core.colorize("#888888",
fgettext("Waving Leaves")) .. "]" ..
- "label[8.38,3.7;" .. core.colorize("#888888",
+ "label[8.38,2.2;" .. core.colorize("#888888",
fgettext("Waving Plants")) .. "]"
end
@@ -324,22 +258,10 @@ local function handle_settings_buttons(this, fields, tabname, tabdata)
end
return true
end
- if fields["cb_bumpmapping"] then
- core.settings:set("enable_bumpmapping", fields["cb_bumpmapping"])
- return true
- end
if fields["cb_tonemapping"] then
core.settings:set("tone_mapping", fields["cb_tonemapping"])
return true
end
- if fields["cb_generate_normalmaps"] then
- core.settings:set("generate_normalmaps", fields["cb_generate_normalmaps"])
- return true
- end
- if fields["cb_parallax"] then
- core.settings:set("enable_parallax_occlusion", fields["cb_parallax"])
- return true
- end
if fields["cb_waving_water"] then
core.settings:set("enable_waving_water", fields["cb_waving_water"])
return true
@@ -359,10 +281,6 @@ local function handle_settings_buttons(this, fields, tabname, tabdata)
core.settings:set("touchtarget", fields["cb_touchscreen_target"])
return true
end
- if fields["btn_reset_singleplayer"] then
- showconfirm_reset(this)
- return true
- end
--Note dropdowns have to be handled LAST!
local ddhandled = false
diff --git a/builtin/mainmenu/tab_simple_main.lua b/builtin/mainmenu/tab_simple_main.lua
deleted file mode 100644
index 7ec95158a..000000000
--- a/builtin/mainmenu/tab_simple_main.lua
+++ /dev/null
@@ -1,220 +0,0 @@
---Minetest
---Copyright (C) 2013 sapier
---
---This program is free software; you can redistribute it and/or modify
---it under the terms of the GNU Lesser General Public License as published by
---the Free Software Foundation; either version 2.1 of the License, or
---(at your option) any later version.
---
---This program is distributed in the hope that it will be useful,
---but WITHOUT ANY WARRANTY; without even the implied warranty of
---MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
---GNU Lesser General Public License for more details.
---
---You should have received a copy of the GNU Lesser General Public License along
---with this program; if not, write to the Free Software Foundation, Inc.,
---51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
---------------------------------------------------------------------------------
-local function get_formspec(tabview, name, tabdata)
- -- Update the cached supported proto info,
- -- it may have changed after a change by the settings menu.
- common_update_cached_supp_proto()
- local fav_selected = menudata.favorites[tabdata.fav_selected]
-
- local retval =
- "label[9.5,0;".. fgettext("Name / Password") .. "]" ..
- "field[0.25,3.35;5.5,0.5;te_address;;" ..
- core.formspec_escape(core.settings:get("address")) .."]" ..
- "field[5.75,3.35;2.25,0.5;te_port;;" ..
- core.formspec_escape(core.settings:get("remote_port")) .."]" ..
- "button[10,2.6;2,1.5;btn_mp_connect;".. fgettext("Connect") .. "]" ..
- "field[9.8,1;2.6,0.5;te_name;;" ..
- core.formspec_escape(core.settings:get("name")) .."]" ..
- "pwdfield[9.8,2;2.6,0.5;te_pwd;]"
-
-
- if tabdata.fav_selected and fav_selected then
- if gamedata.fav then
- retval = retval .. "button[7.7,2.6;2.3,1.5;btn_delete_favorite;" ..
- fgettext("Del. Favorite") .. "]"
- end
- end
-
- retval = retval .. "tablecolumns[" ..
- image_column(fgettext("Favorite"), "favorite") .. ";" ..
- image_column(fgettext("Ping"), "") .. ",padding=0.25;" ..
- "color,span=3;" ..
- "text,align=right;" .. -- clients
- "text,align=center,padding=0.25;" .. -- "/"
- "text,align=right,padding=0.25;" .. -- clients_max
- image_column(fgettext("Creative mode"), "creative") .. ",padding=1;" ..
- image_column(fgettext("Damage enabled"), "damage") .. ",padding=0.25;" ..
- image_column(fgettext("PvP enabled"), "pvp") .. ",padding=0.25;" ..
- "color,span=1;" ..
- "text,padding=1]" .. -- name
- "table[-0.05,0;9.2,2.75;favourites;"
-
- if #menudata.favorites > 0 then
- local favs = core.get_favorites("local")
- if #favs > 0 then
- for i = 1, #favs do
- for j = 1, #menudata.favorites do
- if menudata.favorites[j].address == favs[i].address and
- menudata.favorites[j].port == favs[i].port then
- table.insert(menudata.favorites, i,
- table.remove(menudata.favorites, j))
- end
- end
- if favs[i].address ~= menudata.favorites[i].address then
- table.insert(menudata.favorites, i, favs[i])
- end
- end
- end
- retval = retval .. render_serverlist_row(menudata.favorites[1], (#favs > 0))
- for i = 2, #menudata.favorites do
- retval = retval .. "," .. render_serverlist_row(menudata.favorites[i], (i <= #favs))
- end
- end
-
- if tabdata.fav_selected then
- retval = retval .. ";" .. tabdata.fav_selected .. "]"
- else
- retval = retval .. ";0]"
- end
-
- -- separator
- retval = retval .. "box[-0.28,3.75;12.4,0.1;#FFFFFF]"
-
- -- checkboxes
- retval = retval ..
- "checkbox[8.0,3.9;cb_creative;".. fgettext("Creative Mode") .. ";" ..
- dump(core.settings:get_bool("creative_mode")) .. "]"..
- "checkbox[8.0,4.4;cb_damage;".. fgettext("Enable Damage") .. ";" ..
- dump(core.settings:get_bool("enable_damage")) .. "]"
- -- buttons
- retval = retval ..
- "button[0,3.7;8,1.5;btn_start_singleplayer;" .. fgettext("Start Singleplayer") .. "]" ..
- "button[0,4.5;8,1.5;btn_config_sp_world;" .. fgettext("Config mods") .. "]"
-
- return retval
-end
-
---------------------------------------------------------------------------------
-local function main_button_handler(tabview, fields, name, tabdata)
- if fields.btn_start_singleplayer then
- gamedata.selected_world = gamedata.worldindex
- gamedata.singleplayer = true
- core.start()
- return true
- end
-
- if fields.favourites then
- local event = core.explode_table_event(fields.favourites)
- if event.type == "CHG" then
- if event.row <= #menudata.favorites then
- gamedata.fav = false
- local favs = core.get_favorites("local")
- local fav = menudata.favorites[event.row]
- local address = fav.address
- local port = fav.port
- gamedata.serverdescription = fav.description
-
- for i = 1, #favs do
- if fav.address == favs[i].address and
- fav.port == favs[i].port then
- gamedata.fav = true
- end
- end
-
- if address and port then
- core.settings:set("address", address)
- core.settings:set("remote_port", port)
- end
- tabdata.fav_selected = event.row
- end
- return true
- end
- end
-
- if fields.btn_delete_favorite then
- local current_favourite = core.get_table_index("favourites")
- if not current_favourite then return end
-
- core.delete_favorite(current_favourite)
- asyncOnlineFavourites()
- tabdata.fav_selected = nil
-
- core.settings:set("address", "")
- core.settings:set("remote_port", "30000")
- return true
- end
-
- if fields.cb_creative then
- core.settings:set("creative_mode", fields.cb_creative)
- return true
- end
-
- if fields.cb_damage then
- core.settings:set("enable_damage", fields.cb_damage)
- return true
- end
-
- if fields.btn_mp_connect or fields.key_enter then
- gamedata.playername = fields.te_name
- gamedata.password = fields.te_pwd
- gamedata.address = fields.te_address
- gamedata.port = fields.te_port
- local fav_idx = core.get_textlist_index("favourites")
-
- if fav_idx and fav_idx <= #menudata.favorites and
- menudata.favorites[fav_idx].address == fields.te_address and
- menudata.favorites[fav_idx].port == fields.te_port then
- local fav = menudata.favorites[fav_idx]
- gamedata.servername = fav.name
- gamedata.serverdescription = fav.description
-
- if menudata.favorites_is_public and
- not is_server_protocol_compat_or_error(
- fav.proto_min, fav.proto_max) then
- return true
- end
- else
- gamedata.servername = ""
- gamedata.serverdescription = ""
- end
-
- gamedata.selected_world = 0
-
- core.settings:set("address", fields.te_address)
- core.settings:set("remote_port", fields.te_port)
-
- core.start()
- return true
- end
-
- if fields.btn_config_sp_world then
- local configdialog = create_configure_world_dlg(1)
- if configdialog then
- configdialog:set_parent(tabview)
- tabview:hide()
- configdialog:show()
- end
- return true
- end
-end
-
---------------------------------------------------------------------------------
-local function on_activate(type,old_tab,new_tab)
- if type == "LEAVE" then return end
- asyncOnlineFavourites()
-end
-
---------------------------------------------------------------------------------
-return {
- name = "main",
- caption = fgettext("Main"),
- cbf_formspec = get_formspec,
- cbf_button_handler = main_button_handler,
- on_change = on_activate
-}
diff --git a/builtin/mainmenu/tests/favorites_wellformed.txt b/builtin/mainmenu/tests/favorites_wellformed.txt
new file mode 100644
index 000000000..8b87b4398
--- /dev/null
+++ b/builtin/mainmenu/tests/favorites_wellformed.txt
@@ -0,0 +1,29 @@
+[server]
+
+127.0.0.1
+30000
+
+
+[server]
+
+localhost
+30000
+
+
+[server]
+
+vps.rubenwardy.com
+30001
+
+
+[server]
+
+gundul.ddnss.de
+39155
+
+
+[server]
+VanessaE's Dreambuilder creative Server
+daconcepts.com
+30000
+VanessaE's Dreambuilder creative-mode server. Lots of mods, whitelisted buckets.
diff --git a/builtin/mainmenu/tests/serverlistmgr_spec.lua b/builtin/mainmenu/tests/serverlistmgr_spec.lua
new file mode 100644
index 000000000..148e9b794
--- /dev/null
+++ b/builtin/mainmenu/tests/serverlistmgr_spec.lua
@@ -0,0 +1,36 @@
+_G.core = {}
+_G.unpack = table.unpack
+_G.serverlistmgr = {}
+
+dofile("builtin/common/misc_helpers.lua")
+dofile("builtin/mainmenu/serverlistmgr.lua")
+
+local base = "builtin/mainmenu/tests/"
+
+describe("legacy favorites", function()
+ it("loads well-formed correctly", function()
+ local favs = serverlistmgr.read_legacy_favorites(base .. "favorites_wellformed.txt")
+
+ local expected = {
+ {
+ address = "127.0.0.1",
+ port = 30000,
+ },
+
+ { address = "localhost", port = 30000 },
+
+ { address = "vps.rubenwardy.com", port = 30001 },
+
+ { address = "gundul.ddnss.de", port = 39155 },
+
+ {
+ address = "daconcepts.com",
+ port = 30000,
+ name = "VanessaE's Dreambuilder creative Server",
+ description = "VanessaE's Dreambuilder creative-mode server. Lots of mods, whitelisted buckets."
+ },
+ }
+
+ assert.same(expected, favs)
+ end)
+end)
diff --git a/builtin/profiler/instrumentation.lua b/builtin/profiler/instrumentation.lua
index 237f048fb..6b951a2c2 100644
--- a/builtin/profiler/instrumentation.lua
+++ b/builtin/profiler/instrumentation.lua
@@ -160,6 +160,7 @@ local function init()
-- Simple iteration would ignore lookup via __index.
local entity_instrumentation = {
"on_activate",
+ "on_deactivate",
"on_step",
"on_punch",
"on_rightclick",
diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt
index c787aea2c..f800f71ab 100644
--- a/builtin/settingtypes.txt
+++ b/builtin/settingtypes.txt
@@ -110,9 +110,9 @@ doubletap_jump (Double tap jump for fly) bool false
# enabled.
always_fly_fast (Always fly and fast) bool true
-# The time in seconds it takes between repeated right clicks when holding the right
-# mouse button.
-repeat_rightclick_time (Rightclick repetition interval) float 0.25 0.001
+# The time in seconds it takes between repeated node placements when holding
+# the place button.
+repeat_place_time (Place repetition interval) float 0.25 0.001
# Automatically jump up single-node obstacles.
autojump (Automatic jumping) bool false
@@ -152,6 +152,9 @@ joystick_type (Joystick type) enum auto auto,generic,xbox
# when holding down a joystick button combination.
repeat_joystick_button_time (Joystick button repetition interval) float 0.17 0.001
+# The deadzone of the joystick
+joystick_deadzone (Joystick deadzone) int 2048
+
# The sensitivity of the joystick axes for moving the
# ingame view frustum around.
joystick_frustum_sensitivity (Joystick frustum sensitivity) float 170
@@ -182,6 +185,14 @@ keymap_jump (Jump key) key KEY_SPACE
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
keymap_sneak (Sneak key) key KEY_LSHIFT
+# Key for digging.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+keymap_dig (Dig key) key KEY_LBUTTON
+
+# Key for placing.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+keymap_place (Place key) key KEY_RBUTTON
+
# Key for opening the inventory.
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
keymap_inventory (Inventory key) key KEY_KEY_I
@@ -440,6 +451,10 @@ keymap_decrease_viewing_range_min (View range decrease key) key -
[**Basic]
+# Whether nametag backgrounds should be shown by default.
+# Mods may still set a background.
+show_nametag_backgrounds (Show nametag backgrounds by default) bool true
+
# Enable vertex buffer objects.
# This should greatly improve graphics performance.
enable_vbo (VBO) bool true
@@ -505,8 +520,13 @@ texture_clean_transparent (Clean transparent textures) bool false
# texture autoscaling.
texture_min_size (Minimum texture size) int 64
-# Experimental option, might cause visible spaces between blocks
-# when set to higher number than 0.
+# Use multi-sample antialiasing (MSAA) to smooth out block edges.
+# This algorithm smooths out the 3D viewport while keeping the image sharp,
+# but it doesn't affect the insides of textures
+# (which is especially noticeable with transparent textures).
+# Visible spaces appear between nodes when shaders are disabled.
+# If set to 0, MSAA is disabled.
+# A restart is required after changing this option.
fsaa (FSAA) enum 0 0,1,2,4,8,16
# Undersampling is similar to using a lower screen resolution, but it applies
@@ -533,43 +553,6 @@ shader_path (Shader path) path
# enhanced, highlights and shadows are gradually compressed.
tone_mapping (Filmic tone mapping) bool false
-[***Bumpmapping]
-
-# Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack
-# or need to be auto-generated.
-# Requires shaders to be enabled.
-enable_bumpmapping (Bumpmapping) bool false
-
-# Enables on the fly normalmap generation (Emboss effect).
-# Requires bumpmapping to be enabled.
-generate_normalmaps (Generate normalmaps) bool false
-
-# Strength of generated normalmaps.
-normalmaps_strength (Normalmaps strength) float 0.6
-
-# Defines sampling step of texture.
-# A higher value results in smoother normal maps.
-normalmaps_smooth (Normalmaps sampling) int 0 0 2
-
-[***Parallax Occlusion]
-
-# Enables parallax occlusion mapping.
-# Requires shaders to be enabled.
-enable_parallax_occlusion (Parallax occlusion) bool false
-
-# 0 = parallax occlusion with slope information (faster).
-# 1 = relief mapping (slower, more accurate).
-parallax_occlusion_mode (Parallax occlusion mode) int 1 0 1
-
-# Number of parallax occlusion iterations.
-parallax_occlusion_iterations (Parallax occlusion iterations) int 4
-
-# Overall scale of parallax occlusion effect.
-parallax_occlusion_scale (Parallax occlusion scale) float 0.08
-
-# Overall bias of parallax occlusion effect, usually scale/2.
-parallax_occlusion_bias (Parallax occlusion bias) float 0.04
-
[***Waving Nodes]
# Set to true to enable waving liquids (like water).
@@ -610,15 +593,15 @@ arm_inertia (Arm inertia) bool true
# to not waste CPU power for no benefit.
fps_max (Maximum FPS) int 60 1
-# Maximum FPS when game is paused.
-pause_fps_max (FPS in pause menu) int 20 1
+# Maximum FPS when the window is not focused, or when the game is paused.
+fps_max_unfocused (FPS when unfocused or paused) int 20 1
# Open the pause menu when the window's focus is lost. Does not pause if a formspec is
# open.
pause_on_lost_focus (Pause on lost window focus) bool false
# View distance in nodes.
-viewing_range (Viewing range) int 100 20 4000
+viewing_range (Viewing range) int 190 20 4000
# Camera 'near clipping plane' distance in nodes, between 0 and 0.25
# Only works on GLES platforms. Most users will not need to change this.
@@ -682,8 +665,8 @@ texture_path (Texture path) path
# The rendering back-end for Irrlicht.
# A restart is required after changing this.
# Note: On Android, stick with OGLES1 if unsure! App may fail to start otherwise.
-# On other platforms, OpenGL is recommended, and it’s the only driver with
-# shader support currently.
+# On other platforms, OpenGL is recommended.
+# Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)
video_driver (Video driver) enum opengl null,software,burningsvideo,direct3d8,direct3d9,opengl,ogles1,ogles2
# Radius of cloud area stated in number of 64 node cloud squares.
@@ -741,9 +724,11 @@ selectionbox_color (Selection box color) string (0,0,0)
selectionbox_width (Selection box width) int 2 1 5
# Crosshair color (R,G,B).
+# Also controls the object crosshair color
crosshair_color (Crosshair color) string (255,255,255)
# Crosshair alpha (opaqueness, between 0 and 255).
+# Also controls the object crosshair color
crosshair_alpha (Crosshair alpha) int 255 0 255
# Maximum number of recent chat messages to show
@@ -817,7 +802,8 @@ world_aligned_mode (World-aligned textures mode) enum enable disable,enable,forc
autoscale_mode (Autoscaling mode) enum disable disable,enable,force
# Show entity selection boxes
-show_entity_selectionbox (Show entity selection boxes) bool true
+# A restart is required after changing this.
+show_entity_selectionbox (Show entity selection boxes) bool false
[*Menus]
@@ -982,7 +968,7 @@ serverlist_url (Serverlist URL) string servers.minetest.net
# File in client/serverlist/ that contains your favorite servers displayed in the
# Multiplayer Tab.
-serverlist_file (Serverlist file) string favoriteservers.txt
+serverlist_file (Serverlist file) string favoriteservers.json
# Maximum size of the out chat queue.
# 0 to disable queueing and -1 to make the queue size unlimited.
@@ -999,7 +985,7 @@ client_unload_unused_data_timeout (Mapblock unload timeout) int 600
# Maximum number of mapblocks for client to be kept in memory.
# Set to -1 for unlimited amount.
-client_mapblock_limit (Mapblock limit) int 5000
+client_mapblock_limit (Mapblock limit) int 7500
# Whether to show the client debug info (has the same effect as hitting F5).
show_debug (Show debug info) bool false
@@ -1069,6 +1055,13 @@ full_block_send_enable_min_time_from_building (Delay in sending blocks after bui
# client number.
max_packets_per_iteration (Max. packets per iteration) int 1024
+# ZLib compression level to use when sending mapblocks to the client.
+# -1 - Zlib's default compression level
+# 0 - no compresson, fastest
+# 9 - best compression, slowest
+# (levels 1-3 use Zlib's "fast" method, 4-9 use the normal method)
+map_compression_level_net (Map Compression Level for Network Transfer) int -1 -1 9
+
[*Game]
# Default game when creating a new world.
@@ -1096,7 +1089,7 @@ default_stack_max (Default stack size) int 99
# Enable players getting damage and dying.
enable_damage (Damage) bool false
-# Enable creative mode for new created maps.
+# Enable creative mode for all players
creative_mode (Creative) bool false
# A chosen map seed for a new map, leave empty for random.
@@ -1158,17 +1151,17 @@ ask_reconnect_on_crash (Ask to reconnect after crash) bool false
# Setting this larger than active_block_range will also cause the server
# to maintain active objects up to this distance in the direction the
# player is looking. (This can avoid mobs suddenly disappearing from view)
-active_object_send_range_blocks (Active object send range) int 4
+active_object_send_range_blocks (Active object send range) int 8
# The radius of the volume of blocks around every player that is subject to the
# active block stuff, stated in mapblocks (16 nodes).
# In active blocks objects are loaded and ABMs run.
# This is also the minimum range in which active objects (mobs) are maintained.
# This should be configured together with active_object_send_range_blocks.
-active_block_range (Active block range) int 3
+active_block_range (Active block range) int 4
# From how far blocks are sent to clients, stated in mapblocks (16 nodes).
-max_block_send_distance (Max block send distance) int 10
+max_block_send_distance (Max block send distance) int 12
# Maximum number of forceloaded mapblocks.
max_forceloaded_blocks (Maximum forceloaded blocks) int 16
@@ -1241,10 +1234,10 @@ movement_gravity (Gravity) float 9.81
[**Advanced]
# Handling for deprecated Lua API calls:
-# - legacy: (try to) mimic old behaviour (default for release).
-# - log: mimic and log backtrace of deprecated call (default for debug).
+# - none: Do not log deprecated calls
+# - log: mimic and log backtrace of deprecated call (default).
# - error: abort on usage of deprecated call (suggested for mod developers).
-deprecated_lua_api_handling (Deprecated Lua API handling) enum legacy legacy,log,error
+deprecated_lua_api_handling (Deprecated Lua API handling) enum log none,log,error
# Number of extra blocks that can be loaded by /clearobjects at once.
# This is a trade-off between sqlite transaction overhead and
@@ -1261,6 +1254,13 @@ max_objects_per_block (Maximum objects per block) int 64
# See https://www.sqlite.org/pragma.html#pragma_synchronous
sqlite_synchronous (Synchronous SQLite) enum 2 0,1,2
+# ZLib compression level to use when saving mapblocks to disk.
+# -1 - Zlib's default compression level
+# 0 - no compresson, fastest
+# 9 - best compression, slowest
+# (levels 1-3 use Zlib's "fast" method, 4-9 use the normal method)
+map_compression_level_disk (Map Compression Level for Disk Storage) int 3 -1 9
+
# Length of a server tick and the interval at which objects are generally updated over
# network.
dedicated_server_step (Dedicated server step) float 0.09
@@ -1271,6 +1271,10 @@ active_block_mgmt_interval (Active block management interval) float 2.0
# Length of time between Active Block Modifier (ABM) execution cycles
abm_interval (ABM interval) float 1.0
+# The time budget allowed for ABMs to execute on each step
+# (as a fraction of the ABM Interval)
+abm_time_budget (ABM time budget) float 0.2 0.1 0.9
+
# Length of time between NodeTimer execution cycles
nodetimer_interval (NodeTimer interval) float 0.2
@@ -1431,12 +1435,6 @@ curl_file_download_timeout (cURL file download timeout) int 300000
# Makes DirectX work with LuaJIT. Disable if it causes troubles.
high_precision_fpu (High-precision FPU) bool true
-# Changes the main menu UI:
-# - Full: Multiple singleplayer worlds, game choice, texture pack chooser, etc.
-# - Simple: One singleplayer world, no game or texture pack choosers. May be
-# necessary for smaller screens.
-main_menu_style (Main menu style) enum full full,simple
-
# Replaces the default main menu with a custom one.
main_menu_script (Main menu script) string
@@ -1456,7 +1454,7 @@ mg_name (Mapgen name) enum v7 v7,valleys,carpathian,v5,flat,fractal,singlenode,v
water_level (Water level) int 1
# From how far blocks are generated for clients, stated in mapblocks (16 nodes).
-max_block_generate_distance (Max block generate distance) int 8
+max_block_generate_distance (Max block generate distance) int 10
# Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).
# Only mapchunks completely within the mapgen limit are generated.
@@ -1466,7 +1464,7 @@ mapgen_limit (Map generation limit) int 31000 0 31000
# Global map generation attributes.
# In Mapgen v6 the 'decorations' flag controls all decorations except trees
# and junglegrass, in all other mapgens this flag controls all decorations.
-mg_flags (Mapgen flags) flags caves,dungeons,light,decorations,biomes caves,dungeons,light,decorations,biomes,nocaves,nodungeons,nolight,nodecorations,nobiomes
+mg_flags (Mapgen flags) flags caves,dungeons,light,decorations,biomes,ores caves,dungeons,light,decorations,biomes,ores,nocaves,nodungeons,nolight,nodecorations,nobiomes,noores
[*Biome API temperature and humidity noise parameters]
@@ -1857,7 +1855,7 @@ mgcarpathian_np_dungeons (Dungeon noise) noise_params_3d 0.9, 0.5, (500, 500, 50
# Map generation attributes specific to Mapgen Flat.
# Occasional lakes and hills can be added to the flat world.
-mgflat_spflags (Mapgen Flat specific flags) flags nolakes,nohills lakes,hills,nolakes,nohills
+mgflat_spflags (Mapgen Flat specific flags) flags nolakes,nohills,nocaverns lakes,hills,caverns,nolakes,nohills,nocaverns
# Y of flat ground.
mgflat_ground_level (Ground level) int 8
@@ -1901,6 +1899,15 @@ mgflat_hill_threshold (Hill threshold) float 0.45
# Controls steepness/height of hills.
mgflat_hill_steepness (Hill steepness) float 64.0
+# Y-level of cavern upper limit.
+mgflat_cavern_limit (Cavern limit) int -256
+
+# Y-distance over which caverns expand to full size.
+mgflat_cavern_taper (Cavern taper) int 256
+
+# Defines full size of caverns, smaller values create larger caverns.
+mgflat_cavern_threshold (Cavern threshold) float 0.7
+
# Lower Y limit of dungeons.
mgflat_dungeon_ymin (Dungeon minimum Y) int -31000
@@ -1921,6 +1928,9 @@ mgflat_np_cave1 (Cave1 noise) noise_params_3d 0, 12, (61, 61, 61), 52534, 3, 0.5
# Second of two 3D noises that together define tunnels.
mgflat_np_cave2 (Cave2 noise) noise_params_3d 0, 12, (67, 67, 67), 10325, 3, 0.5, 2.0
+# 3D noise defining giant caverns.
+mgflat_np_cavern (Cavern noise) noise_params_3d 0, 1, (384, 128, 384), 723, 5, 0.63, 2.0
+
# 3D noise that determines number of dungeons per mapchunk.
mgflat_np_dungeons (Dungeon noise) noise_params_3d 0.9, 0.5, (500, 500, 500), 0, 2, 0.8, 2.0
@@ -2163,15 +2173,15 @@ chunksize (Chunk size) int 5
enable_mapgen_debug_info (Mapgen debug) bool false
# Maximum number of blocks that can be queued for loading.
-emergequeue_limit_total (Absolute limit of queued blocks to emerge) int 512
+emergequeue_limit_total (Absolute limit of queued blocks to emerge) int 1024
# Maximum number of blocks to be queued that are to be loaded from file.
# This limit is enforced per player.
-emergequeue_limit_diskonly (Per-player limit of queued blocks load from disk) int 64
+emergequeue_limit_diskonly (Per-player limit of queued blocks load from disk) int 128
# Maximum number of blocks to be queued that are to be generated.
# This limit is enforced per player.
-emergequeue_limit_generate (Per-player limit of queued blocks to generate) int 64
+emergequeue_limit_generate (Per-player limit of queued blocks to generate) int 128
# Number of emerge threads to use.
# Value 0:
@@ -2197,3 +2207,7 @@ contentdb_url (ContentDB URL) string https://content.minetest.net
# These flags are independent from Minetest versions,
# so see a full list at https://content.minetest.net/help/content_flags/
contentdb_flag_blacklist (ContentDB Flag Blacklist) string nonfree, desktop_default
+
+# Maximum number of concurrent downloads. Downloads exceeding this limit will be queued.
+# This should be lower than curl_parallel_limit.
+contentdb_max_concurrent_downloads (ContentDB Max Concurrent Downloads) int 3
diff --git a/client/shaders/3d_interlaced_merge/opengl_fragment.glsl b/client/shaders/3d_interlaced_merge/opengl_fragment.glsl
index 25945ad7f..7cba61b39 100644
--- a/client/shaders/3d_interlaced_merge/opengl_fragment.glsl
+++ b/client/shaders/3d_interlaced_merge/opengl_fragment.glsl
@@ -6,9 +6,11 @@ uniform sampler2D textureFlags;
#define rightImage normalTexture
#define maskImage textureFlags
+varying mediump vec2 varTexCoord;
+
void main(void)
{
- vec2 uv = gl_TexCoord[0].st;
+ vec2 uv = varTexCoord.st;
vec4 left = texture2D(leftImage, uv).rgba;
vec4 right = texture2D(rightImage, uv).rgba;
vec4 mask = texture2D(maskImage, uv).rgba;
diff --git a/client/shaders/3d_interlaced_merge/opengl_vertex.glsl b/client/shaders/3d_interlaced_merge/opengl_vertex.glsl
index 4e0b2b125..860049481 100644
--- a/client/shaders/3d_interlaced_merge/opengl_vertex.glsl
+++ b/client/shaders/3d_interlaced_merge/opengl_vertex.glsl
@@ -1,6 +1,7 @@
+varying mediump vec2 varTexCoord;
+
void main(void)
{
- gl_TexCoord[0] = gl_MultiTexCoord0;
- gl_Position = gl_Vertex;
- gl_FrontColor = gl_BackColor = gl_Color;
+ varTexCoord = inTexCoord0;
+ gl_Position = inVertexPosition;
}
diff --git a/client/shaders/default_shader/opengl_fragment.glsl b/client/shaders/default_shader/opengl_fragment.glsl
index 925ab6e1d..5018ac6ea 100644
--- a/client/shaders/default_shader/opengl_fragment.glsl
+++ b/client/shaders/default_shader/opengl_fragment.glsl
@@ -1,4 +1,6 @@
+varying lowp vec4 varColor;
+
void main(void)
{
- gl_FragColor = gl_Color;
+ gl_FragColor = varColor;
}
diff --git a/client/shaders/default_shader/opengl_vertex.glsl b/client/shaders/default_shader/opengl_vertex.glsl
index d0b16c8b0..d95a3c2d3 100644
--- a/client/shaders/default_shader/opengl_vertex.glsl
+++ b/client/shaders/default_shader/opengl_vertex.glsl
@@ -1,9 +1,7 @@
-uniform mat4 mWorldViewProj;
+varying lowp vec4 varColor;
void main(void)
{
- gl_TexCoord[0] = gl_MultiTexCoord0;
- gl_Position = mWorldViewProj * gl_Vertex;
-
- gl_FrontColor = gl_BackColor = gl_Color;
+ gl_Position = mWorldViewProj * inVertexPosition;
+ varColor = inVertexColor;
}
diff --git a/client/shaders/minimap_shader/opengl_fragment.glsl b/client/shaders/minimap_shader/opengl_fragment.glsl
index fa4f9cb1a..cef359e8a 100644
--- a/client/shaders/minimap_shader/opengl_fragment.glsl
+++ b/client/shaders/minimap_shader/opengl_fragment.glsl
@@ -2,9 +2,12 @@ uniform sampler2D baseTexture;
uniform sampler2D normalTexture;
uniform vec3 yawVec;
+varying lowp vec4 varColor;
+varying mediump vec2 varTexCoord;
+
void main (void)
{
- vec2 uv = gl_TexCoord[0].st;
+ vec2 uv = varTexCoord.st;
//texture sampling rate
const float step = 1.0 / 256.0;
@@ -27,6 +30,6 @@ void main (void)
vec3 color = (1.1 * diffuse + 0.05 * height + 0.5 * specular) * base.rgb;
vec4 col = vec4(color.rgb, base.a);
- col *= gl_Color;
+ col *= varColor;
gl_FragColor = vec4(col.rgb, base.a);
}
diff --git a/client/shaders/minimap_shader/opengl_vertex.glsl b/client/shaders/minimap_shader/opengl_vertex.glsl
index 88f9356d5..1a9491805 100644
--- a/client/shaders/minimap_shader/opengl_vertex.glsl
+++ b/client/shaders/minimap_shader/opengl_vertex.glsl
@@ -1,9 +1,11 @@
-uniform mat4 mWorldViewProj;
uniform mat4 mWorld;
+varying lowp vec4 varColor;
+varying mediump vec2 varTexCoord;
+
void main(void)
{
- gl_TexCoord[0] = gl_MultiTexCoord0;
- gl_Position = mWorldViewProj * gl_Vertex;
- gl_FrontColor = gl_BackColor = gl_Color;
+ varTexCoord = inTexCoord0.st;
+ gl_Position = mWorldViewProj * inVertexPosition;
+ varColor = inVertexColor;
}
diff --git a/client/shaders/nodes_shader/opengl_fragment.glsl b/client/shaders/nodes_shader/opengl_fragment.glsl
index 19e6c2d86..b58095063 100644
--- a/client/shaders/nodes_shader/opengl_fragment.glsl
+++ b/client/shaders/nodes_shader/opengl_fragment.glsl
@@ -1,6 +1,4 @@
uniform sampler2D baseTexture;
-uniform sampler2D normalTexture;
-uniform sampler2D textureFlags;
uniform vec4 skyBgColor;
uniform float fogDistance;
@@ -17,21 +15,18 @@ varying vec3 vPosition;
// cameraOffset + worldPosition (for large coordinates the limits of float
// precision must be considered).
varying vec3 worldPosition;
-varying float area_enable_parallax;
-
+varying lowp vec4 varColor;
+#ifdef GL_ES
+varying mediump vec2 varTexCoord;
+#else
+centroid varying vec2 varTexCoord;
+#endif
varying vec3 eyeVec;
-varying vec3 tsEyeVec;
-varying vec3 lightVec;
-varying vec3 tsLightVec;
-bool normalTexturePresent = false;
-
-const float e = 2.718281828459;
-const float BS = 10.0;
const float fogStart = FOG_START;
-const float fogShadingParameter = 1 / ( 1 - fogStart);
+const float fogShadingParameter = 1.0 / ( 1.0 - fogStart);
-#ifdef ENABLE_TONE_MAPPING
+#if ENABLE_TONE_MAPPING
/* Hable's UC2 Tone mapping parameters
A = 0.22;
@@ -55,7 +50,7 @@ vec4 applyToneMapping(vec4 color)
const float gamma = 1.6;
const float exposureBias = 5.5;
color.rgb = uncharted2Tonemap(exposureBias * color.rgb);
- // Precalculated white_scale from
+ // Precalculated white_scale from
//vec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W));
vec3 whiteScale = vec3(1.036015346);
color.rgb *= whiteScale;
@@ -63,150 +58,26 @@ vec4 applyToneMapping(vec4 color)
}
#endif
-void get_texture_flags()
-{
- vec4 flags = texture2D(textureFlags, vec2(0.0, 0.0));
- if (flags.r > 0.5) {
- normalTexturePresent = true;
- }
-}
-
-float intensity(vec3 color)
-{
- return (color.r + color.g + color.b) / 3.0;
-}
-
-float get_rgb_height(vec2 uv)
-{
- return intensity(texture2D(baseTexture, uv).rgb);
-}
-
-vec4 get_normal_map(vec2 uv)
-{
- vec4 bump = texture2D(normalTexture, uv).rgba;
- bump.xyz = normalize(bump.xyz * 2.0 - 1.0);
- return bump;
-}
-
-float find_intersection(vec2 dp, vec2 ds)
-{
- float depth = 1.0;
- float best_depth = 0.0;
- float size = 0.0625;
- for (int i = 0; i < 15; i++) {
- depth -= size;
- float h = texture2D(normalTexture, dp + ds * depth).a;
- if (depth <= h) {
- best_depth = depth;
- break;
- }
- }
- depth = best_depth;
- for (int i = 0; i < 4; i++) {
- size *= 0.5;
- float h = texture2D(normalTexture,dp + ds * depth).a;
- if (depth <= h) {
- best_depth = depth;
- depth += size;
- } else {
- depth -= size;
- }
- }
- return best_depth;
-}
-
-float find_intersectionRGB(vec2 dp, vec2 ds)
-{
- const float depth_step = 1.0 / 24.0;
- float depth = 1.0;
- for (int i = 0 ; i < 24 ; i++) {
- float h = get_rgb_height(dp + ds * depth);
- if (h >= depth)
- break;
- depth -= depth_step;
- }
- return depth;
-}
-
void main(void)
{
vec3 color;
- vec4 bump;
- vec2 uv = gl_TexCoord[0].st;
- bool use_normalmap = false;
- get_texture_flags();
-
-#ifdef ENABLE_PARALLAX_OCCLUSION
- vec2 eyeRay = vec2 (tsEyeVec.x, -tsEyeVec.y);
- const float scale = PARALLAX_OCCLUSION_SCALE / PARALLAX_OCCLUSION_ITERATIONS;
- const float bias = PARALLAX_OCCLUSION_BIAS / PARALLAX_OCCLUSION_ITERATIONS;
+ vec2 uv = varTexCoord.st;
-#if PARALLAX_OCCLUSION_MODE == 0
- // Parallax occlusion with slope information
- if (normalTexturePresent && area_enable_parallax > 0.0) {
- for (int i = 0; i < PARALLAX_OCCLUSION_ITERATIONS; i++) {
- vec4 normal = texture2D(normalTexture, uv.xy);
- float h = normal.a * scale - bias;
- uv += h * normal.z * eyeRay;
- }
-#endif
-
-#if PARALLAX_OCCLUSION_MODE == 1
- // Relief mapping
- if (normalTexturePresent && area_enable_parallax > 0.0) {
- vec2 ds = eyeRay * PARALLAX_OCCLUSION_SCALE;
- float dist = find_intersection(uv, ds);
- uv += dist * ds;
-#endif
- } else if (GENERATE_NORMALMAPS == 1 && area_enable_parallax > 0.0) {
- vec2 ds = eyeRay * PARALLAX_OCCLUSION_SCALE;
- float dist = find_intersectionRGB(uv, ds);
- uv += dist * ds;
- }
-#endif
-
-#if USE_NORMALMAPS == 1
- if (normalTexturePresent) {
- bump = get_normal_map(uv);
- use_normalmap = true;
- }
-#endif
-
-#if GENERATE_NORMALMAPS == 1
- if (normalTexturePresent == false) {
- float tl = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y + SAMPLE_STEP));
- float t = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y - SAMPLE_STEP));
- float tr = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y + SAMPLE_STEP));
- float r = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y));
- float br = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y - SAMPLE_STEP));
- float b = get_rgb_height(vec2(uv.x, uv.y - SAMPLE_STEP));
- float bl = get_rgb_height(vec2(uv.x -SAMPLE_STEP, uv.y - SAMPLE_STEP));
- float l = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y));
- float dX = (tr + 2.0 * r + br) - (tl + 2.0 * l + bl);
- float dY = (bl + 2.0 * b + br) - (tl + 2.0 * t + tr);
- bump = vec4(normalize(vec3 (dX, dY, NORMALMAPS_STRENGTH)), 1.0);
- use_normalmap = true;
+ vec4 base = texture2D(baseTexture, uv).rgba;
+#ifdef USE_DISCARD
+ // If alpha is zero, we can just discard the pixel. This fixes transparency
+ // on GPUs like GC7000L, where GL_ALPHA_TEST is not implemented in mesa,
+ // and also on GLES 2, where GL_ALPHA_TEST is missing entirely.
+ if (base.a == 0.0) {
+ discard;
}
#endif
- vec4 base = texture2D(baseTexture, uv).rgba;
-#ifdef ENABLE_BUMPMAPPING
- if (use_normalmap) {
- vec3 L = normalize(lightVec);
- vec3 E = normalize(eyeVec);
- float specular = pow(clamp(dot(reflect(L, bump.xyz), E), 0.0, 1.0), 1.0);
- float diffuse = dot(-E,bump.xyz);
- color = (diffuse + 0.1 * specular) * base.rgb;
- } else {
- color = base.rgb;
- }
-#else
color = base.rgb;
-#endif
- vec4 col = vec4(color.rgb * gl_Color.rgb, 1.0);
-
-#ifdef ENABLE_TONE_MAPPING
+ vec4 col = vec4(color.rgb * varColor.rgb, 1.0);
+
+#if ENABLE_TONE_MAPPING
col = applyToneMapping(col);
#endif
diff --git a/client/shaders/nodes_shader/opengl_vertex.glsl b/client/shaders/nodes_shader/opengl_vertex.glsl
index 0d8d0a2a5..c68df4a8e 100644
--- a/client/shaders/nodes_shader/opengl_vertex.glsl
+++ b/client/shaders/nodes_shader/opengl_vertex.glsl
@@ -1,4 +1,3 @@
-uniform mat4 mWorldViewProj;
uniform mat4 mWorld;
// Color of the light emitted by the sun.
@@ -16,12 +15,16 @@ varying vec3 vPosition;
// cameraOffset + worldPosition (for large coordinates the limits of float
// precision must be considered).
varying vec3 worldPosition;
-
+varying lowp vec4 varColor;
+// The centroid keyword ensures that after interpolation the texture coordinates
+// lie within the same bounds when MSAA is en- and disabled.
+// This fixes the stripes problem with nearest-neighbour textures and MSAA.
+#ifdef GL_ES
+varying mediump vec2 varTexCoord;
+#else
+centroid varying vec2 varTexCoord;
+#endif
varying vec3 eyeVec;
-varying vec3 lightVec;
-varying vec3 tsEyeVec;
-varying vec3 tsLightVec;
-varying float area_enable_parallax;
// Color of the light emitted by the light sources.
const vec3 artificialLight = vec3(1.04, 1.04, 1.04);
@@ -85,25 +88,13 @@ float snoise(vec3 p)
void main(void)
{
- gl_TexCoord[0] = gl_MultiTexCoord0;
- //TODO: make offset depending on view angle and parallax uv displacement
- //thats for textures that doesnt align vertically, like dirt with grass
- //gl_TexCoord[0].y += 0.008;
-
- //Allow parallax/relief mapping only for certain kind of nodes
- //Variable is also used to control area of the effect
-#if (DRAW_TYPE == NDT_NORMAL || DRAW_TYPE == NDT_LIQUID || DRAW_TYPE == NDT_FLOWINGLIQUID)
- area_enable_parallax = 1.0;
-#else
- area_enable_parallax = 0.0;
-#endif
-
+ varTexCoord = inTexCoord0.st;
-float disp_x;
-float disp_z;
+ float disp_x;
+ float disp_z;
// OpenGL < 4.3 does not support continued preprocessor lines
#if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LEAVES && ENABLE_WAVING_LEAVES) || (MATERIAL_TYPE == TILE_MATERIAL_WAVING_PLANTS && ENABLE_WAVING_PLANTS)
- vec4 pos2 = mWorld * gl_Vertex;
+ vec4 pos2 = mWorld * inVertexPosition;
float tOffset = (pos2.x + pos2.y) * 0.001 + pos2.z * 0.002;
disp_x = (smoothTriangleWave(animationTimer * 23.0 + tOffset) +
smoothTriangleWave(animationTimer * 11.0 + tOffset)) * 0.4;
@@ -112,68 +103,43 @@ float disp_z;
smoothTriangleWave(animationTimer * 13.0 + tOffset)) * 0.5;
#endif
- worldPosition = (mWorld * gl_Vertex).xyz;
+ worldPosition = (mWorld * inVertexPosition).xyz;
// OpenGL < 4.3 does not support continued preprocessor lines
#if (MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT || MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_OPAQUE || MATERIAL_TYPE == TILE_MATERIAL_WAVING_LIQUID_BASIC) && ENABLE_WAVING_WATER
// Generate waves with Perlin-type noise.
// The constants are calibrated such that they roughly
// correspond to the old sine waves.
- vec4 pos = gl_Vertex;
+ vec4 pos = inVertexPosition;
vec3 wavePos = worldPosition + cameraOffset;
// The waves are slightly compressed along the z-axis to get
// wave-fronts along the x-axis.
- wavePos.x /= WATER_WAVE_LENGTH * 3;
- wavePos.z /= WATER_WAVE_LENGTH * 2;
- wavePos.z += animationTimer * WATER_WAVE_SPEED * 10;
- pos.y += (snoise(wavePos) - 1) * WATER_WAVE_HEIGHT * 5;
+ wavePos.x /= WATER_WAVE_LENGTH * 3.0;
+ wavePos.z /= WATER_WAVE_LENGTH * 2.0;
+ wavePos.z += animationTimer * WATER_WAVE_SPEED * 10.0;
+ pos.y += (snoise(wavePos) - 1.0) * WATER_WAVE_HEIGHT * 5.0;
gl_Position = mWorldViewProj * pos;
#elif MATERIAL_TYPE == TILE_MATERIAL_WAVING_LEAVES && ENABLE_WAVING_LEAVES
- vec4 pos = gl_Vertex;
+ vec4 pos = inVertexPosition;
pos.x += disp_x;
pos.y += disp_z * 0.1;
pos.z += disp_z;
gl_Position = mWorldViewProj * pos;
#elif MATERIAL_TYPE == TILE_MATERIAL_WAVING_PLANTS && ENABLE_WAVING_PLANTS
- vec4 pos = gl_Vertex;
- if (gl_TexCoord[0].y < 0.05) {
+ vec4 pos = inVertexPosition;
+ if (varTexCoord.y < 0.05) {
pos.x += disp_x;
pos.z += disp_z;
}
gl_Position = mWorldViewProj * pos;
#else
- gl_Position = mWorldViewProj * gl_Vertex;
+ gl_Position = mWorldViewProj * inVertexPosition;
#endif
vPosition = gl_Position.xyz;
- // Don't generate heightmaps when too far from the eye
- float dist = distance (vec3(0.0, 0.0, 0.0), vPosition);
- if (dist > 150.0) {
- area_enable_parallax = 0.0;
- }
-
- vec3 sunPosition = vec3 (0.0, eyePosition.y * BS + 900.0, 0.0);
-
- vec3 normal, tangent, binormal;
- normal = normalize(gl_NormalMatrix * gl_Normal);
- tangent = normalize(gl_NormalMatrix * gl_MultiTexCoord1.xyz);
- binormal = normalize(gl_NormalMatrix * gl_MultiTexCoord2.xyz);
-
- vec3 v;
-
- lightVec = sunPosition - worldPosition;
- v.x = dot(lightVec, tangent);
- v.y = dot(lightVec, binormal);
- v.z = dot(lightVec, normal);
- tsLightVec = normalize (v);
-
- eyeVec = -(gl_ModelViewMatrix * gl_Vertex).xyz;
- v.x = dot(eyeVec, tangent);
- v.y = dot(eyeVec, binormal);
- v.z = dot(eyeVec, normal);
- tsEyeVec = normalize (v);
+ eyeVec = -(mWorldView * inVertexPosition).xyz;
// Calculate color.
// Red, green and blue components are pre-multiplied with
@@ -182,16 +148,16 @@ float disp_z;
// The pre-baked colors are halved to prevent overflow.
vec4 color;
// The alpha gives the ratio of sunlight in the incoming light.
- float nightRatio = 1 - gl_Color.a;
- color.rgb = gl_Color.rgb * (gl_Color.a * dayLight.rgb +
- nightRatio * artificialLight.rgb) * 2;
- color.a = 1;
+ float nightRatio = 1.0 - inVertexColor.a;
+ color.rgb = inVertexColor.rgb * (inVertexColor.a * dayLight.rgb +
+ nightRatio * artificialLight.rgb) * 2.0;
+ color.a = 1.0;
// Emphase blue a bit in darker places
// See C++ implementation in mapblock_mesh.cpp final_color_blend()
- float brightness = (color.r + color.g + color.b) / 3;
+ float brightness = (color.r + color.g + color.b) / 3.0;
color.b += max(0.0, 0.021 - abs(0.2 * brightness - 0.021) +
0.07 * brightness);
- gl_FrontColor = gl_BackColor = clamp(color, 0.0, 1.0);
+ varColor = clamp(color, 0.0, 1.0);
}
diff --git a/client/shaders/object_shader/opengl_fragment.glsl b/client/shaders/object_shader/opengl_fragment.glsl
index 0534dc049..9a81d8185 100644
--- a/client/shaders/object_shader/opengl_fragment.glsl
+++ b/client/shaders/object_shader/opengl_fragment.glsl
@@ -1,6 +1,4 @@
uniform sampler2D baseTexture;
-uniform sampler2D normalTexture;
-uniform sampler2D textureFlags;
uniform vec4 emissiveColor;
uniform vec4 skyBgColor;
@@ -10,22 +8,22 @@ uniform vec3 eyePosition;
varying vec3 vNormal;
varying vec3 vPosition;
varying vec3 worldPosition;
+varying lowp vec4 varColor;
+#ifdef GL_ES
+varying mediump vec2 varTexCoord;
+#else
+centroid varying vec2 varTexCoord;
+#endif
varying vec3 eyeVec;
-varying vec3 lightVec;
varying float vIDiff;
-bool normalTexturePresent = false;
-bool texTileableHorizontal = false;
-bool texTileableVertical = false;
-bool texSeamless = false;
-
const float e = 2.718281828459;
const float BS = 10.0;
const float fogStart = FOG_START;
-const float fogShadingParameter = 1 / ( 1 - fogStart);
+const float fogShadingParameter = 1.0 / (1.0 - fogStart);
-#ifdef ENABLE_TONE_MAPPING
+#if ENABLE_TONE_MAPPING
/* Hable's UC2 Tone mapping parameters
A = 0.22;
@@ -49,7 +47,7 @@ vec4 applyToneMapping(vec4 color)
const float gamma = 1.6;
const float exposureBias = 5.5;
color.rgb = uncharted2Tonemap(exposureBias * color.rgb);
- // Precalculated white_scale from
+ // Precalculated white_scale from
//vec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W));
vec3 whiteScale = vec3(1.036015346);
color.rgb *= whiteScale;
@@ -57,99 +55,31 @@ vec4 applyToneMapping(vec4 color)
}
#endif
-void get_texture_flags()
-{
- vec4 flags = texture2D(textureFlags, vec2(0.0, 0.0));
- if (flags.r > 0.5) {
- normalTexturePresent = true;
- }
- if (flags.g > 0.5) {
- texTileableHorizontal = true;
- }
- if (flags.b > 0.5) {
- texTileableVertical = true;
- }
- if (texTileableHorizontal && texTileableVertical) {
- texSeamless = true;
- }
-}
-
-float intensity(vec3 color)
-{
- return (color.r + color.g + color.b) / 3.0;
-}
-
-float get_rgb_height(vec2 uv)
-{
- if (texSeamless) {
- return intensity(texture2D(baseTexture, uv).rgb);
- } else {
- return intensity(texture2D(baseTexture, clamp(uv, 0.0, 0.999)).rgb);
- }
-}
-
-vec4 get_normal_map(vec2 uv)
-{
- vec4 bump = texture2D(normalTexture, uv).rgba;
- bump.xyz = normalize(bump.xyz * 2.0 - 1.0);
- return bump;
-}
-
void main(void)
{
vec3 color;
- vec4 bump;
- vec2 uv = gl_TexCoord[0].st;
- bool use_normalmap = false;
- get_texture_flags();
-
-#if USE_NORMALMAPS == 1
- if (normalTexturePresent) {
- bump = get_normal_map(uv);
- use_normalmap = true;
- }
-#endif
-
-#if GENERATE_NORMALMAPS == 1
- if (normalTexturePresent == false) {
- float tl = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y + SAMPLE_STEP));
- float t = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y - SAMPLE_STEP));
- float tr = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y + SAMPLE_STEP));
- float r = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y));
- float br = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y - SAMPLE_STEP));
- float b = get_rgb_height(vec2(uv.x, uv.y - SAMPLE_STEP));
- float bl = get_rgb_height(vec2(uv.x -SAMPLE_STEP, uv.y - SAMPLE_STEP));
- float l = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y));
- float dX = (tr + 2.0 * r + br) - (tl + 2.0 * l + bl);
- float dY = (bl + 2.0 * b + br) - (tl + 2.0 * t + tr);
- bump = vec4(normalize(vec3 (dX, dY, NORMALMAPS_STRENGTH)), 1.0);
- use_normalmap = true;
- }
-#endif
+ vec2 uv = varTexCoord.st;
vec4 base = texture2D(baseTexture, uv).rgba;
-#ifdef ENABLE_BUMPMAPPING
- if (use_normalmap) {
- vec3 L = normalize(lightVec);
- vec3 E = normalize(eyeVec);
- float specular = pow(clamp(dot(reflect(L, bump.xyz), E), 0.0, 1.0), 1.0);
- float diffuse = dot(-E,bump.xyz);
- color = (diffuse + 0.1 * specular) * base.rgb;
- } else {
- color = base.rgb;
+#ifdef USE_DISCARD
+ // If alpha is zero, we can just discard the pixel. This fixes transparency
+ // on GPUs like GC7000L, where GL_ALPHA_TEST is not implemented in mesa,
+ // and also on GLES 2, where GL_ALPHA_TEST is missing entirely.
+ if (base.a == 0.0) {
+ discard;
}
-#else
- color = base.rgb;
#endif
+ color = base.rgb;
+
vec4 col = vec4(color.rgb, base.a);
- col.rgb *= gl_Color.rgb;
+ col.rgb *= varColor.rgb;
col.rgb *= emissiveColor.rgb * vIDiff;
-#ifdef ENABLE_TONE_MAPPING
+#if ENABLE_TONE_MAPPING
col = applyToneMapping(col);
#endif
diff --git a/client/shaders/object_shader/opengl_vertex.glsl b/client/shaders/object_shader/opengl_vertex.glsl
index 968a07e22..b4a4d0aaa 100644
--- a/client/shaders/object_shader/opengl_vertex.glsl
+++ b/client/shaders/object_shader/opengl_vertex.glsl
@@ -1,4 +1,3 @@
-uniform mat4 mWorldViewProj;
uniform mat4 mWorld;
uniform vec3 eyePosition;
@@ -7,9 +6,14 @@ uniform float animationTimer;
varying vec3 vNormal;
varying vec3 vPosition;
varying vec3 worldPosition;
+varying lowp vec4 varColor;
+#ifdef GL_ES
+varying mediump vec2 varTexCoord;
+#else
+centroid varying vec2 varTexCoord;
+#endif
varying vec3 eyeVec;
-varying vec3 lightVec;
varying float vIDiff;
const float e = 2.718281828459;
@@ -19,35 +23,31 @@ float directional_ambient(vec3 normal)
{
vec3 v = normal * normal;
- if (normal.y < 0)
- return dot(v, vec3(0.670820f, 0.447213f, 0.836660f));
+ if (normal.y < 0.0)
+ return dot(v, vec3(0.670820, 0.447213, 0.836660));
- return dot(v, vec3(0.670820f, 1.000000f, 0.836660f));
+ return dot(v, vec3(0.670820, 1.000000, 0.836660));
}
void main(void)
{
- gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
- gl_Position = mWorldViewProj * gl_Vertex;
+ varTexCoord = (mTexture * inTexCoord0).st;
+ gl_Position = mWorldViewProj * inVertexPosition;
vPosition = gl_Position.xyz;
- vNormal = gl_Normal;
- worldPosition = (mWorld * gl_Vertex).xyz;
-
- vec3 sunPosition = vec3 (0.0, eyePosition.y * BS + 900.0, 0.0);
-
- lightVec = sunPosition - worldPosition;
- eyeVec = -(gl_ModelViewMatrix * gl_Vertex).xyz;
+ vNormal = inVertexNormal;
+ worldPosition = (mWorld * inVertexPosition).xyz;
+ eyeVec = -(mWorldView * inVertexPosition).xyz;
#if (MATERIAL_TYPE == TILE_MATERIAL_PLAIN) || (MATERIAL_TYPE == TILE_MATERIAL_PLAIN_ALPHA)
vIDiff = 1.0;
#else
// This is intentional comparison with zero without any margin.
// If normal is not equal to zero exactly, then we assume it's a valid, just not normalized vector
- vIDiff = length(gl_Normal) == 0.0
+ vIDiff = length(inVertexNormal) == 0.0
? 1.0
- : directional_ambient(normalize(gl_Normal));
+ : directional_ambient(normalize(inVertexNormal));
#endif
- gl_FrontColor = gl_BackColor = gl_Color;
+ varColor = inVertexColor;
}
diff --git a/client/shaders/selection_shader/opengl_fragment.glsl b/client/shaders/selection_shader/opengl_fragment.glsl
index c679d0e12..35b1f8902 100644
--- a/client/shaders/selection_shader/opengl_fragment.glsl
+++ b/client/shaders/selection_shader/opengl_fragment.glsl
@@ -1,9 +1,12 @@
uniform sampler2D baseTexture;
+varying lowp vec4 varColor;
+varying mediump vec2 varTexCoord;
+
void main(void)
{
- vec2 uv = gl_TexCoord[0].st;
+ vec2 uv = varTexCoord.st;
vec4 color = texture2D(baseTexture, uv);
- color.rgb *= gl_Color.rgb;
+ color.rgb *= varColor.rgb;
gl_FragColor = color;
}
diff --git a/client/shaders/selection_shader/opengl_vertex.glsl b/client/shaders/selection_shader/opengl_vertex.glsl
index d0b16c8b0..9ca87a9cf 100644
--- a/client/shaders/selection_shader/opengl_vertex.glsl
+++ b/client/shaders/selection_shader/opengl_vertex.glsl
@@ -1,9 +1,10 @@
-uniform mat4 mWorldViewProj;
+varying lowp vec4 varColor;
+varying mediump vec2 varTexCoord;
void main(void)
{
- gl_TexCoord[0] = gl_MultiTexCoord0;
- gl_Position = mWorldViewProj * gl_Vertex;
+ varTexCoord = inTexCoord0.st;
+ gl_Position = mWorldViewProj * inVertexPosition;
- gl_FrontColor = gl_BackColor = gl_Color;
+ varColor = inVertexColor;
}
diff --git a/client/shaders/stars_shader/opengl_fragment.glsl b/client/shaders/stars_shader/opengl_fragment.glsl
new file mode 100644
index 000000000..a9ed741bf
--- /dev/null
+++ b/client/shaders/stars_shader/opengl_fragment.glsl
@@ -0,0 +1,6 @@
+uniform vec4 starColor;
+
+void main(void)
+{
+ gl_FragColor = starColor;
+}
diff --git a/client/shaders/stars_shader/opengl_vertex.glsl b/client/shaders/stars_shader/opengl_vertex.glsl
new file mode 100644
index 000000000..77c401f34
--- /dev/null
+++ b/client/shaders/stars_shader/opengl_vertex.glsl
@@ -0,0 +1,4 @@
+void main(void)
+{
+ gl_Position = mWorldViewProj * inVertexPosition;
+}
diff --git a/clientmods/preview/init.lua b/clientmods/preview/init.lua
index 089955d2f..977ed0ec3 100644
--- a/clientmods/preview/init.lua
+++ b/clientmods/preview/init.lua
@@ -109,6 +109,10 @@ core.register_on_sending_chat_message(function(message)
return false
end)
+core.register_on_chatcommand(function(command, params)
+ print("[PREVIEW] caught command '"..command.."'. Parameters: '"..params.."'")
+end)
+
-- This is an example function to ensure it's working properly, should be removed before merge
core.register_on_hp_modification(function(hp)
print("[PREVIEW] HP modified " .. hp)
diff --git a/doc/builtin_entities.txt b/doc/builtin_entities.txt
new file mode 100644
index 000000000..be3f73357
--- /dev/null
+++ b/doc/builtin_entities.txt
@@ -0,0 +1,101 @@
+# Builtin Entities
+Minetest registers two entities by default: Falling nodes and dropped items.
+This document describes how they behave and what you can do with them.
+
+## Falling node (`__builtin:falling_node`)
+
+This entity is created by `minetest.check_for_falling` in place of a node
+with the special group `falling_node=1`. Falling nodes can also be created
+artificially with `minetest.spawn_falling_node`.
+
+Needs manual initialization when spawned using `/spawnentity`.
+
+Default behaviour:
+
+* Falls down in a straight line (gravity = `movement_gravity` setting)
+* Collides with `walkable` node
+* Collides with all physical objects except players
+* If the node group `float=1` is set, it also collides with liquid nodes
+* When it hits a solid (=`walkable`) node, it will try to place itself as a
+ node, replacing the node above.
+ * If the falling node cannot replace the destination node, it is dropped.
+ * If the destination node is a leveled node (`paramtype2="leveled"`) of the
+ same node name, the levels of both are summed.
+
+### Entity fields
+
+* `set_node(self, node[, meta])`
+ * Function to initialize the falling node
+ * `node` and `meta` are explained below.
+ * The `meta` argument is optional.
+* `node`: Node table of the node (`name`, `param1`, `param2`) that this
+ entity represents. Read-only.
+* `meta`: Node metadata of the falling node. Will be used when the falling
+ nodes tries to place itself as a node. Read-only.
+
+### Rendering / supported nodes
+
+Falling nodes have visuals to look as close as possible to the original node.
+This works for most drawtypes, but there are limitations.
+
+Supported drawtypes:
+
+* `normal`
+* `signlike`
+* `torchlike`
+* `nodebox`
+* `raillike`
+* `glasslike`
+* `glasslike_framed`
+* `glasslike_framed_optional`
+* `allfaces`
+* `allfaces_optional`
+* `firelike`
+* `mesh`
+* `fencelike`
+* `liquid`
+* `airlike` (not pointable)
+
+Other drawtypes still kinda work, but they might look weird.
+
+Supported `paramtype2` values:
+
+* `wallmounted`
+* `facedir`
+* `colorwallmounted`
+* `colorfacedir`
+* `color`
+
+## Dropped item stack (`__builtin:item`)
+
+This is an item stack in a collectable form.
+
+Common cases that spawn a dropped item:
+
+* Item dropped by player
+* The root node of a node with the group `attached_node=1` is removed
+* `minetest.add_item` is called
+
+Needs manual initialization when spawned using `/spawnentity`.
+
+### Behavior
+
+* Players can collect it by punching
+* Lifespan is defined by the setting `item_entity_ttl`
+* Slides on `slippery` nodes
+* Subject to gravity (uses `movement_gravity` setting)
+* Collides with `walkable` nodes
+* Does not collide physical objects
+* When it's inside a solid (`walkable=true`) node, it tries to escape to a
+ neighboring non-solid (`walkable=false`) node
+
+### Entity fields
+
+* `set_item(self, item)`:
+ * Function to initialize the dropped item
+ * `item` (type `ItemStack`) specifies the item to represent
+* `age`: Age in seconds. Behaviour according to the setting `item_entity_ttl`
+* `itemstring`: Itemstring of the item that this item entity represents.
+ Read-only.
+
+Other fields are for internal use only.
diff --git a/doc/client_lua_api.txt b/doc/client_lua_api.txt
index c9cd8ac93..098596481 100644
--- a/doc/client_lua_api.txt
+++ b/doc/client_lua_api.txt
@@ -1,4 +1,4 @@
-Minetest Lua Client Modding API Reference 5.3.0
+Minetest Lua Client Modding API Reference 5.4.0
================================================
* More information at <http://www.minetest.net/>
* Developer Wiki: <http://dev.minetest.net/>
@@ -620,7 +620,7 @@ Helper functions
* `minetest.is_yes(arg)`
* returns whether `arg` can be interpreted as yes
* `minetest.is_nan(arg)`
- * returns true true when the passed number represents NaN.
+ * returns true when the passed number represents NaN.
* `table.copy(table)`: returns a table
* returns a deep copy of `table`
@@ -686,6 +686,11 @@ Call these functions only at load time!
* Adds definition to minetest.registered_chatcommands
* `minetest.unregister_chatcommand(name)`
* Unregisters a chatcommands registered with register_chatcommand.
+* `minetest.register_on_chatcommand(function(command, params))`
+ * Called always when a chatcommand is triggered, before `minetest.registered_chatcommands`
+ is checked to see if that the command exists, but after the input is parsed.
+ * Return `true` to mark the command as handled, which means that the default
+ handlers will be prevented.
* `minetest.register_on_death(function())`
* Called when the local player dies
* `minetest.register_on_hp_modification(function(hp))`
@@ -768,12 +773,15 @@ Call these functions only at load time!
* `nodenames`: e.g. `{"ignore", "group:tree"}` or `"default:dirt"`
* `search_center` is an optional boolean (default: `false`)
If true `pos` is also checked for the nodes
-* `minetest.find_nodes_in_area(pos1, pos2, nodenames)`: returns a list of
- positions.
+* `minetest.find_nodes_in_area(pos1, pos2, nodenames, [grouped])`
+ * `pos1` and `pos2` are the min and max positions of the area to search.
* `nodenames`: e.g. `{"ignore", "group:tree"}` or `"default:dirt"`
- * First return value: Table with all node positions
- * Second return value: Table with the count of each node with the node name
- as index.
+ * If `grouped` is true the return value is a table indexed by node name
+ which contains lists of positions.
+ * If `grouped` is false or absent the return values are as follows:
+ first value: Table with all node positions
+ second value: Table with the count of each node with the node name
+ as index
* Area volume is limited to 4,096,000 nodes
* `minetest.find_nodes_in_area_under_air(pos1, pos2, nodenames)`: returns a
list of positions.
@@ -993,6 +1001,7 @@ Please do not try to access the reference until the camera is initialized, other
### LocalPlayer
An interface to retrieve information about the player.
+This object will only be available after the client is initialized. Earlier accesses will yield a `nil` value.
Methods:
@@ -1097,8 +1106,8 @@ Methods:
aux1 = boolean,
sneak = boolean,
zoom = boolean,
- LMB = boolean,
- RMB = boolean,
+ dig = boolean,
+ place = boolean,
}
```
diff --git a/doc/lua_api.txt b/doc/lua_api.txt
index f2a83eca5..d3165b9fd 100644
--- a/doc/lua_api.txt
+++ b/doc/lua_api.txt
@@ -62,12 +62,12 @@ Where `<gameid>` is unique to each game.
The game directory can contain the following files:
* `game.conf`, with the following keys:
- * `name`: Required, human readable name e.g. `name = Minetest`
+ * `name`: Required, a human readable title to address the game, e.g. `name = Minetest`.
* `description`: Short description to be shown in the content tab
* `allowed_mapgens = <comma-separated mapgens>`
e.g. `allowed_mapgens = v5,v6,flat`
- Mapgens not in this list are removed from the list of mapgens for
- the game.
+ Mapgens not in this list are removed from the list of mapgens for the
+ game.
If not specified, all mapgens are allowed.
* `disallowed_mapgens = <comma-separated mapgens>`
e.g. `disallowed_mapgens = v5,v6,flat`
@@ -79,6 +79,10 @@ The game directory can contain the following files:
e.g. `disallowed_mapgen_settings = mgv5_spflags`
These settings are hidden for this game in the world creation
dialog and game start menu.
+ * `author`: The author of the game. It only appears when downloaded from
+ ContentDB.
+ * `release`: Ignore this: Should only ever be set by ContentDB, as it is
+ an internal ID used to track versions.
* `minetest.conf`:
Used to set default settings when running this game.
* `settingtypes.txt`:
@@ -134,9 +138,15 @@ Mods can be put in a subdirectory, if the parent directory, which otherwise
should be a mod, contains a file named `modpack.conf`.
The file is a key-value store of modpack details.
-* `name`: The modpack name.
+* `name`: The modpack name. Allows Minetest to determine the modpack name even
+ if the folder is wrongly named.
* `description`: Description of mod to be shown in the Mods tab of the main
menu.
+* `author`: The author of the modpack. It only appears when downloaded from
+ ContentDB.
+* `release`: Ignore this: Should only ever be set by ContentDB, as it is an
+ internal ID used to track versions.
+* `title`: A human-readable title to address the modpack.
Note: to support 0.4.x, please also create an empty modpack.txt file.
@@ -152,7 +162,12 @@ Mod directory structure
│   ├── models
│   ├── textures
│   │   ├── modname_stuff.png
- │   │   └── modname_something_else.png
+ │   │   ├── modname_stuff_normal.png
+ │   │   ├── modname_something_else.png
+ │   │   ├── subfolder_foo
+ │   │   │ ├── modname_more_stuff.png
+ │   │   │ └── another_subfolder
+ │   │   └── bar_subfolder
│   ├── sounds
│   ├── media
│   ├── locale
@@ -176,6 +191,11 @@ A `Settings` file that provides meta information about the mod.
loaded before this mod.
* `optional_depends`: A comma separated list of optional dependencies.
Like a dependency, but no error if the mod doesn't exist.
+* `author`: The author of the mod. It only appears when downloaded from
+ ContentDB.
+* `release`: Ignore this: Should only ever be set by ContentDB, as it is an
+ internal ID used to track versions.
+* `title`: A human-readable title to address the mod.
Note: to support 0.4.x, please also provide depends.txt.
@@ -221,18 +241,23 @@ registered callbacks.
`minetest.settings` can be used to read custom or existing settings at load
time, if necessary. (See [`Settings`])
-### `models`
-
-Models for entities or meshnodes.
-
-### `textures`, `sounds`, `media`
+### `textures`, `sounds`, `media`, `models`, `locale`
Media files (textures, sounds, whatever) that will be transferred to the
-client and will be available for use by the mod.
+client and will be available for use by the mod and translation files for
+the clients (see [Translations]).
+
+It is suggested to use the folders for the purpous they are thought for,
+eg. put textures into `textures`, translation files into `locale`,
+models for entities or meshnodes into `models` et cetera.
-### `locale`
+These folders and subfolders can contain subfolders.
+Subfolders with names starting with `_` or `.` are ignored.
+If a subfolder contains a media file with the same name as a media file
+in one of its parents, the parent's file is used.
-Translation files for the clients. (See [Translations])
+Although it is discouraged, a mod can overwrite a media file of any mod that it
+depends on by supplying a file with an equal name.
Naming conventions
------------------
@@ -378,11 +403,14 @@ stripping out the file extension:
* e.g. `foomod_foothing.png`
* e.g. `foomod_foothing`
+
Texture modifiers
-----------------
There are various texture modifiers that can be used
-to generate textures on-the-fly.
+to let the client generate textures on-the-fly.
+The modifiers are applied directly in sRGB colorspace,
+i.e. without gamma-correction.
### Texture overlaying
@@ -780,7 +808,7 @@ Example (colored grass block):
-- Overlay tiles: define them in the same style
-- The top and bottom tile does not have overlay
overlay_tiles = {"", "",
- {name = "default_grass_side.png", tileable_vertical = false}},
+ {name = "default_grass_side.png"}},
-- Global color, used in inventory
color = "green",
-- Palette in the world
@@ -989,7 +1017,9 @@ The function of `param2` is determined by `paramtype2` in node definition.
* `paramtype2 = "flowingliquid"`
* Used by `drawtype = "flowingliquid"` and `liquidtype = "flowing"`
* The liquid level and a flag of the liquid are stored in `param2`
- * Bits 0-2: Liquid level (0-7). The higher, the more liquid is in this node
+ * Bits 0-2: Liquid level (0-7). The higher, the more liquid is in this node;
+ see `minetest.get_node_level`, `minetest.set_node_level` and `minetest.add_node_level`
+ to access/manipulate the content of this field
* Bit 3: If set, liquid is flowing downwards (no graphical effect)
* `paramtype2 = "wallmounted"`
* Supported drawtypes: "torchlike", "signlike", "normal", "nodebox", "mesh"
@@ -1150,7 +1180,7 @@ Look for examples in `games/devtest` or `games/minetest_game`.
base cube without affecting them.
* The base cube texture tiles are defined as normal, the `plantlike`
extension uses the defined special tile, for example:
- `special_tiles = {{name = "default_papyrus.png", tileable_vertical = true}},`
+ `special_tiles = {{name = "default_papyrus.png"}},`
`*_optional` drawtypes need less rendering time if deactivated
(always client-side).
@@ -1220,6 +1250,9 @@ A box of a regular node would look like:
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
+To avoid collision issues, keep each value within the range of +/- 1.45.
+This also applies to leveled nodeboxes, where the final height shall not
+exceed this soft limit.
@@ -1414,7 +1447,32 @@ Same as `image`, but does not accept a `position`; the position is instead deter
* `world_pos`: World position of the waypoint.
* `offset`: offset in pixels from position.
+### `compass`
+
+Displays an image oriented or translated according to current heading direction.
+
+* `size`: The size of this element. Negative values represent percentage
+ of the screen; e.g. `x=-100` means 100% (width).
+* `scale`: Scale of the translated image (used only for dir = 2 or dir = 3).
+* `text`: The name of the texture to use.
+* `alignment`: The alignment of the image.
+* `offset`: Offset in pixels from position.
+* `dir`: How the image is rotated/translated:
+ * 0 - Rotate as heading direction
+ * 1 - Rotate in reverse direction
+ * 2 - Translate as landscape direction
+ * 3 - Translate in reverse direction
+
+If translation is chosen, texture is repeated horizontally to fill the whole element.
+### `minimap`
+
+Displays a minimap on the HUD.
+
+* `size`: Size of the minimap to display. Minimap should be a square to avoid
+ distortion.
+* `alignment`: The alignment of the minimap.
+* `offset`: offset in pixels from position.
Representations of simple things
================================
@@ -1690,8 +1748,9 @@ to games.
### `ObjectRef` groups
* `immortal`: Skips all damage and breath handling for an object. This group
- will also hide the integrated HUD status bars for players, and is
- automatically set to all players when damage is disabled on the server.
+ will also hide the integrated HUD status bars for players. It is
+ automatically set to all players when damage is disabled on the server and
+ cannot be reset (subject to change).
* `punch_operable`: For entities; disables the regular damage mechanism for
players punching it by hand or a non-tool item, so that it can do something
else than take damage.
@@ -1973,8 +2032,10 @@ Item metadata only contains a key-value store.
Some of the values in the key-value store are handled specially:
-* `description`: Set the item stack's description. Defaults to
- `idef.description`.
+* `description`: Set the item stack's description.
+ See also: `get_description` in [`ItemStack`]
+* `short_description`: Set the item stack's short description.
+ See also: `get_short_description` in [`ItemStack`]
* `color`: A `ColorString`, which sets the stack's color.
* `palette_index`: If the item has a palette, this is used to get the
current color from the palette.
@@ -2057,6 +2118,22 @@ Examples
list[current_player;craft;3,0;3,3;]
list[current_player;craftpreview;7,1;1,1;]
+Version History
+---------------
+
+* FORMSPEC VERSION 1:
+ * (too much)
+* FORMSPEC VERSION 2:
+ * Forced real coordinates
+ * background9[]: 9-slice scaling parameters
+* FORMSPEC VERSION 3:
+ * Formspec elements are drawn in the order of definition
+ * bgcolor[]: use 3 parameters (bgcolor, formspec (now an enum), fbgcolor)
+ * box[] and image[] elements enable clipping by default
+ * new element: scroll_container[]
+* FORMSPEC VERSION 4:
+ * Allow dropdown indexing events
+
Elements
--------
@@ -2068,6 +2145,7 @@ Elements
* Clients older than this version can neither show newer elements nor display
elements with new arguments correctly.
* Available since feature `formspec_version_element`.
+* See also: [Version History]
### `size[<W>,<H>,<fixed_size>]`
@@ -2152,7 +2230,8 @@ Elements
* Show an inventory list if it has been sent to the client. Nothing will
be shown if the inventory list is of size 0.
* **Note**: With the new coordinate system, the spacing between inventory
- slots is one-fourth the size of an inventory slot.
+ slots is one-fourth the size of an inventory slot by default. Also see
+ [Styling Formspecs] for changing the size of slots and spacing.
### `list[<inventory location>;<list name>;<X>,<Y>;<W>,<H>;<starting item index>]`
@@ -2220,6 +2299,21 @@ Elements
* `frame duration`: Milliseconds between each frame. `0` means the frames don't advance.
* `frame start` (Optional): The index of the frame to start on. Default `1`.
+### `model[<X>,<Y>;<W>,<H>;<name>;<mesh>;<textures>;<rotation X,Y>;<continuous>;<mouse control>;<frame loop range>]`
+
+* Show a mesh model.
+* `name`: Element name that can be used for styling
+* `mesh`: The mesh model to use.
+* `textures`: The mesh textures to use according to the mesh materials.
+ Texture names must be separated by commas.
+* `rotation {X,Y}` (Optional): Initial rotation of the camera.
+ The axes are euler angles in degrees.
+* `continuous` (Optional): Whether the rotation is continuous. Default `false`.
+* `mouse control` (Optional): Whether the model can be controlled with the mouse. Default `true`.
+* `frame loop range` (Optional): Range of the animation frames.
+ * Defaults to the full range of all available frames.
+ * Syntax: `<begin>,<end>`
+
### `item_image[<X>,<Y>;<W>,<H>;<item name>]`
* Show an inventory image of registered item/node
@@ -2442,8 +2536,10 @@ Elements
* Simple colored box
* `color` is color specified as a `ColorString`.
If the alpha component is left blank, the box will be semitransparent.
+ If the color is not specified, the box will use the options specified by
+ its style. If the color is specified, all styling options will be ignored.
-### `dropdown[<X>,<Y>;<W>;<name>;<item 1>,<item 2>, ...,<item n>;<selected idx>]`
+### `dropdown[<X>,<Y>;<W>;<name>;<item 1>,<item 2>, ...,<item n>;<selected idx>;<index event>]`
* Show a dropdown field
* **Important note**: There are two different operation modes:
@@ -2454,8 +2550,12 @@ Elements
* Fieldname data is transferred to Lua
* Items to be shown in dropdown
* Index of currently selected dropdown item
+* `index event` (optional, allowed parameter since formspec version 4): Specifies the
+ event field value for selected items.
+ * `true`: Selected item index
+ * `false` (default): Selected item value
-### `dropdown[<X>,<Y>;<W>,<H>;<name>;<item 1>,<item 2>, ...,<item n>;<selected idx>]`
+### `dropdown[<X>,<Y>;<W>,<H>;<name>;<item 1>,<item 2>, ...,<item n>;<selected idx>;<index event>]`
* Show a dropdown field
* **Important note**: This syntax for dropdowns can only be used with the
@@ -2468,6 +2568,10 @@ Elements
* Fieldname data is transferred to Lua
* Items to be shown in dropdown
* Index of currently selected dropdown item
+* `index event` (optional, allowed parameter since formspec version 4): Specifies the
+ event field value for selected items.
+ * `true`: Selected item index
+ * `false` (default): Selected item value
### `checkbox[<X>,<Y>;<name>;<label>;<selected>]`
@@ -2484,7 +2588,7 @@ Elements
* There are two ways to use it:
1. handle the changed event (only changed scrollbar is available)
2. read the value on pressing a button (all scrollbars are available)
-* `orientation`: `vertical`/`horizontal`
+* `orientation`: `vertical`/`horizontal`. Default horizontal.
* Fieldname data is transferred to Lua
* Value of this trackbar is set to (`0`-`1000`) by default
* See also `minetest.explode_scrollbar_event`
@@ -2598,6 +2702,28 @@ Elements
* All provided states must be active for the style to apply.
* See [Styling Formspecs].
+### `set_focus[<name>;<force>]`
+
+* Sets the focus to the element with the same `name` parameter.
+* **Note**: This element must be placed before the element it focuses.
+* `force` (optional, default `false`): By default, focus is not applied for
+ re-sent formspecs with the same name so that player-set focus is kept.
+ `true` sets the focus to the specified element for every sent formspec.
+* The following elements have the ability to be focused:
+ * checkbox
+ * button
+ * button_exit
+ * image_button
+ * image_button_exit
+ * item_image_button
+ * table
+ * textlist
+ * dropdown
+ * field
+ * pwdfield
+ * textarea
+ * scrollbar
+
Migrating to Real Coordinates
-----------------------------
@@ -2678,21 +2804,25 @@ Setting a property to nothing will reset it to the default value. For example:
Some types may inherit styles from parent types.
* animated_image, inherits from image
+* box
* button
* button_exit, inherits from button
* checkbox
-* scrollbar
-* table
-* textlist
* dropdown
* field
-* pwdfield, inherits from field
-* textarea
-* label
-* vertlabel, inherits from field
+* image
* image_button
* item_image_button
+* label
+* list
+* model
+* pwdfield, inherits from field
+* scrollbar
* tabheader
+* table
+* textarea
+* textlist
+* vertlabel, inherits from label
### Valid Properties
@@ -2701,7 +2831,18 @@ Some types may inherit styles from parent types.
* noclip - boolean, set to true to allow the element to exceed formspec bounds.
* box
* noclip - boolean, set to true to allow the element to exceed formspec bounds.
- * Default to false in formspec_version version 3 or higher
+ * Defaults to false in formspec_version version 3 or higher
+ * **Note**: `colors`, `bordercolors`, and `borderwidths` accept multiple input types:
+ * Single value (e.g. `#FF0`): All corners/borders.
+ * Two values (e.g. `red,#FFAAFF`): top-left and bottom-right,top-right and bottom-left/
+ top and bottom,left and right.
+ * Four values (e.g. `blue,#A0F,green,#FFFA`): top-left/top and rotates clockwise.
+ * These work similarly to CSS borders.
+ * colors - `ColorString`. Sets the color(s) of the box corners. Default `black`.
+ * bordercolors - `ColorString`. Sets the color(s) of the borders. Default `black`.
+ * borderwidths - Integer. Sets the width(s) of the borders in pixels. If the width is
+ negative, the border will extend inside the box, whereas positive extends outside
+ the box. A width of zero results in no border; this is default.
* button, button_exit, image_button, item_image_button
* alpha - boolean, whether to draw alpha in bgimg. Default true.
* bgcolor - color, sets button tint.
@@ -2717,31 +2858,54 @@ Some types may inherit styles from parent types.
button's content when set.
* bgimg_pressed - background image when pressed. Defaults to bgimg when not provided.
* This is deprecated, use states instead.
+ * font - Sets font type. This is a comma separated list of options. Valid options:
+ * Main font type options. These cannot be combined with each other:
+ * `normal`: Default font
+ * `mono`: Monospaced font
+ * Font modification options. If used without a main font type, `normal` is used:
+ * `bold`: Makes font bold.
+ * `italic`: Makes font italic.
+ Default `normal`.
+ * font_size - Sets font size. Default is user-set. Can have multiple values:
+ * `<number>`: Sets absolute font size to `number`.
+ * `+<number>`/`-<number>`: Offsets default font size by `number` points.
+ * `*<number>`: Multiplies default font size by `number`, similar to CSS `em`.
* border - boolean, draw border. Set to false to hide the bevelled button pane. Default true.
* content_offset - 2d vector, shifts the position of the button's content without resizing it.
* noclip - boolean, set to true to allow the element to exceed formspec bounds.
* padding - rect, adds space between the edges of the button and the content. This value is
relative to bgimg_middle.
+ * sound - a sound to be played when triggered.
* textcolor - color, default white.
* checkbox
* noclip - boolean, set to true to allow the element to exceed formspec bounds.
-* scrollbar
- * noclip - boolean, set to true to allow the element to exceed formspec bounds.
-* table, textlist
- * noclip - boolean, set to true to allow the element to exceed formspec bounds.
+ * sound - a sound to be played when triggered.
* dropdown
* noclip - boolean, set to true to allow the element to exceed formspec bounds.
+ * sound - a sound to be played when the entry is changed.
* field, pwdfield, textarea
* border - set to false to hide the textbox background and border. Default true.
+ * font - Sets font type. See button `font` property for more information.
+ * font_size - Sets font size. See button `font_size` property for more information.
* noclip - boolean, set to true to allow the element to exceed formspec bounds.
* textcolor - color. Default white.
+* model
+ * bgcolor - color, sets background color.
+ * noclip - boolean, set to true to allow the element to exceed formspec bounds.
+ * Default to false in formspec_version version 3 or higher
* image
* noclip - boolean, set to true to allow the element to exceed formspec bounds.
* Default to false in formspec_version version 3 or higher
* item_image
* noclip - boolean, set to true to allow the element to exceed formspec bounds. Default to false.
* label, vertlabel
+ * font - Sets font type. See button `font` property for more information.
+ * font_size - Sets font size. See button `font_size` property for more information.
+ * noclip - boolean, set to true to allow the element to exceed formspec bounds.
+* list
* noclip - boolean, set to true to allow the element to exceed formspec bounds.
+ * size - 2d vector, sets the size of inventory slots in coordinates.
+ * spacing - 2d vector, sets the space between inventory slots in coordinates.
* image_button (additional properties)
* fgimg - standard image. Defaults to none.
* fgimg_hovered - image when hovered. Defaults to fgimg when not provided.
@@ -2749,9 +2913,17 @@ Some types may inherit styles from parent types.
* fgimg_pressed - image when pressed. Defaults to fgimg when not provided.
* This is deprecated, use states instead.
* NOTE: The parameters of any given image_button will take precedence over fgimg/fgimg_pressed
+ * sound - a sound to be played when triggered.
+* scrollbar
+ * noclip - boolean, set to true to allow the element to exceed formspec bounds.
* tabheader
* noclip - boolean, set to true to allow the element to exceed formspec bounds.
+ * sound - a sound to be played when a different tab is selected.
* textcolor - color. Default white.
+* table, textlist
+ * font - Sets font type. See button `font` property for more information.
+ * font_size - Sets font size. See button `font_size` property for more information.
+ * noclip - boolean, set to true to allow the element to exceed formspec bounds.
### Valid States
@@ -2964,7 +3136,8 @@ Internally, it is implemented as a table with the 3 fields
`x`, `y` and `z`. Example: `{x = 0, y = 1, z = 0}`.
For the following functions, `v`, `v1`, `v2` are vectors,
-`p1`, `p2` are positions:
+`p1`, `p2` are positions,
+`s` is a scalar (a number):
* `vector.new(a[, b, c])`:
* Returns a vector.
@@ -2993,10 +3166,12 @@ For the following functions, `v`, `v1`, `v2` are vectors,
* Returns in order minp, maxp vectors of the cuboid defined by `v1`, `v2`.
* `vector.angle(v1, v2)`:
* Returns the angle between `v1` and `v2` in radians.
-* `vector.dot(v1, v2)`
- * Returns the dot product of `v1` and `v2`
-* `vector.cross(v1, v2)`
- * Returns the cross product of `v1` and `v2`
+* `vector.dot(v1, v2)`:
+ * Returns the dot product of `v1` and `v2`.
+* `vector.cross(v1, v2)`:
+ * Returns the cross product of `v1` and `v2`.
+* `vector.offset(v, x, y, z)`:
+ * Returns the sum of the vectors `v` and `{x = x, y = y, z = z}`.
For the following functions `x` can be either a vector or a number:
@@ -3008,10 +3183,12 @@ For the following functions `x` can be either a vector or a number:
* Returns a vector.
* If `x` is a vector: Returns the difference of `v` subtracted by `x`.
* If `x` is a number: Subtracts `x` from each component of `v`.
-* `vector.multiply(v, x)`:
- * Returns a scaled vector or Schur product.
-* `vector.divide(v, x)`:
- * Returns a scaled vector or Schur quotient.
+* `vector.multiply(v, s)`:
+ * Returns a scaled vector.
+ * Deprecated: If `s` is a vector: Returns the Schur product.
+* `vector.divide(v, s)`:
+ * Returns a scaled vector.
+ * Deprecated: If `s` is a vector: Returns the Schur quotient.
For the following functions `a` is an angle in radians and `r` is a rotation
vector ({x = <pitch>, y = <yaw>, z = <roll>}) where pitch, yaw and roll are
@@ -3091,6 +3268,7 @@ Helper functions
* returns true when the passed number represents NaN.
* `minetest.get_us_time()`
* returns time with microsecond precision. May not return wall time.
+ * This value might overflow on certain 32-bit systems!
* `table.copy(table)`: returns a table
* returns a deep copy of `table`
* `table.indexof(list, val)`: returns the smallest numerical index containing
@@ -3101,7 +3279,8 @@ Helper functions
* Appends all values in `other_table` to `table` - uses `#table + 1` to
find new indices.
* `table.key_value_swap(t)`: returns a table with keys and values swapped
- * If multiple keys in `t` map to the same value, the result is undefined.
+ * If multiple keys in `t` map to the same value, it is unspecified which
+ value maps to that key.
* `table.shuffle(table, [from], [to], [random_func])`:
* Shuffles elements `from` to `to` in `table` in place
* `from` defaults to `1`
@@ -4039,6 +4218,8 @@ Callbacks:
* Called when the object is instantiated.
* `dtime_s` is the time passed since the object was unloaded, which can be
used for updating the entity state.
+* `on_deactivate(self)
+ * Called when the object is about to get removed or unloaded.
* `on_step(self, dtime)`
* Called on every server tick, after movement and collision processing.
`dtime` is usually 0.1 seconds, as per the `dedicated_server_step` setting
@@ -4159,11 +4340,14 @@ Utilities
* `minetest.get_current_modname()`: returns the currently loading mod's name,
when loading a mod.
-* `minetest.get_modpath(modname)`: returns e.g.
- `"/home/user/.minetest/usermods/modname"`.
- * Useful for loading additional `.lua` modules or static data from mod
-* `minetest.get_modnames()`: returns a list of installed mods
- * Return a list of installed mods, sorted alphabetically
+* `minetest.get_modpath(modname)`: returns the directory path for a mod,
+ e.g. `"/home/user/.minetest/usermods/modname"`.
+ * Returns nil if the mod is not enabled or does not exist (not installed).
+ * Works regardless of whether the mod has been loaded yet.
+ * Useful for loading additional `.lua` modules or static data from a mod,
+ or checking if a mod is enabled.
+* `minetest.get_modnames()`: returns a list of enabled mods, sorted alphabetically.
+ * Does not include disabled mods, even if they are installed.
* `minetest.get_worldpath()`: returns e.g. `"/home/user/.minetest/world"`
* Useful for storing custom data
* `minetest.is_singleplayer()`
@@ -4204,6 +4388,10 @@ Utilities
pathfinder_works = true,
-- Whether Collision info is available to an objects' on_step (5.3.0)
object_step_has_moveresult = true,
+ -- Whether get_velocity() and add_velocity() can be used on players (5.4.0)
+ direct_velocity_on_players = true,
+ -- nodedef's use_texture_alpha accepts new string modes (5.4.0)
+ use_texture_alpha_string_modes = true,
}
* `minetest.has_feature(arg)`: returns `boolean, missing_features`
@@ -4412,6 +4600,10 @@ Call these functions only at load time!
the puncher to the punched.
* `damage`: Number that represents the damage calculated by the engine
* should return `true` to prevent the default damage mechanism
+* `minetest.register_on_rightclickplayer(function(player, clicker))`
+ * Called when a player is right-clicked
+ * `player`: ObjectRef - Player that was right-clicked
+ * `clicker`: ObjectRef - Object that right-clicked, may or may not be a player
* `minetest.register_on_player_hpchange(function(player, hp_change, reason), modifier)`
* Called when the player gets damaged or healed
* `player`: ObjectRef of the player
@@ -4470,6 +4662,11 @@ Call these functions only at load time!
* Called always when a player says something
* Return `true` to mark the message as handled, which means that it will
not be sent to other players.
+* `minetest.register_on_chatcommand(function(name, command, params))`
+ * Called always when a chatcommand is triggered, before `minetest.registered_chatcommands`
+ is checked to see if the command exists, but after the input is parsed.
+ * Return `true` to mark the command as handled, which means that the default
+ handlers will be prevented.
* `minetest.register_on_player_receive_fields(function(player, formname, fields))`
* Called when the server received input from `player` in a formspec with
the given `formname`. Specifically, this is called on any of the
@@ -4477,7 +4674,7 @@ Call these functions only at load time!
* a button was pressed,
* Enter was pressed while the focus was on a text field
* a checkbox was toggled,
- * something was selecteed in a drop-down list,
+ * something was selected in a dropdown list,
* a different tab was selected,
* selection was changed in a textlist or table,
* an entry was double-clicked in a textlist or table,
@@ -4491,7 +4688,8 @@ Call these functions only at load time!
* `button` and variants: If pressed, contains the user-facing button
text as value. If not pressed, is `nil`
* `field`, `textarea` and variants: Text in the field
- * `dropdown`: Text of selected item
+ * `dropdown`: Either the index or value, depending on the `index event`
+ dropdown argument.
* `tabheader`: Tab index, starting with `"1"` (only if tab changed)
* `checkbox`: `"true"` if checked, `"false"` if unchecked
* `textlist`: See `minetest.explode_textlist_event`
@@ -4671,6 +4869,22 @@ Environment access
* `pos`: The position where to measure the light.
* `timeofday`: `nil` for current time, `0` for night, `0.5` for day
* Returns a number between `0` and `15` or `nil`
+ * `nil` is returned e.g. when the map isn't loaded at `pos`
+* `minetest.get_natural_light(pos[, timeofday])`
+ * Figures out the sunlight (or moonlight) value at pos at the given time of
+ day.
+ * `pos`: The position of the node
+ * `timeofday`: `nil` for current time, `0` for night, `0.5` for day
+ * Returns a number between `0` and `15` or `nil`
+ * This function tests 203 nodes in the worst case, which happens very
+ unlikely
+* `minetest.get_artificial_light(param1)`
+ * Calculates the artificial light (light from e.g. torches) value from the
+ `param1` value.
+ * `param1`: The param1 value of a `paramtype = "light"` node.
+ * Returns a number between `0` and `15`
+ * Currently it's the same as `math.floor(param1 / 16)`, except that it
+ ensures compatibility.
* `minetest.place_node(pos, node)`
* Place node with the same effects that a player would cause
* `minetest.dig_node(pos)`
@@ -4699,6 +4913,9 @@ Environment access
* `minetest.get_objects_inside_radius(pos, radius)`: returns a list of
ObjectRefs.
* `radius`: using an euclidean metric
+* `minetest.get_objects_in_area(pos1, pos2)`: returns a list of
+ ObjectRefs.
+ * `pos1` and `pos2` are the min and max positions of the area to search.
* `minetest.set_timeofday(val)`
* `val` is between `0` and `1`; `0` for midnight, `0.5` for midday
* `minetest.get_timeofday()`
@@ -4713,12 +4930,15 @@ Environment access
* `nodenames`: e.g. `{"ignore", "group:tree"}` or `"default:dirt"`
* `search_center` is an optional boolean (default: `false`)
If true `pos` is also checked for the nodes
-* `minetest.find_nodes_in_area(pos1, pos2, nodenames)`: returns a list of
- positions.
+* `minetest.find_nodes_in_area(pos1, pos2, nodenames, [grouped])`
+ * `pos1` and `pos2` are the min and max positions of the area to search.
* `nodenames`: e.g. `{"ignore", "group:tree"}` or `"default:dirt"`
- * First return value: Table with all node positions
- * Second return value: Table with the count of each node with the node name
- as index.
+ * If `grouped` is true the return value is a table indexed by node name
+ which contains lists of positions.
+ * If `grouped` is false or absent the return values are as follows:
+ first value: Table with all node positions
+ second value: Table with the count of each node with the node name
+ as index
* Area volume is limited to 4,096,000 nodes
* `minetest.find_nodes_in_area_under_air(pos1, pos2, nodenames)`: returns a
list of positions.
@@ -5186,17 +5406,23 @@ Sounds
* `minetest.sound_fade(handle, step, gain)`
* `handle` is a handle returned by `minetest.sound_play`
* `step` determines how fast a sound will fade.
- Negative step will lower the sound volume, positive step will increase
- the sound volume.
+ The gain will change by this much per second,
+ until it reaches the target gain.
+ Note: Older versions used a signed step. This is deprecated, but old
+ code will still work. (the client uses abs(step) to correct it)
* `gain` the target gain for the fade.
+ Fading to zero will delete the sound.
Timing
------
-* `minetest.after(time, func, ...)`
+* `minetest.after(time, func, ...)` : returns job table to use as below.
* Call the function `func` after `time` seconds, may be fractional
* Optional: Variable number of arguments that are passed to `func`
+* `job:cancel()`
+ * Cancels the job function from being called
+
Server
------
@@ -5223,20 +5449,22 @@ Server
* Returns a code (0: successful, 1: no such player, 2: player is connected)
* `minetest.remove_player_auth(name)`: remove player authentication data
* Returns boolean indicating success (false if player nonexistant)
-* `minetest.dynamic_add_media(filepath)`
- * Adds the file at the given path to the media sent to clients by the server
- on startup and also pushes this file to already connected clients.
+* `minetest.dynamic_add_media(filepath, callback)`
+ * `filepath`: path to a media file on the filesystem
+ * `callback`: function with arguments `name`, where name is a player name
+ (previously there was no callback argument; omitting it is deprecated)
+ * Adds the file to the media sent to clients by the server on startup
+ and also pushes this file to already connected clients.
The file must be a supported image, sound or model format. It must not be
modified, deleted, moved or renamed after calling this function.
The list of dynamically added media is not persisted.
- * Returns boolean indicating success (duplicate files count as error)
- * The media will be ready to use (in e.g. entity textures, sound_play)
- immediately after calling this function.
+ * Returns false on error, true if the request was accepted
+ * The given callback will be called for every player as soon as the
+ media is available on the client.
Old clients that lack support for this feature will not see the media
- unless they reconnect to the server.
- * Since media transferred this way does not use client caching or HTTP
- transfers, dynamic media should not be used with big files or performance
- will suffer.
+ unless they reconnect to the server. (callback won't be called)
+ * Since media transferred this way currently does not use client caching
+ or HTTP transfers, dynamic media should not be used with big files.
Bans
----
@@ -5616,6 +5844,9 @@ Global tables
* Map of registered tool definitions, indexed by name
* `minetest.registered_entities`
* Map of registered entity prototypes, indexed by name
+ * Values in this table may be modified directly.
+ Note: changes to initial properties will only affect entities spawned afterwards,
+ as they are only read when spawning.
* `minetest.object_refs`
* Map of object references, indexed by active object id
* `minetest.luaentities`
@@ -5646,6 +5877,7 @@ Global tables
* Map of registered chat command definitions, indexed by name
* `minetest.registered_privileges`
* Map of registered privilege definitions, indexed by name
+ * Registered privileges can be modified directly in this table.
### Registered callback tables
@@ -5760,6 +5992,31 @@ An `InvRef` is a reference to an inventory.
`minetest.get_inventory(location)`.
* returns `{type="undefined"}` in case location is not known
+### Callbacks
+
+Detached & nodemeta inventories provide the following callbacks for move actions:
+
+#### Before
+
+The `allow_*` callbacks return how many items can be moved.
+
+* `allow_move`/`allow_metadata_inventory_move`: Moving items in the inventory
+* `allow_take`/`allow_metadata_inventory_take`: Taking items from the inventory
+* `allow_put`/`allow_metadata_inventory_put`: Putting items to the inventory
+
+#### After
+
+The `on_*` callbacks are called after the items have been placed in the inventories.
+
+* `on_move`/`on_metadata_inventory_move`: Moving items in the inventory
+* `on_take`/`on_metadata_inventory_take`: Taking items from the inventory
+* `on_put`/`on_metadata_inventory_put`: Putting items to the inventory
+
+#### Swapping
+
+When a player tries to put an item to a place where another item is, the items are *swapped*.
+This means that all callbacks will be called twice (once for each action).
+
`ItemStack`
-----------
@@ -5785,6 +6042,18 @@ an itemstring, a table or `nil`.
stack).
* `set_metadata(metadata)`: (DEPRECATED) Returns true.
* `get_description()`: returns the description shown in inventory list tooltips.
+ * The engine uses this when showing item descriptions in tooltips.
+ * Fields for finding the description, in order:
+ * `description` in item metadata (See [Item Metadata].)
+ * `description` in item definition
+ * item name
+* `get_short_description()`: returns the short description or nil.
+ * Unlike the description, this does not include new lines.
+ * Fields for finding the short description, in order:
+ * `short_description` in item metadata (See [Item Metadata].)
+ * `short_description` in item definition
+ * first line of the description (From item meta or def, see `get_description()`.)
+ * Returns nil if none of the above are set
* `clear()`: removes all items from the stack, making it empty.
* `replace(item)`: replace the contents of this stack.
* `item` can also be an itemstring or table.
@@ -5938,6 +6207,19 @@ object you are working with still exists.
* `get_pos()`: returns `{x=num, y=num, z=num}`
* `set_pos(pos)`: `pos`=`{x=num, y=num, z=num}`
+* `get_velocity()`: returns the velocity, a vector.
+* `add_velocity(vel)`
+ * `vel` is a vector, e.g. `{x=0.0, y=2.3, z=1.0}`
+ * In comparison to using get_velocity, adding the velocity and then using
+ set_velocity, add_velocity is supposed to avoid synchronization problems.
+ Additionally, players also do not support set_velocity.
+ * If a player:
+ * Does not apply during free_move.
+ * Note that since the player speed is normalized at each move step,
+ increasing e.g. Y velocity beyond what would usually be achieved
+ (see: physics overrides) will cause existing X/Z velocity to be reduced.
+ * Example: `add_velocity({x=0, y=6.5, z=0})` is equivalent to
+ pressing the jump key (assuming default settings)
* `move_to(pos, continuous=false)`
* Does an interpolated move for Lua entities for visually smooth transitions.
* If `continuous` is true, the Lua entity will not be moved to the current
@@ -5948,8 +6230,8 @@ object you are working with still exists.
* `time_from_last_punch` = time since last punch action of the puncher
* `direction`: can be `nil`
* `right_click(clicker)`; `clicker` is another `ObjectRef`
-* `get_hp()`: returns number of hitpoints (2 * number of hearts)
-* `set_hp(hp, reason)`: set number of hitpoints (2 * number of hearts).
+* `get_hp()`: returns number of health points
+* `set_hp(hp, reason)`: set number of health points
* See reason in register_on_player_hpchange
* Is limited to the range of 0 ... 65535 (2^16 - 1)
* For players: HP are also limited by `hp_max` specified in the player's
@@ -5972,17 +6254,22 @@ object you are working with still exists.
`frame_loop`.
* `set_animation_frame_speed(frame_speed)`
* `frame_speed`: number, default: `15.0`
-* `set_attach(parent, bone, position, rotation)`
- * `bone`: string
- * `position`: `{x=num, y=num, z=num}` (relative)
- * `rotation`: `{x=num, y=num, z=num}` = Rotation on each axis, in degrees
-* `get_attach()`: returns parent, bone, position, rotation or nil if it isn't
- attached.
+* `set_attach(parent[, bone, position, rotation, forced_visible])`
+ * `bone`: string. Default is `""`, the root bone
+ * `position`: `{x=num, y=num, z=num}`, relative, default `{x=0, y=0, z=0}`
+ * `rotation`: `{x=num, y=num, z=num}` = Rotation on each axis, in degrees.
+ Default `{x=0, y=0, z=0}`
+ * `forced_visible`: Boolean to control whether the attached entity
+ should appear in first person. Default `false`.
+* `get_attach()`: returns parent, bone, position, rotation, forced_visible,
+ or nil if it isn't attached.
+* `get_children()`: returns a list of ObjectRefs that are attached to the
+ object.
* `set_detach()`
-* `set_bone_position(bone, position, rotation)`
- * `bone`: string
- * `position`: `{x=num, y=num, z=num}` (relative)
- * `rotation`: `{x=num, y=num, z=num}`
+* `set_bone_position([bone, position, rotation])`
+ * `bone`: string. Default is `""`, the root bone
+ * `position`: `{x=num, y=num, z=num}`, relative, `default {x=0, y=0, z=0}`
+ * `rotation`: `{x=num, y=num, z=num}`, default `{x=0, y=0, z=0}`
* `get_bone_position(bone)`: returns position and rotation of the bone
* `set_properties(object property table)`
* `get_properties()`: returns object property table
@@ -5990,15 +6277,21 @@ object you are working with still exists.
* `get_nametag_attributes()`
* returns a table with the attributes of the nametag of an object
* {
- color = {a=0..255, r=0..255, g=0..255, b=0..255},
text = "",
+ color = {a=0..255, r=0..255, g=0..255, b=0..255},
+ bgcolor = {a=0..255, r=0..255, g=0..255, b=0..255},
}
* `set_nametag_attributes(attributes)`
* sets the attributes of the nametag of an object
* `attributes`:
{
- color = ColorSpec,
text = "My Nametag",
+ color = ColorSpec,
+ -- ^ Text color
+ bgcolor = ColorSpec or false,
+ -- ^ Sets background color of nametag
+ -- `false` will cause the background to be set automatically based on user settings
+ -- Default: false
}
#### Lua entity only (no-op for other objects)
@@ -6009,11 +6302,6 @@ object you are working with still exists.
no effect and returning `nil`.
* `set_velocity(vel)`
* `vel` is a vector, e.g. `{x=0.0, y=2.3, z=1.0}`
-* `add_velocity(vel)`
- * `vel` is a vector, e.g. `{x=0.0, y=2.3, z=1.0}`
- * In comparison to using get_velocity, adding the velocity and then using
- set_velocity, add_velocity is supposed to avoid synchronization problems.
-* `get_velocity()`: returns the velocity, a vector
* `set_acceleration(acc)`
* `acc` is a vector
* `get_acceleration()`: returns the acceleration, a vector
@@ -6021,35 +6309,37 @@ object you are working with still exists.
* `rot` is a vector (radians). X is pitch (elevation), Y is yaw (heading)
and Z is roll (bank).
* `get_rotation()`: returns the rotation, a vector (radians)
-* `set_yaw(radians)`: sets the yaw (heading).
+* `set_yaw(yaw)`: sets the yaw in radians (heading).
* `get_yaw()`: returns number in radians
* `set_texture_mod(mod)`
+ * Set a texture modifier to the base texture, for sprites and meshes.
+ * When calling `set_texture_mod` again, the previous one is discarded.
+ * `mod` the texture modifier. See [Texture modifiers].
* `get_texture_mod()` returns current texture modifier
-* `set_sprite(p, num_frames, framelength, select_horiz_by_yawpitch)`
- * Select sprite from spritesheet with optional animation and Dungeon Master
- style texture selection based on yaw relative to camera
- * `p`: {x=number, y=number}, the coordinate of the first frame
- (x: column, y: row), default: `{x=0, y=0}`
- * `num_frames`: number, default: `1`
- * `framelength`: number, default: `0.2`
- * `select_horiz_by_yawpitch`: boolean, this was once used for the Dungeon
- Master mob, default: `false`
+* `set_sprite(start_frame, num_frames, framelength, select_x_by_camera)`
+ * Specifies and starts a sprite animation
+ * Animations iterate along the frame `y` position.
+ * `start_frame`: {x=column number, y=row number}, the coordinate of the
+ first frame, default: `{x=0, y=0}`
+ * `num_frames`: Total frames in the texture, default: `1`
+ * `framelength`: Time per animated frame in seconds, default: `0.2`
+ * `select_x_by_camera`: Only for visual = `sprite`. Changes the frame `x`
+ position according to the view direction. default: `false`.
+ * First column: subject facing the camera
+ * Second column: subject looking to the left
+ * Third column: subject backing the camera
+ * Fourth column: subject looking to the right
+ * Fifth column: subject viewed from above
+ * Sixth column: subject viewed from below
* `get_entity_name()` (**Deprecated**: Will be removed in a future version)
* `get_luaentity()`
#### Player only (no-op for other objects)
* `get_player_name()`: returns `""` if is not a player
-* `get_player_velocity()`: returns `nil` if is not a player, otherwise a
+* `get_player_velocity()`: **DEPRECATED**, use get_velocity() instead.
table {x, y, z} representing the player's instantaneous velocity in nodes/s
-* `add_player_velocity(vel)`
- * Adds to player velocity, this happens client-side and only once.
- * Does not apply during free_move.
- * Note that since the player speed is normalized at each move step,
- increasing e.g. Y velocity beyond what would usually be achieved
- (see: physics overrides) will cause existing X/Z velocity to be reduced.
- * Example: `add_player_velocity({x=0, y=6.5, z=0})` is equivalent to
- pressing the jump key (assuming default settings)
+* `add_player_velocity(vel)`: **DEPRECATED**, use add_velocity(vel) instead.
* `get_look_dir()`: get camera direction as a unit vector
* `get_look_vertical()`: pitch in radians
* Angle ranges between -pi/2 and pi/2, which are straight up and down
@@ -6111,15 +6401,23 @@ object you are working with still exists.
* Only affects formspecs shown after this is called.
* `get_formspec_prepend(formspec)`: returns a formspec string.
* `get_player_control()`: returns table with player pressed keys
- * The table consists of fields with boolean value representing the pressed
- keys, the fields are jump, right, left, LMB, RMB, sneak, aux1, down, up, zoom.
- * example: `{jump=false, right=true, left=false, LMB=false, RMB=false,
- sneak=true, aux1=false, down=false, up=false, zoom=false}`
- * The `zoom` field is available since 5.3
+ * The table consists of fields with the following boolean values
+ representing the pressed keys: `up`, `down`, `left`, `right`, `jump`,
+ `aux1`, `sneak`, `dig`, `place`, `LMB`, `RMB`, and `zoom`.
+ * The fields `LMB` and `RMB` are equal to `dig` and `place` respectively,
+ and exist only to preserve backwards compatibility.
* `get_player_control_bits()`: returns integer with bit packed player pressed
- keys.
- * bit nr/meaning: 0/up, 1/down, 2/left, 3/right, 4/jump, 5/aux1, 6/sneak,
- 7/LMB, 8/RMB, 9/zoom (zoom available since 5.3)
+ keys. Bits:
+ * 0 - up
+ * 1 - down
+ * 2 - left
+ * 3 - right
+ * 4 - jump
+ * 5 - aux1
+ * 6 - sneak
+ * 7 - dig
+ * 8 - place
+ * 9 - zoom
* `set_physics_override(override_table)`
* `override_table` is a table with the following fields:
* `speed`: multiplier to default walking speed value (default: `1`)
@@ -6164,8 +6462,31 @@ object you are working with still exists.
* `hud_set_hotbar_selected_image(texturename)`
* sets image for selected item of hotbar
* `hud_get_hotbar_selected_image`: returns texturename
-* `set_sky(parameters)`
- * `parameters` is a table with the following optional fields:
+* `set_minimap_modes({mode, mode, ...}, selected_mode)`
+ * Overrides the available minimap modes (and toggle order), and changes the
+ selected mode.
+ * `mode` is a table consisting of up to four fields:
+ * `type`: Available type:
+ * `off`: Minimap off
+ * `surface`: Minimap in surface mode
+ * `radar`: Minimap in radar mode
+ * `texture`: Texture to be displayed instead of terrain map
+ (texture is centered around 0,0 and can be scaled).
+ Texture size is limited to 512 x 512 pixel.
+ * `label`: Optional label to display on minimap mode toggle
+ The translation must be handled within the mod.
+ * `size`: Sidelength or diameter, in number of nodes, of the terrain
+ displayed in minimap
+ * `texture`: Only for texture type, name of the texture to display
+ * `scale`: Only for texture type, scale of the texture map in nodes per
+ pixel (for example a `scale` of 2 means each pixel represents a 2x2
+ nodes square)
+ * `selected_mode` is the mode index to be selected after modes have been changed
+ (0 is the first mode).
+* `set_sky(sky_parameters)`
+ * The presence of the function `set_sun`, `set_moon` or `set_stars` indicates
+ whether `set_sky` accepts this format. Check the legacy format otherwise.
+ * `sky_parameters` is a table with the following optional fields:
* `base_color`: ColorSpec, changes fog in "skybox" and "plain".
* `type`: Available types:
* `"regular"`: Uses 0 textures, `base_color` ignored
@@ -6206,11 +6527,20 @@ object you are working with still exists.
abides by, `"custom"` uses `sun_tint` and `moon_tint`, while
`"default"` uses the classic Minetest sun and moon tinting.
Will use tonemaps, if set to `"default"`. (default: `"default"`)
+* `set_sky(base_color, type, {texture names}, clouds)`
+ * Deprecated. Use `set_sky(sky_parameters)`
+ * `base_color`: ColorSpec, defaults to white
+ * `type`: Available types:
+ * `"regular"`: Uses 0 textures, `bgcolor` ignored
+ * `"skybox"`: Uses 6 textures, `bgcolor` used
+ * `"plain"`: Uses 0 textures, `bgcolor` used
+ * `clouds`: Boolean for whether clouds appear in front of `"skybox"` or
+ `"plain"` custom skyboxes (default: `true`)
* `get_sky()`: returns base_color, type, table of textures, clouds.
* `get_sky_color()`: returns a table with the `sky_color` parameters as in
`set_sky`.
-* `set_sun(parameters)`:
- * `parameters` is a table with the following optional fields:
+* `set_sun(sun_parameters)`:
+ * `sun_parameters` is a table with the following optional fields:
* `visible`: Boolean for whether the sun is visible.
(default: `true`)
* `texture`: A regular texture for the sun. Setting to `""`
@@ -6224,8 +6554,8 @@ object you are working with still exists.
* `scale`: Float controlling the overall size of the sun. (default: `1`)
* `get_sun()`: returns a table with the current sun parameters as in
`set_sun`.
-* `set_moon(parameters)`:
- * `parameters` is a table with the following optional fields:
+* `set_moon(moon_parameters)`:
+ * `moon_parameters` is a table with the following optional fields:
* `visible`: Boolean for whether the moon is visible.
(default: `true`)
* `texture`: A regular texture for the moon. Setting to `""`
@@ -6235,8 +6565,8 @@ object you are working with still exists.
* `scale`: Float controlling the overall size of the moon (default: `1`)
* `get_moon()`: returns a table with the current moon parameters as in
`set_moon`.
-* `set_stars(parameters)`:
- * `parameters` is a table with the following optional fields:
+* `set_stars(star_parameters)`:
+ * `star_parameters` is a table with the following optional fields:
* `visible`: Boolean for whether the stars are visible.
(default: `true`)
* `count`: Integer number to set the number of stars in
@@ -6248,8 +6578,8 @@ object you are working with still exists.
* `scale`: Float controlling the overall size of the stars (default: `1`)
* `get_stars()`: returns a table with the current stars parameters as in
`set_stars`.
-* `set_clouds(parameters)`: set cloud parameters
- * `parameters` is a table with the following optional fields:
+* `set_clouds(cloud_parameters)`: set cloud parameters
+ * `cloud_parameters` is a table with the following optional fields:
* `density`: from `0` (no clouds) to `1` (full clouds) (default `0.4`)
* `color`: basic cloud color with alpha channel, ColorSpec
(default `#fff0f0e5`).
@@ -6267,21 +6597,17 @@ object you are working with still exists.
amount.
* `nil`: Disables override, defaulting to sunlight based on day-night cycle
* `get_day_night_ratio()`: returns the ratio or nil if it isn't overridden
-* `set_local_animation(stand/idle, walk, dig, walk+dig, frame_speed=frame_speed)`:
- set animation for player model in third person view
-
- set_local_animation({x=0, y=79}, -- stand/idle animation key frames
- {x=168, y=187}, -- walk animation key frames
- {x=189, y=198}, -- dig animation key frames
- {x=200, y=219}, -- walk+dig animation key frames
- frame_speed=30) -- animation frame speed
-* `get_local_animation()`: returns stand, walk, dig, dig+walk tables and
+* `set_local_animation(idle, walk, dig, walk_while_dig, frame_speed)`:
+ set animation for player model in third person view.
+ * Every animation equals to a `{x=starting frame, y=ending frame}` table.
+ * `frame_speed` sets the animations frame speed. Default is 30.
+* `get_local_animation()`: returns idle, walk, dig, walk_while_dig tables and
`frame_speed`.
-* `set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0})`: defines offset value for
- camera per player.
+* `set_eye_offset([firstperson, thirdperson])`: defines offset vectors for
+ camera per player. An argument defaults to `{x=0, y=0, z=0}` if unspecified.
* in first person view
* in third person view (max. values `{x=-10/10,y=-10,15,z=-5/5}`)
-* `get_eye_offset()`: returns `offset_first` and `offset_third`
+* `get_eye_offset()`: returns first and third person offsets.
* `send_mapblock(blockpos)`:
* Sends a server-side loaded mapblock to the player.
* Returns `false` if failed.
@@ -6634,10 +6960,18 @@ Player properties need to be saved manually.
-- in mods.
nametag = "",
- -- By default empty, for players their name is shown if empty
+ -- The name to display on the head of the object. By default empty.
+ -- If the object is a player, a nil or empty nametag is replaced by the player's name.
+ -- For all other objects, a nil or empty string removes the nametag.
+ -- To hide a nametag, set its color alpha to zero. That will disable it entirely.
nametag_color = <ColorSpec>,
- -- Sets color of nametag
+ -- Sets text color of nametag
+
+ nametag_bgcolor = <ColorSpec>,
+ -- Sets background color of nametag
+ -- `false` will cause the background to be set automatically based on user settings.
+ -- Default: false
infotext = "",
-- By default empty, text to be shown when pointed at object
@@ -6653,6 +6987,10 @@ Player properties need to be saved manually.
shaded = true,
-- Setting this to 'false' disables diffuse lighting of entity
+
+ show_on_minimap = false,
+ -- Defaults to true for players, false for other entities.
+ -- If set to true the entity will show as a marker on the minimap.
}
Entity definition
@@ -6787,13 +7125,8 @@ Tile definition
* `"image.png"`
* `{name="image.png", animation={Tile Animation definition}}`
-* `{name="image.png", backface_culling=bool, tileable_vertical=bool,
- tileable_horizontal=bool, align_style="node"/"world"/"user", scale=int}`
+* `{name="image.png", backface_culling=bool, align_style="node"/"world"/"user", scale=int}`
* backface culling enabled by default for most nodes
- * tileable flags are info for shaders, how they should treat texture
- when displacement mapping is used.
- Directions are from the point of view of the tile texture,
- not the node it's on.
* align style determines whether the texture will be rotated with the node
or kept aligned with its surroundings. "user" means that client
setting will be used, similar to `glasslike_framed_optional`.
@@ -6846,6 +7179,14 @@ Used by `minetest.register_node`, `minetest.register_craftitem`, and
{
description = "Steel Axe",
+ -- Can contain new lines. "\n" has to be used as new line character.
+ -- See also: `get_description` in [`ItemStack`]
+
+ short_description = "Steel Axe",
+ -- Must not contain new lines.
+ -- Defaults to nil.
+ -- Use an [`ItemStack`] to get the short description, eg:
+ -- ItemStack(itemname):get_short_description()
groups = {},
-- key = name, value = rating; rating = 1..3.
@@ -6884,6 +7225,13 @@ Used by `minetest.register_node`, `minetest.register_craftitem`, and
liquids_pointable = false,
+ light_source = 0,
+ -- When used for nodes: Defines amount of light emitted by node.
+ -- Otherwise: Defines texture glow when viewed as a dropped item
+ -- To set the maximum (14), use the value 'minetest.LIGHT_MAX'.
+ -- A value outside the range 0 to minetest.LIGHT_MAX causes undefined
+ -- behavior.
+
-- See "Tools" section for an example including explanation
tool_capabilities = {
full_punch_interval = 1.0,
@@ -7011,8 +7359,18 @@ Used by `minetest.register_node`.
-- If the node has a palette, then this setting only has an effect in
-- the inventory and on the wield item.
- use_texture_alpha = false,
- -- Use texture's alpha channel
+ use_texture_alpha = ...,
+ -- Specifies how the texture's alpha channel will be used for rendering.
+ -- possible values:
+ -- * "opaque": Node is rendered opaque regardless of alpha channel
+ -- * "clip": A given pixel is either fully see-through or opaque
+ -- depending on the alpha channel being below/above 50% in value
+ -- * "blend": The alpha channel specifies how transparent a given pixel
+ -- of the rendered node is
+ -- The default is "opaque" for drawtypes normal, liquid and flowingliquid;
+ -- "clip" otherwise.
+ -- If set to a boolean value (deprecated): true either sets it to blend
+ -- or clip, false sets it to clip or opaque mode depending on the drawtype.
palette = "palette.png",
-- The node's `param2` is used to select a pixel from the image.
@@ -7075,18 +7433,13 @@ Used by `minetest.register_node`.
leveled_max = 127,
-- Maximum value for `leveled` (0-127), enforced in
-- `minetest.set_node_level` and `minetest.add_node_level`.
+ -- Values above 124 might causes collision detection issues.
liquid_range = 8, -- Number of flowing nodes around source (max. 8)
drowning = 0,
-- Player will take this amount of damage if no bubbles are left
- light_source = 0,
- -- Amount of light emitted by node.
- -- To set the maximum (14), use the value 'minetest.LIGHT_MAX'.
- -- A value outside the range 0 to minetest.LIGHT_MAX causes undefined
- -- behavior.
-
damage_per_second = 0,
-- If player is inside node, this damage is caused
@@ -7108,6 +7461,7 @@ Used by `minetest.register_node`.
type = "fixed",
fixed = {
{-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16},
+ -- Node box format: see [Node boxes]
},
},
-- Custom selection box definition. Multiple boxes can be defined.
@@ -7118,13 +7472,12 @@ Used by `minetest.register_node`.
type = "fixed",
fixed = {
{-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16},
+ -- Node box format: see [Node boxes]
},
},
-- Custom collision box definition. Multiple boxes can be defined.
-- If "nodebox" drawtype is used and collision_box is nil, then node_box
-- definition is used for the collision box.
- -- Both of the boxes above are defined as:
- -- {xmin, ymin, zmin, xmax, ymax, zmax} in nodes from node center.
-- Support maps made in and before January 2012
legacy_facedir_simple = false,
@@ -7165,10 +7518,13 @@ Used by `minetest.register_node`.
-- Node was placed. Also played after falling
place_failed = <SimpleSoundSpec>,
- -- When node placement failed
+ -- When node placement failed.
+ -- Note: This happens if the _built-in_ node placement failed.
+ -- This sound will still be played if the node is placed in the
+ -- `on_place` callback manually.
fall = <SimpleSoundSpec>,
- -- When node starts to fall
+ -- When node starts to fall or is detached
},
drop = "",
@@ -7289,6 +7645,8 @@ Used by `minetest.register_node`.
on_dig = function(pos, node, digger),
-- default: minetest.node_dig
-- By default checks privileges, wears out tool and removes node.
+ -- return true if the node was dug successfully, false otherwise.
+ -- Deprecated: returning nil is the same as returning true.
on_timer = function(pos, elapsed),
-- default: nil
@@ -7328,6 +7686,13 @@ Used by `minetest.register_node`.
-- intensity: 1.0 = mid range of regular TNT.
-- If defined, called when an explosion touches the node, instead of
-- removing the node.
+
+ mod_origin = "modname",
+ -- stores which mod actually registered a node
+ -- if it can not find a source, returns "??"
+ -- useful for getting what mod truly registered something
+ -- example: if a node is registered as ":othermodname:nodename",
+ -- nodename will show "othermodname", but mod_orgin will say "modname"
}
Crafting recipes
@@ -7755,6 +8120,8 @@ Used by `minetest.register_chatcommand`.
func = function(name, param),
-- Called when command is run. Returns boolean success and text output.
+ -- Special case: The help message is shown to the player if `func`
+ -- returns false without a text output.
}
Note that in params, use of symbols is as follows:
@@ -7837,7 +8204,8 @@ Used by `Player:hud_add`. Returned by `Player:hud_get`.
{
hud_elem_type = "image", -- See HUD element types
- -- Type of element, can be "image", "text", "statbar", or "inventory"
+ -- Type of element, can be "image", "text", "statbar", "inventory",
+ -- "compass" or "minimap"
position = {x=0.5, y=0.5},
-- Left corner position of element
@@ -8016,11 +8384,13 @@ Used by `HTTPApiTable.fetch` and `HTTPApiTable.fetch_async`.
timeout = 10,
-- Timeout for connection in seconds. Default is 3 seconds.
- post_data = "Raw POST request data string" OR {field1 = "data1", field2 = "data2"},
- -- Optional, if specified a POST request with post_data is performed.
+ method = "GET", "POST", "PUT" or "DELETE"
+ -- The http method to use. Defaults to "GET".
+
+ data = "Raw request data string" OR {field1 = "data1", field2 = "data2"},
+ -- Data for the POST, PUT or DELETE request.
-- Accepts both a string and a table. If a table is specified, encodes
-- table as x-www-form-urlencoded key-value pairs.
- -- If post_data is not specified, a GET request is performed instead.
user_agent = "ExampleUserAgent",
-- Optional, if specified replaces the default minetest user agent with
@@ -8034,6 +8404,10 @@ Used by `HTTPApiTable.fetch` and `HTTPApiTable.fetch_async`.
multipart = boolean
-- Optional, if true performs a multipart HTTP request.
-- Default is false.
+ -- Post only, data must be array
+
+ post_data = "Raw POST request data string" OR {field1 = "data1", field2 = "data2"},
+ -- Deprecated, use `data` instead. Forces `method = "POST"`.
}
`HTTPRequestResult` definition
diff --git a/doc/menu_lua_api.txt b/doc/menu_lua_api.txt
index 724e37855..b3975bc1d 100644
--- a/doc/menu_lua_api.txt
+++ b/doc/menu_lua_api.txt
@@ -1,4 +1,4 @@
-Minetest Lua Mainmenu API Reference 5.3.0
+Minetest Lua Mainmenu API Reference 5.4.0
=========================================
Introduction
@@ -43,10 +43,14 @@ core.get_max_supp_proto()
core.open_url(url)
^ opens the URL in a web browser, returns false on failure.
^ Must begin with http:// or https://
+core.open_dir(path)
+^ opens the path in the system file browser/explorer, returns false on failure.
+^ Must be an existing directory.
core.get_version() (possible in async calls)
^ returns current core version
+
Filesystem
----------
@@ -63,6 +67,8 @@ core.copy_dir(source,destination,keep_soure) (possible in async calls)
^ destination folder
^ keep_source DEFAULT true --> if set to false source is deleted after copying
^ returns true/false
+core.is_dir(path) (possible in async calls)
+^ returns true if path is a valid dir
core.extract_zip(zipfile,destination) [unzip within path required]
^ zipfile to extract
^ destination folder to extract to
@@ -79,6 +85,7 @@ core.get_video_drivers()
core.get_mapgen_names([include_hidden=false]) -> table of map generator algorithms
registered in the core (possible in async calls)
core.get_cache_path() -> path of cache
+core.get_temp_path() -> path of temp folder
HTTP Requests
@@ -207,6 +214,9 @@ Content and Packages
Content - an installed mod, modpack, game, or texture pack (txt)
Package - content which is downloadable from the content db, may or may not be installed.
+* core.get_user_path() (possible in async calls)
+ * returns path to global user data,
+ the directory that contains user-provided mods, worlds, games, and texture packs.
* core.get_modpath() (possible in async calls)
* returns path to global modpath
* core.get_clientmodpath() (possible in async calls)
@@ -244,32 +254,6 @@ Package - content which is downloadable from the content db, may or may not be i
}
-Favorites
----------
-
-core.get_favorites(location) -> list of favorites (possible in async calls)
-^ location: "local" or "online"
-^ returns {
- [1] = {
- clients = <number of clients/nil>,
- clients_max = <maximum number of clients/nil>,
- version = <server version/nil>,
- password = <true/nil>,
- creative = <true/nil>,
- damage = <true/nil>,
- pvp = <true/nil>,
- description = <server description/nil>,
- name = <server name/nil>,
- address = <address of server/nil>,
- port = <port>
- clients_list = <array of clients/nil>
- mods = <array of mods/nil>
- },
- ...
-}
-core.delete_favorite(id, location) -> success
-
-
Logging
-------
diff --git a/doc/texture_packs.txt b/doc/texture_packs.txt
index 94151f1a4..8af2cbad6 100644
--- a/doc/texture_packs.txt
+++ b/doc/texture_packs.txt
@@ -72,7 +72,12 @@ by texture packs. All existing fallback textures can be found in the directory
* `crosshair.png`
* the crosshair texture in the center of the screen. The settings
`crosshair_color` and `crosshair_alpha` are used to create a cross
- when no texture was found
+ when no texture is found.
+
+* `object_crosshair.png`
+ * the crosshair seen when pointing at an object. The settings
+ `crosshair_color` and `crosshair_alpha` are used to create a cross
+ when no texture is found.
* `halo.png`: used for the node highlighting mesh
@@ -85,6 +90,7 @@ by texture packs. All existing fallback textures can be found in the directory
* `minimap_mask_square.png`: mask used for the square minimap
* `minimap_overlay_round.png`: overlay texture for the round minimap
* `minimap_overlay_square.png`: overlay texture for the square minimap
+* `no_texture_airlike.png`: fallback inventory image for airlike nodes
* `object_marker_red.png`: texture for players on the minimap
* `player_marker.png`: texture for the own player on the square minimap
@@ -189,11 +195,27 @@ Here are targets you can choose from:
| bottom | y- face |
| sides | x-, x+, z-, z+ faces |
| all | All faces. You can also use '*' instead of 'all'. |
+| special1 | The first entry in the special_tiles list |
+| special2 | The second entry in the special_tiles list |
+| special3 | The third entry in the special_tiles list |
+| special4 | The fourth entry in the special_tiles list |
+| special5 | The fifth entry in the special_tiles list |
+| special6 | The sixth entry in the special_tiles list |
| inventory | The inventory texture |
| wield | The texture used when held by the player |
Nodes support all targets, but other items only support 'inventory'
-and 'wield'
+and 'wield'.
+
+### Using the special targets
+
+The special* targets only apply to specific drawtypes:
+
+* `flowingliquid`: special1 sets the top texture, special2 sets the side texture
+* `allfaces_optional`: special1 is used by simple mode, see below
+* `glasslike_framed`: When containing a liquid, special1 sets the liquid texture
+* `glasslike_framed_optional`: Same as `glasslike_framed`
+* `plantlike_rooted`: special1 sets the plant's texture
Designing leaves textures for the leaves rendering options
----------------------------------------------------------
diff --git a/doc/world_format.txt b/doc/world_format.txt
index 73a03e5ee..a8a9e463e 100644
--- a/doc/world_format.txt
+++ b/doc/world_format.txt
@@ -493,19 +493,8 @@ Static objects are persistent freely moving objects in the world.
Object types:
1: Test object
-2: Item
-3: Rat (obsolete)
-4: Oerkki (obsolete)
-5: Firefly (obsolete)
-6: MobV2 (obsolete)
7: LuaEntity
-1: Item:
- u8 version
- version 0:
- u16 len
- u8[len] itemstring
-
7: LuaEntity:
u8 compatibility_byte (always 1)
u16 len
diff --git a/fonts/DroidSansFallbackFull-LICENSE.txt b/fonts/DroidSansFallbackFull-LICENSE.txt
index d3a2eaa8c..a7bf409b7 100644
--- a/fonts/DroidSansFallbackFull-LICENSE.txt
+++ b/fonts/DroidSansFallbackFull-LICENSE.txt
@@ -1,4 +1,4 @@
-Copyright (C) 2008 The Android Open Source Project
+Copyright (C) 2012 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/fonts/DroidSansFallbackFull.ttf b/fonts/DroidSansFallbackFull.ttf
index a9df00585..0cacabedc 100644
--- a/fonts/DroidSansFallbackFull.ttf
+++ b/fonts/DroidSansFallbackFull.ttf
Binary files differ
diff --git a/games/devtest/README.md b/games/devtest/README.md
index a7e93cf11..77e722af7 100644
--- a/games/devtest/README.md
+++ b/games/devtest/README.md
@@ -23,9 +23,8 @@ Basically, just create a world and start. A few important things to note:
* Use the `/infplace` command to toggle infinite node placement in-game
* Use the Param2 Tool to change the param2 of nodes; it's useful to experiment with the various drawtype test nodes
* Check out the game settings and server commands for additional tests and features
-* Creative Mode does nothing (apart from default engine behavior)
-Confused by a certain node or item? Check out for inline code comments.
+Confused by a certain node or item? Check out for inline code comments. The usages of most tools are explained in their tooltips.
### Example tests
diff --git a/games/devtest/mods/basenodes/init.lua b/games/devtest/mods/basenodes/init.lua
index 8156c4bec..2c808c35e 100644
--- a/games/devtest/mods/basenodes/init.lua
+++ b/games/devtest/mods/basenodes/init.lua
@@ -1,4 +1,4 @@
-local WATER_ALPHA = 160
+local WATER_ALPHA = "^[opacity:" .. 160
local WATER_VISC = 1
local LAVA_VISC = 7
@@ -124,14 +124,16 @@ minetest.register_node("basenodes:pine_needles", {
})
minetest.register_node("basenodes:water_source", {
- description = "Water Source",
+ description = "Water Source".."\n"..
+ "Drowning damage: 1",
drawtype = "liquid",
- tiles = {"default_water.png"},
+ waving = 3,
+ tiles = {"default_water.png"..WATER_ALPHA},
special_tiles = {
- {name = "default_water.png", backface_culling = false},
- {name = "default_water.png", backface_culling = true},
+ {name = "default_water.png"..WATER_ALPHA, backface_culling = false},
+ {name = "default_water.png"..WATER_ALPHA, backface_culling = true},
},
- alpha = WATER_ALPHA,
+ use_texture_alpha = "blend",
paramtype = "light",
walkable = false,
pointable = false,
@@ -148,14 +150,18 @@ minetest.register_node("basenodes:water_source", {
})
minetest.register_node("basenodes:water_flowing", {
- description = "Flowing Water",
+ description = "Flowing Water".."\n"..
+ "Drowning damage: 1",
drawtype = "flowingliquid",
+ waving = 3,
tiles = {"default_water_flowing.png"},
special_tiles = {
- {name = "default_water_flowing.png", backface_culling = false},
- {name = "default_water_flowing.png", backface_culling = false},
+ {name = "default_water_flowing.png"..WATER_ALPHA,
+ backface_culling = false},
+ {name = "default_water_flowing.png"..WATER_ALPHA,
+ backface_culling = false},
},
- alpha = WATER_ALPHA,
+ use_texture_alpha = "blend",
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
@@ -173,14 +179,16 @@ minetest.register_node("basenodes:water_flowing", {
})
minetest.register_node("basenodes:river_water_source", {
- description = "River Water Source",
+ description = "River Water Source".."\n"..
+ "Drowning damage: 1",
drawtype = "liquid",
- tiles = { "default_river_water.png" },
+ waving = 3,
+ tiles = { "default_river_water.png"..WATER_ALPHA },
special_tiles = {
- {name = "default_river_water.png", backface_culling = false},
- {name = "default_river_water.png", backface_culling = true},
+ {name = "default_river_water.png"..WATER_ALPHA, backface_culling = false},
+ {name = "default_river_water.png"..WATER_ALPHA, backface_culling = true},
},
- alpha = WATER_ALPHA,
+ use_texture_alpha = "blend",
paramtype = "light",
walkable = false,
pointable = false,
@@ -199,14 +207,18 @@ minetest.register_node("basenodes:river_water_source", {
})
minetest.register_node("basenodes:river_water_flowing", {
- description = "Flowing River Water",
+ description = "Flowing River Water".."\n"..
+ "Drowning damage: 1",
drawtype = "flowingliquid",
- tiles = {"default_river_water_flowing.png"},
+ waving = 3,
+ tiles = {"default_river_water_flowing.png"..WATER_ALPHA},
special_tiles = {
- {name = "default_river_water_flowing.png", backface_culling = false},
- {name = "default_river_water_flowing.png", backface_culling = false},
+ {name = "default_river_water_flowing.png"..WATER_ALPHA,
+ backface_culling = false},
+ {name = "default_river_water_flowing.png"..WATER_ALPHA,
+ backface_culling = false},
},
- alpha = WATER_ALPHA,
+ use_texture_alpha = "blend",
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
@@ -226,7 +238,9 @@ minetest.register_node("basenodes:river_water_flowing", {
})
minetest.register_node("basenodes:lava_flowing", {
- description = "Flowing Lava",
+ description = "Flowing Lava".."\n"..
+ "4 damage per second".."\n"..
+ "Drowning damage: 1",
drawtype = "flowingliquid",
tiles = {"default_lava_flowing.png"},
special_tiles = {
@@ -251,7 +265,9 @@ minetest.register_node("basenodes:lava_flowing", {
})
minetest.register_node("basenodes:lava_source", {
- description = "Lava Source",
+ description = "Lava Source".."\n"..
+ "4 damage per second".."\n"..
+ "Drowning damage: 1",
drawtype = "liquid",
tiles = { "default_lava.png" },
special_tiles = {
@@ -290,7 +306,8 @@ minetest.register_node("basenodes:mossycobble", {
})
minetest.register_node("basenodes:apple", {
- description = "Apple",
+ description = "Apple".."\n"..
+ "Food (+2)",
drawtype = "plantlike",
tiles ={"default_apple.png"},
inventory_image = "default_apple.png",
diff --git a/games/devtest/mods/basenodes/textures/default_dirt.png b/games/devtest/mods/basenodes/textures/default_dirt.png
index 58670305d..aa75bffb6 100644
--- a/games/devtest/mods/basenodes/textures/default_dirt.png
+++ b/games/devtest/mods/basenodes/textures/default_dirt.png
Binary files differ
diff --git a/games/devtest/mods/basenodes/textures/dirt_with_grass/default_grass.png b/games/devtest/mods/basenodes/textures/dirt_with_grass/default_grass.png
new file mode 100644
index 000000000..29fde6b26
--- /dev/null
+++ b/games/devtest/mods/basenodes/textures/dirt_with_grass/default_grass.png
Binary files differ
diff --git a/games/devtest/mods/basenodes/textures/default_grass_side.png b/games/devtest/mods/basenodes/textures/dirt_with_grass/default_grass_side.png
index 04770b6f6..04770b6f6 100644
--- a/games/devtest/mods/basenodes/textures/default_grass_side.png
+++ b/games/devtest/mods/basenodes/textures/dirt_with_grass/default_grass_side.png
Binary files differ
diff --git a/games/devtest/mods/basenodes/textures/info.txt b/games/devtest/mods/basenodes/textures/info.txt
new file mode 100644
index 000000000..2d4ef7efa
--- /dev/null
+++ b/games/devtest/mods/basenodes/textures/info.txt
@@ -0,0 +1,7 @@
+
+The dirt_with_grass folder is for testing loading textures from subfolders.
+If it works correctly, the default_grass_side.png file in the folder is used but
+default_grass.png is not overwritten by the file in the folder.
+
+default_dirt.png should be overwritten by the default_dirt.png in the unittests
+mod which depends on basenodes.
diff --git a/games/devtest/mods/basetools/init.lua b/games/devtest/mods/basetools/init.lua
index c5b4cd76c..bd7480030 100644
--- a/games/devtest/mods/basetools/init.lua
+++ b/games/devtest/mods/basetools/init.lua
@@ -6,7 +6,7 @@
Tool types:
-* Hand: basic tool/weapon (just for convenience, not optimized for testing)
+* Hand: basic tool/weapon (special capabilities in creative mode)
* Pickaxe: dig cracky
* Axe: dig choppy
* Shovel: dig crumbly
@@ -24,25 +24,54 @@ Tool materials:
]]
-- The hand
-minetest.register_item(":", {
- type = "none",
- wield_image = "wieldhand.png",
- wield_scale = {x=1,y=1,z=2.5},
- tool_capabilities = {
- full_punch_interval = 1.0,
- max_drop_level = 0,
- groupcaps = {
- crumbly = {times={[3]=1.50}, uses=0, maxlevel=0},
- snappy = {times={[3]=1.50}, uses=0, maxlevel=0},
- oddly_breakable_by_hand = {times={[1]=7.00,[2]=4.00,[3]=2.00}, uses=0, maxlevel=0},
- },
- damage_groups = {fleshy=1},
- }
-})
+if minetest.settings:get_bool("creative_mode") then
+ local digtime = 42
+ local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256}
+
+ minetest.register_item(":", {
+ type = "none",
+ wield_image = "wieldhand.png",
+ wield_scale = {x = 1, y = 1, z = 2.5},
+ range = 10,
+ tool_capabilities = {
+ full_punch_interval = 0.5,
+ max_drop_level = 3,
+ groupcaps = {
+ crumbly = caps,
+ cracky = caps,
+ snappy = caps,
+ choppy = caps,
+ oddly_breakable_by_hand = caps,
+ -- dig_immediate group doesn't use value 1. Value 3 is instant dig
+ dig_immediate =
+ {times = {[2] = digtime, [3] = 0}, uses = 0, maxlevel = 256},
+ },
+ damage_groups = {fleshy = 10},
+ }
+ })
+else
+ minetest.register_item(":", {
+ type = "none",
+ wield_image = "wieldhand.png",
+ wield_scale = {x = 1, y = 1, z = 2.5},
+ tool_capabilities = {
+ full_punch_interval = 0.9,
+ max_drop_level = 0,
+ groupcaps = {
+ crumbly = {times = {[2] = 3.00, [3] = 0.70}, uses = 0, maxlevel = 1},
+ snappy = {times = {[3] = 0.40}, uses = 0, maxlevel = 1},
+ oddly_breakable_by_hand =
+ {times = {[1] = 3.50, [2] = 2.00, [3] = 0.70}, uses = 0}
+ },
+ damage_groups = {fleshy = 1},
+ }
+ })
+end
-- Mese Pickaxe: special tool that digs "everything" instantly
minetest.register_tool("basetools:pick_mese", {
- description = "Mese Pickaxe",
+ description = "Mese Pickaxe".."\n"..
+ "Digs diggable nodes instantly",
inventory_image = "basetools_mesepick.png",
tool_capabilities = {
full_punch_interval = 1.0,
@@ -65,7 +94,9 @@ minetest.register_tool("basetools:pick_mese", {
-- This should break after only 1 use
minetest.register_tool("basetools:pick_dirt", {
- description = "Dirt Pickaxe",
+ description = "Dirt Pickaxe".."\n"..
+ "Digs cracky=3".."\n"..
+ "1 use only",
inventory_image = "basetools_dirtpick.png",
tool_capabilities = {
max_drop_level=0,
@@ -76,7 +107,8 @@ minetest.register_tool("basetools:pick_dirt", {
})
minetest.register_tool("basetools:pick_wood", {
- description = "Wooden Pickaxe",
+ description = "Wooden Pickaxe".."\n"..
+ "Digs cracky=3",
inventory_image = "basetools_woodpick.png",
tool_capabilities = {
max_drop_level=0,
@@ -86,7 +118,8 @@ minetest.register_tool("basetools:pick_wood", {
},
})
minetest.register_tool("basetools:pick_stone", {
- description = "Stone Pickaxe",
+ description = "Stone Pickaxe".."\n"..
+ "Digs cracky=2..3",
inventory_image = "basetools_stonepick.png",
tool_capabilities = {
max_drop_level=0,
@@ -96,7 +129,8 @@ minetest.register_tool("basetools:pick_stone", {
},
})
minetest.register_tool("basetools:pick_steel", {
- description = "Steel Pickaxe",
+ description = "Steel Pickaxe".."\n"..
+ "Digs cracky=1..3",
inventory_image = "basetools_steelpick.png",
tool_capabilities = {
max_drop_level=1,
@@ -106,7 +140,9 @@ minetest.register_tool("basetools:pick_steel", {
},
})
minetest.register_tool("basetools:pick_steel_l1", {
- description = "Steel Pickaxe Level 1",
+ description = "Steel Pickaxe Level 1".."\n"..
+ "Digs cracky=1..3".."\n"..
+ "maxlevel=1",
inventory_image = "basetools_steelpick_l1.png",
tool_capabilities = {
max_drop_level=1,
@@ -116,7 +152,9 @@ minetest.register_tool("basetools:pick_steel_l1", {
},
})
minetest.register_tool("basetools:pick_steel_l2", {
- description = "Steel Pickaxe Level 2",
+ description = "Steel Pickaxe Level 2".."\n"..
+ "Digs cracky=1..3".."\n"..
+ "maxlevel=2",
inventory_image = "basetools_steelpick_l2.png",
tool_capabilities = {
max_drop_level=1,
@@ -131,7 +169,8 @@ minetest.register_tool("basetools:pick_steel_l2", {
--
minetest.register_tool("basetools:shovel_wood", {
- description = "Wooden Shovel",
+ description = "Wooden Shovel".."\n"..
+ "Digs crumbly=3",
inventory_image = "basetools_woodshovel.png",
tool_capabilities = {
max_drop_level=0,
@@ -141,7 +180,8 @@ minetest.register_tool("basetools:shovel_wood", {
},
})
minetest.register_tool("basetools:shovel_stone", {
- description = "Stone Shovel",
+ description = "Stone Shovel".."\n"..
+ "Digs crumbly=2..3",
inventory_image = "basetools_stoneshovel.png",
tool_capabilities = {
max_drop_level=0,
@@ -151,7 +191,8 @@ minetest.register_tool("basetools:shovel_stone", {
},
})
minetest.register_tool("basetools:shovel_steel", {
- description = "Steel Shovel",
+ description = "Steel Shovel".."\n"..
+ "Digs crumbly=1..3",
inventory_image = "basetools_steelshovel.png",
tool_capabilities = {
max_drop_level=1,
@@ -166,7 +207,8 @@ minetest.register_tool("basetools:shovel_steel", {
--
minetest.register_tool("basetools:axe_wood", {
- description = "Wooden Axe",
+ description = "Wooden Axe".."\n"..
+ "Digs choppy=3",
inventory_image = "basetools_woodaxe.png",
tool_capabilities = {
max_drop_level=0,
@@ -176,7 +218,8 @@ minetest.register_tool("basetools:axe_wood", {
},
})
minetest.register_tool("basetools:axe_stone", {
- description = "Stone Axe",
+ description = "Stone Axe".."\n"..
+ "Digs choppy=2..3",
inventory_image = "basetools_stoneaxe.png",
tool_capabilities = {
max_drop_level=0,
@@ -186,7 +229,8 @@ minetest.register_tool("basetools:axe_stone", {
},
})
minetest.register_tool("basetools:axe_steel", {
- description = "Steel Axe",
+ description = "Steel Axe".."\n"..
+ "Digs choppy=1..3",
inventory_image = "basetools_steelaxe.png",
tool_capabilities = {
max_drop_level=1,
@@ -201,7 +245,8 @@ minetest.register_tool("basetools:axe_steel", {
--
minetest.register_tool("basetools:shears_wood", {
- description = "Wooden Shears",
+ description = "Wooden Shears".."\n"..
+ "Digs snappy=3",
inventory_image = "basetools_woodshears.png",
tool_capabilities = {
max_drop_level=0,
@@ -211,7 +256,8 @@ minetest.register_tool("basetools:shears_wood", {
},
})
minetest.register_tool("basetools:shears_stone", {
- description = "Stone Shears",
+ description = "Stone Shears".."\n"..
+ "Digs snappy=2..3",
inventory_image = "basetools_stoneshears.png",
tool_capabilities = {
max_drop_level=0,
@@ -221,7 +267,8 @@ minetest.register_tool("basetools:shears_stone", {
},
})
minetest.register_tool("basetools:shears_steel", {
- description = "Steel Shears",
+ description = "Steel Shears".."\n"..
+ "Digs snappy=1..3",
inventory_image = "basetools_steelshears.png",
tool_capabilities = {
max_drop_level=1,
@@ -236,7 +283,8 @@ minetest.register_tool("basetools:shears_steel", {
--
minetest.register_tool("basetools:sword_wood", {
- description = "Wooden Sword",
+ description = "Wooden Sword".."\n"..
+ "Damage: fleshy=2",
inventory_image = "basetools_woodsword.png",
tool_capabilities = {
full_punch_interval = 1.0,
@@ -244,7 +292,8 @@ minetest.register_tool("basetools:sword_wood", {
}
})
minetest.register_tool("basetools:sword_stone", {
- description = "Stone Sword",
+ description = "Stone Sword".."\n"..
+ "Damage: fleshy=4",
inventory_image = "basetools_stonesword.png",
tool_capabilities = {
full_punch_interval = 1.0,
@@ -253,7 +302,8 @@ minetest.register_tool("basetools:sword_stone", {
}
})
minetest.register_tool("basetools:sword_steel", {
- description = "Steel Sword",
+ description = "Steel Sword".."\n"..
+ "Damage: fleshy=6",
inventory_image = "basetools_steelsword.png",
tool_capabilities = {
full_punch_interval = 1.0,
@@ -264,7 +314,8 @@ minetest.register_tool("basetools:sword_steel", {
-- Fire/Ice sword: Deal damage to non-fleshy damage groups
minetest.register_tool("basetools:sword_fire", {
- description = "Fire Sword",
+ description = "Fire Sword".."\n"..
+ "Damage: icy=6",
inventory_image = "basetools_firesword.png",
tool_capabilities = {
full_punch_interval = 1.0,
@@ -273,12 +324,13 @@ minetest.register_tool("basetools:sword_fire", {
}
})
minetest.register_tool("basetools:sword_ice", {
- description = "Ice Sword",
+ description = "Ice Sword".."\n"..
+ "Damage: fiery=6",
inventory_image = "basetools_icesword.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=0,
- damage_groups = {firy=6},
+ damage_groups = {fiery=6},
}
})
@@ -286,7 +338,9 @@ minetest.register_tool("basetools:sword_ice", {
-- Dagger: Low damage, fast punch interval
--
minetest.register_tool("basetools:dagger_steel", {
- description = "Steel Dagger",
+ description = "Steel Dagger".."\n"..
+ "Damage: fleshy=2".."\n"..
+ "Full Punch Interval: 0.5s",
inventory_image = "basetools_steeldagger.png",
tool_capabilities = {
full_punch_interval = 0.5,
diff --git a/games/devtest/mods/bucket/init.lua b/games/devtest/mods/bucket/init.lua
index 3189d4aa6..ff58b0669 100644
--- a/games/devtest/mods/bucket/init.lua
+++ b/games/devtest/mods/bucket/init.lua
@@ -1,7 +1,8 @@
-- Bucket: Punch liquid source or flowing liquid to collect it
minetest.register_tool("bucket:bucket", {
- description = "Bucket",
+ description = "Bucket".."\n"..
+ "Picks up liquid nodes",
inventory_image = "bucket.png",
stack_max = 1,
liquids_pointable = true,
diff --git a/games/devtest/mods/chest/init.lua b/games/devtest/mods/chest/init.lua
index c44522cb9..5798c13e7 100644
--- a/games/devtest/mods/chest/init.lua
+++ b/games/devtest/mods/chest/init.lua
@@ -1,5 +1,6 @@
minetest.register_node("chest:chest", {
- description = "Chest",
+ description = "Chest" .. "\n" ..
+ "32 inventory slots",
tiles ={"chest_chest.png^[sheet:2x2:0,0", "chest_chest.png^[sheet:2x2:0,0",
"chest_chest.png^[sheet:2x2:1,0", "chest_chest.png^[sheet:2x2:1,0",
"chest_chest.png^[sheet:2x2:1,0", "chest_chest.png^[sheet:2x2:0,1"},
@@ -22,6 +23,18 @@ minetest.register_node("chest:chest", {
local inv = meta:get_inventory()
return inv:is_empty("main")
end,
+ allow_metadata_inventory_put = function(pos, listname, index, stack, player)
+ minetest.chat_send_player(player:get_player_name(), "Allow put: " .. stack:to_string())
+ return stack:get_count()
+ end,
+ allow_metadata_inventory_take = function(pos, listname, index, stack, player)
+ minetest.chat_send_player(player:get_player_name(), "Allow take: " .. stack:to_string())
+ return stack:get_count()
+ end,
+ on_metadata_inventory_put = function(pos, listname, index, stack, player)
+ minetest.chat_send_player(player:get_player_name(), "On put: " .. stack:to_string())
+ end,
+ on_metadata_inventory_take = function(pos, listname, index, stack, player)
+ minetest.chat_send_player(player:get_player_name(), "On take: " .. stack:to_string())
+ end,
})
-
-
diff --git a/games/devtest/mods/chest_of_everything/init.lua b/games/devtest/mods/chest_of_everything/init.lua
index 7d61abebf..3e9d2678a 100644
--- a/games/devtest/mods/chest_of_everything/init.lua
+++ b/games/devtest/mods/chest_of_everything/init.lua
@@ -43,7 +43,8 @@ local function get_chest_formspec(page)
end
minetest.register_node("chest_of_everything:chest", {
- description = "Chest of Everything",
+ description = "Chest of Everything" .. "\n" ..
+ "Grants access to all items",
tiles ={"chest_of_everything_chest.png^[sheet:2x2:0,0", "chest_of_everything_chest.png^[sheet:2x2:0,0",
"chest_of_everything_chest.png^[sheet:2x2:1,0", "chest_of_everything_chest.png^[sheet:2x2:1,0",
"chest_of_everything_chest.png^[sheet:2x2:1,0", "chest_of_everything_chest.png^[sheet:2x2:0,1"},
diff --git a/games/devtest/mods/experimental/commands.lua b/games/devtest/mods/experimental/commands.lua
index 158e5039d..132b08b0b 100644
--- a/games/devtest/mods/experimental/commands.lua
+++ b/games/devtest/mods/experimental/commands.lua
@@ -214,3 +214,6 @@ minetest.register_chatcommand("test_place_nodes", {
end,
})
+core.register_on_chatcommand(function(name, command, params)
+ minetest.log("caught command '"..command.."', issued by '"..name.."'. Parameters: '"..params.."'")
+end)
diff --git a/games/devtest/mods/experimental/items.lua b/games/devtest/mods/experimental/items.lua
index 51b063ba2..94be71cf7 100644
--- a/games/devtest/mods/experimental/items.lua
+++ b/games/devtest/mods/experimental/items.lua
@@ -44,7 +44,8 @@ minetest.register_node("experimental:callback_node", {
})
minetest.register_tool("experimental:privatizer", {
- description = "Node Meta Privatizer",
+ description = "Node Meta Privatizer".."\n"..
+ "Punch: Marks 'infotext' and 'formspec' meta fields of chest as private",
inventory_image = "experimental_tester_tool_1.png",
groups = { testtool = 1, disable_repair = 1 },
on_use = function(itemstack, user, pointed_thing)
@@ -67,7 +68,8 @@ minetest.register_tool("experimental:privatizer", {
})
minetest.register_tool("experimental:particle_spawner", {
- description = "Particle Spawner",
+ description = "Particle Spawner".."\n"..
+ "Punch: Spawn random test particle",
inventory_image = "experimental_tester_tool_1.png^[invert:g",
groups = { testtool = 1, disable_repair = 1 },
on_use = function(itemstack, user, pointed_thing)
diff --git a/games/devtest/mods/soundstuff/init.lua b/games/devtest/mods/soundstuff/init.lua
index 22012ba14..b263a3f35 100644
--- a/games/devtest/mods/soundstuff/init.lua
+++ b/games/devtest/mods/soundstuff/init.lua
@@ -60,11 +60,13 @@ minetest.register_node("soundstuff:footstep_liquid", {
description = "Liquid Footstep Sound Node",
drawtype = "liquid",
tiles = {
- "soundstuff_node_sound.png^[colorize:#0000FF:127",
+ "soundstuff_node_sound.png^[colorize:#0000FF:127^[opacity:190",
},
special_tiles = {
- {name = "soundstuff_node_sound.png^[colorize:#0000FF:127", backface_culling = false},
- {name = "soundstuff_node_sound.png^[colorize:#0000FF:127", backface_culling = true},
+ {name = "soundstuff_node_sound.png^[colorize:#0000FF:127^[opacity:190",
+ backface_culling = false},
+ {name = "soundstuff_node_sound.png^[colorize:#0000FF:127^[opacity:190",
+ backface_culling = true},
},
liquids_pointable = true,
liquidtype = "source",
@@ -73,7 +75,7 @@ minetest.register_node("soundstuff:footstep_liquid", {
liquid_renewable = false,
liquid_range = 0,
liquid_viscosity = 0,
- alpha = 190,
+ use_texture_alpha = "blend",
paramtype = "light",
walkable = false,
pointable = false,
@@ -92,7 +94,6 @@ minetest.register_node("soundstuff:footstep_climbable", {
tiles = {
"soundstuff_node_climbable.png",
},
- alpha = 120,
paramtype = "light",
sunlight_propagates = true,
walkable = false,
@@ -107,7 +108,8 @@ minetest.register_node("soundstuff:footstep_climbable", {
minetest.register_craftitem("soundstuff:eat", {
- description = "Eat Sound Item",
+ description = "Eat Sound Item".."\n"..
+ "Makes a sound when 'eaten' (with punch key)",
inventory_image = "soundstuff_eat.png",
on_use = minetest.item_eat(0),
sound = {
@@ -116,7 +118,9 @@ minetest.register_craftitem("soundstuff:eat", {
})
minetest.register_tool("soundstuff:breaks", {
- description = "Break Sound Tool",
+ description = "Break Sound Tool".."\n"..
+ "Digs cracky=3 and more".."\n"..
+ "Makes a sound when it breaks",
inventory_image = "soundstuff_node_dug.png",
sound = {
breaks = { name = "soundstuff_mono", gain = 1.0 },
diff --git a/games/devtest/mods/testentities/armor.lua b/games/devtest/mods/testentities/armor.lua
index 4c30cec8d..306953d50 100644
--- a/games/devtest/mods/testentities/armor.lua
+++ b/games/devtest/mods/testentities/armor.lua
@@ -3,7 +3,7 @@
local phasearmor = {
[0]={icy=100},
- [1]={firy=100},
+ [1]={fiery=100},
[2]={fleshy=100},
[3]={immortal=1},
[4]={punch_operable=1},
diff --git a/games/devtest/mods/testentities/callbacks.lua b/games/devtest/mods/testentities/callbacks.lua
index 711079f87..320690b39 100644
--- a/games/devtest/mods/testentities/callbacks.lua
+++ b/games/devtest/mods/testentities/callbacks.lua
@@ -31,6 +31,9 @@ minetest.register_entity("testentities:callback", {
on_activate = function(self, staticdata, dtime_s)
message("Callback entity: on_activate! pos="..spos(self).."; dtime_s="..dtime_s)
end,
+ on_deactivate = function(self)
+ message("Callback entity: on_deactivate! pos="..spos(self))
+ end,
on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir, damage)
local name = get_object_name(puncher)
message(
diff --git a/games/devtest/mods/testentities/visuals.lua b/games/devtest/mods/testentities/visuals.lua
index 83f361f16..e382ec44c 100644
--- a/games/devtest/mods/testentities/visuals.lua
+++ b/games/devtest/mods/testentities/visuals.lua
@@ -68,7 +68,7 @@ minetest.register_entity("testentities:mesh_unshaded", {
-- Advanced visual tests
--- A test entity for testing animated and yaw-modulated sprites
+-- An entity for testing animated and yaw-modulated sprites
minetest.register_entity("testentities:yawsprite", {
initial_properties = {
selectionbox = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3},
@@ -79,6 +79,59 @@ minetest.register_entity("testentities:yawsprite", {
initial_sprite_basepos = {x=0, y=0},
},
on_activate = function(self, staticdata)
- self.object:set_sprite({x=0, y=0}, 1, 0, true)
+ self.object:set_sprite({x=0, y=0}, 3, 0.5, true)
+ end,
+})
+
+-- An entity for testing animated upright sprites
+minetest.register_entity("testentities:upright_animated", {
+ initial_properties = {
+ visual = "upright_sprite",
+ textures = {"testnodes_anim.png"},
+ spritediv = {x = 1, y = 4},
+ },
+ on_activate = function(self)
+ self.object:set_sprite({x=0, y=0}, 4, 1.0, false)
+ end,
+})
+
+minetest.register_entity("testentities:nametag", {
+ initial_properties = {
+ visual = "sprite",
+ textures = { "testentities_sprite.png" },
+ },
+
+ on_activate = function(self, staticdata)
+ if staticdata ~= "" then
+ local data = minetest.deserialize(staticdata)
+ self.color = data.color
+ self.bgcolor = data.bgcolor
+ else
+ self.color = {
+ r = math.random(0, 255),
+ g = math.random(0, 255),
+ b = math.random(0, 255),
+ }
+
+ if math.random(0, 10) > 5 then
+ self.bgcolor = {
+ r = math.random(0, 255),
+ g = math.random(0, 255),
+ b = math.random(0, 255),
+ a = math.random(0, 255),
+ }
+ end
+ end
+
+ assert(self.color)
+ self.object:set_properties({
+ nametag = tostring(math.random(1000, 10000)),
+ nametag_color = self.color,
+ nametag_bgcolor = self.bgcolor,
+ })
+ end,
+
+ get_staticdata = function(self)
+ return minetest.serialize({ color = self.color, bgcolor = self.bgcolor })
end,
})
diff --git a/games/devtest/mods/testfood/init.lua b/games/devtest/mods/testfood/init.lua
index a6236ff68..39b121306 100644
--- a/games/devtest/mods/testfood/init.lua
+++ b/games/devtest/mods/testfood/init.lua
@@ -22,3 +22,10 @@ minetest.register_craftitem("testfood:bad5", {
on_use = minetest.item_eat(-5),
})
+minetest.register_craftitem("testfood:replace1", {
+ description = S("Replacing Food (+1)").."\n"..
+ S("Replaced with 'Good Food (+1)' when eaten"),
+ inventory_image = "testfood_replace.png",
+ on_use = minetest.item_eat(1, "testfood:good1"),
+})
+
diff --git a/games/devtest/mods/testfood/textures/testfood_replace.png b/games/devtest/mods/testfood/textures/testfood_replace.png
new file mode 100644
index 000000000..1ef6876e5
--- /dev/null
+++ b/games/devtest/mods/testfood/textures/testfood_replace.png
Binary files differ
diff --git a/games/devtest/mods/testformspec/LICENSE.txt b/games/devtest/mods/testformspec/LICENSE.txt
new file mode 100644
index 000000000..07696cc30
--- /dev/null
+++ b/games/devtest/mods/testformspec/LICENSE.txt
@@ -0,0 +1,14 @@
+License of media files
+----------------------
+Content imported from minetest_game.
+
+
+BlockMen (CC BY-SA 3.0)
+ default_chest_front.png
+ default_chest_lock.png
+ default_chest_side.png
+ default_chest_top.png
+
+stujones11 (CC BY-SA 3.0)
+An0n3m0us (CC BY-SA 3.0)
+ testformspec_character.b3d
diff --git a/games/devtest/mods/testformspec/formspec.lua b/games/devtest/mods/testformspec/formspec.lua
index 08c1b6dc0..2a2bdad60 100644
--- a/games/devtest/mods/testformspec/formspec.lua
+++ b/games/devtest/mods/testformspec/formspec.lua
@@ -33,6 +33,34 @@ local tabheaders_fs = [[
tabheader[8,6;10,1.5;tabs_size2;Height=1.5;1;false;false]
]]
+local inv_style_fs = [[
+ style_type[list;noclip=true]
+ list[current_player;main;-0.75,0.75;2,2]
+
+ real_coordinates[false]
+ list[current_player;main;1.5,0;3,2]
+ real_coordinates[true]
+
+ real_coordinates[false]
+ style_type[list;size=1.1;spacing=0.1]
+ list[current_player;main;5,0;3,2]
+ real_coordinates[true]
+
+ style_type[list;size=.001;spacing=0]
+ list[current_player;main;7,3.5;8,4]
+
+ box[3,3.5;1,1;#000000]
+ box[5,3.5;1,1;#000000]
+ box[4,4.5;1,1;#000000]
+ box[3,5.5;1,1;#000000]
+ box[5,5.5;1,1;#000000]
+ style_type[list;spacing=.25,.125;size=.75,.875]
+ list[current_player;main;3,3.5;3,3]
+
+ style_type[list;spacing=0;size=1.1]
+ list[current_player;main;.5,7;8,4]
+]]
+
local hypertext_basic = [[
<bigger>Normal test</bigger>
This is a normal text.
@@ -164,7 +192,7 @@ local style_fs = [[
style[one_btn14:hovered+pressed;textcolor=purple]
image_button[0,9.6;1,1;testformspec_button_image.png;one_btn14;Bg]
- style[one_btn15;border=false;bgimg=testformspec_bg.png;bgimg_hovered=testformspec_bg_hovered.png;bgimg_pressed=testformspec_bg_pressed.png]
+ style[one_btn15;border=false;bgcolor=#1cc;bgimg=testformspec_bg.png;bgimg_hovered=testformspec_bg_hovered.png;bgimg_pressed=testformspec_bg_pressed.png]
item_image_button[1.25,9.6;1,1;testformspec:item;one_btn15;Bg]
style[one_btn16;border=false;bgimg=testformspec_bg_9slice.png;bgimg_hovered=testformspec_bg_9slice_hovered.png;bgimg_pressed=testformspec_bg_9slice_pressed.png;bgimg_middle=4,6]
@@ -199,6 +227,7 @@ local scroll_fs =
"box[1,1;8,6;#00aa]"..
"scroll_container[1,1;8,6;scrbar;vertical]"..
"button[0,1;1,1;lorem;Lorem]"..
+ "animated_image[0,1;4.5,1;clip_animated_image;testformspec_animation.png;4;100]" ..
"button[0,10;1,1;ipsum;Ipsum]"..
"pwdfield[2,2;1,1;lorem2;Lorem]"..
"list[current_player;main;4,4;1,5;]"..
@@ -211,6 +240,8 @@ local scroll_fs =
"tooltip[0,11;3,2;Buz;#f00;#000]"..
"box[0,11;3,2;#00ff00]"..
"hypertext[3,13;3,3;;" .. hypertext_basic .. "]" ..
+ "hypertext[3,17;3,3;;Hypertext with no scrollbar\\; the scroll container should scroll.]" ..
+ "textarea[3,21;3,1;textarea;;More scroll within scroll]" ..
"container[0,18]"..
"box[1,2;3,2;#0a0a]"..
"scroll_container[1,2;3,2;scrbar2;horizontal;0.06]"..
@@ -310,6 +341,9 @@ local pages = {
"size[12,13]real_coordinates[true]" ..
"container[0.5,1.5]" .. tabheaders_fs .. "container_end[]",
+ -- Inv
+ "size[12,13]real_coordinates[true]" .. inv_style_fs,
+
-- Animation
[[
formspec_version[3]
@@ -327,6 +361,10 @@ Number]
animated_image[3,4.25;1,1;;testformspec_animation.png;4;0;3]
animated_image[5.5,0.5;5,2;;testformspec_animation.png;4;100]
animated_image[5.5,2.75;5,2;;testformspec_animation.jpg;4;100]
+
+ style[m1;bgcolor=black]
+ model[0.5,6;4,4;m1;testformspec_character.b3d;testformspec_character.png]
+ model[5,6;4,4;m2;testformspec_chest.obj;default_chest_top.png,default_chest_top.png,default_chest_side.png,default_chest_side.png,default_chest_front.png,default_chest_inside.png;30,1;true;true]
]],
-- Scroll containers
@@ -337,7 +375,7 @@ Number]
local function show_test_formspec(pname, page_id)
page_id = page_id or 2
- local fs = pages[page_id] .. "tabheader[0,0;8,0.65;maintabs;Real Coord,Styles,Noclip,Hypertext,Tabs,Anim,ScrollC;" .. page_id .. ";false;false]"
+ local fs = pages[page_id] .. "tabheader[0,0;8,0.65;maintabs;Real Coord,Styles,Noclip,Hypertext,Tabs,Invs,Anim,ScrollC;" .. page_id .. ";false;false]"
minetest.show_formspec(pname, "testformspec:formspec", fs)
end
diff --git a/games/devtest/mods/testformspec/models/testformspec_character.b3d b/games/devtest/mods/testformspec/models/testformspec_character.b3d
new file mode 100644
index 000000000..8edbaf637
--- /dev/null
+++ b/games/devtest/mods/testformspec/models/testformspec_character.b3d
Binary files differ
diff --git a/games/devtest/mods/testformspec/models/testformspec_chest.obj b/games/devtest/mods/testformspec/models/testformspec_chest.obj
new file mode 100644
index 000000000..72ba175a0
--- /dev/null
+++ b/games/devtest/mods/testformspec/models/testformspec_chest.obj
@@ -0,0 +1,79 @@
+# Blender v2.78 (sub 0) OBJ File: 'chest-open.blend'
+# www.blender.org
+o Top_Cube.002_None_Top_Cube.002_None_bottom
+v -0.500000 0.408471 0.720970
+v -0.500000 1.115578 0.013863
+v -0.500000 0.894607 -0.207108
+v -0.500000 0.187501 0.499999
+v 0.500000 1.115578 0.013863
+v 0.500000 0.408471 0.720970
+v 0.500000 0.187501 0.499999
+v 0.500000 0.894607 -0.207108
+v -0.500000 0.187500 -0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.500000 -0.500000 0.500000
+v 0.500000 0.187500 -0.500000
+v 0.500000 -0.500000 0.500000
+v 0.500000 -0.500000 -0.500000
+vt 0.0000 1.0000
+vt 0.0000 0.0000
+vt 1.0000 0.0000
+vt 1.0000 1.0000
+vt 1.0000 0.0000
+vt 1.0000 1.0000
+vt 0.0000 1.0000
+vt 0.0000 0.0000
+vt 0.0000 1.0000
+vt 1.0000 1.0000
+vt 1.0000 0.6875
+vt 0.0000 0.6875
+vt 1.0000 1.0000
+vt 0.0000 0.6875
+vt 1.0000 0.6875
+vt 1.0000 0.6875
+vt 1.0000 0.0000
+vt 0.0000 0.0000
+vt 1.0000 0.6875
+vt 1.0000 0.0000
+vt 1.0000 1.0000
+vt 1.0000 0.6875
+vt 1.0000 0.0000
+vt 0.0000 1.0000
+vt 0.0000 0.6875
+vt 0.0000 0.6875
+vt 0.0000 0.0000
+vt 1.0000 0.5000
+vt 1.0000 1.0000
+vt 0.0000 1.0000
+vt 0.0000 0.5000
+vt 0.0000 0.0000
+vt 1.0000 0.0000
+vn 0.0000 0.7071 0.7071
+vn -0.0000 -1.0000 -0.0000
+vn -1.0000 0.0000 0.0000
+vn 1.0000 0.0000 -0.0000
+vn 0.0000 -0.7071 0.7071
+vn 0.0000 0.0000 1.0000
+vn -0.0000 0.7071 -0.7071
+vn -0.0000 0.0000 -1.0000
+vn -0.0000 -0.7071 -0.7071
+vn -0.0000 1.0000 -0.0000
+g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Top
+s off
+f 6/1/1 5/2/1 2/3/1 1/4/1
+g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Bottom
+f 11/5/2 10/6/2 14/7/2 13/8/2
+g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Right-Left
+f 1/9/3 2/10/3 3/11/3 4/12/3
+f 5/13/4 6/1/4 7/14/4 8/15/4
+f 4/12/3 9/16/3 10/17/3 11/18/3
+f 12/19/4 7/14/4 13/8/4 14/20/4
+g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Back
+f 6/21/5 1/9/5 4/12/5 7/22/5
+f 7/22/6 4/12/6 11/18/6 13/23/6
+g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Front
+f 2/10/7 5/24/7 8/25/7 3/11/7
+f 9/16/8 12/26/8 14/27/8 10/17/8
+g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Inside
+f 4/28/9 3/29/9 8/30/9 7/31/9
+f 7/31/10 12/32/10 9/33/10 4/28/10
diff --git a/games/devtest/mods/testformspec/textures/default_chest_front.png b/games/devtest/mods/testformspec/textures/default_chest_front.png
new file mode 100644
index 000000000..85227d8fd
--- /dev/null
+++ b/games/devtest/mods/testformspec/textures/default_chest_front.png
Binary files differ
diff --git a/games/devtest/mods/testformspec/textures/default_chest_inside.png b/games/devtest/mods/testformspec/textures/default_chest_inside.png
new file mode 100644
index 000000000..5f7b6b132
--- /dev/null
+++ b/games/devtest/mods/testformspec/textures/default_chest_inside.png
Binary files differ
diff --git a/games/devtest/mods/testformspec/textures/default_chest_side.png b/games/devtest/mods/testformspec/textures/default_chest_side.png
new file mode 100644
index 000000000..44a65a43d
--- /dev/null
+++ b/games/devtest/mods/testformspec/textures/default_chest_side.png
Binary files differ
diff --git a/games/devtest/mods/testformspec/textures/default_chest_top.png b/games/devtest/mods/testformspec/textures/default_chest_top.png
new file mode 100644
index 000000000..f4a92ee07
--- /dev/null
+++ b/games/devtest/mods/testformspec/textures/default_chest_top.png
Binary files differ
diff --git a/games/devtest/mods/testformspec/textures/testformspec_character.png b/games/devtest/mods/testformspec/textures/testformspec_character.png
new file mode 100644
index 000000000..05021781e
--- /dev/null
+++ b/games/devtest/mods/testformspec/textures/testformspec_character.png
Binary files differ
diff --git a/games/devtest/mods/testnodes/drawtypes.lua b/games/devtest/mods/testnodes/drawtypes.lua
index 6bf57fa37..ff970144d 100644
--- a/games/devtest/mods/testnodes/drawtypes.lua
+++ b/games/devtest/mods/testnodes/drawtypes.lua
@@ -145,6 +145,23 @@ minetest.register_node("testnodes:fencelike", {
})
minetest.register_node("testnodes:torchlike", {
+ description = S("Torchlike Drawtype Test Node"),
+ drawtype = "torchlike",
+ paramtype = "light",
+ tiles = {
+ "testnodes_torchlike_floor.png",
+ "testnodes_torchlike_ceiling.png",
+ "testnodes_torchlike_wall.png",
+ },
+
+
+ walkable = false,
+ sunlight_propagates = true,
+ groups = { dig_immediate = 3 },
+ inventory_image = fallback_image("testnodes_torchlike_floor.png"),
+})
+
+minetest.register_node("testnodes:torchlike_wallmounted", {
description = S("Wallmounted Torchlike Drawtype Test Node"),
drawtype = "torchlike",
paramtype = "light",
@@ -162,6 +179,8 @@ minetest.register_node("testnodes:torchlike", {
inventory_image = fallback_image("testnodes_torchlike_floor.png"),
})
+
+
minetest.register_node("testnodes:signlike", {
description = S("Wallmounted Signlike Drawtype Test Node"),
drawtype = "signlike",
@@ -331,68 +350,72 @@ minetest.register_node("testnodes:plantlike_rooted_degrotate", {
})
-- Demonstrative liquid nodes, source and flowing form.
-minetest.register_node("testnodes:liquid", {
- description = S("Source Liquid Drawtype Test Node"),
- drawtype = "liquid",
- paramtype = "light",
- tiles = {
- "testnodes_liquidsource.png",
- },
- special_tiles = {
- {name="testnodes_liquidsource.png", backface_culling=false},
- {name="testnodes_liquidsource.png", backface_culling=true},
- },
- use_texture_alpha = true,
-
-
- walkable = false,
- liquidtype = "source",
- liquid_range = 1,
- liquid_viscosity = 0,
- liquid_alternative_flowing = "testnodes:liquid_flowing",
- liquid_alternative_source = "testnodes:liquid",
- groups = { dig_immediate = 3 },
-})
-minetest.register_node("testnodes:liquid_flowing", {
- description = S("Flowing Liquid Drawtype Test Node"),
- drawtype = "flowingliquid",
- paramtype = "light",
- paramtype2 = "flowingliquid",
- tiles = {
- "testnodes_liquidflowing.png",
- },
- special_tiles = {
- {name="testnodes_liquidflowing.png", backface_culling=false},
- {name="testnodes_liquidflowing.png", backface_culling=false},
- },
- use_texture_alpha = true,
+-- DRAWTYPE ONLY, NO LIQUID PHYSICS!
+-- Liquid ranges 0 to 8
+for r = 0, 8 do
+ minetest.register_node("testnodes:liquid_"..r, {
+ description = S("Source Liquid Drawtype Test Node, Range @1", r),
+ drawtype = "liquid",
+ paramtype = "light",
+ tiles = {
+ "testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100",
+ },
+ special_tiles = {
+ {name="testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false},
+ {name="testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=true},
+ },
+ use_texture_alpha = "blend",
+
+
+ walkable = false,
+ liquid_range = r,
+ liquid_viscosity = 0,
+ liquid_alternative_flowing = "testnodes:liquid_flowing_"..r,
+ liquid_alternative_source = "testnodes:liquid_"..r,
+ groups = { dig_immediate = 3 },
+ })
+ minetest.register_node("testnodes:liquid_flowing_"..r, {
+ description = S("Flowing Liquid Drawtype Test Node, Range @1", r),
+ drawtype = "flowingliquid",
+ paramtype = "light",
+ paramtype2 = "flowingliquid",
+ tiles = {
+ "testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100",
+ },
+ special_tiles = {
+ {name="testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false},
+ {name="testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false},
+ },
+ use_texture_alpha = "blend",
+
+
+ walkable = false,
+ liquid_range = r,
+ liquid_viscosity = 0,
+ liquid_alternative_flowing = "testnodes:liquid_flowing_"..r,
+ liquid_alternative_source = "testnodes:liquid_"..r,
+ groups = { dig_immediate = 3 },
+ })
+end
- walkable = false,
- liquidtype = "flowing",
- liquid_range = 1,
- liquid_viscosity = 0,
- liquid_alternative_flowing = "testnodes:liquid_flowing",
- liquid_alternative_source = "testnodes:liquid",
- groups = { dig_immediate = 3 },
-})
+-- Waving liquid test (drawtype only)
minetest.register_node("testnodes:liquid_waving", {
description = S("Waving Source Liquid Drawtype Test Node"),
drawtype = "liquid",
paramtype = "light",
tiles = {
- "testnodes_liquidsource.png^[brighten",
+ "testnodes_liquidsource.png^[colorize:#0000FF:127",
},
special_tiles = {
- {name="testnodes_liquidsource.png^[brighten", backface_culling=false},
- {name="testnodes_liquidsource.png^[brighten", backface_culling=true},
+ {name="testnodes_liquidsource.png^[colorize:#0000FF:127", backface_culling=false},
+ {name="testnodes_liquidsource.png^[colorize:#0000FF:127", backface_culling=true},
},
- use_texture_alpha = true,
+ use_texture_alpha = "blend",
waving = 3,
walkable = false,
- liquidtype = "source",
liquid_range = 1,
liquid_viscosity = 0,
liquid_alternative_flowing = "testnodes:liquid_flowing_waving",
@@ -405,18 +428,17 @@ minetest.register_node("testnodes:liquid_flowing_waving", {
paramtype = "light",
paramtype2 = "flowingliquid",
tiles = {
- "testnodes_liquidflowing.png^[brighten",
+ "testnodes_liquidflowing.png^[colorize:#0000FF:127",
},
special_tiles = {
- {name="testnodes_liquidflowing.png^[brighten", backface_culling=false},
- {name="testnodes_liquidflowing.png^[brighten", backface_culling=false},
+ {name="testnodes_liquidflowing.png^[colorize:#0000FF:127", backface_culling=false},
+ {name="testnodes_liquidflowing.png^[colorize:#0000FF:127", backface_culling=false},
},
- use_texture_alpha = true,
+ use_texture_alpha = "blend",
waving = 3,
walkable = false,
- liquidtype = "flowing",
liquid_range = 1,
liquid_viscosity = 0,
liquid_alternative_flowing = "testnodes:liquid_flowing_waving",
@@ -424,8 +446,6 @@ minetest.register_node("testnodes:liquid_flowing_waving", {
groups = { dig_immediate = 3 },
})
-
-
-- Invisible node
minetest.register_node("testnodes:airlike", {
description = S("Airlike Drawtype Test Node"),
@@ -514,10 +534,19 @@ local scale = function(subname, desc_double, desc_half)
minetest.register_node("testnodes:"..subname.."_half", def)
end
+scale("allfaces",
+ S("Double-sized Allfaces Drawtype Test Node"),
+ S("Half-sized Allfaces Drawtype Test Node"))
+scale("allfaces_optional",
+ S("Double-sized Allfaces Optional Drawtype Test Node"),
+ S("Half-sized Allfaces Optional Drawtype Test Node"))
+scale("allfaces_optional_waving",
+ S("Double-sized Waving Allfaces Optional Drawtype Test Node"),
+ S("Half-sized Waving Allfaces Optional Drawtype Test Node"))
scale("plantlike",
S("Double-sized Plantlike Drawtype Test Node"),
S("Half-sized Plantlike Drawtype Test Node"))
-scale("torchlike",
+scale("torchlike_wallmounted",
S("Double-sized Wallmounted Torchlike Drawtype Test Node"),
S("Half-sized Wallmounted Torchlike Drawtype Test Node"))
scale("signlike",
diff --git a/games/devtest/mods/testnodes/light.lua b/games/devtest/mods/testnodes/light.lua
index 94409e83f..8ab4416d9 100644
--- a/games/devtest/mods/testnodes/light.lua
+++ b/games/devtest/mods/testnodes/light.lua
@@ -22,7 +22,8 @@ end
-- Lets light through, but not sunlight, leading to a
-- reduction in light level when light passes through
minetest.register_node("testnodes:sunlight_filter", {
- description = S("Sunlight Filter"),
+ description = S("Sunlight Filter") .."\n"..
+ S("Lets light through, but weakens sunlight"),
paramtype = "light",
@@ -35,7 +36,8 @@ minetest.register_node("testnodes:sunlight_filter", {
-- Lets light and sunlight through without obstruction
minetest.register_node("testnodes:sunlight_propagator", {
- description = S("Sunlight Propagator"),
+ description = S("Sunlight Propagator") .."\n"..
+ S("Lets all light through"),
paramtype = "light",
sunlight_propagates = true,
diff --git a/games/devtest/mods/testnodes/liquids.lua b/games/devtest/mods/testnodes/liquids.lua
index e316782ad..3d2ea17f5 100644
--- a/games/devtest/mods/testnodes/liquids.lua
+++ b/games/devtest/mods/testnodes/liquids.lua
@@ -9,11 +9,9 @@ for d=0, 8 do
{name = "testnodes_liquidsource_r"..d..".png", backface_culling = false},
{name = "testnodes_liquidsource_r"..d..".png", backface_culling = true},
},
- alpha = 192,
+ use_texture_alpha = "blend",
paramtype = "light",
walkable = false,
- pointable = false,
- diggable = false,
buildable_to = true,
is_ground_content = false,
liquidtype = "source",
@@ -30,12 +28,10 @@ for d=0, 8 do
{name = "testnodes_liquidflowing_r"..d..".png", backface_culling = false},
{name = "testnodes_liquidflowing_r"..d..".png", backface_culling = false},
},
- alpha = 192,
+ use_texture_alpha = "blend",
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
- pointable = false,
- diggable = false,
buildable_to = true,
is_ground_content = false,
liquidtype = "flowing",
@@ -53,11 +49,9 @@ for d=0, 8 do
{name = "testnodes_liquidsource_r"..d..".png"..mod, backface_culling = false},
{name = "testnodes_liquidsource_r"..d..".png"..mod, backface_culling = true},
},
- alpha = 192,
+ use_texture_alpha = "blend",
paramtype = "light",
walkable = false,
- pointable = false,
- diggable = false,
buildable_to = true,
is_ground_content = false,
liquidtype = "source",
@@ -74,12 +68,10 @@ for d=0, 8 do
{name = "testnodes_liquidflowing_r"..d..".png"..mod, backface_culling = false},
{name = "testnodes_liquidflowing_r"..d..".png"..mod, backface_culling = false},
},
- alpha = 192,
+ use_texture_alpha = "blend",
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
- pointable = false,
- diggable = false,
buildable_to = true,
is_ground_content = false,
liquidtype = "flowing",
diff --git a/games/devtest/mods/testnodes/mod.conf b/games/devtest/mods/testnodes/mod.conf
index 4824c6ed0..d894c3452 100644
--- a/games/devtest/mods/testnodes/mod.conf
+++ b/games/devtest/mods/testnodes/mod.conf
@@ -1,2 +1,3 @@
name = testnodes
description = Contains a bunch of basic example nodes for demonstrative purposes, development and testing
+depends = stairs
diff --git a/games/devtest/mods/testnodes/nodeboxes.lua b/games/devtest/mods/testnodes/nodeboxes.lua
index ebd858337..7e966fdce 100644
--- a/games/devtest/mods/testnodes/nodeboxes.lua
+++ b/games/devtest/mods/testnodes/nodeboxes.lua
@@ -18,7 +18,7 @@ minetest.register_node("testnodes:nodebox_fixed", {
-- 50% higher than a regular node
minetest.register_node("testnodes:nodebox_overhigh", {
- description = S("Overhigh Nodebox Test Node"),
+ description = S("+50% high Nodebox Test Node"),
tiles = {"testnodes_nodebox.png"},
drawtype = "nodebox",
paramtype = "light",
@@ -30,15 +30,16 @@ minetest.register_node("testnodes:nodebox_overhigh", {
groups = {dig_immediate=3},
})
--- 100% higher than a regular node
+-- 95% higher than a regular node
minetest.register_node("testnodes:nodebox_overhigh2", {
- description = S("Double-height Nodebox Test Node"),
+ description = S("+95% high Nodebox Test Node"),
tiles = {"testnodes_nodebox.png"},
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
- fixed = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5},
+ -- Y max: more is possible, but glitchy
+ fixed = {-0.5, -0.5, -0.5, 0.5, 1.45, 0.5},
},
groups = {dig_immediate=3},
diff --git a/games/devtest/mods/testnodes/properties.lua b/games/devtest/mods/testnodes/properties.lua
index 01846a5f0..a52cd1d6f 100644
--- a/games/devtest/mods/testnodes/properties.lua
+++ b/games/devtest/mods/testnodes/properties.lua
@@ -114,11 +114,10 @@ minetest.register_node("testnodes:liquid_nojump", {
{name = "testnodes_liquidsource.png^[colorize:#FF0000:127", backface_culling = false},
{name = "testnodes_liquidsource.png^[colorize:#FF0000:127", backface_culling = true},
},
- use_texture_alpha = true,
+ use_texture_alpha = "blend",
paramtype = "light",
pointable = false,
liquids_pointable = true,
- diggable = false,
buildable_to = true,
is_ground_content = false,
post_effect_color = {a = 70, r = 255, g = 0, b = 200},
@@ -143,12 +142,11 @@ minetest.register_node("testnodes:liquidflowing_nojump", {
{name = "testnodes_liquidflowing.png^[colorize:#FF0000:127", backface_culling = false},
{name = "testnodes_liquidflowing.png^[colorize:#FF0000:127", backface_culling = false},
},
- use_texture_alpha = true,
+ use_texture_alpha = "blend",
paramtype = "light",
paramtype2 = "flowingliquid",
pointable = false,
liquids_pointable = true,
- diggable = false,
buildable_to = true,
is_ground_content = false,
post_effect_color = {a = 70, r = 255, g = 0, b = 200},
diff --git a/games/devtest/mods/testnodes/textures.lua b/games/devtest/mods/testnodes/textures.lua
index 6ffef8fe9..f6e6a0c2a 100644
--- a/games/devtest/mods/testnodes/textures.lua
+++ b/games/devtest/mods/testnodes/textures.lua
@@ -46,28 +46,22 @@ for a=1,#alphas do
tiles = {
"testnodes_alpha"..alpha..".png",
},
- use_texture_alpha = true,
+ use_texture_alpha = "blend",
groups = { dig_immediate = 3 },
})
- -- Transparency set via "alpha" parameter
+ -- Transparency set via texture modifier
minetest.register_node("testnodes:alpha_"..alpha, {
description = S("Alpha Test Node (@1)", alpha),
- -- It seems that only the liquid drawtype supports the alpha parameter
- drawtype = "liquid",
+ drawtype = "glasslike",
paramtype = "light",
tiles = {
- "testnodes_alpha.png",
+ "testnodes_alpha.png^[opacity:" .. alpha,
},
- alpha = alpha,
-
+ use_texture_alpha = "blend",
- liquidtype = "source",
- liquid_range = 0,
- liquid_viscosity = 0,
- liquid_alternative_source = "testnodes:alpha_"..alpha,
- liquid_alternative_flowing = "testnodes:alpha_"..alpha,
groups = { dig_immediate = 3 },
})
end
+
diff --git a/games/devtest/mods/testpathfinder/init.lua b/games/devtest/mods/testpathfinder/init.lua
index f94848236..67748afca 100644
--- a/games/devtest/mods/testpathfinder/init.lua
+++ b/games/devtest/mods/testpathfinder/init.lua
@@ -121,7 +121,11 @@ end
-- Sneak+punch: Select pathfinding algorithm
-- Place: Select destination node
minetest.register_tool("testpathfinder:testpathfinder", {
- description = S("Pathfinder Tester"),
+ description = S("Pathfinder Tester") .."\n"..
+ S("Finds path between 2 points") .."\n"..
+ S("Place on node: Select destination") .."\n"..
+ S("Punch: Find path from here") .."\n"..
+ S("Sneak+Punch: Change algorithm"),
inventory_image = "testpathfinder_testpathfinder.png",
groups = { testtool = 1, disable_repair = 1 },
on_use = find_path_or_set_algorithm,
diff --git a/games/devtest/mods/testtools/init.lua b/games/devtest/mods/testtools/init.lua
index d68a086b9..d578b264a 100644
--- a/games/devtest/mods/testtools/init.lua
+++ b/games/devtest/mods/testtools/init.lua
@@ -1,15 +1,17 @@
local S = minetest.get_translator("testtools")
local F = minetest.formspec_escape
+dofile(minetest.get_modpath("testtools") .. "/light.lua")
+
-- TODO: Add a Node Metadata tool
--- Param 2 Tool: Set param2 value of tools
--- Punch: +1
--- Punch+Shift: +8
--- Place: -1
--- Place+Shift: -8
minetest.register_tool("testtools:param2tool", {
- description = S("Param2 Tool"),
+ description = S("Param2 Tool") .."\n"..
+ S("Modify param2 value of nodes") .."\n"..
+ S("Punch: +1") .."\n"..
+ S("Sneak+Punch: +8") .."\n"..
+ S("Place: -1") .."\n"..
+ S("Sneak+Place: -8"),
inventory_image = "testtools_param2tool.png",
groups = { testtool = 1, disable_repair = 1 },
on_use = function(itemstack, user, pointed_thing)
@@ -47,7 +49,11 @@ minetest.register_tool("testtools:param2tool", {
})
minetest.register_tool("testtools:node_setter", {
- description = S("Node Setter"),
+ description = S("Node Setter") .."\n"..
+ S("Replace pointed node with something else") .."\n"..
+ S("Punch: Select pointed node") .."\n"..
+ S("Place on node: Replace node with selected node") .."\n"..
+ S("Place in air: Manually select a node"),
inventory_image = "testtools_node_setter.png",
groups = { testtool = 1, disable_repair = 1 },
on_use = function(itemstack, user, pointed_thing)
@@ -125,7 +131,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end)
minetest.register_tool("testtools:remover", {
- description = S("Remover"),
+ description = S("Remover") .."\n"..
+ S("Punch: Remove pointed node or object"),
inventory_image = "testtools_remover.png",
groups = { testtool = 1, disable_repair = 1 },
on_use = function(itemstack, user, pointed_thing)
@@ -136,13 +143,17 @@ minetest.register_tool("testtools:remover", {
local obj = pointed_thing.ref
if not obj:is_player() then
obj:remove()
+ else
+ minetest.chat_send_player(user:get_player_name(), S("Can't remove players!"))
end
end
end,
})
minetest.register_tool("testtools:falling_node_tool", {
- description = S("Falling Node Tool"),
+ description = S("Falling Node Tool") .."\n"..
+ S("Punch: Make pointed node fall") .."\n"..
+ S("Place: Move pointed node 2 units upwards, then make it fall"),
inventory_image = "testtools_falling_node_tool.png",
groups = { testtool = 1, disable_repair = 1 },
on_place = function(itemstack, user, pointed_thing)
@@ -191,7 +202,11 @@ minetest.register_tool("testtools:falling_node_tool", {
})
minetest.register_tool("testtools:rotator", {
- description = S("Entity Rotator"),
+ description = S("Entity Rotator") .. "\n" ..
+ S("Rotate pointed entity") .."\n"..
+ S("Punch: Yaw") .."\n"..
+ S("Sneak+Punch: Pitch") .."\n"..
+ S("Aux1+Punch: Roll"),
inventory_image = "testtools_entity_rotator.png",
groups = { testtool = 1, disable_repair = 1 },
on_use = function(itemstack, user, pointed_thing)
@@ -244,7 +259,12 @@ local mover_config = function(itemstack, user, pointed_thing)
end
minetest.register_tool("testtools:object_mover", {
- description = S("Object Mover"),
+ description = S("Object Mover") .."\n"..
+ S("Move pointed object towards or away from you") .."\n"..
+ S("Punch: Move by distance").."\n"..
+ S("Sneak+Punch: Move by negative distance").."\n"..
+ S("Place: Increase distance").."\n"..
+ S("Sneak+Place: Decrease distance"),
inventory_image = "testtools_object_mover.png",
groups = { testtool = 1, disable_repair = 1 },
on_place = mover_config,
@@ -287,7 +307,10 @@ minetest.register_tool("testtools:object_mover", {
minetest.register_tool("testtools:entity_scaler", {
- description = S("Entity Visual Scaler"),
+ description = S("Entity Visual Scaler") .."\n"..
+ S("Scale visual size of entities") .."\n"..
+ S("Punch: Increase size") .."\n"..
+ S("Sneak+Punch: Decrease scale"),
inventory_image = "testtools_entity_scaler.png",
groups = { testtool = 1, disable_repair = 1 },
on_use = function(itemstack, user, pointed_thing)
@@ -342,14 +365,21 @@ local function get_entity_list()
return entity_list
end
minetest.register_tool("testtools:entity_spawner", {
- description = S("Entity Spawner"),
+ description = S("Entity Spawner") .."\n"..
+ S("Spawns entities") .."\n"..
+ S("Punch: Select entity to spawn") .."\n"..
+ S("Place: Spawn selected entity"),
inventory_image = "testtools_entity_spawner.png",
groups = { testtool = 1, disable_repair = 1 },
on_place = function(itemstack, user, pointed_thing)
local name = user:get_player_name()
- if selections[name] and pointed_thing.type == "node" then
- local pos = pointed_thing.above
- minetest.add_entity(pos, get_entity_list()[selections[name]])
+ if pointed_thing.type == "node" then
+ if selections[name] then
+ local pos = pointed_thing.above
+ minetest.add_entity(pos, get_entity_list()[selections[name]])
+ else
+ minetest.chat_send_player(name, S("Select an entity first (with punch key)!"))
+ end
end
end,
on_use = function(itemstack, user, pointed_thing)
@@ -435,7 +465,10 @@ local editor_formspec = function(playername, obj, value, sel)
end
minetest.register_tool("testtools:object_editor", {
- description = S("Object Property Editor"),
+ description = S("Object Property Editor") .."\n"..
+ S("Edit properties of objects") .."\n"..
+ S("Punch object: Edit object") .."\n"..
+ S("Punch air: Edit yourself"),
inventory_image = "testtools_object_editor.png",
groups = { testtool = 1, disable_repair = 1 },
on_use = function(itemstack, user, pointed_thing)
@@ -515,7 +548,14 @@ local attacher_config = function(itemstack, user, pointed_thing)
end
minetest.register_tool("testtools:object_attacher", {
- description = S("Object Attacher"),
+ description = S("Object Attacher") .."\n"..
+ S("Attach object to another") .."\n"..
+ S("Punch objects to first select parent object, then the child object to attach") .."\n"..
+ S("Punch air to select yourself") .."\n"..
+ S("Place: Incease attachment Y offset") .."\n"..
+ S("Sneak+Place: Decease attachment Y offset") .."\n"..
+ S("Aux1+Place: Incease attachment rotation") .."\n"..
+ S("Aux1+Sneak+Place: Decrease attachment rotation"),
inventory_image = "testtools_object_attacher.png",
groups = { testtool = 1, disable_repair = 1 },
on_place = attacher_config,
diff --git a/games/devtest/mods/testtools/light.lua b/games/devtest/mods/testtools/light.lua
new file mode 100644
index 000000000..a9458ca6b
--- /dev/null
+++ b/games/devtest/mods/testtools/light.lua
@@ -0,0 +1,22 @@
+
+local S = minetest.get_translator("testtools")
+
+minetest.register_tool("testtools:lighttool", {
+ description = S("Light tool"),
+ inventory_image = "testtools_lighttool.png",
+ groups = { testtool = 1, disable_repair = 1 },
+ on_use = function(itemstack, user, pointed_thing)
+ local pos = pointed_thing.above
+ if pointed_thing.type ~= "node" or not pos then
+ return
+ end
+
+ local node = minetest.get_node(pos)
+ local time = minetest.get_timeofday()
+ local sunlight = minetest.get_natural_light(pos)
+ local artificial = minetest.get_artificial_light(node.param1)
+ local message = ("param1 0x%02x | time %.5f | sunlight %d | artificial %d")
+ :format(node.param1, time, sunlight, artificial)
+ minetest.chat_send_player(user:get_player_name(), message)
+ end
+})
diff --git a/games/devtest/mods/testtools/textures/testtools_lighttool.png b/games/devtest/mods/testtools/textures/testtools_lighttool.png
new file mode 100644
index 000000000..6f744b7fa
--- /dev/null
+++ b/games/devtest/mods/testtools/textures/testtools_lighttool.png
Binary files differ
diff --git a/games/devtest/mods/unittests/init.lua b/games/devtest/mods/unittests/init.lua
index 6c1728420..12c67f78b 100644
--- a/games/devtest/mods/unittests/init.lua
+++ b/games/devtest/mods/unittests/init.lua
@@ -5,10 +5,12 @@ dofile(modpath .. "/random.lua")
dofile(modpath .. "/player.lua")
dofile(modpath .. "/crafting_prepare.lua")
dofile(modpath .. "/crafting.lua")
+dofile(modpath .. "/itemdescription.lua")
if minetest.settings:get_bool("devtest_unittests_autostart", false) then
unittests.test_random()
unittests.test_crafting()
+ unittests.test_short_desc()
minetest.register_on_joinplayer(function(player)
unittests.test_player(player)
end)
diff --git a/games/devtest/mods/unittests/itemdescription.lua b/games/devtest/mods/unittests/itemdescription.lua
new file mode 100644
index 000000000..d6ee6551a
--- /dev/null
+++ b/games/devtest/mods/unittests/itemdescription.lua
@@ -0,0 +1,51 @@
+local full_description = "Colorful Pickaxe\nThe best pick."
+minetest.register_tool("unittests:colorful_pick", {
+ description = full_description,
+ inventory_image = "basetools_mesepick.png",
+ tool_capabilities = {
+ full_punch_interval = 1.0,
+ max_drop_level=3,
+ groupcaps={
+ cracky={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3},
+ crumbly={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3},
+ snappy={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3}
+ },
+ damage_groups = {fleshy=4},
+ },
+})
+
+minetest.register_chatcommand("item_description", {
+ param = "",
+ description = "Show the short and full description of the wielded item.",
+ func = function(name)
+ local player = minetest.get_player_by_name(name)
+ local item = player:get_wielded_item()
+ return true, string.format("short_description: %s\ndescription: %s",
+ item:get_short_description(), item:get_description())
+ end
+})
+
+function unittests.test_short_desc()
+ local function get_short_description(item)
+ return ItemStack(item):get_short_description()
+ end
+
+ local stack = ItemStack("unittests:colorful_pick")
+ assert(stack:get_short_description() == "Colorful Pickaxe")
+ assert(get_short_description("unittests:colorful_pick") == "Colorful Pickaxe")
+ assert(minetest.registered_items["unittests:colorful_pick"].short_description == nil)
+ assert(stack:get_description() == full_description)
+ assert(stack:get_description() == minetest.registered_items["unittests:colorful_pick"].description)
+
+ stack:get_meta():set_string("description", "Hello World")
+ assert(stack:get_short_description() == "Hello World")
+ assert(stack:get_description() == "Hello World")
+ assert(get_short_description(stack) == "Hello World")
+ assert(get_short_description("unittests:colorful_pick") == "Colorful Pickaxe")
+
+ stack:get_meta():set_string("short_description", "Foo Bar")
+ assert(stack:get_short_description() == "Foo Bar")
+ assert(stack:get_description() == "Hello World")
+
+ return true
+end
diff --git a/games/devtest/mods/unittests/mod.conf b/games/devtest/mods/unittests/mod.conf
index 0d5e3c959..fa94e01a6 100644
--- a/games/devtest/mods/unittests/mod.conf
+++ b/games/devtest/mods/unittests/mod.conf
@@ -1,2 +1,3 @@
name = unittests
description = Adds automated unit tests for the engine
+depends = basenodes
diff --git a/games/devtest/mods/unittests/textures/default_dirt.png b/games/devtest/mods/unittests/textures/default_dirt.png
new file mode 100644
index 000000000..58670305d
--- /dev/null
+++ b/games/devtest/mods/unittests/textures/default_dirt.png
Binary files differ
diff --git a/games/devtest/mods/util_commands/init.lua b/games/devtest/mods/util_commands/init.lua
index 3a0e91a41..ca5dca2d9 100644
--- a/games/devtest/mods/util_commands/init.lua
+++ b/games/devtest/mods/util_commands/init.lua
@@ -36,8 +36,12 @@ minetest.register_chatcommand("hp", {
end,
})
-minetest.register_chatcommand("zoom", {
- params = "[<zoom_fov>]",
+minetest.register_on_joinplayer(function(player)
+ player:set_properties({zoom_fov = 15})
+end)
+
+minetest.register_chatcommand("zoomfov", {
+ params = "[<FOV>]",
description = "Set or display your zoom_fov",
func = function(name, param)
local player = minetest.get_player_by_name(name)
@@ -58,8 +62,6 @@ minetest.register_chatcommand("zoom", {
end,
})
-
-
local s_infplace = minetest.settings:get("devtest_infplace")
if s_infplace == "true" then
infplace = true
@@ -112,6 +114,62 @@ minetest.register_chatcommand("detach", {
end,
})
+-- Use this to test waypoint capabilities
+minetest.register_chatcommand("test_waypoints", {
+ params = "[change_immediate]",
+ description = "tests waypoint capabilities",
+ func = function(name, params)
+ local player = minetest.get_player_by_name(name)
+ local regular = player:hud_add {
+ hud_elem_type = "waypoint",
+ name = "regular waypoint",
+ text = "m",
+ number = 0xFF0000,
+ world_pos = vector.add(player:get_pos(), {x = 0, y = 1.5, z = 0})
+ }
+ local reduced_precision = player:hud_add {
+ hud_elem_type = "waypoint",
+ name = "better waypoint",
+ text = "m (0.5 steps, precision = 2)",
+ precision = 10,
+ number = 0xFFFF00,
+ world_pos = vector.add(player:get_pos(), {x = 0, y = 1, z = 0})
+ }
+ local function change()
+ if regular then
+ player:hud_change(regular, "world_pos", vector.add(player:get_pos(), {x = 0, y = 3, z = 0}))
+ end
+ if reduced_precision then
+ player:hud_change(reduced_precision, "precision", 2)
+ end
+ end
+ if params ~= "" then
+ -- change immediate
+ change()
+ else
+ minetest.after(0.5, change)
+ end
+ regular = regular or "error"
+ reduced_precision = reduced_precision or "error"
+ local hidden_distance = player:hud_add {
+ hud_elem_type = "waypoint",
+ name = "waypoint with hidden distance",
+ text = "this text is hidden as well (precision = 0)",
+ precision = 0,
+ number = 0x0000FF,
+ world_pos = vector.add(player:get_pos(), {x = 0, y = 0.5, z = 0})
+ } or "error"
+ local image_waypoint = player:hud_add {
+ hud_elem_type = "image_waypoint",
+ text = "wieldhand.png",
+ world_pos = player:get_pos(),
+ scale = {x = 10, y = 10},
+ offset = {x = 0, y = -32}
+ } or "error"
+ minetest.chat_send_player(name, "Waypoint IDs: regular: " .. regular .. ", reduced precision: " .. reduced_precision ..
+ ", hidden distance: " .. hidden_distance .. ", image waypoint: " .. image_waypoint)
+ end
+})
-- Unlimited node placement
minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack)
diff --git a/lib/jsoncpp/json/UPDATING b/lib/jsoncpp/json/UPDATING
index f0226e8ee..0893244cf 100644
--- a/lib/jsoncpp/json/UPDATING
+++ b/lib/jsoncpp/json/UPDATING
@@ -1,6 +1,6 @@
#!/bin/sh
cd ..
-git clone https://github.com/open-source-parsers/jsoncpp -b 1.8.3 --depth 1
+git clone https://github.com/open-source-parsers/jsoncpp -b 1.9.4 --depth 1
cd jsoncpp
python amalgamate.py
cp -R dist/json ../json
diff --git a/lib/jsoncpp/json/json-forwards.h b/lib/jsoncpp/json/json-forwards.h
index de2e4bd79..d3260c57c 100644
--- a/lib/jsoncpp/json/json-forwards.h
+++ b/lib/jsoncpp/json/json-forwards.h
@@ -80,6 +80,151 @@ license you like.
#define JSON_IS_AMALGAMATION
// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/version.h
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef JSON_VERSION_H_INCLUDED
+#define JSON_VERSION_H_INCLUDED
+
+// Note: version must be updated in three places when doing a release. This
+// annoying process ensures that amalgamate, CMake, and meson all report the
+// correct version.
+// 1. /meson.build
+// 2. /include/json/version.h
+// 3. /CMakeLists.txt
+// IMPORTANT: also update the SOVERSION!!
+
+#define JSONCPP_VERSION_STRING "1.9.4"
+#define JSONCPP_VERSION_MAJOR 1
+#define JSONCPP_VERSION_MINOR 9
+#define JSONCPP_VERSION_PATCH 3
+#define JSONCPP_VERSION_QUALIFIER
+#define JSONCPP_VERSION_HEXA \
+ ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | \
+ (JSONCPP_VERSION_PATCH << 8))
+
+#ifdef JSONCPP_USING_SECURE_MEMORY
+#undef JSONCPP_USING_SECURE_MEMORY
+#endif
+#define JSONCPP_USING_SECURE_MEMORY 0
+// If non-zero, the library zeroes any memory that it has allocated before
+// it frees its memory.
+
+#endif // JSON_VERSION_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/version.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/allocator.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_ALLOCATOR_H_INCLUDED
+#define JSON_ALLOCATOR_H_INCLUDED
+
+#include <cstring>
+#include <memory>
+
+#pragma pack(push, 8)
+
+namespace Json {
+template <typename T> class SecureAllocator {
+public:
+ // Type definitions
+ using value_type = T;
+ using pointer = T*;
+ using const_pointer = const T*;
+ using reference = T&;
+ using const_reference = const T&;
+ using size_type = std::size_t;
+ using difference_type = std::ptrdiff_t;
+
+ /**
+ * Allocate memory for N items using the standard allocator.
+ */
+ pointer allocate(size_type n) {
+ // allocate using "global operator new"
+ return static_cast<pointer>(::operator new(n * sizeof(T)));
+ }
+
+ /**
+ * Release memory which was allocated for N items at pointer P.
+ *
+ * The memory block is filled with zeroes before being released.
+ * The pointer argument is tagged as "volatile" to prevent the
+ * compiler optimizing out this critical step.
+ */
+ void deallocate(volatile pointer p, size_type n) {
+ std::memset(p, 0, n * sizeof(T));
+ // free using "global operator delete"
+ ::operator delete(p);
+ }
+
+ /**
+ * Construct an item in-place at pointer P.
+ */
+ template <typename... Args> void construct(pointer p, Args&&... args) {
+ // construct using "placement new" and "perfect forwarding"
+ ::new (static_cast<void*>(p)) T(std::forward<Args>(args)...);
+ }
+
+ size_type max_size() const { return size_t(-1) / sizeof(T); }
+
+ pointer address(reference x) const { return std::addressof(x); }
+
+ const_pointer address(const_reference x) const { return std::addressof(x); }
+
+ /**
+ * Destroy an item in-place at pointer P.
+ */
+ void destroy(pointer p) {
+ // destroy using "explicit destructor"
+ p->~T();
+ }
+
+ // Boilerplate
+ SecureAllocator() {}
+ template <typename U> SecureAllocator(const SecureAllocator<U>&) {}
+ template <typename U> struct rebind { using other = SecureAllocator<U>; };
+};
+
+template <typename T, typename U>
+bool operator==(const SecureAllocator<T>&, const SecureAllocator<U>&) {
+ return true;
+}
+
+template <typename T, typename U>
+bool operator!=(const SecureAllocator<T>&, const SecureAllocator<U>&) {
+ return false;
+}
+
+} // namespace Json
+
+#pragma pack(pop)
+
+#endif // JSON_ALLOCATOR_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/allocator.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
// Beginning of content of file: include/json/config.h
// //////////////////////////////////////////////////////////////////////
@@ -90,19 +235,14 @@ license you like.
#ifndef JSON_CONFIG_H_INCLUDED
#define JSON_CONFIG_H_INCLUDED
-#include <stddef.h>
-#include <string> //typedef String
-#include <stdint.h> //typedef int64_t, uint64_t
-
-/// If defined, indicates that json library is embedded in CppTL library.
-//# define JSON_IN_CPPTL 1
-
-/// If defined, indicates that json may leverage CppTL library
-//# define JSON_USE_CPPTL 1
-/// If defined, indicates that cpptl vector based map should be used instead of
-/// std::map
-/// as Value container.
-//# define JSON_USE_CPPTL_SMALLMAP 1
+#include <cstddef>
+#include <cstdint>
+#include <istream>
+#include <memory>
+#include <ostream>
+#include <sstream>
+#include <string>
+#include <type_traits>
// If non-zero, the library uses exceptions to report bad input instead of C
// assertion macros. The default is to use exceptions.
@@ -110,164 +250,132 @@ license you like.
#define JSON_USE_EXCEPTION 1
#endif
+// Temporary, tracked for removal with issue #982.
+#ifndef JSON_USE_NULLREF
+#define JSON_USE_NULLREF 1
+#endif
+
/// If defined, indicates that the source file is amalgamated
/// to prevent private header inclusion.
/// Remarks: it is automatically defined in the generated amalgamated header.
// #define JSON_IS_AMALGAMATION
-#ifdef JSON_IN_CPPTL
-#include <cpptl/config.h>
-#ifndef JSON_USE_CPPTL
-#define JSON_USE_CPPTL 1
-#endif
-#endif
-
-#ifdef JSON_IN_CPPTL
-#define JSON_API CPPTL_API
-#elif defined(JSON_DLL_BUILD)
+// Export macros for DLL visibility
+#if defined(JSON_DLL_BUILD)
#if defined(_MSC_VER) || defined(__MINGW32__)
#define JSON_API __declspec(dllexport)
#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
+#elif defined(__GNUC__) || defined(__clang__)
+#define JSON_API __attribute__((visibility("default")))
#endif // if defined(_MSC_VER)
+
#elif defined(JSON_DLL)
#if defined(_MSC_VER) || defined(__MINGW32__)
#define JSON_API __declspec(dllimport)
#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
#endif // if defined(_MSC_VER)
-#endif // ifdef JSON_IN_CPPTL
+#endif // ifdef JSON_DLL_BUILD
+
#if !defined(JSON_API)
#define JSON_API
#endif
-// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for
-// integer
-// Storages, and 64 bits integer support is disabled.
-// #define JSON_NO_INT64 1
+#if defined(_MSC_VER) && _MSC_VER < 1800
+#error \
+ "ERROR: Visual Studio 12 (2013) with _MSC_VER=1800 is the oldest supported compiler with sufficient C++11 capabilities"
+#endif
-#if defined(_MSC_VER) // MSVC
-# if _MSC_VER <= 1200 // MSVC 6
- // Microsoft Visual Studio 6 only support conversion from __int64 to double
- // (no conversion from unsigned __int64).
-# define JSON_USE_INT64_DOUBLE_CONVERSION 1
- // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255'
- // characters in the debug information)
- // All projects I've ever seen with VS6 were using this globally (not bothering
- // with pragma push/pop).
-# pragma warning(disable : 4786)
-# endif // MSVC 6
-
-# if _MSC_VER >= 1500 // MSVC 2008
- /// Indicates that the following function is deprecated.
-# define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
-# endif
-
-#endif // defined(_MSC_VER)
-
-// In c++11 the override keyword allows you to explicitly define that a function
-// is intended to override the base-class version. This makes the code more
-// managable and fixes a set of common hard-to-find bugs.
-#if __cplusplus >= 201103L
-# define JSONCPP_OVERRIDE override
-# define JSONCPP_NOEXCEPT noexcept
-#elif defined(_MSC_VER) && _MSC_VER > 1600 && _MSC_VER < 1900
-# define JSONCPP_OVERRIDE override
-# define JSONCPP_NOEXCEPT throw()
-#elif defined(_MSC_VER) && _MSC_VER >= 1900
-# define JSONCPP_OVERRIDE override
-# define JSONCPP_NOEXCEPT noexcept
+#if defined(_MSC_VER) && _MSC_VER < 1900
+// As recommended at
+// https://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010
+extern JSON_API int msvc_pre1900_c99_snprintf(char* outBuf, size_t size,
+ const char* format, ...);
+#define jsoncpp_snprintf msvc_pre1900_c99_snprintf
#else
-# define JSONCPP_OVERRIDE
-# define JSONCPP_NOEXCEPT throw()
+#define jsoncpp_snprintf std::snprintf
#endif
-#ifndef JSON_HAS_RVALUE_REFERENCES
+// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for
+// integer
+// Storages, and 64 bits integer support is disabled.
+// #define JSON_NO_INT64 1
-#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010
-#define JSON_HAS_RVALUE_REFERENCES 1
-#endif // MSVC >= 2010
+// JSONCPP_OVERRIDE is maintained for backwards compatibility of external tools.
+// C++11 should be used directly in JSONCPP.
+#define JSONCPP_OVERRIDE override
#ifdef __clang__
-#if __has_feature(cxx_rvalue_references)
-#define JSON_HAS_RVALUE_REFERENCES 1
-#endif // has_feature
-
-#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
-#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
-#define JSON_HAS_RVALUE_REFERENCES 1
-#endif // GXX_EXPERIMENTAL
-
-#endif // __clang__ || __GNUC__
-
-#endif // not defined JSON_HAS_RVALUE_REFERENCES
-
-#ifndef JSON_HAS_RVALUE_REFERENCES
-#define JSON_HAS_RVALUE_REFERENCES 0
+#if __has_extension(attribute_deprecated_with_message)
+#define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message)))
#endif
-
-#ifdef __clang__
-# if __has_extension(attribute_deprecated_with_message)
-# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message)))
-# endif
-#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
-# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
-# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message)))
-# elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
-# define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__))
-# endif // GNUC version
-#endif // __clang__ || __GNUC__
+#elif defined(__GNUC__) // not clang (gcc comes later since clang emulates gcc)
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
+#define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message)))
+#elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+#define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__))
+#endif // GNUC version
+#elif defined(_MSC_VER) // MSVC (after clang because clang on Windows emulates
+ // MSVC)
+#define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
+#endif // __clang__ || __GNUC__ || _MSC_VER
#if !defined(JSONCPP_DEPRECATED)
#define JSONCPP_DEPRECATED(message)
#endif // if !defined(JSONCPP_DEPRECATED)
-#if __GNUC__ >= 6
-# define JSON_USE_INT64_DOUBLE_CONVERSION 1
+#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 6))
+#define JSON_USE_INT64_DOUBLE_CONVERSION 1
#endif
#if !defined(JSON_IS_AMALGAMATION)
-# include "version.h"
-
-# if JSONCPP_USING_SECURE_MEMORY
-# include "allocator.h" //typedef Allocator
-# endif
+#include "allocator.h"
+#include "version.h"
#endif // if !defined(JSON_IS_AMALGAMATION)
namespace Json {
-typedef int Int;
-typedef unsigned int UInt;
+using Int = int;
+using UInt = unsigned int;
#if defined(JSON_NO_INT64)
-typedef int LargestInt;
-typedef unsigned int LargestUInt;
+using LargestInt = int;
+using LargestUInt = unsigned int;
#undef JSON_HAS_INT64
#else // if defined(JSON_NO_INT64)
// For Microsoft Visual use specific types as long long is not supported
#if defined(_MSC_VER) // Microsoft Visual Studio
-typedef __int64 Int64;
-typedef unsigned __int64 UInt64;
+using Int64 = __int64;
+using UInt64 = unsigned __int64;
#else // if defined(_MSC_VER) // Other platforms, use long long
-typedef int64_t Int64;
-typedef uint64_t UInt64;
-#endif // if defined(_MSC_VER)
-typedef Int64 LargestInt;
-typedef UInt64 LargestUInt;
+using Int64 = int64_t;
+using UInt64 = uint64_t;
+#endif // if defined(_MSC_VER)
+using LargestInt = Int64;
+using LargestUInt = UInt64;
#define JSON_HAS_INT64
#endif // if defined(JSON_NO_INT64)
-#if JSONCPP_USING_SECURE_MEMORY
-#define JSONCPP_STRING std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> >
-#define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
-#define JSONCPP_OSTREAM std::basic_ostream<char, std::char_traits<char>>
-#define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
-#define JSONCPP_ISTREAM std::istream
-#else
-#define JSONCPP_STRING std::string
-#define JSONCPP_OSTRINGSTREAM std::ostringstream
-#define JSONCPP_OSTREAM std::ostream
-#define JSONCPP_ISTRINGSTREAM std::istringstream
-#define JSONCPP_ISTREAM std::istream
-#endif // if JSONCPP_USING_SECURE_MEMORY
-} // end namespace Json
+
+template <typename T>
+using Allocator =
+ typename std::conditional<JSONCPP_USING_SECURE_MEMORY, SecureAllocator<T>,
+ std::allocator<T>>::type;
+using String = std::basic_string<char, std::char_traits<char>, Allocator<char>>;
+using IStringStream =
+ std::basic_istringstream<String::value_type, String::traits_type,
+ String::allocator_type>;
+using OStringStream =
+ std::basic_ostringstream<String::value_type, String::traits_type,
+ String::allocator_type>;
+using IStream = std::istream;
+using OStream = std::ostream;
+} // namespace Json
+
+// Legacy names (formerly macros).
+using JSONCPP_STRING = Json::String;
+using JSONCPP_ISTRINGSTREAM = Json::IStringStream;
+using JSONCPP_OSTRINGSTREAM = Json::OStringStream;
+using JSONCPP_ISTREAM = Json::IStream;
+using JSONCPP_OSTREAM = Json::OStream;
#endif // JSON_CONFIG_H_INCLUDED
@@ -299,17 +407,23 @@ typedef UInt64 LargestUInt;
namespace Json {
// writer.h
+class StreamWriter;
+class StreamWriterBuilder;
+class Writer;
class FastWriter;
class StyledWriter;
+class StyledStreamWriter;
// reader.h
class Reader;
+class CharReader;
+class CharReaderBuilder;
-// features.h
+// json_features.h
class Features;
// value.h
-typedef unsigned int ArrayIndex;
+using ArrayIndex = unsigned int;
class StaticString;
class Path;
class PathArgument;
diff --git a/lib/jsoncpp/json/json.h b/lib/jsoncpp/json/json.h
index 625ba02e9..3f4813a95 100644
--- a/lib/jsoncpp/json/json.h
+++ b/lib/jsoncpp/json/json.h
@@ -82,17 +82,25 @@ license you like.
// Beginning of content of file: include/json/version.h
// //////////////////////////////////////////////////////////////////////
-// DO NOT EDIT. This file (and "version") is generated by CMake.
-// Run CMake configure step to update it.
#ifndef JSON_VERSION_H_INCLUDED
-# define JSON_VERSION_H_INCLUDED
-
-# define JSONCPP_VERSION_STRING "1.8.4"
-# define JSONCPP_VERSION_MAJOR 1
-# define JSONCPP_VERSION_MINOR 8
-# define JSONCPP_VERSION_PATCH 4
-# define JSONCPP_VERSION_QUALIFIER
-# define JSONCPP_VERSION_HEXA ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | (JSONCPP_VERSION_PATCH << 8))
+#define JSON_VERSION_H_INCLUDED
+
+// Note: version must be updated in three places when doing a release. This
+// annoying process ensures that amalgamate, CMake, and meson all report the
+// correct version.
+// 1. /meson.build
+// 2. /include/json/version.h
+// 3. /CMakeLists.txt
+// IMPORTANT: also update the SOVERSION!!
+
+#define JSONCPP_VERSION_STRING "1.9.4"
+#define JSONCPP_VERSION_MAJOR 1
+#define JSONCPP_VERSION_MINOR 9
+#define JSONCPP_VERSION_PATCH 3
+#define JSONCPP_VERSION_QUALIFIER
+#define JSONCPP_VERSION_HEXA \
+ ((JSONCPP_VERSION_MAJOR << 24) | (JSONCPP_VERSION_MINOR << 16) | \
+ (JSONCPP_VERSION_PATCH << 8))
#ifdef JSONCPP_USING_SECURE_MEMORY
#undef JSONCPP_USING_SECURE_MEMORY
@@ -113,6 +121,109 @@ license you like.
// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: include/json/allocator.h
+// //////////////////////////////////////////////////////////////////////
+
+// Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
+// Distributed under MIT license, or public domain if desired and
+// recognized in your jurisdiction.
+// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
+
+#ifndef JSON_ALLOCATOR_H_INCLUDED
+#define JSON_ALLOCATOR_H_INCLUDED
+
+#include <cstring>
+#include <memory>
+
+#pragma pack(push, 8)
+
+namespace Json {
+template <typename T> class SecureAllocator {
+public:
+ // Type definitions
+ using value_type = T;
+ using pointer = T*;
+ using const_pointer = const T*;
+ using reference = T&;
+ using const_reference = const T&;
+ using size_type = std::size_t;
+ using difference_type = std::ptrdiff_t;
+
+ /**
+ * Allocate memory for N items using the standard allocator.
+ */
+ pointer allocate(size_type n) {
+ // allocate using "global operator new"
+ return static_cast<pointer>(::operator new(n * sizeof(T)));
+ }
+
+ /**
+ * Release memory which was allocated for N items at pointer P.
+ *
+ * The memory block is filled with zeroes before being released.
+ * The pointer argument is tagged as "volatile" to prevent the
+ * compiler optimizing out this critical step.
+ */
+ void deallocate(volatile pointer p, size_type n) {
+ std::memset(p, 0, n * sizeof(T));
+ // free using "global operator delete"
+ ::operator delete(p);
+ }
+
+ /**
+ * Construct an item in-place at pointer P.
+ */
+ template <typename... Args> void construct(pointer p, Args&&... args) {
+ // construct using "placement new" and "perfect forwarding"
+ ::new (static_cast<void*>(p)) T(std::forward<Args>(args)...);
+ }
+
+ size_type max_size() const { return size_t(-1) / sizeof(T); }
+
+ pointer address(reference x) const { return std::addressof(x); }
+
+ const_pointer address(const_reference x) const { return std::addressof(x); }
+
+ /**
+ * Destroy an item in-place at pointer P.
+ */
+ void destroy(pointer p) {
+ // destroy using "explicit destructor"
+ p->~T();
+ }
+
+ // Boilerplate
+ SecureAllocator() {}
+ template <typename U> SecureAllocator(const SecureAllocator<U>&) {}
+ template <typename U> struct rebind { using other = SecureAllocator<U>; };
+};
+
+template <typename T, typename U>
+bool operator==(const SecureAllocator<T>&, const SecureAllocator<U>&) {
+ return true;
+}
+
+template <typename T, typename U>
+bool operator!=(const SecureAllocator<T>&, const SecureAllocator<U>&) {
+ return false;
+}
+
+} // namespace Json
+
+#pragma pack(pop)
+
+#endif // JSON_ALLOCATOR_H_INCLUDED
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: include/json/allocator.h
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
// Beginning of content of file: include/json/config.h
// //////////////////////////////////////////////////////////////////////
@@ -123,19 +234,14 @@ license you like.
#ifndef JSON_CONFIG_H_INCLUDED
#define JSON_CONFIG_H_INCLUDED
-#include <stddef.h>
-#include <string> //typedef String
-#include <stdint.h> //typedef int64_t, uint64_t
-
-/// If defined, indicates that json library is embedded in CppTL library.
-//# define JSON_IN_CPPTL 1
-
-/// If defined, indicates that json may leverage CppTL library
-//# define JSON_USE_CPPTL 1
-/// If defined, indicates that cpptl vector based map should be used instead of
-/// std::map
-/// as Value container.
-//# define JSON_USE_CPPTL_SMALLMAP 1
+#include <cstddef>
+#include <cstdint>
+#include <istream>
+#include <memory>
+#include <ostream>
+#include <sstream>
+#include <string>
+#include <type_traits>
// If non-zero, the library uses exceptions to report bad input instead of C
// assertion macros. The default is to use exceptions.
@@ -143,164 +249,132 @@ license you like.
#define JSON_USE_EXCEPTION 1
#endif
+// Temporary, tracked for removal with issue #982.
+#ifndef JSON_USE_NULLREF
+#define JSON_USE_NULLREF 1
+#endif
+
/// If defined, indicates that the source file is amalgamated
/// to prevent private header inclusion.
/// Remarks: it is automatically defined in the generated amalgamated header.
// #define JSON_IS_AMALGAMATION
-#ifdef JSON_IN_CPPTL
-#include <cpptl/config.h>
-#ifndef JSON_USE_CPPTL
-#define JSON_USE_CPPTL 1
-#endif
-#endif
-
-#ifdef JSON_IN_CPPTL
-#define JSON_API CPPTL_API
-#elif defined(JSON_DLL_BUILD)
+// Export macros for DLL visibility
+#if defined(JSON_DLL_BUILD)
#if defined(_MSC_VER) || defined(__MINGW32__)
#define JSON_API __declspec(dllexport)
#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
+#elif defined(__GNUC__) || defined(__clang__)
+#define JSON_API __attribute__((visibility("default")))
#endif // if defined(_MSC_VER)
+
#elif defined(JSON_DLL)
#if defined(_MSC_VER) || defined(__MINGW32__)
#define JSON_API __declspec(dllimport)
#define JSONCPP_DISABLE_DLL_INTERFACE_WARNING
#endif // if defined(_MSC_VER)
-#endif // ifdef JSON_IN_CPPTL
+#endif // ifdef JSON_DLL_BUILD
+
#if !defined(JSON_API)
#define JSON_API
#endif
-// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for
-// integer
-// Storages, and 64 bits integer support is disabled.
-// #define JSON_NO_INT64 1
+#if defined(_MSC_VER) && _MSC_VER < 1800
+#error \
+ "ERROR: Visual Studio 12 (2013) with _MSC_VER=1800 is the oldest supported compiler with sufficient C++11 capabilities"
+#endif
-#if defined(_MSC_VER) // MSVC
-# if _MSC_VER <= 1200 // MSVC 6
- // Microsoft Visual Studio 6 only support conversion from __int64 to double
- // (no conversion from unsigned __int64).
-# define JSON_USE_INT64_DOUBLE_CONVERSION 1
- // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255'
- // characters in the debug information)
- // All projects I've ever seen with VS6 were using this globally (not bothering
- // with pragma push/pop).
-# pragma warning(disable : 4786)
-# endif // MSVC 6
-
-# if _MSC_VER >= 1500 // MSVC 2008
- /// Indicates that the following function is deprecated.
-# define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
-# endif
-
-#endif // defined(_MSC_VER)
-
-// In c++11 the override keyword allows you to explicitly define that a function
-// is intended to override the base-class version. This makes the code more
-// managable and fixes a set of common hard-to-find bugs.
-#if __cplusplus >= 201103L
-# define JSONCPP_OVERRIDE override
-# define JSONCPP_NOEXCEPT noexcept
-#elif defined(_MSC_VER) && _MSC_VER > 1600 && _MSC_VER < 1900
-# define JSONCPP_OVERRIDE override
-# define JSONCPP_NOEXCEPT throw()
-#elif defined(_MSC_VER) && _MSC_VER >= 1900
-# define JSONCPP_OVERRIDE override
-# define JSONCPP_NOEXCEPT noexcept
+#if defined(_MSC_VER) && _MSC_VER < 1900
+// As recommended at
+// https://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010
+extern JSON_API int msvc_pre1900_c99_snprintf(char* outBuf, size_t size,
+ const char* format, ...);
+#define jsoncpp_snprintf msvc_pre1900_c99_snprintf
#else
-# define JSONCPP_OVERRIDE
-# define JSONCPP_NOEXCEPT throw()
+#define jsoncpp_snprintf std::snprintf
#endif
-#ifndef JSON_HAS_RVALUE_REFERENCES
+// If JSON_NO_INT64 is defined, then Json only support C++ "int" type for
+// integer
+// Storages, and 64 bits integer support is disabled.
+// #define JSON_NO_INT64 1
-#if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010
-#define JSON_HAS_RVALUE_REFERENCES 1
-#endif // MSVC >= 2010
+// JSONCPP_OVERRIDE is maintained for backwards compatibility of external tools.
+// C++11 should be used directly in JSONCPP.
+#define JSONCPP_OVERRIDE override
#ifdef __clang__
-#if __has_feature(cxx_rvalue_references)
-#define JSON_HAS_RVALUE_REFERENCES 1
-#endif // has_feature
-
-#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
-#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
-#define JSON_HAS_RVALUE_REFERENCES 1
-#endif // GXX_EXPERIMENTAL
-
-#endif // __clang__ || __GNUC__
-
-#endif // not defined JSON_HAS_RVALUE_REFERENCES
-
-#ifndef JSON_HAS_RVALUE_REFERENCES
-#define JSON_HAS_RVALUE_REFERENCES 0
+#if __has_extension(attribute_deprecated_with_message)
+#define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message)))
#endif
-
-#ifdef __clang__
-# if __has_extension(attribute_deprecated_with_message)
-# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message)))
-# endif
-#elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc)
-# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
-# define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message)))
-# elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
-# define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__))
-# endif // GNUC version
-#endif // __clang__ || __GNUC__
+#elif defined(__GNUC__) // not clang (gcc comes later since clang emulates gcc)
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
+#define JSONCPP_DEPRECATED(message) __attribute__((deprecated(message)))
+#elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+#define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__))
+#endif // GNUC version
+#elif defined(_MSC_VER) // MSVC (after clang because clang on Windows emulates
+ // MSVC)
+#define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
+#endif // __clang__ || __GNUC__ || _MSC_VER
#if !defined(JSONCPP_DEPRECATED)
#define JSONCPP_DEPRECATED(message)
#endif // if !defined(JSONCPP_DEPRECATED)
-#if __GNUC__ >= 6
-# define JSON_USE_INT64_DOUBLE_CONVERSION 1
+#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 6))
+#define JSON_USE_INT64_DOUBLE_CONVERSION 1
#endif
#if !defined(JSON_IS_AMALGAMATION)
-# include "version.h"
-
-# if JSONCPP_USING_SECURE_MEMORY
-# include "allocator.h" //typedef Allocator
-# endif
+#include "allocator.h"
+#include "version.h"
#endif // if !defined(JSON_IS_AMALGAMATION)
namespace Json {
-typedef int Int;
-typedef unsigned int UInt;
+using Int = int;
+using UInt = unsigned int;
#if defined(JSON_NO_INT64)
-typedef int LargestInt;
-typedef unsigned int LargestUInt;
+using LargestInt = int;
+using LargestUInt = unsigned int;
#undef JSON_HAS_INT64
#else // if defined(JSON_NO_INT64)
// For Microsoft Visual use specific types as long long is not supported
#if defined(_MSC_VER) // Microsoft Visual Studio
-typedef __int64 Int64;
-typedef unsigned __int64 UInt64;
+using Int64 = __int64;
+using UInt64 = unsigned __int64;
#else // if defined(_MSC_VER) // Other platforms, use long long
-typedef int64_t Int64;
-typedef uint64_t UInt64;
-#endif // if defined(_MSC_VER)
-typedef Int64 LargestInt;
-typedef UInt64 LargestUInt;
+using Int64 = int64_t;
+using UInt64 = uint64_t;
+#endif // if defined(_MSC_VER)
+using LargestInt = Int64;
+using LargestUInt = UInt64;
#define JSON_HAS_INT64
#endif // if defined(JSON_NO_INT64)
-#if JSONCPP_USING_SECURE_MEMORY
-#define JSONCPP_STRING std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> >
-#define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
-#define JSONCPP_OSTREAM std::basic_ostream<char, std::char_traits<char>>
-#define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> >
-#define JSONCPP_ISTREAM std::istream
-#else
-#define JSONCPP_STRING std::string
-#define JSONCPP_OSTRINGSTREAM std::ostringstream
-#define JSONCPP_OSTREAM std::ostream
-#define JSONCPP_ISTRINGSTREAM std::istringstream
-#define JSONCPP_ISTREAM std::istream
-#endif // if JSONCPP_USING_SECURE_MEMORY
-} // end namespace Json
+
+template <typename T>
+using Allocator =
+ typename std::conditional<JSONCPP_USING_SECURE_MEMORY, SecureAllocator<T>,
+ std::allocator<T>>::type;
+using String = std::basic_string<char, std::char_traits<char>, Allocator<char>>;
+using IStringStream =
+ std::basic_istringstream<String::value_type, String::traits_type,
+ String::allocator_type>;
+using OStringStream =
+ std::basic_ostringstream<String::value_type, String::traits_type,
+ String::allocator_type>;
+using IStream = std::istream;
+using OStream = std::ostream;
+} // namespace Json
+
+// Legacy names (formerly macros).
+using JSONCPP_STRING = Json::String;
+using JSONCPP_ISTRINGSTREAM = Json::IStringStream;
+using JSONCPP_OSTRINGSTREAM = Json::OStringStream;
+using JSONCPP_ISTREAM = Json::IStream;
+using JSONCPP_OSTREAM = Json::OStream;
#endif // JSON_CONFIG_H_INCLUDED
@@ -332,17 +406,23 @@ typedef UInt64 LargestUInt;
namespace Json {
// writer.h
+class StreamWriter;
+class StreamWriterBuilder;
+class Writer;
class FastWriter;
class StyledWriter;
+class StyledStreamWriter;
// reader.h
class Reader;
+class CharReader;
+class CharReaderBuilder;
-// features.h
+// json_features.h
class Features;
// value.h
-typedef unsigned int ArrayIndex;
+using ArrayIndex = unsigned int;
class StaticString;
class Path;
class PathArgument;
@@ -365,7 +445,7 @@ class ValueConstIterator;
// //////////////////////////////////////////////////////////////////////
-// Beginning of content of file: include/json/features.h
+// Beginning of content of file: include/json/json_features.h
// //////////////////////////////////////////////////////////////////////
// Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
@@ -373,8 +453,8 @@ class ValueConstIterator;
// recognized in your jurisdiction.
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
-#ifndef CPPTL_JSON_FEATURES_H_INCLUDED
-#define CPPTL_JSON_FEATURES_H_INCLUDED
+#ifndef JSON_FEATURES_H_INCLUDED
+#define JSON_FEATURES_H_INCLUDED
#if !defined(JSON_IS_AMALGAMATION)
#include "forwards.h"
@@ -411,27 +491,27 @@ public:
Features();
/// \c true if comments are allowed. Default: \c true.
- bool allowComments_;
+ bool allowComments_{true};
/// \c true if root must be either an array or an object value. Default: \c
/// false.
- bool strictRoot_;
+ bool strictRoot_{false};
/// \c true if dropped null placeholders are allowed. Default: \c false.
- bool allowDroppedNullPlaceholders_;
+ bool allowDroppedNullPlaceholders_{false};
/// \c true if numeric object key are allowed. Default: \c false.
- bool allowNumericKeys_;
+ bool allowNumericKeys_{false};
};
} // namespace Json
#pragma pack(pop)
-#endif // CPPTL_JSON_FEATURES_H_INCLUDED
+#endif // JSON_FEATURES_H_INCLUDED
// //////////////////////////////////////////////////////////////////////
-// End of content of file: include/json/features.h
+// End of content of file: include/json/json_features.h
// //////////////////////////////////////////////////////////////////////
@@ -448,38 +528,49 @@ public:
// recognized in your jurisdiction.
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
-#ifndef CPPTL_JSON_H_INCLUDED
-#define CPPTL_JSON_H_INCLUDED
+#ifndef JSON_H_INCLUDED
+#define JSON_H_INCLUDED
#if !defined(JSON_IS_AMALGAMATION)
#include "forwards.h"
#endif // if !defined(JSON_IS_AMALGAMATION)
-#include <string>
-#include <vector>
-#include <exception>
-#ifndef JSON_USE_CPPTL_SMALLMAP
-#include <map>
+// Conditional NORETURN attribute on the throw functions would:
+// a) suppress false positives from static code analysis
+// b) possibly improve optimization opportunities.
+#if !defined(JSONCPP_NORETURN)
+#if defined(_MSC_VER) && _MSC_VER == 1800
+#define JSONCPP_NORETURN __declspec(noreturn)
#else
-#include <cpptl/smallmap.h>
+#define JSONCPP_NORETURN [[noreturn]]
#endif
-#ifdef JSON_USE_CPPTL
-#include <cpptl/forwards.h>
#endif
-//Conditional NORETURN attribute on the throw functions would:
-// a) suppress false positives from static code analysis
-// b) possibly improve optimization opportunities.
-#if !defined(JSONCPP_NORETURN)
-# if defined(_MSC_VER)
-# define JSONCPP_NORETURN __declspec(noreturn)
-# elif defined(__GNUC__)
-# define JSONCPP_NORETURN __attribute__ ((__noreturn__))
-# else
-# define JSONCPP_NORETURN
-# endif
+// Support for '= delete' with template declarations was a late addition
+// to the c++11 standard and is rejected by clang 3.8 and Apple clang 8.2
+// even though these declare themselves to be c++11 compilers.
+#if !defined(JSONCPP_TEMPLATE_DELETE)
+#if defined(__clang__) && defined(__apple_build_version__)
+#if __apple_build_version__ <= 8000042
+#define JSONCPP_TEMPLATE_DELETE
+#endif
+#elif defined(__clang__)
+#if __clang_major__ == 3 && __clang_minor__ <= 8
+#define JSONCPP_TEMPLATE_DELETE
+#endif
+#endif
+#if !defined(JSONCPP_TEMPLATE_DELETE)
+#define JSONCPP_TEMPLATE_DELETE = delete
+#endif
#endif
+#include <array>
+#include <exception>
+#include <map>
+#include <memory>
+#include <string>
+#include <vector>
+
// Disable warning C4251: <data member>: <type> needs to have dll-interface to
// be used by...
#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
@@ -493,17 +584,19 @@ public:
*/
namespace Json {
+#if JSON_USE_EXCEPTION
/** Base class for all exceptions we throw.
*
* We use nothing but these internally. Of course, STL can throw others.
*/
class JSON_API Exception : public std::exception {
public:
- Exception(JSONCPP_STRING const& msg);
- ~Exception() JSONCPP_NOEXCEPT JSONCPP_OVERRIDE;
- char const* what() const JSONCPP_NOEXCEPT JSONCPP_OVERRIDE;
+ Exception(String msg);
+ ~Exception() noexcept override;
+ char const* what() const noexcept override;
+
protected:
- JSONCPP_STRING msg_;
+ String msg_;
};
/** Exceptions which the user cannot easily avoid.
@@ -514,7 +607,7 @@ protected:
*/
class JSON_API RuntimeError : public Exception {
public:
- RuntimeError(JSONCPP_STRING const& msg);
+ RuntimeError(String const& msg);
};
/** Exceptions thrown by JSON_ASSERT/JSON_FAIL macros.
@@ -525,13 +618,14 @@ public:
*/
class JSON_API LogicError : public Exception {
public:
- LogicError(JSONCPP_STRING const& msg);
+ LogicError(String const& msg);
};
+#endif
/// used internally
-JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg);
+JSONCPP_NORETURN void throwRuntimeError(String const& msg);
/// used internally
-JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg);
+JSONCPP_NORETURN void throwLogicError(String const& msg);
/** \brief Type of the value held by a Value object.
*/
@@ -554,10 +648,12 @@ enum CommentPlacement {
numberOfCommentPlacement
};
-//# ifdef JSON_USE_CPPTL
-// typedef CppTL::AnyEnumerator<const char *> EnumMemberNames;
-// typedef CppTL::AnyEnumerator<const Value &> EnumValues;
-//# endif
+/** \brief Type of precision for formatting of real values.
+ */
+enum PrecisionType {
+ significantDigits = 0, ///< we set max number of significant digits in string
+ decimalPlaces ///< we set max number of digits after "." in string
+};
/** \brief Lightweight wrapper to tag static string.
*
@@ -610,7 +706,7 @@ private:
* The get() methods can be used to obtain default value in the case the
* required element does not exist.
*
- * It is possible to iterate over the list of a #objectValue values using
+ * It is possible to iterate over the list of member keys of an object using
* the getMemberNames() method.
*
* \note #Value string-length fit in size_t, but keys must be < 2^30.
@@ -621,76 +717,86 @@ private:
*/
class JSON_API Value {
friend class ValueIteratorBase;
+
public:
- typedef std::vector<JSONCPP_STRING> Members;
- typedef ValueIterator iterator;
- typedef ValueConstIterator const_iterator;
- typedef Json::UInt UInt;
- typedef Json::Int Int;
+ using Members = std::vector<String>;
+ using iterator = ValueIterator;
+ using const_iterator = ValueConstIterator;
+ using UInt = Json::UInt;
+ using Int = Json::Int;
#if defined(JSON_HAS_INT64)
- typedef Json::UInt64 UInt64;
- typedef Json::Int64 Int64;
+ using UInt64 = Json::UInt64;
+ using Int64 = Json::Int64;
#endif // defined(JSON_HAS_INT64)
- typedef Json::LargestInt LargestInt;
- typedef Json::LargestUInt LargestUInt;
- typedef Json::ArrayIndex ArrayIndex;
+ using LargestInt = Json::LargestInt;
+ using LargestUInt = Json::LargestUInt;
+ using ArrayIndex = Json::ArrayIndex;
// Required for boost integration, e. g. BOOST_TEST
- typedef std::string value_type;
+ using value_type = std::string;
+
+#if JSON_USE_NULLREF
+ // Binary compatibility kludges, do not use.
+ static const Value& null;
+ static const Value& nullRef;
+#endif
- static const Value& null; ///< We regret this reference to a global instance; prefer the simpler Value().
- static const Value& nullRef; ///< just a kludge for binary-compatibility; same as null
- static Value const& nullSingleton(); ///< Prefer this to null or nullRef.
+ // null and nullRef are deprecated, use this instead.
+ static Value const& nullSingleton();
/// Minimum signed integer value that can be stored in a Json::Value.
- static const LargestInt minLargestInt;
+ static constexpr LargestInt minLargestInt =
+ LargestInt(~(LargestUInt(-1) / 2));
/// Maximum signed integer value that can be stored in a Json::Value.
- static const LargestInt maxLargestInt;
+ static constexpr LargestInt maxLargestInt = LargestInt(LargestUInt(-1) / 2);
/// Maximum unsigned integer value that can be stored in a Json::Value.
- static const LargestUInt maxLargestUInt;
+ static constexpr LargestUInt maxLargestUInt = LargestUInt(-1);
/// Minimum signed int value that can be stored in a Json::Value.
- static const Int minInt;
+ static constexpr Int minInt = Int(~(UInt(-1) / 2));
/// Maximum signed int value that can be stored in a Json::Value.
- static const Int maxInt;
+ static constexpr Int maxInt = Int(UInt(-1) / 2);
/// Maximum unsigned int value that can be stored in a Json::Value.
- static const UInt maxUInt;
+ static constexpr UInt maxUInt = UInt(-1);
#if defined(JSON_HAS_INT64)
/// Minimum signed 64 bits int value that can be stored in a Json::Value.
- static const Int64 minInt64;
+ static constexpr Int64 minInt64 = Int64(~(UInt64(-1) / 2));
/// Maximum signed 64 bits int value that can be stored in a Json::Value.
- static const Int64 maxInt64;
+ static constexpr Int64 maxInt64 = Int64(UInt64(-1) / 2);
/// Maximum unsigned 64 bits int value that can be stored in a Json::Value.
- static const UInt64 maxUInt64;
+ static constexpr UInt64 maxUInt64 = UInt64(-1);
#endif // defined(JSON_HAS_INT64)
-
+ /// Default precision for real value for string representation.
+ static constexpr UInt defaultRealPrecision = 17;
+ // The constant is hard-coded because some compiler have trouble
+ // converting Value::maxUInt64 to a double correctly (AIX/xlC).
+ // Assumes that UInt64 is a 64 bits integer.
+ static constexpr double maxUInt64AsDouble = 18446744073709551615.0;
+// Workaround for bug in the NVIDIAs CUDA 9.1 nvcc compiler
+// when using gcc and clang backend compilers. CZString
+// cannot be defined as private. See issue #486
+#ifdef __NVCC__
+public:
+#else
private:
+#endif
#ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION
class CZString {
public:
- enum DuplicationPolicy {
- noDuplication = 0,
- duplicate,
- duplicateOnCopy
- };
+ enum DuplicationPolicy { noDuplication = 0, duplicate, duplicateOnCopy };
CZString(ArrayIndex index);
CZString(char const* str, unsigned length, DuplicationPolicy allocate);
CZString(CZString const& other);
-#if JSON_HAS_RVALUE_REFERENCES
CZString(CZString&& other);
-#endif
~CZString();
CZString& operator=(const CZString& other);
-
-#if JSON_HAS_RVALUE_REFERENCES
CZString& operator=(CZString&& other);
-#endif
bool operator<(CZString const& other) const;
bool operator==(CZString const& other) const;
ArrayIndex index() const;
- //const char* c_str() const; ///< \deprecated
+ // const char* c_str() const; ///< \deprecated
char const* data() const;
unsigned length() const;
bool isStaticString() const;
@@ -699,11 +805,11 @@ private:
void swap(CZString& other);
struct StringStorage {
- unsigned policy_: 2;
- unsigned length_: 30; // 1GB max
+ unsigned policy_ : 2;
+ unsigned length_ : 30; // 1GB max
};
- char const* cstr_; // actually, a prefixed string, unless policy is noDup
+ char const* cstr_; // actually, a prefixed string, unless policy is noDup
union {
ArrayIndex index_;
StringStorage storage_;
@@ -711,29 +817,26 @@ private:
};
public:
-#ifndef JSON_USE_CPPTL_SMALLMAP
typedef std::map<CZString, Value> ObjectValues;
-#else
- typedef CppTL::SmallMap<CZString, Value> ObjectValues;
-#endif // ifndef JSON_USE_CPPTL_SMALLMAP
#endif // ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION
public:
- /** \brief Create a default Value of the given type.
-
- This is a very useful constructor.
- To create an empty array, pass arrayValue.
- To create an empty object, pass objectValue.
- Another Value can then be set to this one by assignment.
-This is useful since clear() and resize() will not alter types.
-
- Examples:
-\code
-Json::Value null_value; // null
-Json::Value arr_value(Json::arrayValue); // []
-Json::Value obj_value(Json::objectValue); // {}
-\endcode
- */
+ /**
+ * \brief Create a default Value of the given type.
+ *
+ * This is a very useful constructor.
+ * To create an empty array, pass arrayValue.
+ * To create an empty object, pass objectValue.
+ * Another Value can then be set to this one by assignment.
+ * This is useful since clear() and resize() will not alter types.
+ *
+ * Examples:
+ * \code
+ * Json::Value null_value; // null
+ * Json::Value arr_value(Json::arrayValue); // []
+ * Json::Value obj_value(Json::objectValue); // {}
+ * \endcode
+ */
Value(ValueType type = nullValue);
Value(Int value);
Value(UInt value);
@@ -744,38 +847,35 @@ Json::Value obj_value(Json::objectValue); // {}
Value(double value);
Value(const char* value); ///< Copy til first 0. (NULL causes to seg-fault.)
Value(const char* begin, const char* end); ///< Copy all, incl zeroes.
- /** \brief Constructs a value from a static string.
-
+ /**
+ * \brief Constructs a value from a static string.
+ *
* Like other value string constructor but do not duplicate the string for
- * internal storage. The given string must remain alive after the call to this
- * constructor.
+ * internal storage. The given string must remain alive after the call to
+ * this constructor.
+ *
* \note This works only for null-terminated strings. (We cannot change the
- * size of this class, so we have nowhere to store the length,
- * which might be computed later for various operations.)
+ * size of this class, so we have nowhere to store the length, which might be
+ * computed later for various operations.)
*
* Example of usage:
- * \code
- * static StaticString foo("some text");
- * Json::Value aValue(foo);
- * \endcode
+ * \code
+ * static StaticString foo("some text");
+ * Json::Value aValue(foo);
+ * \endcode
*/
Value(const StaticString& value);
- Value(const JSONCPP_STRING& value); ///< Copy data() til size(). Embedded zeroes too.
-#ifdef JSON_USE_CPPTL
- Value(const CppTL::ConstString& value);
-#endif
+ Value(const String& value);
Value(bool value);
- /// Deep copy.
+ Value(std::nullptr_t ptr) = delete;
Value(const Value& other);
-#if JSON_HAS_RVALUE_REFERENCES
- /// Move constructor
Value(Value&& other);
-#endif
~Value();
- /// Deep copy, then swap(other).
- /// \note Over-write existing comments. To preserve comments, use #swapPayload().
- Value& operator=(Value other);
+ /// \note Overwrite existing comments. To preserve comments, use
+ /// #swapPayload().
+ Value& operator=(const Value& other);
+ Value& operator=(Value&& other);
/// Swap everything.
void swap(Value& other);
@@ -800,17 +900,14 @@ Json::Value obj_value(Json::objectValue); // {}
const char* asCString() const; ///< Embedded zeroes could cause you trouble!
#if JSONCPP_USING_SECURE_MEMORY
- unsigned getCStringLength() const; //Allows you to understand the length of the CString
+ unsigned getCStringLength() const; // Allows you to understand the length of
+ // the CString
#endif
- JSONCPP_STRING asString() const; ///< Embedded zeroes are possible.
+ String asString() const; ///< Embedded zeroes are possible.
/** Get raw char* of string-value.
* \return false if !string. (Seg-fault if str or end are NULL.)
*/
- bool getString(
- char const** begin, char const** end) const;
-#ifdef JSON_USE_CPPTL
- CppTL::ConstString asConstString() const;
-#endif
+ bool getString(char const** begin, char const** end) const;
Int asInt() const;
UInt asUInt() const;
#if defined(JSON_HAS_INT64)
@@ -836,6 +933,10 @@ Json::Value obj_value(Json::objectValue); // {}
bool isArray() const;
bool isObject() const;
+ /// The `as<T>` and `is<T>` member function templates and specializations.
+ template <typename T> T as() const JSONCPP_TEMPLATE_DELETE;
+ template <typename T> bool is() const JSONCPP_TEMPLATE_DELETE;
+
bool isConvertibleTo(ValueType other) const;
/// Number of values in array or object
@@ -853,42 +954,33 @@ Json::Value obj_value(Json::objectValue); // {}
/// \post type() is unchanged
void clear();
- /// Resize the array to size elements.
+ /// Resize the array to newSize elements.
/// New elements are initialized to null.
/// May only be called on nullValue or arrayValue.
/// \pre type() is arrayValue or nullValue
/// \post type() is arrayValue
- void resize(ArrayIndex size);
+ void resize(ArrayIndex newSize);
- /// Access an array element (zero based index ).
- /// If the array contains less than index element, then null value are
- /// inserted
- /// in the array so that its size is index+1.
+ //@{
+ /// Access an array element (zero based index). If the array contains less
+ /// than index element, then null value are inserted in the array so that
+ /// its size is index+1.
/// (You may need to say 'value[0u]' to get your compiler to distinguish
- /// this from the operator[] which takes a string.)
+ /// this from the operator[] which takes a string.)
Value& operator[](ArrayIndex index);
-
- /// Access an array element (zero based index ).
- /// If the array contains less than index element, then null value are
- /// inserted
- /// in the array so that its size is index+1.
- /// (You may need to say 'value[0u]' to get your compiler to distinguish
- /// this from the operator[] which takes a string.)
Value& operator[](int index);
+ //@}
- /// Access an array element (zero based index )
+ //@{
+ /// Access an array element (zero based index).
/// (You may need to say 'value[0u]' to get your compiler to distinguish
- /// this from the operator[] which takes a string.)
+ /// this from the operator[] which takes a string.)
const Value& operator[](ArrayIndex index) const;
-
- /// Access an array element (zero based index )
- /// (You may need to say 'value[0u]' to get your compiler to distinguish
- /// this from the operator[] which takes a string.)
const Value& operator[](int index) const;
+ //@}
/// If the array contains at least index+1 elements, returns the element
- /// value,
- /// otherwise returns defaultValue.
+ /// value, otherwise returns defaultValue.
Value get(ArrayIndex index, const Value& defaultValue) const;
/// Return true if index < size().
bool isValidIndex(ArrayIndex index) const;
@@ -896,61 +988,51 @@ Json::Value obj_value(Json::objectValue); // {}
///
/// Equivalent to jsonvalue[jsonvalue.size()] = value;
Value& append(const Value& value);
-
-#if JSON_HAS_RVALUE_REFERENCES
Value& append(Value&& value);
-#endif
+
+ /// \brief Insert value in array at specific index
+ bool insert(ArrayIndex index, const Value& newValue);
+ bool insert(ArrayIndex index, Value&& newValue);
/// Access an object value by name, create a null member if it does not exist.
/// \note Because of our implementation, keys are limited to 2^30 -1 chars.
- /// Exceeding that will cause an exception.
+ /// Exceeding that will cause an exception.
Value& operator[](const char* key);
/// Access an object value by name, returns null if there is no member with
/// that name.
const Value& operator[](const char* key) const;
/// Access an object value by name, create a null member if it does not exist.
/// \param key may contain embedded nulls.
- Value& operator[](const JSONCPP_STRING& key);
+ Value& operator[](const String& key);
/// Access an object value by name, returns null if there is no member with
/// that name.
/// \param key may contain embedded nulls.
- const Value& operator[](const JSONCPP_STRING& key) const;
+ const Value& operator[](const String& key) const;
/** \brief Access an object value by name, create a null member if it does not
- exist.
-
- * If the object has no entry for that name, then the member name used to store
- * the new entry is not duplicated.
+ * exist.
+ *
+ * If the object has no entry for that name, then the member name used to
+ * store the new entry is not duplicated.
* Example of use:
- * \code
- * Json::Value object;
- * static const StaticString code("code");
- * object[code] = 1234;
- * \endcode
+ * \code
+ * Json::Value object;
+ * static const StaticString code("code");
+ * object[code] = 1234;
+ * \endcode
*/
Value& operator[](const StaticString& key);
-#ifdef JSON_USE_CPPTL
- /// Access an object value by name, create a null member if it does not exist.
- Value& operator[](const CppTL::ConstString& key);
- /// Access an object value by name, returns null if there is no member with
- /// that name.
- const Value& operator[](const CppTL::ConstString& key) const;
-#endif
/// Return the member named key if it exist, defaultValue otherwise.
/// \note deep copy
Value get(const char* key, const Value& defaultValue) const;
/// Return the member named key if it exist, defaultValue otherwise.
/// \note deep copy
/// \note key may contain embedded nulls.
- Value get(const char* begin, const char* end, const Value& defaultValue) const;
+ Value get(const char* begin, const char* end,
+ const Value& defaultValue) const;
/// Return the member named key if it exist, defaultValue otherwise.
/// \note deep copy
/// \param key may contain embedded nulls.
- Value get(const JSONCPP_STRING& key, const Value& defaultValue) const;
-#ifdef JSON_USE_CPPTL
- /// Return the member named key if it exist, defaultValue otherwise.
- /// \note deep copy
- Value get(const CppTL::ConstString& key, const Value& defaultValue) const;
-#endif
+ Value get(const String& key, const Value& defaultValue) const;
/// Most general and efficient version of isMember()const, get()const,
/// and operator[]const
/// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30
@@ -958,51 +1040,44 @@ Json::Value obj_value(Json::objectValue); // {}
/// Most general and efficient version of object-mutators.
/// \note As stated elsewhere, behavior is undefined if (end-begin) >= 2^30
/// \return non-zero, but JSON_ASSERT if this is neither object nor nullValue.
- Value const* demand(char const* begin, char const* end);
+ Value* demand(char const* begin, char const* end);
/// \brief Remove and return the named member.
///
/// Do nothing if it did not exist.
- /// \return the removed Value, or null.
/// \pre type() is objectValue or nullValue
/// \post type() is unchanged
- /// \deprecated
void removeMember(const char* key);
/// Same as removeMember(const char*)
/// \param key may contain embedded nulls.
- /// \deprecated
- void removeMember(const JSONCPP_STRING& key);
+ void removeMember(const String& key);
/// Same as removeMember(const char* begin, const char* end, Value* removed),
/// but 'key' is null-terminated.
bool removeMember(const char* key, Value* removed);
/** \brief Remove the named map member.
-
- Update 'removed' iff removed.
- \param key may contain embedded nulls.
- \return true iff removed (no exceptions)
- */
- bool removeMember(JSONCPP_STRING const& key, Value* removed);
- /// Same as removeMember(JSONCPP_STRING const& key, Value* removed)
+ *
+ * Update 'removed' iff removed.
+ * \param key may contain embedded nulls.
+ * \return true iff removed (no exceptions)
+ */
+ bool removeMember(String const& key, Value* removed);
+ /// Same as removeMember(String const& key, Value* removed)
bool removeMember(const char* begin, const char* end, Value* removed);
/** \brief Remove the indexed array element.
-
- O(n) expensive operations.
- Update 'removed' iff removed.
- \return true iff removed (no exceptions)
- */
- bool removeIndex(ArrayIndex i, Value* removed);
+ *
+ * O(n) expensive operations.
+ * Update 'removed' iff removed.
+ * \return true if removed (no exceptions)
+ */
+ bool removeIndex(ArrayIndex index, Value* removed);
/// Return true if the object has a member named key.
/// \note 'key' must be null-terminated.
bool isMember(const char* key) const;
/// Return true if the object has a member named key.
/// \param key may contain embedded nulls.
- bool isMember(const JSONCPP_STRING& key) const;
- /// Same as isMember(JSONCPP_STRING const& key)const
+ bool isMember(const String& key) const;
+ /// Same as isMember(String const& key)const
bool isMember(const char* begin, const char* end) const;
-#ifdef JSON_USE_CPPTL
- /// Return true if the object has a member named key.
- bool isMember(const CppTL::ConstString& key) const;
-#endif
/// \brief Return a list of the member names.
///
@@ -1011,23 +1086,22 @@ Json::Value obj_value(Json::objectValue); // {}
/// \post if type() was nullValue, it remains nullValue
Members getMemberNames() const;
- //# ifdef JSON_USE_CPPTL
- // EnumMemberNames enumMemberNames() const;
- // EnumValues enumValues() const;
- //# endif
-
/// \deprecated Always pass len.
- JSONCPP_DEPRECATED("Use setComment(JSONCPP_STRING const&) instead.")
- void setComment(const char* comment, CommentPlacement placement);
+ JSONCPP_DEPRECATED("Use setComment(String const&) instead.")
+ void setComment(const char* comment, CommentPlacement placement) {
+ setComment(String(comment, strlen(comment)), placement);
+ }
/// Comments must be //... or /* ... */
- void setComment(const char* comment, size_t len, CommentPlacement placement);
+ void setComment(const char* comment, size_t len, CommentPlacement placement) {
+ setComment(String(comment, len), placement);
+ }
/// Comments must be //... or /* ... */
- void setComment(const JSONCPP_STRING& comment, CommentPlacement placement);
+ void setComment(String comment, CommentPlacement placement);
bool hasComment(CommentPlacement placement) const;
/// Include delimiters and embedded newlines.
- JSONCPP_STRING getComment(CommentPlacement placement) const;
+ String getComment(CommentPlacement placement) const;
- JSONCPP_STRING toStyledString() const;
+ String toStyledString() const;
const_iterator begin() const;
const_iterator end() const;
@@ -1043,20 +1117,20 @@ Json::Value obj_value(Json::objectValue); // {}
ptrdiff_t getOffsetLimit() const;
private:
+ void setType(ValueType v) {
+ bits_.value_type_ = static_cast<unsigned char>(v);
+ }
+ bool isAllocated() const { return bits_.allocated_; }
+ void setIsAllocated(bool v) { bits_.allocated_ = v; }
+
void initBasic(ValueType type, bool allocated = false);
+ void dupPayload(const Value& other);
+ void releasePayload();
+ void dupMeta(const Value& other);
Value& resolveReference(const char* key);
Value& resolveReference(const char* key, const char* end);
- struct CommentInfo {
- CommentInfo();
- ~CommentInfo();
-
- void setComment(const char* text, size_t len);
-
- char* comment_;
- };
-
// struct MemberNamesTransform
//{
// typedef const char *result_type;
@@ -1071,13 +1145,33 @@ private:
LargestUInt uint_;
double real_;
bool bool_;
- char* string_; // actually ptr to unsigned, followed by str, unless !allocated_
+ char* string_; // if allocated_, ptr to { unsigned, char[] }.
ObjectValues* map_;
} value_;
- ValueType type_ : 8;
- unsigned int allocated_ : 1; // Notes: if declared as bool, bitfield is useless.
- // If not allocated_, string_ must be null-terminated.
- CommentInfo* comments_;
+
+ struct {
+ // Really a ValueType, but types should agree for bitfield packing.
+ unsigned int value_type_ : 8;
+ // Unless allocated_, string_ must be null-terminated.
+ unsigned int allocated_ : 1;
+ } bits_;
+
+ class Comments {
+ public:
+ Comments() = default;
+ Comments(const Comments& that);
+ Comments(Comments&& that);
+ Comments& operator=(const Comments& that);
+ Comments& operator=(Comments&& that);
+ bool has(CommentPlacement slot) const;
+ String get(CommentPlacement slot) const;
+ void set(CommentPlacement slot, String comment);
+
+ private:
+ using Array = std::array<String, numberOfCommentPlacement>;
+ std::unique_ptr<Array> ptr_;
+ };
+ Comments comments_;
// [start, limit) byte offsets in the source JSON text from which this Value
// was extracted.
@@ -1085,6 +1179,36 @@ private:
ptrdiff_t limit_;
};
+template <> inline bool Value::as<bool>() const { return asBool(); }
+template <> inline bool Value::is<bool>() const { return isBool(); }
+
+template <> inline Int Value::as<Int>() const { return asInt(); }
+template <> inline bool Value::is<Int>() const { return isInt(); }
+
+template <> inline UInt Value::as<UInt>() const { return asUInt(); }
+template <> inline bool Value::is<UInt>() const { return isUInt(); }
+
+#if defined(JSON_HAS_INT64)
+template <> inline Int64 Value::as<Int64>() const { return asInt64(); }
+template <> inline bool Value::is<Int64>() const { return isInt64(); }
+
+template <> inline UInt64 Value::as<UInt64>() const { return asUInt64(); }
+template <> inline bool Value::is<UInt64>() const { return isUInt64(); }
+#endif
+
+template <> inline double Value::as<double>() const { return asDouble(); }
+template <> inline bool Value::is<double>() const { return isDouble(); }
+
+template <> inline String Value::as<String>() const { return asString(); }
+template <> inline bool Value::is<String>() const { return isString(); }
+
+/// These `as` specializations are type conversions, and do not have a
+/// corresponding `is`.
+template <> inline float Value::as<float>() const { return asFloat(); }
+template <> inline const char* Value::as<const char*>() const {
+ return asCString();
+}
+
/** \brief Experimental and untested: represents an element of the "path" to
* access a node.
*/
@@ -1095,17 +1219,13 @@ public:
PathArgument();
PathArgument(ArrayIndex index);
PathArgument(const char* key);
- PathArgument(const JSONCPP_STRING& key);
+ PathArgument(String key);
private:
- enum Kind {
- kindNone = 0,
- kindIndex,
- kindKey
- };
- JSONCPP_STRING key_;
- ArrayIndex index_;
- Kind kind_;
+ enum Kind { kindNone = 0, kindIndex, kindKey };
+ String key_;
+ ArrayIndex index_{};
+ Kind kind_{kindNone};
};
/** \brief Experimental and untested: represents a "path" to access a node.
@@ -1117,12 +1237,11 @@ private:
* - ".name1.name2.name3"
* - ".[0][1][2].name1[3]"
* - ".%" => member name is provided as parameter
- * - ".[%]" => index is provied as parameter
+ * - ".[%]" => index is provided as parameter
*/
class JSON_API Path {
public:
- Path(const JSONCPP_STRING& path,
- const PathArgument& a1 = PathArgument(),
+ Path(const String& path, const PathArgument& a1 = PathArgument(),
const PathArgument& a2 = PathArgument(),
const PathArgument& a3 = PathArgument(),
const PathArgument& a4 = PathArgument(),
@@ -1135,15 +1254,13 @@ public:
Value& make(Value& root) const;
private:
- typedef std::vector<const PathArgument*> InArgs;
- typedef std::vector<PathArgument> Args;
+ using InArgs = std::vector<const PathArgument*>;
+ using Args = std::vector<PathArgument>;
- void makePath(const JSONCPP_STRING& path, const InArgs& in);
- void addPathInArg(const JSONCPP_STRING& path,
- const InArgs& in,
- InArgs::const_iterator& itInArg,
- PathArgument::Kind kind);
- void invalidPath(const JSONCPP_STRING& path, int location);
+ void makePath(const String& path, const InArgs& in);
+ void addPathInArg(const String& path, const InArgs& in,
+ InArgs::const_iterator& itInArg, PathArgument::Kind kind);
+ static void invalidPath(const String& path, int location);
Args args_;
};
@@ -1153,10 +1270,10 @@ private:
*/
class JSON_API ValueIteratorBase {
public:
- typedef std::bidirectional_iterator_tag iterator_category;
- typedef unsigned int size_t;
- typedef int difference_type;
- typedef ValueIteratorBase SelfType;
+ using iterator_category = std::bidirectional_iterator_tag;
+ using size_t = unsigned int;
+ using difference_type = int;
+ using SelfType = ValueIteratorBase;
bool operator==(const SelfType& other) const { return isEqual(other); }
@@ -1170,17 +1287,19 @@ public:
/// Value.
Value key() const;
- /// Return the index of the referenced Value, or -1 if it is not an arrayValue.
+ /// Return the index of the referenced Value, or -1 if it is not an
+ /// arrayValue.
UInt index() const;
/// Return the member name of the referenced Value, or "" if it is not an
/// objectValue.
/// \note Avoid `c_str()` on result, as embedded zeroes are possible.
- JSONCPP_STRING name() const;
+ String name() const;
/// Return the member name of the referenced Value. "" if it is not an
/// objectValue.
- /// \deprecated This cannot be used for UTF-8 strings, since there can be embedded nulls.
+ /// \deprecated This cannot be used for UTF-8 strings, since there can be
+ /// embedded nulls.
JSONCPP_DEPRECATED("Use `key = name();` instead.")
char const* memberName() const;
/// Return the member name of the referenced Value, or NULL if it is not an
@@ -1189,7 +1308,14 @@ public:
char const* memberName(char const** end) const;
protected:
- Value& deref() const;
+ /*! Internal utility functions to assist with implementing
+ * other iterator functions. The const and non-const versions
+ * of the "deref" protected methods expose the protected
+ * current_ member variable in a way that can often be
+ * optimized away by the compiler.
+ */
+ const Value& deref() const;
+ Value& deref();
void increment();
@@ -1204,7 +1330,7 @@ protected:
private:
Value::ObjectValues::iterator current_;
// Indicates that iterator is for a null value.
- bool isNull_;
+ bool isNull_{true};
public:
// For some reason, BORLAND needs these at the end, rather
@@ -1220,20 +1346,21 @@ class JSON_API ValueConstIterator : public ValueIteratorBase {
friend class Value;
public:
- typedef const Value value_type;
- //typedef unsigned int size_t;
- //typedef int difference_type;
- typedef const Value& reference;
- typedef const Value* pointer;
- typedef ValueConstIterator SelfType;
+ using value_type = const Value;
+ // typedef unsigned int size_t;
+ // typedef int difference_type;
+ using reference = const Value&;
+ using pointer = const Value*;
+ using SelfType = ValueConstIterator;
ValueConstIterator();
ValueConstIterator(ValueIterator const& other);
private:
-/*! \internal Use by Value to create an iterator.
- */
+ /*! \internal Use by Value to create an iterator.
+ */
explicit ValueConstIterator(const Value::ObjectValues::iterator& current);
+
public:
SelfType& operator=(const ValueIteratorBase& other);
@@ -1270,21 +1397,22 @@ class JSON_API ValueIterator : public ValueIteratorBase {
friend class Value;
public:
- typedef Value value_type;
- typedef unsigned int size_t;
- typedef int difference_type;
- typedef Value& reference;
- typedef Value* pointer;
- typedef ValueIterator SelfType;
+ using value_type = Value;
+ using size_t = unsigned int;
+ using difference_type = int;
+ using reference = Value&;
+ using pointer = Value*;
+ using SelfType = ValueIterator;
ValueIterator();
explicit ValueIterator(const ValueConstIterator& other);
ValueIterator(const ValueIterator& other);
private:
-/*! \internal Use by Value to create an iterator.
- */
+ /*! \internal Use by Value to create an iterator.
+ */
explicit ValueIterator(const Value::ObjectValues::iterator& current);
+
public:
SelfType& operator=(const SelfType& other);
@@ -1310,19 +1438,18 @@ public:
return *this;
}
- reference operator*() const { return deref(); }
-
- pointer operator->() const { return &deref(); }
+ /*! The return value of non-const iterators can be
+ * changed, so the these functions are not const
+ * because the returned references/pointers can be used
+ * to change state of the base class.
+ */
+ reference operator*() { return deref(); }
+ pointer operator->() { return &deref(); }
};
-} // namespace Json
-
+inline void swap(Value& a, Value& b) { a.swap(b); }
-namespace std {
-/// Specialize std::swap() for Json::Value.
-template<>
-inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); }
-}
+} // namespace Json
#pragma pack(pop)
@@ -1330,7 +1457,7 @@ inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); }
#pragma warning(pop)
#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
-#endif // CPPTL_JSON_H_INCLUDED
+#endif // JSON_H_INCLUDED
// //////////////////////////////////////////////////////////////////////
// End of content of file: include/json/value.h
@@ -1350,18 +1477,18 @@ inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); }
// recognized in your jurisdiction.
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
-#ifndef CPPTL_JSON_READER_H_INCLUDED
-#define CPPTL_JSON_READER_H_INCLUDED
+#ifndef JSON_READER_H_INCLUDED
+#define JSON_READER_H_INCLUDED
#if !defined(JSON_IS_AMALGAMATION)
-#include "features.h"
+#include "json_features.h"
#include "value.h"
#endif // if !defined(JSON_IS_AMALGAMATION)
#include <deque>
#include <iosfwd>
+#include <istream>
#include <stack>
#include <string>
-#include <istream>
// Disable warning C4251: <data member>: <type> needs to have dll-interface to
// be used by...
@@ -1375,132 +1502,130 @@ inline void swap(Json::Value& a, Json::Value& b) { a.swap(b); }
namespace Json {
/** \brief Unserialize a <a HREF="http://www.json.org">JSON</a> document into a
- *Value.
+ * Value.
*
* \deprecated Use CharReader and CharReaderBuilder.
*/
-class JSONCPP_DEPRECATED("Use CharReader and CharReaderBuilder instead") JSON_API Reader {
+
+class JSONCPP_DEPRECATED(
+ "Use CharReader and CharReaderBuilder instead.") JSON_API Reader {
public:
- typedef char Char;
- typedef const Char* Location;
+ using Char = char;
+ using Location = const Char*;
/** \brief An error tagged with where in the JSON text it was encountered.
*
* The offsets give the [start, limit) range of bytes within the text. Note
* that this is bytes, not codepoints.
- *
*/
struct StructuredError {
ptrdiff_t offset_start;
ptrdiff_t offset_limit;
- JSONCPP_STRING message;
+ String message;
};
- /** \brief Constructs a Reader allowing all features
- * for parsing.
+ /** \brief Constructs a Reader allowing all features for parsing.
*/
+ JSONCPP_DEPRECATED("Use CharReader and CharReaderBuilder instead")
Reader();
- /** \brief Constructs a Reader allowing the specified feature set
- * for parsing.
+ /** \brief Constructs a Reader allowing the specified feature set for parsing.
*/
+ JSONCPP_DEPRECATED("Use CharReader and CharReaderBuilder instead")
Reader(const Features& features);
/** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a>
* document.
- * \param document UTF-8 encoded string containing the document to read.
- * \param root [out] Contains the root value of the document if it was
- * successfully parsed.
- * \param collectComments \c true to collect comment and allow writing them
- * back during
- * serialization, \c false to discard comments.
- * This parameter is ignored if
- * Features::allowComments_
- * is \c false.
+ *
+ * \param document UTF-8 encoded string containing the document
+ * to read.
+ * \param[out] root Contains the root value of the document if it
+ * was successfully parsed.
+ * \param collectComments \c true to collect comment and allow writing
+ * them back during serialization, \c false to
+ * discard comments. This parameter is ignored
+ * if Features::allowComments_ is \c false.
* \return \c true if the document was successfully parsed, \c false if an
* error occurred.
*/
- bool
- parse(const std::string& document, Value& root, bool collectComments = true);
+ bool parse(const std::string& document, Value& root,
+ bool collectComments = true);
/** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a>
- document.
- * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the
- document to read.
- * \param endDoc Pointer on the end of the UTF-8 encoded string of the
- document to read.
- * Must be >= beginDoc.
- * \param root [out] Contains the root value of the document if it was
- * successfully parsed.
- * \param collectComments \c true to collect comment and allow writing them
- back during
- * serialization, \c false to discard comments.
- * This parameter is ignored if
- Features::allowComments_
- * is \c false.
+ * document.
+ *
+ * \param beginDoc Pointer on the beginning of the UTF-8 encoded
+ * string of the document to read.
+ * \param endDoc Pointer on the end of the UTF-8 encoded string
+ * of the document to read. Must be >= beginDoc.
+ * \param[out] root Contains the root value of the document if it
+ * was successfully parsed.
+ * \param collectComments \c true to collect comment and allow writing
+ * them back during serialization, \c false to
+ * discard comments. This parameter is ignored
+ * if Features::allowComments_ is \c false.
* \return \c true if the document was successfully parsed, \c false if an
- error occurred.
+ * error occurred.
*/
- bool parse(const char* beginDoc,
- const char* endDoc,
- Value& root,
+ bool parse(const char* beginDoc, const char* endDoc, Value& root,
bool collectComments = true);
/// \brief Parse from input stream.
/// \see Json::operator>>(std::istream&, Json::Value&).
- bool parse(JSONCPP_ISTREAM& is, Value& root, bool collectComments = true);
+ bool parse(IStream& is, Value& root, bool collectComments = true);
/** \brief Returns a user friendly string that list errors in the parsed
* document.
- * \return Formatted error message with the list of errors with their location
- * in
- * the parsed document. An empty string is returned if no error
- * occurred
- * during parsing.
+ *
+ * \return Formatted error message with the list of errors with their
+ * location in the parsed document. An empty string is returned if no error
+ * occurred during parsing.
* \deprecated Use getFormattedErrorMessages() instead (typo fix).
*/
JSONCPP_DEPRECATED("Use getFormattedErrorMessages() instead.")
- JSONCPP_STRING getFormatedErrorMessages() const;
+ String getFormatedErrorMessages() const;
/** \brief Returns a user friendly string that list errors in the parsed
* document.
- * \return Formatted error message with the list of errors with their location
- * in
- * the parsed document. An empty string is returned if no error
- * occurred
- * during parsing.
+ *
+ * \return Formatted error message with the list of errors with their
+ * location in the parsed document. An empty string is returned if no error
+ * occurred during parsing.
*/
- JSONCPP_STRING getFormattedErrorMessages() const;
+ String getFormattedErrorMessages() const;
- /** \brief Returns a vector of structured erros encounted while parsing.
+ /** \brief Returns a vector of structured errors encountered while parsing.
+ *
* \return A (possibly empty) vector of StructuredError objects. Currently
- * only one error can be returned, but the caller should tolerate
- * multiple
- * errors. This can occur if the parser recovers from a non-fatal
- * parse error and then encounters additional errors.
+ * only one error can be returned, but the caller should tolerate multiple
+ * errors. This can occur if the parser recovers from a non-fatal parse
+ * error and then encounters additional errors.
*/
std::vector<StructuredError> getStructuredErrors() const;
/** \brief Add a semantic error message.
- * \param value JSON Value location associated with the error
+ *
+ * \param value JSON Value location associated with the error
* \param message The error message.
- * \return \c true if the error was successfully added, \c false if the
- * Value offset exceeds the document size.
+ * \return \c true if the error was successfully added, \c false if the Value
+ * offset exceeds the document size.
*/
- bool pushError(const Value& value, const JSONCPP_STRING& message);
+ bool pushError(const Value& value, const String& message);
/** \brief Add a semantic error message with extra context.
- * \param value JSON Value location associated with the error
+ *
+ * \param value JSON Value location associated with the error
* \param message The error message.
- * \param extra Additional JSON Value location to contextualize the error
+ * \param extra Additional JSON Value location to contextualize the error
* \return \c true if the error was successfully added, \c false if either
* Value offset exceeds the document size.
*/
- bool pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra);
+ bool pushError(const Value& value, const String& message, const Value& extra);
/** \brief Return whether there are any errors.
- * \return \c true if there are no errors to report \c false if
- * errors have occurred.
+ *
+ * \return \c true if there are no errors to report \c false if errors have
+ * occurred.
*/
bool good() const;
@@ -1532,15 +1657,15 @@ private:
class ErrorInfo {
public:
Token token_;
- JSONCPP_STRING message_;
+ String message_;
Location extra_;
};
- typedef std::deque<ErrorInfo> Errors;
+ using Errors = std::deque<ErrorInfo>;
bool readToken(Token& token);
void skipSpaces();
- bool match(Location pattern, int patternLength);
+ bool match(const Char* pattern, int patternLength);
bool readComment();
bool readCStyleComment();
bool readCppStyleComment();
@@ -1552,142 +1677,138 @@ private:
bool decodeNumber(Token& token);
bool decodeNumber(Token& token, Value& decoded);
bool decodeString(Token& token);
- bool decodeString(Token& token, JSONCPP_STRING& decoded);
+ bool decodeString(Token& token, String& decoded);
bool decodeDouble(Token& token);
bool decodeDouble(Token& token, Value& decoded);
- bool decodeUnicodeCodePoint(Token& token,
- Location& current,
- Location end,
+ bool decodeUnicodeCodePoint(Token& token, Location& current, Location end,
unsigned int& unicode);
- bool decodeUnicodeEscapeSequence(Token& token,
- Location& current,
- Location end,
- unsigned int& unicode);
- bool addError(const JSONCPP_STRING& message, Token& token, Location extra = 0);
+ bool decodeUnicodeEscapeSequence(Token& token, Location& current,
+ Location end, unsigned int& unicode);
+ bool addError(const String& message, Token& token, Location extra = nullptr);
bool recoverFromError(TokenType skipUntilToken);
- bool addErrorAndRecover(const JSONCPP_STRING& message,
- Token& token,
+ bool addErrorAndRecover(const String& message, Token& token,
TokenType skipUntilToken);
void skipUntilSpace();
Value& currentValue();
Char getNextChar();
- void
- getLocationLineAndColumn(Location location, int& line, int& column) const;
- JSONCPP_STRING getLocationLineAndColumn(Location location) const;
+ void getLocationLineAndColumn(Location location, int& line,
+ int& column) const;
+ String getLocationLineAndColumn(Location location) const;
void addComment(Location begin, Location end, CommentPlacement placement);
void skipCommentTokens(Token& token);
static bool containsNewLine(Location begin, Location end);
- static JSONCPP_STRING normalizeEOL(Location begin, Location end);
+ static String normalizeEOL(Location begin, Location end);
- typedef std::stack<Value*> Nodes;
+ using Nodes = std::stack<Value*>;
Nodes nodes_;
Errors errors_;
- JSONCPP_STRING document_;
- Location begin_;
- Location end_;
- Location current_;
- Location lastValueEnd_;
- Value* lastValue_;
- JSONCPP_STRING commentsBefore_;
+ String document_;
+ Location begin_{};
+ Location end_{};
+ Location current_{};
+ Location lastValueEnd_{};
+ Value* lastValue_{};
+ String commentsBefore_;
Features features_;
- bool collectComments_;
-}; // Reader
+ bool collectComments_{};
+}; // Reader
/** Interface for reading JSON from a char array.
*/
class JSON_API CharReader {
public:
- virtual ~CharReader() {}
+ virtual ~CharReader() = default;
/** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a>
- document.
- * The document must be a UTF-8 encoded string containing the document to read.
+ * document. The document must be a UTF-8 encoded string containing the
+ * document to read.
*
- * \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the
- document to read.
- * \param endDoc Pointer on the end of the UTF-8 encoded string of the
- document to read.
- * Must be >= beginDoc.
- * \param root [out] Contains the root value of the document if it was
- * successfully parsed.
- * \param errs [out] Formatted error messages (if not NULL)
- * a user friendly string that lists errors in the parsed
- * document.
+ * \param beginDoc Pointer on the beginning of the UTF-8 encoded string
+ * of the document to read.
+ * \param endDoc Pointer on the end of the UTF-8 encoded string of the
+ * document to read. Must be >= beginDoc.
+ * \param[out] root Contains the root value of the document if it was
+ * successfully parsed.
+ * \param[out] errs Formatted error messages (if not NULL) a user
+ * friendly string that lists errors in the parsed
+ * document.
* \return \c true if the document was successfully parsed, \c false if an
- error occurred.
+ * error occurred.
*/
- virtual bool parse(
- char const* beginDoc, char const* endDoc,
- Value* root, JSONCPP_STRING* errs) = 0;
+ virtual bool parse(char const* beginDoc, char const* endDoc, Value* root,
+ String* errs) = 0;
class JSON_API Factory {
public:
- virtual ~Factory() {}
+ virtual ~Factory() = default;
/** \brief Allocate a CharReader via operator new().
* \throw std::exception if something goes wrong (e.g. invalid settings)
*/
virtual CharReader* newCharReader() const = 0;
- }; // Factory
-}; // CharReader
+ }; // Factory
+}; // CharReader
/** \brief Build a CharReader implementation.
-
-Usage:
-\code
- using namespace Json;
- CharReaderBuilder builder;
- builder["collectComments"] = false;
- Value value;
- JSONCPP_STRING errs;
- bool ok = parseFromStream(builder, std::cin, &value, &errs);
-\endcode
-*/
+ *
+ * Usage:
+ * \code
+ * using namespace Json;
+ * CharReaderBuilder builder;
+ * builder["collectComments"] = false;
+ * Value value;
+ * String errs;
+ * bool ok = parseFromStream(builder, std::cin, &value, &errs);
+ * \endcode
+ */
class JSON_API CharReaderBuilder : public CharReader::Factory {
public:
// Note: We use a Json::Value so that we can add data-members to this class
// without a major version bump.
/** Configuration of this builder.
- These are case-sensitive.
- Available settings (case-sensitive):
- - `"collectComments": false or true`
- - true to collect comment and allow writing them
- back during serialization, false to discard comments.
- This parameter is ignored if allowComments is false.
- - `"allowComments": false or true`
- - true if comments are allowed.
- - `"strictRoot": false or true`
- - true if root must be either an array or an object value
- - `"allowDroppedNullPlaceholders": false or true`
- - true if dropped null placeholders are allowed. (See StreamWriterBuilder.)
- - `"allowNumericKeys": false or true`
- - true if numeric object keys are allowed.
- - `"allowSingleQuotes": false or true`
- - true if '' are allowed for strings (both keys and values)
- - `"stackLimit": integer`
- - Exceeding stackLimit (recursive depth of `readValue()`) will
- cause an exception.
- - This is a security issue (seg-faults caused by deeply nested JSON),
- so the default is low.
- - `"failIfExtra": false or true`
- - If true, `parse()` returns false when extra non-whitespace trails
- the JSON value in the input string.
- - `"rejectDupKeys": false or true`
- - If true, `parse()` returns false when a key is duplicated within an object.
- - `"allowSpecialFloats": false or true`
- - If true, special float values (NaNs and infinities) are allowed
- and their values are lossfree restorable.
-
- You can examine 'settings_` yourself
- to see the defaults. You can also write and read them just like any
- JSON Value.
- \sa setDefaults()
- */
+ * These are case-sensitive.
+ * Available settings (case-sensitive):
+ * - `"collectComments": false or true`
+ * - true to collect comment and allow writing them back during
+ * serialization, false to discard comments. This parameter is ignored
+ * if allowComments is false.
+ * - `"allowComments": false or true`
+ * - true if comments are allowed.
+ * - `"allowTrailingCommas": false or true`
+ * - true if trailing commas in objects and arrays are allowed.
+ * - `"strictRoot": false or true`
+ * - true if root must be either an array or an object value
+ * - `"allowDroppedNullPlaceholders": false or true`
+ * - true if dropped null placeholders are allowed. (See
+ * StreamWriterBuilder.)
+ * - `"allowNumericKeys": false or true`
+ * - true if numeric object keys are allowed.
+ * - `"allowSingleQuotes": false or true`
+ * - true if '' are allowed for strings (both keys and values)
+ * - `"stackLimit": integer`
+ * - Exceeding stackLimit (recursive depth of `readValue()`) will cause an
+ * exception.
+ * - This is a security issue (seg-faults caused by deeply nested JSON), so
+ * the default is low.
+ * - `"failIfExtra": false or true`
+ * - If true, `parse()` returns false when extra non-whitespace trails the
+ * JSON value in the input string.
+ * - `"rejectDupKeys": false or true`
+ * - If true, `parse()` returns false when a key is duplicated within an
+ * object.
+ * - `"allowSpecialFloats": false or true`
+ * - If true, special float values (NaNs and infinities) are allowed and
+ * their values are lossfree restorable.
+ *
+ * You can examine 'settings_` yourself to see the defaults. You can also
+ * write and read them just like any JSON Value.
+ * \sa setDefaults()
+ */
Json::Value settings_;
CharReaderBuilder();
- ~CharReaderBuilder() JSONCPP_OVERRIDE;
+ ~CharReaderBuilder() override;
- CharReader* newCharReader() const JSONCPP_OVERRIDE;
+ CharReader* newCharReader() const override;
/** \return true if 'settings' are legal and consistent;
* otherwise, indicate bad settings via 'invalid'.
@@ -1696,7 +1817,7 @@ public:
/** A simple way to update a specific setting.
*/
- Value& operator[](JSONCPP_STRING key);
+ Value& operator[](const String& key);
/** Called by ctor, but you can use this to reset settings_.
* \pre 'settings' != NULL (but Json::null is fine)
@@ -1713,39 +1834,37 @@ public:
};
/** Consume entire stream and use its begin/end.
- * Someday we might have a real StreamReader, but for now this
- * is convenient.
- */
-bool JSON_API parseFromStream(
- CharReader::Factory const&,
- JSONCPP_ISTREAM&,
- Value* root, std::string* errs);
+ * Someday we might have a real StreamReader, but for now this
+ * is convenient.
+ */
+bool JSON_API parseFromStream(CharReader::Factory const&, IStream&, Value* root,
+ String* errs);
/** \brief Read from 'sin' into 'root'.
-
- Always keep comments from the input JSON.
-
- This can be used to read a file into a particular sub-object.
- For example:
- \code
- Json::Value root;
- cin >> root["dir"]["file"];
- cout << root;
- \endcode
- Result:
- \verbatim
- {
- "dir": {
- "file": {
- // The input stream JSON would be nested here.
- }
- }
- }
- \endverbatim
- \throw std::exception on parse error.
- \see Json::operator<<()
-*/
-JSON_API JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM&, Value&);
+ *
+ * Always keep comments from the input JSON.
+ *
+ * This can be used to read a file into a particular sub-object.
+ * For example:
+ * \code
+ * Json::Value root;
+ * cin >> root["dir"]["file"];
+ * cout << root;
+ * \endcode
+ * Result:
+ * \verbatim
+ * {
+ * "dir": {
+ * "file": {
+ * // The input stream JSON would be nested here.
+ * }
+ * }
+ * }
+ * \endverbatim
+ * \throw std::exception on parse error.
+ * \see Json::operator<<()
+ */
+JSON_API IStream& operator>>(IStream&, Value&);
} // namespace Json
@@ -1755,7 +1874,7 @@ JSON_API JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM&, Value&);
#pragma warning(pop)
#endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING)
-#endif // CPPTL_JSON_READER_H_INCLUDED
+#endif // JSON_READER_H_INCLUDED
// //////////////////////////////////////////////////////////////////////
// End of content of file: include/json/reader.h
@@ -1781,9 +1900,9 @@ JSON_API JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM&, Value&);
#if !defined(JSON_IS_AMALGAMATION)
#include "value.h"
#endif // if !defined(JSON_IS_AMALGAMATION)
-#include <vector>
-#include <string>
#include <ostream>
+#include <string>
+#include <vector>
// Disable warning C4251: <data member>: <type> needs to have dll-interface to
// be used by...
@@ -1799,31 +1918,31 @@ namespace Json {
class Value;
/**
-
-Usage:
-\code
- using namespace Json;
- void writeToStdout(StreamWriter::Factory const& factory, Value const& value) {
- std::unique_ptr<StreamWriter> const writer(
- factory.newStreamWriter());
- writer->write(value, &std::cout);
- std::cout << std::endl; // add lf and flush
- }
-\endcode
-*/
+ *
+ * Usage:
+ * \code
+ * using namespace Json;
+ * void writeToStdout(StreamWriter::Factory const& factory, Value const& value)
+ * { std::unique_ptr<StreamWriter> const writer( factory.newStreamWriter());
+ * writer->write(value, &std::cout);
+ * std::cout << std::endl; // add lf and flush
+ * }
+ * \endcode
+ */
class JSON_API StreamWriter {
protected:
- JSONCPP_OSTREAM* sout_; // not owned; will not delete
+ OStream* sout_; // not owned; will not delete
public:
StreamWriter();
virtual ~StreamWriter();
/** Write Value into document as configured in sub-class.
- Do not take ownership of sout, but maintain a reference during function.
- \pre sout != NULL
- \return zero on success (For now, we always return zero, so check the stream instead.)
- \throw std::exception possibly, depending on configuration
+ * Do not take ownership of sout, but maintain a reference during function.
+ * \pre sout != NULL
+ * \return zero on success (For now, we always return zero, so check the
+ * stream instead.) \throw std::exception possibly, depending on
+ * configuration
*/
- virtual int write(Value const& root, JSONCPP_OSTREAM* sout) = 0;
+ virtual int write(Value const& root, OStream* sout) = 0;
/** \brief A simple abstract factory.
*/
@@ -1834,64 +1953,69 @@ public:
* \throw std::exception if something goes wrong (e.g. invalid settings)
*/
virtual StreamWriter* newStreamWriter() const = 0;
- }; // Factory
-}; // StreamWriter
+ }; // Factory
+}; // StreamWriter
/** \brief Write into stringstream, then return string, for convenience.
* A StreamWriter will be created from the factory, used, and then deleted.
*/
-JSONCPP_STRING JSON_API writeString(StreamWriter::Factory const& factory, Value const& root);
-
+String JSON_API writeString(StreamWriter::Factory const& factory,
+ Value const& root);
/** \brief Build a StreamWriter implementation.
-Usage:
-\code
- using namespace Json;
- Value value = ...;
- StreamWriterBuilder builder;
- builder["commentStyle"] = "None";
- builder["indentation"] = " "; // or whatever you like
- std::unique_ptr<Json::StreamWriter> writer(
- builder.newStreamWriter());
- writer->write(value, &std::cout);
- std::cout << std::endl; // add lf and flush
-\endcode
+* Usage:
+* \code
+* using namespace Json;
+* Value value = ...;
+* StreamWriterBuilder builder;
+* builder["commentStyle"] = "None";
+* builder["indentation"] = " "; // or whatever you like
+* std::unique_ptr<Json::StreamWriter> writer(
+* builder.newStreamWriter());
+* writer->write(value, &std::cout);
+* std::cout << std::endl; // add lf and flush
+* \endcode
*/
class JSON_API StreamWriterBuilder : public StreamWriter::Factory {
public:
// Note: We use a Json::Value so that we can add data-members to this class
// without a major version bump.
/** Configuration of this builder.
- Available settings (case-sensitive):
- - "commentStyle": "None" or "All"
- - "indentation": "<anything>"
- - "enableYAMLCompatibility": false or true
- - slightly change the whitespace around colons
- - "dropNullPlaceholders": false or true
- - Drop the "null" string from the writer's output for nullValues.
- Strictly speaking, this is not valid JSON. But when the output is being
- fed to a browser's JavaScript, it makes for smaller output and the
- browser can handle the output just fine.
- - "useSpecialFloats": false or true
- - If true, outputs non-finite floating point values in the following way:
- NaN values as "NaN", positive infinity as "Infinity", and negative infinity
- as "-Infinity".
-
- You can examine 'settings_` yourself
- to see the defaults. You can also write and read them just like any
- JSON Value.
- \sa setDefaults()
- */
+ * Available settings (case-sensitive):
+ * - "commentStyle": "None" or "All"
+ * - "indentation": "<anything>".
+ * - Setting this to an empty string also omits newline characters.
+ * - "enableYAMLCompatibility": false or true
+ * - slightly change the whitespace around colons
+ * - "dropNullPlaceholders": false or true
+ * - Drop the "null" string from the writer's output for nullValues.
+ * Strictly speaking, this is not valid JSON. But when the output is being
+ * fed to a browser's JavaScript, it makes for smaller output and the
+ * browser can handle the output just fine.
+ * - "useSpecialFloats": false or true
+ * - If true, outputs non-finite floating point values in the following way:
+ * NaN values as "NaN", positive infinity as "Infinity", and negative
+ * infinity as "-Infinity".
+ * - "precision": int
+ * - Number of precision digits for formatting of real values.
+ * - "precisionType": "significant"(default) or "decimal"
+ * - Type of precision for formatting of real values.
+
+ * You can examine 'settings_` yourself
+ * to see the defaults. You can also write and read them just like any
+ * JSON Value.
+ * \sa setDefaults()
+ */
Json::Value settings_;
StreamWriterBuilder();
- ~StreamWriterBuilder() JSONCPP_OVERRIDE;
+ ~StreamWriterBuilder() override;
/**
* \throw std::exception if something goes wrong (e.g. invalid settings)
*/
- StreamWriter* newStreamWriter() const JSONCPP_OVERRIDE;
+ StreamWriter* newStreamWriter() const override;
/** \return true if 'settings' are legal and consistent;
* otherwise, indicate bad settings via 'invalid'.
@@ -1899,7 +2023,7 @@ public:
bool validate(Json::Value* invalid) const;
/** A simple way to update a specific setting.
*/
- Value& operator[](JSONCPP_STRING key);
+ Value& operator[](const String& key);
/** Called by ctor, but you can use this to reset settings_.
* \pre 'settings' != NULL (but Json::null is fine)
@@ -1916,7 +2040,7 @@ class JSONCPP_DEPRECATED("Use StreamWriter instead") JSON_API Writer {
public:
virtual ~Writer();
- virtual JSONCPP_STRING write(const Value& root) = 0;
+ virtual String write(const Value& root) = 0;
};
/** \brief Outputs a Value in <a HREF="http://www.json.org">JSON</a> format
@@ -1924,18 +2048,19 @@ public:
*
* The JSON document is written in a single line. It is not intended for 'human'
*consumption,
- * but may be usefull to support feature such as RPC where bandwith is limited.
+ * but may be useful to support feature such as RPC where bandwidth is limited.
* \sa Reader, Value
* \deprecated Use StreamWriterBuilder.
*/
#if defined(_MSC_VER)
#pragma warning(push)
-#pragma warning(disable:4996) // Deriving from deprecated class
+#pragma warning(disable : 4996) // Deriving from deprecated class
#endif
-class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API FastWriter : public Writer {
+class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API FastWriter
+ : public Writer {
public:
FastWriter();
- ~FastWriter() JSONCPP_OVERRIDE {}
+ ~FastWriter() override = default;
void enableYAMLCompatibility();
@@ -1949,15 +2074,15 @@ public:
void omitEndingLineFeed();
public: // overridden from Writer
- JSONCPP_STRING write(const Value& root) JSONCPP_OVERRIDE;
+ String write(const Value& root) override;
private:
void writeValue(const Value& value);
- JSONCPP_STRING document_;
- bool yamlCompatibilityEnabled_;
- bool dropNullPlaceholders_;
- bool omitEndingLineFeed_;
+ String document_;
+ bool yamlCompatibilityEnabled_{false};
+ bool dropNullPlaceholders_{false};
+ bool omitEndingLineFeed_{false};
};
#if defined(_MSC_VER)
#pragma warning(pop)
@@ -1989,42 +2114,43 @@ private:
*/
#if defined(_MSC_VER)
#pragma warning(push)
-#pragma warning(disable:4996) // Deriving from deprecated class
+#pragma warning(disable : 4996) // Deriving from deprecated class
#endif
-class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API StyledWriter : public Writer {
+class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API
+ StyledWriter : public Writer {
public:
StyledWriter();
- ~StyledWriter() JSONCPP_OVERRIDE {}
+ ~StyledWriter() override = default;
public: // overridden from Writer
/** \brief Serialize a Value in <a HREF="http://www.json.org">JSON</a> format.
* \param root Value to serialize.
* \return String containing the JSON document that represents the root value.
*/
- JSONCPP_STRING write(const Value& root) JSONCPP_OVERRIDE;
+ String write(const Value& root) override;
private:
void writeValue(const Value& value);
void writeArrayValue(const Value& value);
bool isMultilineArray(const Value& value);
- void pushValue(const JSONCPP_STRING& value);
+ void pushValue(const String& value);
void writeIndent();
- void writeWithIndent(const JSONCPP_STRING& value);
+ void writeWithIndent(const String& value);
void indent();
void unindent();
void writeCommentBeforeValue(const Value& root);
void writeCommentAfterValueOnSameLine(const Value& root);
- bool hasCommentForValue(const Value& value);
- static JSONCPP_STRING normalizeEOL(const JSONCPP_STRING& text);
+ static bool hasCommentForValue(const Value& value);
+ static String normalizeEOL(const String& text);
- typedef std::vector<JSONCPP_STRING> ChildValues;
+ using ChildValues = std::vector<String>;
ChildValues childValues_;
- JSONCPP_STRING document_;
- JSONCPP_STRING indentString_;
- unsigned int rightMargin_;
- unsigned int indentSize_;
- bool addChildValues_;
+ String document_;
+ String indentString_;
+ unsigned int rightMargin_{74};
+ unsigned int indentSize_{3};
+ bool addChildValues_{false};
};
#if defined(_MSC_VER)
#pragma warning(pop)
@@ -2057,15 +2183,16 @@ private:
*/
#if defined(_MSC_VER)
#pragma warning(push)
-#pragma warning(disable:4996) // Deriving from deprecated class
+#pragma warning(disable : 4996) // Deriving from deprecated class
#endif
-class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API StyledStreamWriter {
+class JSONCPP_DEPRECATED("Use StreamWriterBuilder instead") JSON_API
+ StyledStreamWriter {
public:
-/**
- * \param indentation Each level will be indented by this amount extra.
- */
- StyledStreamWriter(JSONCPP_STRING indentation = "\t");
- ~StyledStreamWriter() {}
+ /**
+ * \param indentation Each level will be indented by this amount extra.
+ */
+ StyledStreamWriter(String indentation = "\t");
+ ~StyledStreamWriter() = default;
public:
/** \brief Serialize a Value in <a HREF="http://www.json.org">JSON</a> format.
@@ -2074,29 +2201,29 @@ public:
* \note There is no point in deriving from Writer, since write() should not
* return a value.
*/
- void write(JSONCPP_OSTREAM& out, const Value& root);
+ void write(OStream& out, const Value& root);
private:
void writeValue(const Value& value);
void writeArrayValue(const Value& value);
bool isMultilineArray(const Value& value);
- void pushValue(const JSONCPP_STRING& value);
+ void pushValue(const String& value);
void writeIndent();
- void writeWithIndent(const JSONCPP_STRING& value);
+ void writeWithIndent(const String& value);
void indent();
void unindent();
void writeCommentBeforeValue(const Value& root);
void writeCommentAfterValueOnSameLine(const Value& root);
- bool hasCommentForValue(const Value& value);
- static JSONCPP_STRING normalizeEOL(const JSONCPP_STRING& text);
+ static bool hasCommentForValue(const Value& value);
+ static String normalizeEOL(const String& text);
- typedef std::vector<JSONCPP_STRING> ChildValues;
+ using ChildValues = std::vector<String>;
ChildValues childValues_;
- JSONCPP_OSTREAM* document_;
- JSONCPP_STRING indentString_;
- unsigned int rightMargin_;
- JSONCPP_STRING indentation_;
+ OStream* document_;
+ String indentString_;
+ unsigned int rightMargin_{74};
+ String indentation_;
bool addChildValues_ : 1;
bool indented_ : 1;
};
@@ -2105,18 +2232,20 @@ private:
#endif
#if defined(JSON_HAS_INT64)
-JSONCPP_STRING JSON_API valueToString(Int value);
-JSONCPP_STRING JSON_API valueToString(UInt value);
+String JSON_API valueToString(Int value);
+String JSON_API valueToString(UInt value);
#endif // if defined(JSON_HAS_INT64)
-JSONCPP_STRING JSON_API valueToString(LargestInt value);
-JSONCPP_STRING JSON_API valueToString(LargestUInt value);
-JSONCPP_STRING JSON_API valueToString(double value);
-JSONCPP_STRING JSON_API valueToString(bool value);
-JSONCPP_STRING JSON_API valueToQuotedString(const char* value);
+String JSON_API valueToString(LargestInt value);
+String JSON_API valueToString(LargestUInt value);
+String JSON_API valueToString(
+ double value, unsigned int precision = Value::defaultRealPrecision,
+ PrecisionType precisionType = PrecisionType::significantDigits);
+String JSON_API valueToString(bool value);
+String JSON_API valueToQuotedString(const char* value);
/// \brief Output using the StyledStreamWriter.
/// \see Json::operator>>()
-JSON_API JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM&, const Value& root);
+JSON_API OStream& operator<<(OStream&, const Value& root);
} // namespace Json
@@ -2146,10 +2275,10 @@ JSON_API JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM&, const Value& root);
// recognized in your jurisdiction.
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
-#ifndef CPPTL_JSON_ASSERTIONS_H_INCLUDED
-#define CPPTL_JSON_ASSERTIONS_H_INCLUDED
+#ifndef JSON_ASSERTIONS_H_INCLUDED
+#define JSON_ASSERTIONS_H_INCLUDED
-#include <stdlib.h>
+#include <cstdlib>
#include <sstream>
#if !defined(JSON_IS_AMALGAMATION)
@@ -2163,38 +2292,45 @@ JSON_API JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM&, const Value& root);
#if JSON_USE_EXCEPTION
// @todo <= add detail about condition in exception
-# define JSON_ASSERT(condition) \
- {if (!(condition)) {Json::throwLogicError( "assert json failed" );}}
-
-# define JSON_FAIL_MESSAGE(message) \
- { \
- JSONCPP_OSTRINGSTREAM oss; oss << message; \
+#define JSON_ASSERT(condition) \
+ do { \
+ if (!(condition)) { \
+ Json::throwLogicError("assert json failed"); \
+ } \
+ } while (0)
+
+#define JSON_FAIL_MESSAGE(message) \
+ do { \
+ OStringStream oss; \
+ oss << message; \
Json::throwLogicError(oss.str()); \
abort(); \
- }
+ } while (0)
#else // JSON_USE_EXCEPTION
-# define JSON_ASSERT(condition) assert(condition)
+#define JSON_ASSERT(condition) assert(condition)
// The call to assert() will show the failure message in debug builds. In
// release builds we abort, for a core-dump or debugger.
-# define JSON_FAIL_MESSAGE(message) \
+#define JSON_FAIL_MESSAGE(message) \
{ \
- JSONCPP_OSTRINGSTREAM oss; oss << message; \
+ OStringStream oss; \
+ oss << message; \
assert(false && oss.str().c_str()); \
abort(); \
}
-
#endif
#define JSON_ASSERT_MESSAGE(condition, message) \
- if (!(condition)) { \
- JSON_FAIL_MESSAGE(message); \
- }
+ do { \
+ if (!(condition)) { \
+ JSON_FAIL_MESSAGE(message); \
+ } \
+ } while (0)
-#endif // CPPTL_JSON_ASSERTIONS_H_INCLUDED
+#endif // JSON_ASSERTIONS_H_INCLUDED
// //////////////////////////////////////////////////////////////////////
// End of content of file: include/json/assertions.h
diff --git a/lib/jsoncpp/jsoncpp.cpp b/lib/jsoncpp/jsoncpp.cpp
index 507a1c6ad..30e0a69f7 100644
--- a/lib/jsoncpp/jsoncpp.cpp
+++ b/lib/jsoncpp/jsoncpp.cpp
@@ -92,6 +92,9 @@ license you like.
#ifndef LIB_JSONCPP_JSON_TOOL_H_INCLUDED
#define LIB_JSONCPP_JSON_TOOL_H_INCLUDED
+#if !defined(JSON_IS_AMALGAMATION)
+#include <json/config.h>
+#endif
// Also support old flag NO_LOCALE_SUPPORT
#ifdef NO_LOCALE_SUPPORT
@@ -109,7 +112,7 @@ license you like.
*/
namespace Json {
-static char getDecimalPoint() {
+static inline char getDecimalPoint() {
#ifdef JSONCPP_NO_LOCALE_SUPPORT
return '\0';
#else
@@ -119,8 +122,8 @@ static char getDecimalPoint() {
}
/// Converts a unicode code-point to UTF-8.
-static inline JSONCPP_STRING codePointToUTF8(unsigned int cp) {
- JSONCPP_STRING result;
+static inline String codePointToUTF8(unsigned int cp) {
+ String result;
// based on description from http://en.wikipedia.org/wiki/UTF-8
@@ -154,7 +157,7 @@ enum {
};
// Defines a char buffer for use with uintToString().
-typedef char UIntToStringBuffer[uintToStringBufferSize];
+using UIntToStringBuffer = char[uintToStringBufferSize];
/** Converts an unsigned integer to string.
* @param value Unsigned integer to convert to string
@@ -174,28 +177,45 @@ static inline void uintToString(LargestUInt value, char*& current) {
* We had a sophisticated way, but it did not work in WinCE.
* @see https://github.com/open-source-parsers/jsoncpp/pull/9
*/
-static inline void fixNumericLocale(char* begin, char* end) {
- while (begin < end) {
+template <typename Iter> Iter fixNumericLocale(Iter begin, Iter end) {
+ for (; begin != end; ++begin) {
if (*begin == ',') {
*begin = '.';
}
- ++begin;
}
+ return begin;
}
-static inline void fixNumericLocaleInput(char* begin, char* end) {
+template <typename Iter> void fixNumericLocaleInput(Iter begin, Iter end) {
char decimalPoint = getDecimalPoint();
- if (decimalPoint != '\0' && decimalPoint != '.') {
- while (begin < end) {
- if (*begin == '.') {
- *begin = decimalPoint;
- }
- ++begin;
+ if (decimalPoint == '\0' || decimalPoint == '.') {
+ return;
+ }
+ for (; begin != end; ++begin) {
+ if (*begin == '.') {
+ *begin = decimalPoint;
}
}
}
-} // namespace Json {
+/**
+ * Return iterator that would be the new end of the range [begin,end), if we
+ * were to delete zeros in the end of string, but not the last zero before '.'.
+ */
+template <typename Iter> Iter fixZerosInTheEnd(Iter begin, Iter end) {
+ for (; begin != end; --end) {
+ if (*(end - 1) != '0') {
+ return end;
+ }
+ // Don't delete the last zero before the decimal point.
+ if (begin != (end - 1) && *(end - 2) == '.') {
+ return end;
+ }
+ }
+ return end;
+}
+
+} // namespace Json
#endif // LIB_JSONCPP_JSON_TOOL_H_INCLUDED
@@ -219,69 +239,65 @@ static inline void fixNumericLocaleInput(char* begin, char* end) {
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
#if !defined(JSON_IS_AMALGAMATION)
+#include "json_tool.h"
#include <json/assertions.h>
#include <json/reader.h>
#include <json/value.h>
-#include "json_tool.h"
#endif // if !defined(JSON_IS_AMALGAMATION)
-#include <utility>
-#include <cstdio>
+#include <algorithm>
#include <cassert>
#include <cstring>
+#include <iostream>
#include <istream>
-#include <sstream>
+#include <limits>
#include <memory>
#include <set>
-#include <limits>
+#include <sstream>
+#include <utility>
-#if defined(_MSC_VER)
-#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above
-#define snprintf sprintf_s
-#elif _MSC_VER >= 1900 // VC++ 14.0 and above
-#define snprintf std::snprintf
-#else
-#define snprintf _snprintf
-#endif
-#elif defined(__ANDROID__) || defined(__QNXNTO__)
-#define snprintf snprintf
-#elif __cplusplus >= 201103L
-#if !defined(__MINGW32__) && !defined(__CYGWIN__)
-#define snprintf std::snprintf
-#endif
-#endif
+#include <cstdio>
+#if __cplusplus >= 201103L
-#if defined(__QNXNTO__)
+#if !defined(sscanf)
#define sscanf std::sscanf
#endif
-#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0
+#endif //__cplusplus
+
+#if defined(_MSC_VER)
+#if !defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES)
+#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
+#endif //_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
+#endif //_MSC_VER
+
+#if defined(_MSC_VER)
// Disable warning about strdup being deprecated.
#pragma warning(disable : 4996)
#endif
-// Define JSONCPP_DEPRECATED_STACK_LIMIT as an appropriate integer at compile time to change the stack limit
+// Define JSONCPP_DEPRECATED_STACK_LIMIT as an appropriate integer at compile
+// time to change the stack limit
#if !defined(JSONCPP_DEPRECATED_STACK_LIMIT)
#define JSONCPP_DEPRECATED_STACK_LIMIT 1000
#endif
-static size_t const stackLimit_g = JSONCPP_DEPRECATED_STACK_LIMIT; // see readValue()
+static size_t const stackLimit_g =
+ JSONCPP_DEPRECATED_STACK_LIMIT; // see readValue()
namespace Json {
#if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520)
-typedef std::unique_ptr<CharReader> CharReaderPtr;
+using CharReaderPtr = std::unique_ptr<CharReader>;
#else
-typedef std::auto_ptr<CharReader> CharReaderPtr;
+using CharReaderPtr = std::auto_ptr<CharReader>;
#endif
// Implementation of class Features
// ////////////////////////////////
-Features::Features()
- : allowComments_(true), strictRoot_(false),
- allowDroppedNullPlaceholders_(false), allowNumericKeys_(false) {}
+Features::Features() = default;
-Features Features::all() { return Features(); }
+Features Features::all() { return {}; }
Features Features::strictMode() {
Features features;
@@ -296,49 +312,38 @@ Features Features::strictMode() {
// ////////////////////////////////
bool Reader::containsNewLine(Reader::Location begin, Reader::Location end) {
- for (; begin < end; ++begin)
- if (*begin == '\n' || *begin == '\r')
- return true;
- return false;
+ return std::any_of(begin, end, [](char b) { return b == '\n' || b == '\r'; });
}
// Class Reader
// //////////////////////////////////////////////////////////////////
-Reader::Reader()
- : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
- lastValue_(), commentsBefore_(), features_(Features::all()),
- collectComments_() {}
+Reader::Reader() : features_(Features::all()) {}
-Reader::Reader(const Features& features)
- : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
- lastValue_(), commentsBefore_(), features_(features), collectComments_() {
-}
+Reader::Reader(const Features& features) : features_(features) {}
-bool
-Reader::parse(const std::string& document, Value& root, bool collectComments) {
+bool Reader::parse(const std::string& document, Value& root,
+ bool collectComments) {
document_.assign(document.begin(), document.end());
const char* begin = document_.c_str();
const char* end = begin + document_.length();
return parse(begin, end, root, collectComments);
}
-bool Reader::parse(std::istream& sin, Value& root, bool collectComments) {
- // std::istream_iterator<char> begin(sin);
+bool Reader::parse(std::istream& is, Value& root, bool collectComments) {
+ // std::istream_iterator<char> begin(is);
// std::istream_iterator<char> end;
// Those would allow streamed input from a file, if parse() were a
// template function.
- // Since JSONCPP_STRING is reference-counted, this at least does not
+ // Since String is reference-counted, this at least does not
// create an extra copy.
- JSONCPP_STRING doc;
- std::getline(sin, doc, (char)EOF);
+ String doc;
+ std::getline(is, doc, static_cast<char> EOF);
return parse(doc.data(), doc.data() + doc.size(), root, collectComments);
}
-bool Reader::parse(const char* beginDoc,
- const char* endDoc,
- Value& root,
+bool Reader::parse(const char* beginDoc, const char* endDoc, Value& root,
bool collectComments) {
if (!features_.allowComments_) {
collectComments = false;
@@ -348,8 +353,8 @@ bool Reader::parse(const char* beginDoc,
end_ = endDoc;
collectComments_ = collectComments;
current_ = begin_;
- lastValueEnd_ = 0;
- lastValue_ = 0;
+ lastValueEnd_ = nullptr;
+ lastValue_ = nullptr;
commentsBefore_.clear();
errors_.clear();
while (!nodes_.empty())
@@ -379,9 +384,11 @@ bool Reader::parse(const char* beginDoc,
bool Reader::readValue() {
// readValue() may call itself only if it calls readObject() or ReadArray().
- // These methods execute nodes_.push() just before and nodes_.pop)() just after calling readValue().
- // parse() executes one nodes_.push(), so > instead of >=.
- if (nodes_.size() > stackLimit_g) throwRuntimeError("Exceeded stackLimit in readValue().");
+ // These methods execute nodes_.push() just before and nodes_.pop)() just
+ // after calling readValue(). parse() executes one nodes_.push(), so > instead
+ // of >=.
+ if (nodes_.size() > stackLimit_g)
+ throwRuntimeError("Exceeded stackLimit in readValue().");
Token token;
skipCommentTokens(token);
@@ -407,30 +414,24 @@ bool Reader::readValue() {
case tokenString:
successful = decodeString(token);
break;
- case tokenTrue:
- {
+ case tokenTrue: {
Value v(true);
currentValue().swapPayload(v);
currentValue().setOffsetStart(token.start_ - begin_);
currentValue().setOffsetLimit(token.end_ - begin_);
- }
- break;
- case tokenFalse:
- {
+ } break;
+ case tokenFalse: {
Value v(false);
currentValue().swapPayload(v);
currentValue().setOffsetStart(token.start_ - begin_);
currentValue().setOffsetLimit(token.end_ - begin_);
- }
- break;
- case tokenNull:
- {
+ } break;
+ case tokenNull: {
Value v;
currentValue().swapPayload(v);
currentValue().setOffsetStart(token.start_ - begin_);
currentValue().setOffsetLimit(token.end_ - begin_);
- }
- break;
+ } break;
case tokenArraySeparator:
case tokenObjectEnd:
case tokenArrayEnd:
@@ -536,7 +537,7 @@ bool Reader::readToken(Token& token) {
if (!ok)
token.type_ = tokenError;
token.end_ = current_;
- return true;
+ return ok;
}
void Reader::skipSpaces() {
@@ -549,7 +550,7 @@ void Reader::skipSpaces() {
}
}
-bool Reader::match(Location pattern, int patternLength) {
+bool Reader::match(const Char* pattern, int patternLength) {
if (end_ - current_ < patternLength)
return false;
int index = patternLength;
@@ -583,16 +584,16 @@ bool Reader::readComment() {
return true;
}
-JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader::Location end) {
- JSONCPP_STRING normalized;
+String Reader::normalizeEOL(Reader::Location begin, Reader::Location end) {
+ String normalized;
normalized.reserve(static_cast<size_t>(end - begin));
Reader::Location current = begin;
while (current != end) {
char c = *current++;
if (c == '\r') {
if (current != end && *current == '\n')
- // convert dos EOL
- ++current;
+ // convert dos EOL
+ ++current;
// convert Mac EOL
normalized += '\n';
} else {
@@ -602,12 +603,12 @@ JSONCPP_STRING Reader::normalizeEOL(Reader::Location begin, Reader::Location end
return normalized;
}
-void
-Reader::addComment(Location begin, Location end, CommentPlacement placement) {
+void Reader::addComment(Location begin, Location end,
+ CommentPlacement placement) {
assert(collectComments_);
- const JSONCPP_STRING& normalized = normalizeEOL(begin, end);
+ const String& normalized = normalizeEOL(begin, end);
if (placement == commentAfterOnSameLine) {
- assert(lastValue_ != 0);
+ assert(lastValue_ != nullptr);
lastValue_->setComment(normalized, placement);
} else {
commentsBefore_ += normalized;
@@ -640,7 +641,7 @@ bool Reader::readCppStyleComment() {
}
void Reader::readNumber() {
- const char *p = current_;
+ Location p = current_;
char c = '0'; // stopgap for already consumed character
// integral part
while (c >= '0' && c <= '9')
@@ -673,12 +674,12 @@ bool Reader::readString() {
return c == '"';
}
-bool Reader::readObject(Token& tokenStart) {
+bool Reader::readObject(Token& token) {
Token tokenName;
- JSONCPP_STRING name;
+ String name;
Value init(objectValue);
currentValue().swapPayload(init);
- currentValue().setOffsetStart(tokenStart.start_ - begin_);
+ currentValue().setOffsetStart(token.start_ - begin_);
while (readToken(tokenName)) {
bool initialTokenOk = true;
while (tokenName.type_ == tokenComment && initialTokenOk)
@@ -695,15 +696,15 @@ bool Reader::readObject(Token& tokenStart) {
Value numberName;
if (!decodeNumber(tokenName, numberName))
return recoverFromError(tokenObjectEnd);
- name = JSONCPP_STRING(numberName.asCString());
+ name = numberName.asString();
} else {
break;
}
Token colon;
if (!readToken(colon) || colon.type_ != tokenMemberSeparator) {
- return addErrorAndRecover(
- "Missing ':' after object member name", colon, tokenObjectEnd);
+ return addErrorAndRecover("Missing ':' after object member name", colon,
+ tokenObjectEnd);
}
Value& value = currentValue()[name];
nodes_.push(&value);
@@ -716,8 +717,8 @@ bool Reader::readObject(Token& tokenStart) {
if (!readToken(comma) ||
(comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator &&
comma.type_ != tokenComment)) {
- return addErrorAndRecover(
- "Missing ',' or '}' in object declaration", comma, tokenObjectEnd);
+ return addErrorAndRecover("Missing ',' or '}' in object declaration",
+ comma, tokenObjectEnd);
}
bool finalizeTokenOk = true;
while (comma.type_ == tokenComment && finalizeTokenOk)
@@ -725,14 +726,14 @@ bool Reader::readObject(Token& tokenStart) {
if (comma.type_ == tokenObjectEnd)
return true;
}
- return addErrorAndRecover(
- "Missing '}' or object member name", tokenName, tokenObjectEnd);
+ return addErrorAndRecover("Missing '}' or object member name", tokenName,
+ tokenObjectEnd);
}
-bool Reader::readArray(Token& tokenStart) {
+bool Reader::readArray(Token& token) {
Value init(arrayValue);
currentValue().swapPayload(init);
- currentValue().setOffsetStart(tokenStart.start_ - begin_);
+ currentValue().setOffsetStart(token.start_ - begin_);
skipSpaces();
if (current_ != end_ && *current_ == ']') // empty array
{
@@ -749,19 +750,19 @@ bool Reader::readArray(Token& tokenStart) {
if (!ok) // error already set
return recoverFromError(tokenArrayEnd);
- Token token;
+ Token currentToken;
// Accept Comment after last item in the array.
- ok = readToken(token);
- while (token.type_ == tokenComment && ok) {
- ok = readToken(token);
+ ok = readToken(currentToken);
+ while (currentToken.type_ == tokenComment && ok) {
+ ok = readToken(currentToken);
}
- bool badTokenType =
- (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd);
+ bool badTokenType = (currentToken.type_ != tokenArraySeparator &&
+ currentToken.type_ != tokenArrayEnd);
if (!ok || badTokenType) {
- return addErrorAndRecover(
- "Missing ',' or ']' in array declaration", token, tokenArrayEnd);
+ return addErrorAndRecover("Missing ',' or ']' in array declaration",
+ currentToken, tokenArrayEnd);
}
- if (token.type_ == tokenArrayEnd)
+ if (currentToken.type_ == tokenArrayEnd)
break;
}
return true;
@@ -785,7 +786,8 @@ bool Reader::decodeNumber(Token& token, Value& decoded) {
bool isNegative = *current == '-';
if (isNegative)
++current;
- // TODO: Help the compiler do the div and mod at compile time or get rid of them.
+ // TODO: Help the compiler do the div and mod at compile time or get rid of
+ // them.
Value::LargestUInt maxIntegerValue =
isNegative ? Value::LargestUInt(Value::maxLargestInt) + 1
: Value::maxLargestUInt;
@@ -795,7 +797,7 @@ bool Reader::decodeNumber(Token& token, Value& decoded) {
Char c = *current++;
if (c < '0' || c > '9')
return decodeDouble(token, decoded);
- Value::UInt digit(static_cast<Value::UInt>(c - '0'));
+ auto digit(static_cast<Value::UInt>(c - '0'));
if (value >= threshold) {
// We've hit or exceeded the max value divided by 10 (rounded down). If
// a) we've only just touched the limit, b) this is the last digit, and
@@ -831,18 +833,17 @@ bool Reader::decodeDouble(Token& token) {
bool Reader::decodeDouble(Token& token, Value& decoded) {
double value = 0;
- JSONCPP_STRING buffer(token.start_, token.end_);
- JSONCPP_ISTRINGSTREAM is(buffer);
+ String buffer(token.start_, token.end_);
+ IStringStream is(buffer);
if (!(is >> value))
- return addError("'" + JSONCPP_STRING(token.start_, token.end_) +
- "' is not a number.",
- token);
+ return addError(
+ "'" + String(token.start_, token.end_) + "' is not a number.", token);
decoded = value;
return true;
}
bool Reader::decodeString(Token& token) {
- JSONCPP_STRING decoded_string;
+ String decoded_string;
if (!decodeString(token, decoded_string))
return false;
Value decoded(decoded_string);
@@ -852,7 +853,7 @@ bool Reader::decodeString(Token& token) {
return true;
}
-bool Reader::decodeString(Token& token, JSONCPP_STRING& decoded) {
+bool Reader::decodeString(Token& token, String& decoded) {
decoded.reserve(static_cast<size_t>(token.end_ - token.start_ - 2));
Location current = token.start_ + 1; // skip '"'
Location end = token.end_ - 1; // do not include '"'
@@ -860,7 +861,7 @@ bool Reader::decodeString(Token& token, JSONCPP_STRING& decoded) {
Char c = *current++;
if (c == '"')
break;
- else if (c == '\\') {
+ if (c == '\\') {
if (current == end)
return addError("Empty escape sequence in string", token, current);
Char escape = *current++;
@@ -905,10 +906,8 @@ bool Reader::decodeString(Token& token, JSONCPP_STRING& decoded) {
return true;
}
-bool Reader::decodeUnicodeCodePoint(Token& token,
- Location& current,
- Location end,
- unsigned int& unicode) {
+bool Reader::decodeUnicodeCodePoint(Token& token, Location& current,
+ Location end, unsigned int& unicode) {
if (!decodeUnicodeEscapeSequence(token, current, end, unicode))
return false;
@@ -917,10 +916,9 @@ bool Reader::decodeUnicodeCodePoint(Token& token,
if (end - current < 6)
return addError(
"additional six characters expected to parse unicode surrogate pair.",
- token,
- current);
- unsigned int surrogatePair;
+ token, current);
if (*(current++) == '\\' && *(current++) == 'u') {
+ unsigned int surrogatePair;
if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) {
unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF);
} else
@@ -928,20 +926,17 @@ bool Reader::decodeUnicodeCodePoint(Token& token,
} else
return addError("expecting another \\u token to begin the second half of "
"a unicode surrogate pair",
- token,
- current);
+ token, current);
}
return true;
}
-bool Reader::decodeUnicodeEscapeSequence(Token& token,
- Location& current,
+bool Reader::decodeUnicodeEscapeSequence(Token& token, Location& current,
Location end,
unsigned int& ret_unicode) {
if (end - current < 4)
return addError(
- "Bad unicode escape sequence in string: four digits expected.",
- token,
+ "Bad unicode escape sequence in string: four digits expected.", token,
current);
int unicode = 0;
for (int index = 0; index < 4; ++index) {
@@ -956,15 +951,13 @@ bool Reader::decodeUnicodeEscapeSequence(Token& token,
else
return addError(
"Bad unicode escape sequence in string: hexadecimal digit expected.",
- token,
- current);
+ token, current);
}
ret_unicode = static_cast<unsigned int>(unicode);
return true;
}
-bool
-Reader::addError(const JSONCPP_STRING& message, Token& token, Location extra) {
+bool Reader::addError(const String& message, Token& token, Location extra) {
ErrorInfo info;
info.token_ = token;
info.message_ = message;
@@ -986,8 +979,7 @@ bool Reader::recoverFromError(TokenType skipUntilToken) {
return false;
}
-bool Reader::addErrorAndRecover(const JSONCPP_STRING& message,
- Token& token,
+bool Reader::addErrorAndRecover(const String& message, Token& token,
TokenType skipUntilToken) {
addError(message, token);
return recoverFromError(skipUntilToken);
@@ -1001,8 +993,7 @@ Reader::Char Reader::getNextChar() {
return *current_++;
}
-void Reader::getLocationLineAndColumn(Location location,
- int& line,
+void Reader::getLocationLineAndColumn(Location location, int& line,
int& column) const {
Location current = begin_;
Location lastLineStart = current;
@@ -1024,25 +1015,22 @@ void Reader::getLocationLineAndColumn(Location location,
++line;
}
-JSONCPP_STRING Reader::getLocationLineAndColumn(Location location) const {
+String Reader::getLocationLineAndColumn(Location location) const {
int line, column;
getLocationLineAndColumn(location, line, column);
char buffer[18 + 16 + 16 + 1];
- snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column);
+ jsoncpp_snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column);
return buffer;
}
// Deprecated. Preserved for backward compatibility
-JSONCPP_STRING Reader::getFormatedErrorMessages() const {
+String Reader::getFormatedErrorMessages() const {
return getFormattedErrorMessages();
}
-JSONCPP_STRING Reader::getFormattedErrorMessages() const {
- JSONCPP_STRING formattedMessage;
- for (Errors::const_iterator itError = errors_.begin();
- itError != errors_.end();
- ++itError) {
- const ErrorInfo& error = *itError;
+String Reader::getFormattedErrorMessages() const {
+ String formattedMessage;
+ for (const auto& error : errors_) {
formattedMessage +=
"* " + getLocationLineAndColumn(error.token_.start_) + "\n";
formattedMessage += " " + error.message_ + "\n";
@@ -1055,10 +1043,7 @@ JSONCPP_STRING Reader::getFormattedErrorMessages() const {
std::vector<Reader::StructuredError> Reader::getStructuredErrors() const {
std::vector<Reader::StructuredError> allErrors;
- for (Errors::const_iterator itError = errors_.begin();
- itError != errors_.end();
- ++itError) {
- const ErrorInfo& error = *itError;
+ for (const auto& error : errors_) {
Reader::StructuredError structured;
structured.offset_start = error.token_.start_ - begin_;
structured.offset_limit = error.token_.end_ - begin_;
@@ -1068,28 +1053,27 @@ std::vector<Reader::StructuredError> Reader::getStructuredErrors() const {
return allErrors;
}
-bool Reader::pushError(const Value& value, const JSONCPP_STRING& message) {
+bool Reader::pushError(const Value& value, const String& message) {
ptrdiff_t const length = end_ - begin_;
- if(value.getOffsetStart() > length
- || value.getOffsetLimit() > length)
+ if (value.getOffsetStart() > length || value.getOffsetLimit() > length)
return false;
Token token;
token.type_ = tokenError;
token.start_ = begin_ + value.getOffsetStart();
- token.end_ = end_ + value.getOffsetLimit();
+ token.end_ = begin_ + value.getOffsetLimit();
ErrorInfo info;
info.token_ = token;
info.message_ = message;
- info.extra_ = 0;
+ info.extra_ = nullptr;
errors_.push_back(info);
return true;
}
-bool Reader::pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra) {
+bool Reader::pushError(const Value& value, const String& message,
+ const Value& extra) {
ptrdiff_t const length = end_ - begin_;
- if(value.getOffsetStart() > length
- || value.getOffsetLimit() > length
- || extra.getOffsetLimit() > length)
+ if (value.getOffsetStart() > length || value.getOffsetLimit() > length ||
+ extra.getOffsetLimit() > length)
return false;
Token token;
token.type_ = tokenError;
@@ -1103,15 +1087,15 @@ bool Reader::pushError(const Value& value, const JSONCPP_STRING& message, const
return true;
}
-bool Reader::good() const {
- return !errors_.size();
-}
+bool Reader::good() const { return errors_.empty(); }
-// exact copy of Features
+// Originally copied from the Features class (now deprecated), used internally
+// for features implementation.
class OurFeatures {
public:
static OurFeatures all();
bool allowComments_;
+ bool allowTrailingCommas_;
bool strictRoot_;
bool allowDroppedNullPlaceholders_;
bool allowNumericKeys_;
@@ -1119,42 +1103,36 @@ public:
bool failIfExtra_;
bool rejectDupKeys_;
bool allowSpecialFloats_;
- int stackLimit_;
-}; // OurFeatures
+ bool skipBom_;
+ size_t stackLimit_;
+}; // OurFeatures
-// exact copy of Implementation of class Features
-// ////////////////////////////////
-
-OurFeatures OurFeatures::all() { return OurFeatures(); }
+OurFeatures OurFeatures::all() { return {}; }
// Implementation of class Reader
// ////////////////////////////////
-// exact copy of Reader, renamed to OurReader
+// Originally copied from the Reader class (now deprecated), used internally
+// for implementing JSON reading.
class OurReader {
public:
- typedef char Char;
- typedef const Char* Location;
+ using Char = char;
+ using Location = const Char*;
struct StructuredError {
ptrdiff_t offset_start;
ptrdiff_t offset_limit;
- JSONCPP_STRING message;
+ String message;
};
- OurReader(OurFeatures const& features);
- bool parse(const char* beginDoc,
- const char* endDoc,
- Value& root,
+ explicit OurReader(OurFeatures const& features);
+ bool parse(const char* beginDoc, const char* endDoc, Value& root,
bool collectComments = true);
- JSONCPP_STRING getFormattedErrorMessages() const;
+ String getFormattedErrorMessages() const;
std::vector<StructuredError> getStructuredErrors() const;
- bool pushError(const Value& value, const JSONCPP_STRING& message);
- bool pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra);
- bool good() const;
private:
- OurReader(OurReader const&); // no impl
- void operator=(OurReader const&); // no impl
+ OurReader(OurReader const&); // no impl
+ void operator=(OurReader const&); // no impl
enum TokenType {
tokenEndOfStream = 0,
@@ -1186,17 +1164,18 @@ private:
class ErrorInfo {
public:
Token token_;
- JSONCPP_STRING message_;
+ String message_;
Location extra_;
};
- typedef std::deque<ErrorInfo> Errors;
+ using Errors = std::deque<ErrorInfo>;
bool readToken(Token& token);
void skipSpaces();
- bool match(Location pattern, int patternLength);
+ void skipBom(bool skipBom);
+ bool match(const Char* pattern, int patternLength);
bool readComment();
- bool readCStyleComment();
+ bool readCStyleComment(bool* containsNewLineResult);
bool readCppStyleComment();
bool readString();
bool readStringSingleQuote();
@@ -1207,68 +1186,57 @@ private:
bool decodeNumber(Token& token);
bool decodeNumber(Token& token, Value& decoded);
bool decodeString(Token& token);
- bool decodeString(Token& token, JSONCPP_STRING& decoded);
+ bool decodeString(Token& token, String& decoded);
bool decodeDouble(Token& token);
bool decodeDouble(Token& token, Value& decoded);
- bool decodeUnicodeCodePoint(Token& token,
- Location& current,
- Location end,
+ bool decodeUnicodeCodePoint(Token& token, Location& current, Location end,
unsigned int& unicode);
- bool decodeUnicodeEscapeSequence(Token& token,
- Location& current,
- Location end,
- unsigned int& unicode);
- bool addError(const JSONCPP_STRING& message, Token& token, Location extra = 0);
+ bool decodeUnicodeEscapeSequence(Token& token, Location& current,
+ Location end, unsigned int& unicode);
+ bool addError(const String& message, Token& token, Location extra = nullptr);
bool recoverFromError(TokenType skipUntilToken);
- bool addErrorAndRecover(const JSONCPP_STRING& message,
- Token& token,
+ bool addErrorAndRecover(const String& message, Token& token,
TokenType skipUntilToken);
void skipUntilSpace();
Value& currentValue();
Char getNextChar();
- void
- getLocationLineAndColumn(Location location, int& line, int& column) const;
- JSONCPP_STRING getLocationLineAndColumn(Location location) const;
+ void getLocationLineAndColumn(Location location, int& line,
+ int& column) const;
+ String getLocationLineAndColumn(Location location) const;
void addComment(Location begin, Location end, CommentPlacement placement);
void skipCommentTokens(Token& token);
- static JSONCPP_STRING normalizeEOL(Location begin, Location end);
+ static String normalizeEOL(Location begin, Location end);
static bool containsNewLine(Location begin, Location end);
- typedef std::stack<Value*> Nodes;
- Nodes nodes_;
- Errors errors_;
- JSONCPP_STRING document_;
- Location begin_;
- Location end_;
- Location current_;
- Location lastValueEnd_;
- Value* lastValue_;
- JSONCPP_STRING commentsBefore_;
+ using Nodes = std::stack<Value*>;
+
+ Nodes nodes_{};
+ Errors errors_{};
+ String document_{};
+ Location begin_ = nullptr;
+ Location end_ = nullptr;
+ Location current_ = nullptr;
+ Location lastValueEnd_ = nullptr;
+ Value* lastValue_ = nullptr;
+ bool lastValueHasAComment_ = false;
+ String commentsBefore_{};
OurFeatures const features_;
- bool collectComments_;
-}; // OurReader
+ bool collectComments_ = false;
+}; // OurReader
// complete copy of Read impl, for OurReader
-bool OurReader::containsNewLine(OurReader::Location begin, OurReader::Location end) {
- for (; begin < end; ++begin)
- if (*begin == '\n' || *begin == '\r')
- return true;
- return false;
+bool OurReader::containsNewLine(OurReader::Location begin,
+ OurReader::Location end) {
+ return std::any_of(begin, end, [](char b) { return b == '\n' || b == '\r'; });
}
-OurReader::OurReader(OurFeatures const& features)
- : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
- lastValue_(), commentsBefore_(),
- features_(features), collectComments_() {
-}
+OurReader::OurReader(OurFeatures const& features) : features_(features) {}
-bool OurReader::parse(const char* beginDoc,
- const char* endDoc,
- Value& root,
- bool collectComments) {
+bool OurReader::parse(const char* beginDoc, const char* endDoc, Value& root,
+ bool collectComments) {
if (!features_.allowComments_) {
collectComments = false;
}
@@ -1277,22 +1245,23 @@ bool OurReader::parse(const char* beginDoc,
end_ = endDoc;
collectComments_ = collectComments;
current_ = begin_;
- lastValueEnd_ = 0;
- lastValue_ = 0;
+ lastValueEnd_ = nullptr;
+ lastValue_ = nullptr;
commentsBefore_.clear();
errors_.clear();
while (!nodes_.empty())
nodes_.pop();
nodes_.push(&root);
+ // skip byte order mark if it exists at the beginning of the UTF-8 text.
+ skipBom(features_.skipBom_);
bool successful = readValue();
+ nodes_.pop();
Token token;
skipCommentTokens(token);
- if (features_.failIfExtra_) {
- if ((features_.strictRoot_ || token.type_ != tokenError) && token.type_ != tokenEndOfStream) {
- addError("Extra non-whitespace after JSON value.", token);
- return false;
- }
+ if (features_.failIfExtra_ && (token.type_ != tokenEndOfStream)) {
+ addError("Extra non-whitespace after JSON value.", token);
+ return false;
}
if (collectComments_ && !commentsBefore_.empty())
root.setComment(commentsBefore_, commentAfter);
@@ -1314,7 +1283,8 @@ bool OurReader::parse(const char* beginDoc,
bool OurReader::readValue() {
// To preserve the old behaviour we cast size_t to int.
- if (static_cast<int>(nodes_.size()) > features_.stackLimit_) throwRuntimeError("Exceeded stackLimit in readValue().");
+ if (nodes_.size() > features_.stackLimit_)
+ throwRuntimeError("Exceeded stackLimit in readValue().");
Token token;
skipCommentTokens(token);
bool successful = true;
@@ -1339,54 +1309,42 @@ bool OurReader::readValue() {
case tokenString:
successful = decodeString(token);
break;
- case tokenTrue:
- {
+ case tokenTrue: {
Value v(true);
currentValue().swapPayload(v);
currentValue().setOffsetStart(token.start_ - begin_);
currentValue().setOffsetLimit(token.end_ - begin_);
- }
- break;
- case tokenFalse:
- {
+ } break;
+ case tokenFalse: {
Value v(false);
currentValue().swapPayload(v);
currentValue().setOffsetStart(token.start_ - begin_);
currentValue().setOffsetLimit(token.end_ - begin_);
- }
- break;
- case tokenNull:
- {
+ } break;
+ case tokenNull: {
Value v;
currentValue().swapPayload(v);
currentValue().setOffsetStart(token.start_ - begin_);
currentValue().setOffsetLimit(token.end_ - begin_);
- }
- break;
- case tokenNaN:
- {
+ } break;
+ case tokenNaN: {
Value v(std::numeric_limits<double>::quiet_NaN());
currentValue().swapPayload(v);
currentValue().setOffsetStart(token.start_ - begin_);
currentValue().setOffsetLimit(token.end_ - begin_);
- }
- break;
- case tokenPosInf:
- {
+ } break;
+ case tokenPosInf: {
Value v(std::numeric_limits<double>::infinity());
currentValue().swapPayload(v);
currentValue().setOffsetStart(token.start_ - begin_);
currentValue().setOffsetLimit(token.end_ - begin_);
- }
- break;
- case tokenNegInf:
- {
+ } break;
+ case tokenNegInf: {
Value v(-std::numeric_limits<double>::infinity());
currentValue().swapPayload(v);
currentValue().setOffsetStart(token.start_ - begin_);
currentValue().setOffsetLimit(token.end_ - begin_);
- }
- break;
+ } break;
case tokenArraySeparator:
case tokenObjectEnd:
case tokenArrayEnd:
@@ -1408,6 +1366,7 @@ bool OurReader::readValue() {
if (collectComments_) {
lastValueEnd_ = current_;
+ lastValueHasAComment_ = false;
lastValue_ = &currentValue();
}
@@ -1448,10 +1407,13 @@ bool OurReader::readToken(Token& token) {
break;
case '\'':
if (features_.allowSingleQuotes_) {
- token.type_ = tokenString;
- ok = readStringSingleQuote();
+ token.type_ = tokenString;
+ ok = readStringSingleQuote();
+ } else {
+ // If we don't allow single quotes, this is a failure case.
+ ok = false;
+ }
break;
- } // else fall through
case '/':
token.type_ = tokenComment;
ok = readComment();
@@ -1477,6 +1439,14 @@ bool OurReader::readToken(Token& token) {
ok = features_.allowSpecialFloats_ && match("nfinity", 7);
}
break;
+ case '+':
+ if (readNumber(true)) {
+ token.type_ = tokenNumber;
+ } else {
+ token.type_ = tokenPosInf;
+ ok = features_.allowSpecialFloats_ && match("nfinity", 7);
+ }
+ break;
case 't':
token.type_ = tokenTrue;
ok = match("rue", 3);
@@ -1521,7 +1491,7 @@ bool OurReader::readToken(Token& token) {
if (!ok)
token.type_ = tokenError;
token.end_ = current_;
- return true;
+ return ok;
}
void OurReader::skipSpaces() {
@@ -1534,7 +1504,17 @@ void OurReader::skipSpaces() {
}
}
-bool OurReader::match(Location pattern, int patternLength) {
+void OurReader::skipBom(bool skipBom) {
+ // The default behavior is to skip BOM.
+ if (skipBom) {
+ if ((end_ - begin_) >= 3 && strncmp(begin_, "\xEF\xBB\xBF", 3) == 0) {
+ begin_ += 3;
+ current_ = begin_;
+ }
+ }
+}
+
+bool OurReader::match(const Char* pattern, int patternLength) {
if (end_ - current_ < patternLength)
return false;
int index = patternLength;
@@ -1546,21 +1526,32 @@ bool OurReader::match(Location pattern, int patternLength) {
}
bool OurReader::readComment() {
- Location commentBegin = current_ - 1;
- Char c = getNextChar();
+ const Location commentBegin = current_ - 1;
+ const Char c = getNextChar();
bool successful = false;
- if (c == '*')
- successful = readCStyleComment();
- else if (c == '/')
+ bool cStyleWithEmbeddedNewline = false;
+
+ const bool isCStyleComment = (c == '*');
+ const bool isCppStyleComment = (c == '/');
+ if (isCStyleComment) {
+ successful = readCStyleComment(&cStyleWithEmbeddedNewline);
+ } else if (isCppStyleComment) {
successful = readCppStyleComment();
+ }
+
if (!successful)
return false;
if (collectComments_) {
CommentPlacement placement = commentBefore;
- if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) {
- if (c != '*' || !containsNewLine(commentBegin, current_))
- placement = commentAfterOnSameLine;
+
+ if (!lastValueHasAComment_) {
+ if (lastValueEnd_ && !containsNewLine(lastValueEnd_, commentBegin)) {
+ if (isCppStyleComment || !cStyleWithEmbeddedNewline) {
+ placement = commentAfterOnSameLine;
+ lastValueHasAComment_ = true;
+ }
+ }
}
addComment(commentBegin, current_, placement);
@@ -1568,16 +1559,17 @@ bool OurReader::readComment() {
return true;
}
-JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, OurReader::Location end) {
- JSONCPP_STRING normalized;
+String OurReader::normalizeEOL(OurReader::Location begin,
+ OurReader::Location end) {
+ String normalized;
normalized.reserve(static_cast<size_t>(end - begin));
OurReader::Location current = begin;
while (current != end) {
char c = *current++;
if (c == '\r') {
if (current != end && *current == '\n')
- // convert dos EOL
- ++current;
+ // convert dos EOL
+ ++current;
// convert Mac EOL
normalized += '\n';
} else {
@@ -1587,24 +1579,29 @@ JSONCPP_STRING OurReader::normalizeEOL(OurReader::Location begin, OurReader::Loc
return normalized;
}
-void
-OurReader::addComment(Location begin, Location end, CommentPlacement placement) {
+void OurReader::addComment(Location begin, Location end,
+ CommentPlacement placement) {
assert(collectComments_);
- const JSONCPP_STRING& normalized = normalizeEOL(begin, end);
+ const String& normalized = normalizeEOL(begin, end);
if (placement == commentAfterOnSameLine) {
- assert(lastValue_ != 0);
+ assert(lastValue_ != nullptr);
lastValue_->setComment(normalized, placement);
} else {
commentsBefore_ += normalized;
}
}
-bool OurReader::readCStyleComment() {
+bool OurReader::readCStyleComment(bool* containsNewLineResult) {
+ *containsNewLineResult = false;
+
while ((current_ + 1) < end_) {
Char c = getNextChar();
if (c == '*' && *current_ == '/')
break;
+ if (c == '\n')
+ *containsNewLineResult = true;
}
+
return getNextChar() == '/';
}
@@ -1625,7 +1622,7 @@ bool OurReader::readCppStyleComment() {
}
bool OurReader::readNumber(bool checkInf) {
- const char *p = current_;
+ Location p = current_;
if (checkInf && p != end_ && *p == 'I') {
current_ = ++p;
return false;
@@ -1662,7 +1659,6 @@ bool OurReader::readString() {
return c == '"';
}
-
bool OurReader::readStringSingleQuote() {
Char c = 0;
while (current_ != end_) {
@@ -1675,19 +1671,21 @@ bool OurReader::readStringSingleQuote() {
return c == '\'';
}
-bool OurReader::readObject(Token& tokenStart) {
+bool OurReader::readObject(Token& token) {
Token tokenName;
- JSONCPP_STRING name;
+ String name;
Value init(objectValue);
currentValue().swapPayload(init);
- currentValue().setOffsetStart(tokenStart.start_ - begin_);
+ currentValue().setOffsetStart(token.start_ - begin_);
while (readToken(tokenName)) {
bool initialTokenOk = true;
while (tokenName.type_ == tokenComment && initialTokenOk)
initialTokenOk = readToken(tokenName);
if (!initialTokenOk)
break;
- if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
+ if (tokenName.type_ == tokenObjectEnd &&
+ (name.empty() ||
+ features_.allowTrailingCommas_)) // empty object or trailing comma
return true;
name.clear();
if (tokenName.type_ == tokenString) {
@@ -1701,17 +1699,17 @@ bool OurReader::readObject(Token& tokenStart) {
} else {
break;
}
+ if (name.length() >= (1U << 30))
+ throwRuntimeError("keylength >= 2^30");
+ if (features_.rejectDupKeys_ && currentValue().isMember(name)) {
+ String msg = "Duplicate key: '" + name + "'";
+ return addErrorAndRecover(msg, tokenName, tokenObjectEnd);
+ }
Token colon;
if (!readToken(colon) || colon.type_ != tokenMemberSeparator) {
- return addErrorAndRecover(
- "Missing ':' after object member name", colon, tokenObjectEnd);
- }
- if (name.length() >= (1U<<30)) throwRuntimeError("keylength >= 2^30");
- if (features_.rejectDupKeys_ && currentValue().isMember(name)) {
- JSONCPP_STRING msg = "Duplicate key: '" + name + "'";
- return addErrorAndRecover(
- msg, tokenName, tokenObjectEnd);
+ return addErrorAndRecover("Missing ':' after object member name", colon,
+ tokenObjectEnd);
}
Value& value = currentValue()[name];
nodes_.push(&value);
@@ -1724,8 +1722,8 @@ bool OurReader::readObject(Token& tokenStart) {
if (!readToken(comma) ||
(comma.type_ != tokenObjectEnd && comma.type_ != tokenArraySeparator &&
comma.type_ != tokenComment)) {
- return addErrorAndRecover(
- "Missing ',' or '}' in object declaration", comma, tokenObjectEnd);
+ return addErrorAndRecover("Missing ',' or '}' in object declaration",
+ comma, tokenObjectEnd);
}
bool finalizeTokenOk = true;
while (comma.type_ == tokenComment && finalizeTokenOk)
@@ -1733,23 +1731,27 @@ bool OurReader::readObject(Token& tokenStart) {
if (comma.type_ == tokenObjectEnd)
return true;
}
- return addErrorAndRecover(
- "Missing '}' or object member name", tokenName, tokenObjectEnd);
+ return addErrorAndRecover("Missing '}' or object member name", tokenName,
+ tokenObjectEnd);
}
-bool OurReader::readArray(Token& tokenStart) {
+bool OurReader::readArray(Token& token) {
Value init(arrayValue);
currentValue().swapPayload(init);
- currentValue().setOffsetStart(tokenStart.start_ - begin_);
- skipSpaces();
- if (current_ != end_ && *current_ == ']') // empty array
- {
- Token endArray;
- readToken(endArray);
- return true;
- }
+ currentValue().setOffsetStart(token.start_ - begin_);
int index = 0;
for (;;) {
+ skipSpaces();
+ if (current_ != end_ && *current_ == ']' &&
+ (index == 0 ||
+ (features_.allowTrailingCommas_ &&
+ !features_.allowDroppedNullPlaceholders_))) // empty array or trailing
+ // comma
+ {
+ Token endArray;
+ readToken(endArray);
+ return true;
+ }
Value& value = currentValue()[index++];
nodes_.push(&value);
bool ok = readValue();
@@ -1757,19 +1759,19 @@ bool OurReader::readArray(Token& tokenStart) {
if (!ok) // error already set
return recoverFromError(tokenArrayEnd);
- Token token;
+ Token currentToken;
// Accept Comment after last item in the array.
- ok = readToken(token);
- while (token.type_ == tokenComment && ok) {
- ok = readToken(token);
+ ok = readToken(currentToken);
+ while (currentToken.type_ == tokenComment && ok) {
+ ok = readToken(currentToken);
}
- bool badTokenType =
- (token.type_ != tokenArraySeparator && token.type_ != tokenArrayEnd);
+ bool badTokenType = (currentToken.type_ != tokenArraySeparator &&
+ currentToken.type_ != tokenArrayEnd);
if (!ok || badTokenType) {
- return addErrorAndRecover(
- "Missing ',' or ']' in array declaration", token, tokenArrayEnd);
+ return addErrorAndRecover("Missing ',' or ']' in array declaration",
+ currentToken, tokenArrayEnd);
}
- if (token.type_ == tokenArrayEnd)
+ if (currentToken.type_ == tokenArrayEnd)
break;
}
return true;
@@ -1790,38 +1792,78 @@ bool OurReader::decodeNumber(Token& token, Value& decoded) {
// larger than the maximum supported value of an integer then
// we decode the number as a double.
Location current = token.start_;
- bool isNegative = *current == '-';
- if (isNegative)
+ const bool isNegative = *current == '-';
+ if (isNegative) {
++current;
- // TODO: Help the compiler do the div and mod at compile time or get rid of them.
- Value::LargestUInt maxIntegerValue =
- isNegative ? Value::LargestUInt(-Value::minLargestInt)
- : Value::maxLargestUInt;
- Value::LargestUInt threshold = maxIntegerValue / 10;
+ }
+
+ // We assume we can represent the largest and smallest integer types as
+ // unsigned integers with separate sign. This is only true if they can fit
+ // into an unsigned integer.
+ static_assert(Value::maxLargestInt <= Value::maxLargestUInt,
+ "Int must be smaller than UInt");
+
+ // We need to convert minLargestInt into a positive number. The easiest way
+ // to do this conversion is to assume our "threshold" value of minLargestInt
+ // divided by 10 can fit in maxLargestInt when absolute valued. This should
+ // be a safe assumption.
+ static_assert(Value::minLargestInt <= -Value::maxLargestInt,
+ "The absolute value of minLargestInt must be greater than or "
+ "equal to maxLargestInt");
+ static_assert(Value::minLargestInt / 10 >= -Value::maxLargestInt,
+ "The absolute value of minLargestInt must be only 1 magnitude "
+ "larger than maxLargest Int");
+
+ static constexpr Value::LargestUInt positive_threshold =
+ Value::maxLargestUInt / 10;
+ static constexpr Value::UInt positive_last_digit = Value::maxLargestUInt % 10;
+
+ // For the negative values, we have to be more careful. Since typically
+ // -Value::minLargestInt will cause an overflow, we first divide by 10 and
+ // then take the inverse. This assumes that minLargestInt is only a single
+ // power of 10 different in magnitude, which we check above. For the last
+ // digit, we take the modulus before negating for the same reason.
+ static constexpr auto negative_threshold =
+ Value::LargestUInt(-(Value::minLargestInt / 10));
+ static constexpr auto negative_last_digit =
+ Value::UInt(-(Value::minLargestInt % 10));
+
+ const Value::LargestUInt threshold =
+ isNegative ? negative_threshold : positive_threshold;
+ const Value::UInt max_last_digit =
+ isNegative ? negative_last_digit : positive_last_digit;
+
Value::LargestUInt value = 0;
while (current < token.end_) {
Char c = *current++;
if (c < '0' || c > '9')
return decodeDouble(token, decoded);
- Value::UInt digit(static_cast<Value::UInt>(c - '0'));
+
+ const auto digit(static_cast<Value::UInt>(c - '0'));
if (value >= threshold) {
// We've hit or exceeded the max value divided by 10 (rounded down). If
- // a) we've only just touched the limit, b) this is the last digit, and
+ // a) we've only just touched the limit, meaing value == threshold,
+ // b) this is the last digit, or
// c) it's small enough to fit in that rounding delta, we're okay.
// Otherwise treat this number as a double to avoid overflow.
if (value > threshold || current != token.end_ ||
- digit > maxIntegerValue % 10) {
+ digit > max_last_digit) {
return decodeDouble(token, decoded);
}
}
value = value * 10 + digit;
}
- if (isNegative)
- decoded = -Value::LargestInt(value);
- else if (value <= Value::LargestUInt(Value::maxInt))
+
+ if (isNegative) {
+ // We use the same magnitude assumption here, just in case.
+ const auto last_digit = static_cast<Value::UInt>(value % 10);
+ decoded = -Value::LargestInt(value / 10) * 10 - last_digit;
+ } else if (value <= Value::LargestUInt(Value::maxLargestInt)) {
decoded = Value::LargestInt(value);
- else
+ } else {
decoded = value;
+ }
+
return true;
}
@@ -1837,44 +1879,18 @@ bool OurReader::decodeDouble(Token& token) {
bool OurReader::decodeDouble(Token& token, Value& decoded) {
double value = 0;
- const int bufferSize = 32;
- int count;
- ptrdiff_t const length = token.end_ - token.start_;
-
- // Sanity check to avoid buffer overflow exploits.
- if (length < 0) {
- return addError("Unable to parse token length", token);
- }
- size_t const ulength = static_cast<size_t>(length);
-
- // Avoid using a string constant for the format control string given to
- // sscanf, as this can cause hard to debug crashes on OS X. See here for more
- // info:
- //
- // http://developer.apple.com/library/mac/#DOCUMENTATION/DeveloperTools/gcc-4.0.1/gcc/Incompatibilities.html
- char format[] = "%lf";
-
- if (length <= bufferSize) {
- Char buffer[bufferSize + 1];
- memcpy(buffer, token.start_, ulength);
- buffer[length] = 0;
- fixNumericLocaleInput(buffer, buffer + length);
- count = sscanf(buffer, format, &value);
- } else {
- JSONCPP_STRING buffer(token.start_, token.end_);
- count = sscanf(buffer.c_str(), format, &value);
+ const String buffer(token.start_, token.end_);
+ IStringStream is(buffer);
+ if (!(is >> value)) {
+ return addError(
+ "'" + String(token.start_, token.end_) + "' is not a number.", token);
}
-
- if (count != 1)
- return addError("'" + JSONCPP_STRING(token.start_, token.end_) +
- "' is not a number.",
- token);
decoded = value;
return true;
}
bool OurReader::decodeString(Token& token) {
- JSONCPP_STRING decoded_string;
+ String decoded_string;
if (!decodeString(token, decoded_string))
return false;
Value decoded(decoded_string);
@@ -1884,7 +1900,7 @@ bool OurReader::decodeString(Token& token) {
return true;
}
-bool OurReader::decodeString(Token& token, JSONCPP_STRING& decoded) {
+bool OurReader::decodeString(Token& token, String& decoded) {
decoded.reserve(static_cast<size_t>(token.end_ - token.start_ - 2));
Location current = token.start_ + 1; // skip '"'
Location end = token.end_ - 1; // do not include '"'
@@ -1892,7 +1908,7 @@ bool OurReader::decodeString(Token& token, JSONCPP_STRING& decoded) {
Char c = *current++;
if (c == '"')
break;
- else if (c == '\\') {
+ if (c == '\\') {
if (current == end)
return addError("Empty escape sequence in string", token, current);
Char escape = *current++;
@@ -1937,10 +1953,8 @@ bool OurReader::decodeString(Token& token, JSONCPP_STRING& decoded) {
return true;
}
-bool OurReader::decodeUnicodeCodePoint(Token& token,
- Location& current,
- Location end,
- unsigned int& unicode) {
+bool OurReader::decodeUnicodeCodePoint(Token& token, Location& current,
+ Location end, unsigned int& unicode) {
if (!decodeUnicodeEscapeSequence(token, current, end, unicode))
return false;
@@ -1949,10 +1963,9 @@ bool OurReader::decodeUnicodeCodePoint(Token& token,
if (end - current < 6)
return addError(
"additional six characters expected to parse unicode surrogate pair.",
- token,
- current);
- unsigned int surrogatePair;
+ token, current);
if (*(current++) == '\\' && *(current++) == 'u') {
+ unsigned int surrogatePair;
if (decodeUnicodeEscapeSequence(token, current, end, surrogatePair)) {
unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF);
} else
@@ -1960,20 +1973,17 @@ bool OurReader::decodeUnicodeCodePoint(Token& token,
} else
return addError("expecting another \\u token to begin the second half of "
"a unicode surrogate pair",
- token,
- current);
+ token, current);
}
return true;
}
-bool OurReader::decodeUnicodeEscapeSequence(Token& token,
- Location& current,
- Location end,
- unsigned int& ret_unicode) {
+bool OurReader::decodeUnicodeEscapeSequence(Token& token, Location& current,
+ Location end,
+ unsigned int& ret_unicode) {
if (end - current < 4)
return addError(
- "Bad unicode escape sequence in string: four digits expected.",
- token,
+ "Bad unicode escape sequence in string: four digits expected.", token,
current);
int unicode = 0;
for (int index = 0; index < 4; ++index) {
@@ -1988,15 +1998,13 @@ bool OurReader::decodeUnicodeEscapeSequence(Token& token,
else
return addError(
"Bad unicode escape sequence in string: hexadecimal digit expected.",
- token,
- current);
+ token, current);
}
ret_unicode = static_cast<unsigned int>(unicode);
return true;
}
-bool
-OurReader::addError(const JSONCPP_STRING& message, Token& token, Location extra) {
+bool OurReader::addError(const String& message, Token& token, Location extra) {
ErrorInfo info;
info.token_ = token;
info.message_ = message;
@@ -2018,9 +2026,8 @@ bool OurReader::recoverFromError(TokenType skipUntilToken) {
return false;
}
-bool OurReader::addErrorAndRecover(const JSONCPP_STRING& message,
- Token& token,
- TokenType skipUntilToken) {
+bool OurReader::addErrorAndRecover(const String& message, Token& token,
+ TokenType skipUntilToken) {
addError(message, token);
return recoverFromError(skipUntilToken);
}
@@ -2033,9 +2040,8 @@ OurReader::Char OurReader::getNextChar() {
return *current_++;
}
-void OurReader::getLocationLineAndColumn(Location location,
- int& line,
- int& column) const {
+void OurReader::getLocationLineAndColumn(Location location, int& line,
+ int& column) const {
Location current = begin_;
Location lastLineStart = current;
line = 0;
@@ -2056,20 +2062,17 @@ void OurReader::getLocationLineAndColumn(Location location,
++line;
}
-JSONCPP_STRING OurReader::getLocationLineAndColumn(Location location) const {
+String OurReader::getLocationLineAndColumn(Location location) const {
int line, column;
getLocationLineAndColumn(location, line, column);
char buffer[18 + 16 + 16 + 1];
- snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column);
+ jsoncpp_snprintf(buffer, sizeof(buffer), "Line %d, Column %d", line, column);
return buffer;
}
-JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
- JSONCPP_STRING formattedMessage;
- for (Errors::const_iterator itError = errors_.begin();
- itError != errors_.end();
- ++itError) {
- const ErrorInfo& error = *itError;
+String OurReader::getFormattedErrorMessages() const {
+ String formattedMessage;
+ for (const auto& error : errors_) {
formattedMessage +=
"* " + getLocationLineAndColumn(error.token_.start_) + "\n";
formattedMessage += " " + error.message_ + "\n";
@@ -2082,10 +2085,7 @@ JSONCPP_STRING OurReader::getFormattedErrorMessages() const {
std::vector<OurReader::StructuredError> OurReader::getStructuredErrors() const {
std::vector<OurReader::StructuredError> allErrors;
- for (Errors::const_iterator itError = errors_.begin();
- itError != errors_.end();
- ++itError) {
- const ErrorInfo& error = *itError;
+ for (const auto& error : errors_) {
OurReader::StructuredError structured;
structured.offset_start = error.token_.start_ - begin_;
structured.offset_limit = error.token_.end_ - begin_;
@@ -2095,59 +2095,15 @@ std::vector<OurReader::StructuredError> OurReader::getStructuredErrors() const {
return allErrors;
}
-bool OurReader::pushError(const Value& value, const JSONCPP_STRING& message) {
- ptrdiff_t length = end_ - begin_;
- if(value.getOffsetStart() > length
- || value.getOffsetLimit() > length)
- return false;
- Token token;
- token.type_ = tokenError;
- token.start_ = begin_ + value.getOffsetStart();
- token.end_ = end_ + value.getOffsetLimit();
- ErrorInfo info;
- info.token_ = token;
- info.message_ = message;
- info.extra_ = 0;
- errors_.push_back(info);
- return true;
-}
-
-bool OurReader::pushError(const Value& value, const JSONCPP_STRING& message, const Value& extra) {
- ptrdiff_t length = end_ - begin_;
- if(value.getOffsetStart() > length
- || value.getOffsetLimit() > length
- || extra.getOffsetLimit() > length)
- return false;
- Token token;
- token.type_ = tokenError;
- token.start_ = begin_ + value.getOffsetStart();
- token.end_ = begin_ + value.getOffsetLimit();
- ErrorInfo info;
- info.token_ = token;
- info.message_ = message;
- info.extra_ = begin_ + extra.getOffsetStart();
- errors_.push_back(info);
- return true;
-}
-
-bool OurReader::good() const {
- return !errors_.size();
-}
-
-
class OurCharReader : public CharReader {
bool const collectComments_;
OurReader reader_;
+
public:
- OurCharReader(
- bool collectComments,
- OurFeatures const& features)
- : collectComments_(collectComments)
- , reader_(features)
- {}
- bool parse(
- char const* beginDoc, char const* endDoc,
- Value* root, JSONCPP_STRING* errs) JSONCPP_OVERRIDE {
+ OurCharReader(bool collectComments, OurFeatures const& features)
+ : collectComments_(collectComments), reader_(features) {}
+ bool parse(char const* beginDoc, char const* endDoc, Value* root,
+ String* errs) override {
bool ok = reader_.parse(beginDoc, endDoc, *root, collectComments_);
if (errs) {
*errs = reader_.getFormattedErrorMessages();
@@ -2156,67 +2112,64 @@ public:
}
};
-CharReaderBuilder::CharReaderBuilder()
-{
- setDefaults(&settings_);
-}
-CharReaderBuilder::~CharReaderBuilder()
-{}
-CharReader* CharReaderBuilder::newCharReader() const
-{
+CharReaderBuilder::CharReaderBuilder() { setDefaults(&settings_); }
+CharReaderBuilder::~CharReaderBuilder() = default;
+CharReader* CharReaderBuilder::newCharReader() const {
bool collectComments = settings_["collectComments"].asBool();
OurFeatures features = OurFeatures::all();
features.allowComments_ = settings_["allowComments"].asBool();
+ features.allowTrailingCommas_ = settings_["allowTrailingCommas"].asBool();
features.strictRoot_ = settings_["strictRoot"].asBool();
- features.allowDroppedNullPlaceholders_ = settings_["allowDroppedNullPlaceholders"].asBool();
+ features.allowDroppedNullPlaceholders_ =
+ settings_["allowDroppedNullPlaceholders"].asBool();
features.allowNumericKeys_ = settings_["allowNumericKeys"].asBool();
features.allowSingleQuotes_ = settings_["allowSingleQuotes"].asBool();
- features.stackLimit_ = settings_["stackLimit"].asInt();
+
+ // Stack limit is always a size_t, so we get this as an unsigned int
+ // regardless of it we have 64-bit integer support enabled.
+ features.stackLimit_ = static_cast<size_t>(settings_["stackLimit"].asUInt());
features.failIfExtra_ = settings_["failIfExtra"].asBool();
features.rejectDupKeys_ = settings_["rejectDupKeys"].asBool();
features.allowSpecialFloats_ = settings_["allowSpecialFloats"].asBool();
+ features.skipBom_ = settings_["skipBom"].asBool();
return new OurCharReader(collectComments, features);
}
-static void getValidReaderKeys(std::set<JSONCPP_STRING>* valid_keys)
-{
- valid_keys->clear();
- valid_keys->insert("collectComments");
- valid_keys->insert("allowComments");
- valid_keys->insert("strictRoot");
- valid_keys->insert("allowDroppedNullPlaceholders");
- valid_keys->insert("allowNumericKeys");
- valid_keys->insert("allowSingleQuotes");
- valid_keys->insert("stackLimit");
- valid_keys->insert("failIfExtra");
- valid_keys->insert("rejectDupKeys");
- valid_keys->insert("allowSpecialFloats");
-}
-bool CharReaderBuilder::validate(Json::Value* invalid) const
-{
- Json::Value my_invalid;
- if (!invalid) invalid = &my_invalid; // so we do not need to test for NULL
- Json::Value& inv = *invalid;
- std::set<JSONCPP_STRING> valid_keys;
- getValidReaderKeys(&valid_keys);
- Value::Members keys = settings_.getMemberNames();
- size_t n = keys.size();
- for (size_t i = 0; i < n; ++i) {
- JSONCPP_STRING const& key = keys[i];
- if (valid_keys.find(key) == valid_keys.end()) {
- inv[key] = settings_[key];
- }
+
+bool CharReaderBuilder::validate(Json::Value* invalid) const {
+ static const auto& valid_keys = *new std::set<String>{
+ "collectComments",
+ "allowComments",
+ "allowTrailingCommas",
+ "strictRoot",
+ "allowDroppedNullPlaceholders",
+ "allowNumericKeys",
+ "allowSingleQuotes",
+ "stackLimit",
+ "failIfExtra",
+ "rejectDupKeys",
+ "allowSpecialFloats",
+ "skipBom",
+ };
+ for (auto si = settings_.begin(); si != settings_.end(); ++si) {
+ auto key = si.name();
+ if (valid_keys.count(key))
+ continue;
+ if (invalid)
+ (*invalid)[std::move(key)] = *si;
+ else
+ return false;
}
- return 0u == inv.size();
+ return invalid ? invalid->empty() : true;
}
-Value& CharReaderBuilder::operator[](JSONCPP_STRING key)
-{
+
+Value& CharReaderBuilder::operator[](const String& key) {
return settings_[key];
}
// static
-void CharReaderBuilder::strictMode(Json::Value* settings)
-{
-//! [CharReaderBuilderStrictMode]
+void CharReaderBuilder::strictMode(Json::Value* settings) {
+ //! [CharReaderBuilderStrictMode]
(*settings)["allowComments"] = false;
+ (*settings)["allowTrailingCommas"] = false;
(*settings)["strictRoot"] = true;
(*settings)["allowDroppedNullPlaceholders"] = false;
(*settings)["allowNumericKeys"] = false;
@@ -2225,14 +2178,15 @@ void CharReaderBuilder::strictMode(Json::Value* settings)
(*settings)["failIfExtra"] = true;
(*settings)["rejectDupKeys"] = true;
(*settings)["allowSpecialFloats"] = false;
-//! [CharReaderBuilderStrictMode]
+ (*settings)["skipBom"] = true;
+ //! [CharReaderBuilderStrictMode]
}
// static
-void CharReaderBuilder::setDefaults(Json::Value* settings)
-{
-//! [CharReaderBuilderDefaults]
+void CharReaderBuilder::setDefaults(Json::Value* settings) {
+ //! [CharReaderBuilderDefaults]
(*settings)["collectComments"] = true;
(*settings)["allowComments"] = true;
+ (*settings)["allowTrailingCommas"] = true;
(*settings)["strictRoot"] = false;
(*settings)["allowDroppedNullPlaceholders"] = false;
(*settings)["allowNumericKeys"] = false;
@@ -2241,19 +2195,18 @@ void CharReaderBuilder::setDefaults(Json::Value* settings)
(*settings)["failIfExtra"] = false;
(*settings)["rejectDupKeys"] = false;
(*settings)["allowSpecialFloats"] = false;
-//! [CharReaderBuilderDefaults]
+ (*settings)["skipBom"] = true;
+ //! [CharReaderBuilderDefaults]
}
//////////////////////////////////
// global functions
-bool parseFromStream(
- CharReader::Factory const& fact, JSONCPP_ISTREAM& sin,
- Value* root, JSONCPP_STRING* errs)
-{
- JSONCPP_OSTRINGSTREAM ssin;
+bool parseFromStream(CharReader::Factory const& fact, IStream& sin, Value* root,
+ String* errs) {
+ OStringStream ssin;
ssin << sin.rdbuf();
- JSONCPP_STRING doc = ssin.str();
+ String doc = ssin.str();
char const* begin = doc.data();
char const* end = begin + doc.size();
// Note that we do not actually need a null-terminator.
@@ -2261,9 +2214,9 @@ bool parseFromStream(
return reader->parse(begin, end, root, errs);
}
-JSONCPP_ISTREAM& operator>>(JSONCPP_ISTREAM& sin, Value& root) {
+IStream& operator>>(IStream& sin, Value& root) {
CharReaderBuilder b;
- JSONCPP_STRING errs;
+ String errs;
bool ok = parseFromStream(b, sin, &root, &errs);
if (!ok) {
throwRuntimeError(errs);
@@ -2303,31 +2256,21 @@ namespace Json {
// //////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////
-ValueIteratorBase::ValueIteratorBase()
- : current_(), isNull_(true) {
-}
+ValueIteratorBase::ValueIteratorBase() : current_() {}
ValueIteratorBase::ValueIteratorBase(
const Value::ObjectValues::iterator& current)
: current_(current), isNull_(false) {}
-Value& ValueIteratorBase::deref() const {
- return current_->second;
-}
+Value& ValueIteratorBase::deref() { return current_->second; }
+const Value& ValueIteratorBase::deref() const { return current_->second; }
-void ValueIteratorBase::increment() {
- ++current_;
-}
+void ValueIteratorBase::increment() { ++current_; }
-void ValueIteratorBase::decrement() {
- --current_;
-}
+void ValueIteratorBase::decrement() { --current_; }
ValueIteratorBase::difference_type
ValueIteratorBase::computeDistance(const SelfType& other) const {
-#ifdef JSON_USE_CPPTL_SMALLMAP
- return other.current_ - current_;
-#else
// Iterator for null value are initialized using the default
// constructor, which initialize current_ to the default
// std::map::iterator. As begin() and end() are two instance
@@ -2348,7 +2291,6 @@ ValueIteratorBase::computeDistance(const SelfType& other) const {
++myDistance;
}
return myDistance;
-#endif
}
bool ValueIteratorBase::isEqual(const SelfType& other) const {
@@ -2380,12 +2322,13 @@ UInt ValueIteratorBase::index() const {
return Value::UInt(-1);
}
-JSONCPP_STRING ValueIteratorBase::name() const {
+String ValueIteratorBase::name() const {
char const* keey;
char const* end;
keey = memberName(&end);
- if (!keey) return JSONCPP_STRING();
- return JSONCPP_STRING(keey, end);
+ if (!keey)
+ return String();
+ return String(keey, end);
}
char const* ValueIteratorBase::memberName() const {
@@ -2396,8 +2339,8 @@ char const* ValueIteratorBase::memberName() const {
char const* ValueIteratorBase::memberName(char const** end) const {
const char* cname = (*current_).first.data();
if (!cname) {
- *end = NULL;
- return NULL;
+ *end = nullptr;
+ return nullptr;
}
*end = cname + (*current_).first.length();
return cname;
@@ -2411,7 +2354,7 @@ char const* ValueIteratorBase::memberName(char const** end) const {
// //////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////
-ValueConstIterator::ValueConstIterator() {}
+ValueConstIterator::ValueConstIterator() = default;
ValueConstIterator::ValueConstIterator(
const Value::ObjectValues::iterator& current)
@@ -2434,7 +2377,7 @@ operator=(const ValueIteratorBase& other) {
// //////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////
-ValueIterator::ValueIterator() {}
+ValueIterator::ValueIterator() = default;
ValueIterator::ValueIterator(const Value::ObjectValues::iterator& current)
: ValueIteratorBase(current) {}
@@ -2444,8 +2387,7 @@ ValueIterator::ValueIterator(const ValueConstIterator& other)
throwRuntimeError("ConstIterator to Iterator should never be allowed.");
}
-ValueIterator::ValueIterator(const ValueIterator& other)
- : ValueIteratorBase(other) {}
+ValueIterator::ValueIterator(const ValueIterator& other) = default;
ValueIterator& ValueIterator::operator=(const SelfType& other) {
copy(other);
@@ -2477,20 +2419,54 @@ ValueIterator& ValueIterator::operator=(const SelfType& other) {
#include <json/value.h>
#include <json/writer.h>
#endif // if !defined(JSON_IS_AMALGAMATION)
-#include <math.h>
+#include <algorithm>
+#include <cassert>
+#include <cmath>
+#include <cstddef>
+#include <cstring>
+#include <iostream>
#include <sstream>
#include <utility>
-#include <cstring>
-#include <cassert>
-#ifdef JSON_USE_CPPTL
-#include <cpptl/conststring.h>
+
+// Provide implementation equivalent of std::snprintf for older _MSC compilers
+#if defined(_MSC_VER) && _MSC_VER < 1900
+#include <stdarg.h>
+static int msvc_pre1900_c99_vsnprintf(char* outBuf, size_t size,
+ const char* format, va_list ap) {
+ int count = -1;
+ if (size != 0)
+ count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap);
+ if (count == -1)
+ count = _vscprintf(format, ap);
+ return count;
+}
+
+int JSON_API msvc_pre1900_c99_snprintf(char* outBuf, size_t size,
+ const char* format, ...) {
+ va_list ap;
+ va_start(ap, format);
+ const int count = msvc_pre1900_c99_vsnprintf(outBuf, size, format, ap);
+ va_end(ap);
+ return count;
+}
+#endif
+
+// Disable warning C4702 : unreachable code
+#if defined(_MSC_VER)
+#pragma warning(disable : 4702)
#endif
-#include <cstddef> // size_t
-#include <algorithm> // min()
#define JSON_ASSERT_UNREACHABLE assert(false)
namespace Json {
+template <typename T>
+static std::unique_ptr<T> cloneUnique(const std::unique_ptr<T>& p) {
+ std::unique_ptr<T> r;
+ if (p) {
+ r = std::unique_ptr<T>(new T(*p));
+ }
+ return r;
+}
// This is a walkaround to avoid the static initialization of Value::null.
// kNull must be word-aligned to avoid crashing on ARM. We use an alignment of
@@ -2500,50 +2476,34 @@ namespace Json {
#else
#define ALIGNAS(byte_alignment)
#endif
-//static const unsigned char ALIGNAS(8) kNull[sizeof(Value)] = { 0 };
-//const unsigned char& kNullRef = kNull[0];
-//const Value& Value::null = reinterpret_cast<const Value&>(kNullRef);
-//const Value& Value::nullRef = null;
// static
-Value const& Value::nullSingleton()
-{
- static Value const nullStatic;
- return nullStatic;
+Value const& Value::nullSingleton() {
+ static Value const nullStatic;
+ return nullStatic;
}
-// for backwards compatibility, we'll leave these global references around, but DO NOT
-// use them in JSONCPP library code any more!
+#if JSON_USE_NULLREF
+// for backwards compatibility, we'll leave these global references around, but
+// DO NOT use them in JSONCPP library code any more!
+// static
Value const& Value::null = Value::nullSingleton();
-Value const& Value::nullRef = Value::nullSingleton();
-const Int Value::minInt = Int(~(UInt(-1) / 2));
-const Int Value::maxInt = Int(UInt(-1) / 2);
-const UInt Value::maxUInt = UInt(-1);
-#if defined(JSON_HAS_INT64)
-const Int64 Value::minInt64 = Int64(~(UInt64(-1) / 2));
-const Int64 Value::maxInt64 = Int64(UInt64(-1) / 2);
-const UInt64 Value::maxUInt64 = UInt64(-1);
-// The constant is hard-coded because some compiler have trouble
-// converting Value::maxUInt64 to a double correctly (AIX/xlC).
-// Assumes that UInt64 is a 64 bits integer.
-static const double maxUInt64AsDouble = 18446744073709551615.0;
-#endif // defined(JSON_HAS_INT64)
-const LargestInt Value::minLargestInt = LargestInt(~(LargestUInt(-1) / 2));
-const LargestInt Value::maxLargestInt = LargestInt(LargestUInt(-1) / 2);
-const LargestUInt Value::maxLargestUInt = LargestUInt(-1);
+// static
+Value const& Value::nullRef = Value::nullSingleton();
+#endif
#if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
template <typename T, typename U>
static inline bool InRange(double d, T min, U max) {
// The casts can lose precision, but we are looking only for
// an approximate range. Might fail on edge cases though. ~cdunn
- //return d >= static_cast<double>(min) && d <= static_cast<double>(max);
- return d >= min && d <= max;
+ return d >= static_cast<double>(min) && d <= static_cast<double>(max);
}
#else // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
static inline double integerToDouble(Json::UInt64 value) {
- return static_cast<double>(Int64(value / 2)) * 2.0 + static_cast<double>(Int64(value & 1));
+ return static_cast<double>(Int64(value / 2)) * 2.0 +
+ static_cast<double>(Int64(value & 1));
}
template <typename T> static inline double integerToDouble(T value) {
@@ -2563,19 +2523,16 @@ static inline bool InRange(double d, T min, U max) {
* computed using strlen(value).
* @return Pointer on the duplicate instance of string.
*/
-static inline char* duplicateStringValue(const char* value,
- size_t length)
-{
+static inline char* duplicateStringValue(const char* value, size_t length) {
// Avoid an integer overflow in the call to malloc below by limiting length
// to a sane value.
if (length >= static_cast<size_t>(Value::maxInt))
length = Value::maxInt - 1;
- char* newString = static_cast<char*>(malloc(length + 1));
- if (newString == NULL) {
- throwRuntimeError(
- "in Json::Value::duplicateStringValue(): "
- "Failed to allocate string value buffer");
+ auto newString = static_cast<char*>(malloc(length + 1));
+ if (newString == nullptr) {
+ throwRuntimeError("in Json::Value::duplicateStringValue(): "
+ "Failed to allocate string value buffer");
}
memcpy(newString, value, length);
newString[length] = 0;
@@ -2584,31 +2541,28 @@ static inline char* duplicateStringValue(const char* value,
/* Record the length as a prefix.
*/
-static inline char* duplicateAndPrefixStringValue(
- const char* value,
- unsigned int length)
-{
+static inline char* duplicateAndPrefixStringValue(const char* value,
+ unsigned int length) {
// Avoid an integer overflow in the call to malloc below by limiting length
// to a sane value.
- JSON_ASSERT_MESSAGE(length <= static_cast<unsigned>(Value::maxInt) - sizeof(unsigned) - 1U,
+ JSON_ASSERT_MESSAGE(length <= static_cast<unsigned>(Value::maxInt) -
+ sizeof(unsigned) - 1U,
"in Json::Value::duplicateAndPrefixStringValue(): "
"length too big for prefixing");
- unsigned actualLength = length + static_cast<unsigned>(sizeof(unsigned)) + 1U;
- char* newString = static_cast<char*>(malloc(actualLength));
- if (newString == 0) {
- throwRuntimeError(
- "in Json::Value::duplicateAndPrefixStringValue(): "
- "Failed to allocate string value buffer");
+ size_t actualLength = sizeof(length) + length + 1;
+ auto newString = static_cast<char*>(malloc(actualLength));
+ if (newString == nullptr) {
+ throwRuntimeError("in Json::Value::duplicateAndPrefixStringValue(): "
+ "Failed to allocate string value buffer");
}
*reinterpret_cast<unsigned*>(newString) = length;
memcpy(newString + sizeof(unsigned), value, length);
- newString[actualLength - 1U] = 0; // to avoid buffer over-run accidents by users later
+ newString[actualLength - 1U] =
+ 0; // to avoid buffer over-run accidents by users later
return newString;
}
-inline static void decodePrefixedString(
- bool isPrefixed, char const* prefixed,
- unsigned* length, char const** value)
-{
+inline static void decodePrefixedString(bool isPrefixed, char const* prefixed,
+ unsigned* length, char const** value) {
if (!isPrefixed) {
*length = static_cast<unsigned>(strlen(prefixed));
*value = prefixed;
@@ -2617,7 +2571,8 @@ inline static void decodePrefixedString(
*value = prefixed + sizeof(unsigned);
}
}
-/** Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue().
+/** Free the string duplicated by
+ * duplicateStringValue()/duplicateAndPrefixStringValue().
*/
#if JSONCPP_USING_SECURE_MEMORY
static inline void releasePrefixedStringValue(char* value) {
@@ -2630,17 +2585,13 @@ static inline void releasePrefixedStringValue(char* value) {
}
static inline void releaseStringValue(char* value, unsigned length) {
// length==0 => we allocated the strings memory
- size_t size = (length==0) ? strlen(value) : length;
+ size_t size = (length == 0) ? strlen(value) : length;
memset(value, 0, size);
free(value);
}
-#else // !JSONCPP_USING_SECURE_MEMORY
-static inline void releasePrefixedStringValue(char* value) {
- free(value);
-}
-static inline void releaseStringValue(char* value, unsigned) {
- free(value);
-}
+#else // !JSONCPP_USING_SECURE_MEMORY
+static inline void releasePrefixedStringValue(char* value) { free(value); }
+static inline void releaseStringValue(char* value, unsigned) { free(value); }
#endif // JSONCPP_USING_SECURE_MEMORY
} // namespace Json
@@ -2659,58 +2610,28 @@ static inline void releaseStringValue(char* value, unsigned) {
namespace Json {
-Exception::Exception(JSONCPP_STRING const& msg)
- : msg_(msg)
-{}
-Exception::~Exception() JSONCPP_NOEXCEPT
-{}
-char const* Exception::what() const JSONCPP_NOEXCEPT
-{
- return msg_.c_str();
-}
-RuntimeError::RuntimeError(JSONCPP_STRING const& msg)
- : Exception(msg)
-{}
-LogicError::LogicError(JSONCPP_STRING const& msg)
- : Exception(msg)
-{}
-JSONCPP_NORETURN void throwRuntimeError(JSONCPP_STRING const& msg)
-{
+#if JSON_USE_EXCEPTION
+Exception::Exception(String msg) : msg_(std::move(msg)) {}
+Exception::~Exception() noexcept = default;
+char const* Exception::what() const noexcept { return msg_.c_str(); }
+RuntimeError::RuntimeError(String const& msg) : Exception(msg) {}
+LogicError::LogicError(String const& msg) : Exception(msg) {}
+JSONCPP_NORETURN void throwRuntimeError(String const& msg) {
throw RuntimeError(msg);
}
-JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg)
-{
+JSONCPP_NORETURN void throwLogicError(String const& msg) {
throw LogicError(msg);
}
-
-// //////////////////////////////////////////////////////////////////
-// //////////////////////////////////////////////////////////////////
-// //////////////////////////////////////////////////////////////////
-// class Value::CommentInfo
-// //////////////////////////////////////////////////////////////////
-// //////////////////////////////////////////////////////////////////
-// //////////////////////////////////////////////////////////////////
-
-Value::CommentInfo::CommentInfo() : comment_(0)
-{}
-
-Value::CommentInfo::~CommentInfo() {
- if (comment_)
- releaseStringValue(comment_, 0u);
+#else // !JSON_USE_EXCEPTION
+JSONCPP_NORETURN void throwRuntimeError(String const& msg) {
+ std::cerr << msg << std::endl;
+ abort();
}
-
-void Value::CommentInfo::setComment(const char* text, size_t len) {
- if (comment_) {
- releaseStringValue(comment_, 0u);
- comment_ = 0;
- }
- JSON_ASSERT(text != 0);
- JSON_ASSERT_MESSAGE(
- text[0] == '\0' || text[0] == '/',
- "in Json::Value::setComment(): Comments must start with /");
- // It seems that /**/ style comments are acceptable as well.
- comment_ = duplicateStringValue(text, len);
+JSONCPP_NORETURN void throwLogicError(String const& msg) {
+ std::cerr << msg << std::endl;
+ abort();
}
+#endif
// //////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////
@@ -2723,36 +2644,44 @@ void Value::CommentInfo::setComment(const char* text, size_t len) {
// Notes: policy_ indicates if the string was allocated when
// a string is stored.
-Value::CZString::CZString(ArrayIndex aindex) : cstr_(0), index_(aindex) {}
+Value::CZString::CZString(ArrayIndex index) : cstr_(nullptr), index_(index) {}
-Value::CZString::CZString(char const* str, unsigned ulength, DuplicationPolicy allocate)
+Value::CZString::CZString(char const* str, unsigned length,
+ DuplicationPolicy allocate)
: cstr_(str) {
// allocate != duplicate
storage_.policy_ = allocate & 0x3;
- storage_.length_ = ulength & 0x3FFFFFFF;
+ storage_.length_ = length & 0x3FFFFFFF;
}
Value::CZString::CZString(const CZString& other) {
- cstr_ = (other.storage_.policy_ != noDuplication && other.cstr_ != 0
- ? duplicateStringValue(other.cstr_, other.storage_.length_)
- : other.cstr_);
- storage_.policy_ = static_cast<unsigned>(other.cstr_
- ? (static_cast<DuplicationPolicy>(other.storage_.policy_) == noDuplication
- ? noDuplication : duplicate)
- : static_cast<DuplicationPolicy>(other.storage_.policy_)) & 3U;
+ cstr_ = (other.storage_.policy_ != noDuplication && other.cstr_ != nullptr
+ ? duplicateStringValue(other.cstr_, other.storage_.length_)
+ : other.cstr_);
+ storage_.policy_ =
+ static_cast<unsigned>(
+ other.cstr_
+ ? (static_cast<DuplicationPolicy>(other.storage_.policy_) ==
+ noDuplication
+ ? noDuplication
+ : duplicate)
+ : static_cast<DuplicationPolicy>(other.storage_.policy_)) &
+ 3U;
storage_.length_ = other.storage_.length_;
}
-#if JSON_HAS_RVALUE_REFERENCES
Value::CZString::CZString(CZString&& other)
- : cstr_(other.cstr_), index_(other.index_) {
+ : cstr_(other.cstr_), index_(other.index_) {
other.cstr_ = nullptr;
}
-#endif
Value::CZString::~CZString() {
if (cstr_ && storage_.policy_ == duplicate) {
- releaseStringValue(const_cast<char*>(cstr_), storage_.length_ + 1u); //+1 for null terminating character for sake of completeness but not actually necessary
+ releaseStringValue(const_cast<char*>(cstr_),
+ storage_.length_ + 1U); // +1 for null terminating
+ // character for sake of
+ // completeness but not actually
+ // necessary
}
}
@@ -2767,36 +2696,39 @@ Value::CZString& Value::CZString::operator=(const CZString& other) {
return *this;
}
-#if JSON_HAS_RVALUE_REFERENCES
Value::CZString& Value::CZString::operator=(CZString&& other) {
cstr_ = other.cstr_;
index_ = other.index_;
other.cstr_ = nullptr;
return *this;
}
-#endif
bool Value::CZString::operator<(const CZString& other) const {
- if (!cstr_) return index_ < other.index_;
- //return strcmp(cstr_, other.cstr_) < 0;
+ if (!cstr_)
+ return index_ < other.index_;
+ // return strcmp(cstr_, other.cstr_) < 0;
// Assume both are strings.
unsigned this_len = this->storage_.length_;
unsigned other_len = other.storage_.length_;
unsigned min_len = std::min<unsigned>(this_len, other_len);
JSON_ASSERT(this->cstr_ && other.cstr_);
int comp = memcmp(this->cstr_, other.cstr_, min_len);
- if (comp < 0) return true;
- if (comp > 0) return false;
+ if (comp < 0)
+ return true;
+ if (comp > 0)
+ return false;
return (this_len < other_len);
}
bool Value::CZString::operator==(const CZString& other) const {
- if (!cstr_) return index_ == other.index_;
- //return strcmp(cstr_, other.cstr_) == 0;
+ if (!cstr_)
+ return index_ == other.index_;
+ // return strcmp(cstr_, other.cstr_) == 0;
// Assume both are strings.
unsigned this_len = this->storage_.length_;
unsigned other_len = other.storage_.length_;
- if (this_len != other_len) return false;
+ if (this_len != other_len)
+ return false;
JSON_ASSERT(this->cstr_ && other.cstr_);
int comp = memcmp(this->cstr_, other.cstr_, this_len);
return comp == 0;
@@ -2804,10 +2736,12 @@ bool Value::CZString::operator==(const CZString& other) const {
ArrayIndex Value::CZString::index() const { return index_; }
-//const char* Value::CZString::c_str() const { return cstr_; }
+// const char* Value::CZString::c_str() const { return cstr_; }
const char* Value::CZString::data() const { return cstr_; }
unsigned Value::CZString::length() const { return storage_.length_; }
-bool Value::CZString::isStaticString() const { return storage_.policy_ == noDuplication; }
+bool Value::CZString::isStaticString() const {
+ return storage_.policy_ == noDuplication;
+}
// //////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////
@@ -2821,10 +2755,10 @@ bool Value::CZString::isStaticString() const { return storage_.policy_ == noDupl
* memset( this, 0, sizeof(Value) )
* This optimization is used in ValueInternalMap fast allocator.
*/
-Value::Value(ValueType vtype) {
+Value::Value(ValueType type) {
static char const emptyString[] = "";
- initBasic(vtype);
- switch (vtype) {
+ initBasic(type);
+ switch (type) {
case nullValue:
break;
case intValue:
@@ -2877,20 +2811,22 @@ Value::Value(double value) {
Value::Value(const char* value) {
initBasic(stringValue, true);
- JSON_ASSERT_MESSAGE(value != NULL, "Null Value Passed to Value Constructor");
- value_.string_ = duplicateAndPrefixStringValue(value, static_cast<unsigned>(strlen(value)));
+ JSON_ASSERT_MESSAGE(value != nullptr,
+ "Null Value Passed to Value Constructor");
+ value_.string_ = duplicateAndPrefixStringValue(
+ value, static_cast<unsigned>(strlen(value)));
}
-Value::Value(const char* beginValue, const char* endValue) {
+Value::Value(const char* begin, const char* end) {
initBasic(stringValue, true);
value_.string_ =
- duplicateAndPrefixStringValue(beginValue, static_cast<unsigned>(endValue - beginValue));
+ duplicateAndPrefixStringValue(begin, static_cast<unsigned>(end - begin));
}
-Value::Value(const JSONCPP_STRING& value) {
+Value::Value(const String& value) {
initBasic(stringValue, true);
- value_.string_ =
- duplicateAndPrefixStringValue(value.data(), static_cast<unsigned>(value.length()));
+ value_.string_ = duplicateAndPrefixStringValue(
+ value.data(), static_cast<unsigned>(value.length()));
}
Value::Value(const StaticString& value) {
@@ -2898,114 +2834,44 @@ Value::Value(const StaticString& value) {
value_.string_ = const_cast<char*>(value.c_str());
}
-#ifdef JSON_USE_CPPTL
-Value::Value(const CppTL::ConstString& value) {
- initBasic(stringValue, true);
- value_.string_ = duplicateAndPrefixStringValue(value, static_cast<unsigned>(value.length()));
-}
-#endif
-
Value::Value(bool value) {
initBasic(booleanValue);
value_.bool_ = value;
}
-Value::Value(Value const& other)
- : type_(other.type_), allocated_(false)
- ,
- comments_(0), start_(other.start_), limit_(other.limit_)
-{
- switch (type_) {
- case nullValue:
- case intValue:
- case uintValue:
- case realValue:
- case booleanValue:
- value_ = other.value_;
- break;
- case stringValue:
- if (other.value_.string_ && other.allocated_) {
- unsigned len;
- char const* str;
- decodePrefixedString(other.allocated_, other.value_.string_,
- &len, &str);
- value_.string_ = duplicateAndPrefixStringValue(str, len);
- allocated_ = true;
- } else {
- value_.string_ = other.value_.string_;
- allocated_ = false;
- }
- break;
- case arrayValue:
- case objectValue:
- value_.map_ = new ObjectValues(*other.value_.map_);
- break;
- default:
- JSON_ASSERT_UNREACHABLE;
- }
- if (other.comments_) {
- comments_ = new CommentInfo[numberOfCommentPlacement];
- for (int comment = 0; comment < numberOfCommentPlacement; ++comment) {
- const CommentInfo& otherComment = other.comments_[comment];
- if (otherComment.comment_)
- comments_[comment].setComment(
- otherComment.comment_, strlen(otherComment.comment_));
- }
- }
+Value::Value(const Value& other) {
+ dupPayload(other);
+ dupMeta(other);
}
-#if JSON_HAS_RVALUE_REFERENCES
-// Move constructor
Value::Value(Value&& other) {
initBasic(nullValue);
swap(other);
}
-#endif
Value::~Value() {
- switch (type_) {
- case nullValue:
- case intValue:
- case uintValue:
- case realValue:
- case booleanValue:
- break;
- case stringValue:
- if (allocated_)
- releasePrefixedStringValue(value_.string_);
- break;
- case arrayValue:
- case objectValue:
- delete value_.map_;
- break;
- default:
- JSON_ASSERT_UNREACHABLE;
- }
-
- delete[] comments_;
-
+ releasePayload();
value_.uint_ = 0;
}
-Value& Value::operator=(Value other) {
- swap(other);
+Value& Value::operator=(const Value& other) {
+ Value(other).swap(*this);
+ return *this;
+}
+
+Value& Value::operator=(Value&& other) {
+ other.swap(*this);
return *this;
}
void Value::swapPayload(Value& other) {
- ValueType temp = type_;
- type_ = other.type_;
- other.type_ = temp;
+ std::swap(bits_, other.bits_);
std::swap(value_, other.value_);
- int temp2 = allocated_;
- allocated_ = other.allocated_;
- other.allocated_ = temp2 & 0x1;
}
void Value::copyPayload(const Value& other) {
- type_ = other.type_;
- value_ = other.value_;
- allocated_ = other.allocated_;
+ releasePayload();
+ dupPayload(other);
}
void Value::swap(Value& other) {
@@ -3017,12 +2883,12 @@ void Value::swap(Value& other) {
void Value::copy(const Value& other) {
copyPayload(other);
- comments_ = other.comments_;
- start_ = other.start_;
- limit_ = other.limit_;
+ dupMeta(other);
}
-ValueType Value::type() const { return type_; }
+ValueType Value::type() const {
+ return static_cast<ValueType>(bits_.value_type_);
+}
int Value::compare(const Value& other) const {
if (*this < other)
@@ -3033,10 +2899,10 @@ int Value::compare(const Value& other) const {
}
bool Value::operator<(const Value& other) const {
- int typeDelta = type_ - other.type_;
+ int typeDelta = type() - other.type();
if (typeDelta)
- return typeDelta < 0 ? true : false;
- switch (type_) {
+ return typeDelta < 0;
+ switch (type()) {
case nullValue:
return false;
case intValue:
@@ -3047,30 +2913,33 @@ bool Value::operator<(const Value& other) const {
return value_.real_ < other.value_.real_;
case booleanValue:
return value_.bool_ < other.value_.bool_;
- case stringValue:
- {
- if ((value_.string_ == 0) || (other.value_.string_ == 0)) {
- if (other.value_.string_) return true;
- else return false;
+ case stringValue: {
+ if ((value_.string_ == nullptr) || (other.value_.string_ == nullptr)) {
+ return other.value_.string_ != nullptr;
}
unsigned this_len;
unsigned other_len;
char const* this_str;
char const* other_str;
- decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
- decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str);
+ decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len,
+ &this_str);
+ decodePrefixedString(other.isAllocated(), other.value_.string_, &other_len,
+ &other_str);
unsigned min_len = std::min<unsigned>(this_len, other_len);
JSON_ASSERT(this_str && other_str);
int comp = memcmp(this_str, other_str, min_len);
- if (comp < 0) return true;
- if (comp > 0) return false;
+ if (comp < 0)
+ return true;
+ if (comp > 0)
+ return false;
return (this_len < other_len);
}
case arrayValue:
case objectValue: {
- int delta = int(value_.map_->size() - other.value_.map_->size());
- if (delta)
- return delta < 0;
+ auto thisSize = value_.map_->size();
+ auto otherSize = other.value_.map_->size();
+ if (thisSize != otherSize)
+ return thisSize < otherSize;
return (*value_.map_) < (*other.value_.map_);
}
default:
@@ -3086,14 +2955,9 @@ bool Value::operator>=(const Value& other) const { return !(*this < other); }
bool Value::operator>(const Value& other) const { return other < *this; }
bool Value::operator==(const Value& other) const {
- // if ( type_ != other.type_ )
- // GCC 2.95.3 says:
- // attempt to take address of bit-field structure member `Json::Value::type_'
- // Beats me, but a temp solves the problem.
- int temp = other.type_;
- if (type_ != temp)
+ if (type() != other.type())
return false;
- switch (type_) {
+ switch (type()) {
case nullValue:
return true;
case intValue:
@@ -3104,18 +2968,20 @@ bool Value::operator==(const Value& other) const {
return value_.real_ == other.value_.real_;
case booleanValue:
return value_.bool_ == other.value_.bool_;
- case stringValue:
- {
- if ((value_.string_ == 0) || (other.value_.string_ == 0)) {
+ case stringValue: {
+ if ((value_.string_ == nullptr) || (other.value_.string_ == nullptr)) {
return (value_.string_ == other.value_.string_);
}
unsigned this_len;
unsigned other_len;
char const* this_str;
char const* other_str;
- decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
- decodePrefixedString(other.allocated_, other.value_.string_, &other_len, &other_str);
- if (this_len != other_len) return false;
+ decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len,
+ &this_str);
+ decodePrefixedString(other.isAllocated(), other.value_.string_, &other_len,
+ &other_str);
+ if (this_len != other_len)
+ return false;
JSON_ASSERT(this_str && other_str);
int comp = memcmp(this_str, other_str, this_len);
return comp == 0;
@@ -3133,47 +2999,55 @@ bool Value::operator==(const Value& other) const {
bool Value::operator!=(const Value& other) const { return !(*this == other); }
const char* Value::asCString() const {
- JSON_ASSERT_MESSAGE(type_ == stringValue,
+ JSON_ASSERT_MESSAGE(type() == stringValue,
"in Json::Value::asCString(): requires stringValue");
- if (value_.string_ == 0) return 0;
+ if (value_.string_ == nullptr)
+ return nullptr;
unsigned this_len;
char const* this_str;
- decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+ decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len,
+ &this_str);
return this_str;
}
#if JSONCPP_USING_SECURE_MEMORY
unsigned Value::getCStringLength() const {
- JSON_ASSERT_MESSAGE(type_ == stringValue,
- "in Json::Value::asCString(): requires stringValue");
- if (value_.string_ == 0) return 0;
+ JSON_ASSERT_MESSAGE(type() == stringValue,
+ "in Json::Value::asCString(): requires stringValue");
+ if (value_.string_ == 0)
+ return 0;
unsigned this_len;
char const* this_str;
- decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
+ decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len,
+ &this_str);
return this_len;
}
#endif
-bool Value::getString(char const** str, char const** cend) const {
- if (type_ != stringValue) return false;
- if (value_.string_ == 0) return false;
+bool Value::getString(char const** begin, char const** end) const {
+ if (type() != stringValue)
+ return false;
+ if (value_.string_ == nullptr)
+ return false;
unsigned length;
- decodePrefixedString(this->allocated_, this->value_.string_, &length, str);
- *cend = *str + length;
+ decodePrefixedString(this->isAllocated(), this->value_.string_, &length,
+ begin);
+ *end = *begin + length;
return true;
}
-JSONCPP_STRING Value::asString() const {
- switch (type_) {
+String Value::asString() const {
+ switch (type()) {
case nullValue:
return "";
- case stringValue:
- {
- if (value_.string_ == 0) return "";
+ case stringValue: {
+ if (value_.string_ == nullptr)
+ return "";
unsigned this_len;
char const* this_str;
- decodePrefixedString(this->allocated_, this->value_.string_, &this_len, &this_str);
- return JSONCPP_STRING(this_str, this_len);
+ decodePrefixedString(this->isAllocated(), this->value_.string_, &this_len,
+ &this_str);
+ return String(this_str, this_len);
}
case booleanValue:
return value_.bool_ ? "true" : "false";
@@ -3188,18 +3062,8 @@ JSONCPP_STRING Value::asString() const {
}
}
-#ifdef JSON_USE_CPPTL
-CppTL::ConstString Value::asConstString() const {
- unsigned len;
- char const* str;
- decodePrefixedString(allocated_, value_.string_,
- &len, &str);
- return CppTL::ConstString(str, len);
-}
-#endif
-
Value::Int Value::asInt() const {
- switch (type_) {
+ switch (type()) {
case intValue:
JSON_ASSERT_MESSAGE(isInt(), "LargestInt out of Int range");
return Int(value_.int_);
@@ -3221,7 +3085,7 @@ Value::Int Value::asInt() const {
}
Value::UInt Value::asUInt() const {
- switch (type_) {
+ switch (type()) {
case intValue:
JSON_ASSERT_MESSAGE(isUInt(), "LargestInt out of UInt range");
return UInt(value_.int_);
@@ -3245,7 +3109,7 @@ Value::UInt Value::asUInt() const {
#if defined(JSON_HAS_INT64)
Value::Int64 Value::asInt64() const {
- switch (type_) {
+ switch (type()) {
case intValue:
return Int64(value_.int_);
case uintValue:
@@ -3266,7 +3130,7 @@ Value::Int64 Value::asInt64() const {
}
Value::UInt64 Value::asUInt64() const {
- switch (type_) {
+ switch (type()) {
case intValue:
JSON_ASSERT_MESSAGE(isUInt64(), "LargestInt out of UInt64 range");
return UInt64(value_.int_);
@@ -3304,7 +3168,7 @@ LargestUInt Value::asLargestUInt() const {
}
double Value::asDouble() const {
- switch (type_) {
+ switch (type()) {
case intValue:
return static_cast<double>(value_.int_);
case uintValue:
@@ -3326,7 +3190,7 @@ double Value::asDouble() const {
}
float Value::asFloat() const {
- switch (type_) {
+ switch (type()) {
case intValue:
return static_cast<float>(value_.int_);
case uintValue:
@@ -3341,7 +3205,7 @@ float Value::asFloat() const {
case nullValue:
return 0.0;
case booleanValue:
- return value_.bool_ ? 1.0f : 0.0f;
+ return value_.bool_ ? 1.0F : 0.0F;
default:
break;
}
@@ -3349,18 +3213,20 @@ float Value::asFloat() const {
}
bool Value::asBool() const {
- switch (type_) {
+ switch (type()) {
case booleanValue:
return value_.bool_;
case nullValue:
return false;
case intValue:
- return value_.int_ ? true : false;
+ return value_.int_ != 0;
case uintValue:
- return value_.uint_ ? true : false;
- case realValue:
- // This is kind of strange. Not recommended.
- return (value_.real_ != 0.0) ? true : false;
+ return value_.uint_ != 0;
+ case realValue: {
+ // According to JavaScript language zero or NaN is regarded as false
+ const auto value_classification = std::fpclassify(value_.real_);
+ return value_classification != FP_ZERO && value_classification != FP_NAN;
+ }
default:
break;
}
@@ -3371,30 +3237,30 @@ bool Value::isConvertibleTo(ValueType other) const {
switch (other) {
case nullValue:
return (isNumeric() && asDouble() == 0.0) ||
- (type_ == booleanValue && value_.bool_ == false) ||
- (type_ == stringValue && asString().empty()) ||
- (type_ == arrayValue && value_.map_->size() == 0) ||
- (type_ == objectValue && value_.map_->size() == 0) ||
- type_ == nullValue;
+ (type() == booleanValue && !value_.bool_) ||
+ (type() == stringValue && asString().empty()) ||
+ (type() == arrayValue && value_.map_->empty()) ||
+ (type() == objectValue && value_.map_->empty()) ||
+ type() == nullValue;
case intValue:
return isInt() ||
- (type_ == realValue && InRange(value_.real_, minInt, maxInt)) ||
- type_ == booleanValue || type_ == nullValue;
+ (type() == realValue && InRange(value_.real_, minInt, maxInt)) ||
+ type() == booleanValue || type() == nullValue;
case uintValue:
return isUInt() ||
- (type_ == realValue && InRange(value_.real_, 0, maxUInt)) ||
- type_ == booleanValue || type_ == nullValue;
+ (type() == realValue && InRange(value_.real_, 0, maxUInt)) ||
+ type() == booleanValue || type() == nullValue;
case realValue:
- return isNumeric() || type_ == booleanValue || type_ == nullValue;
+ return isNumeric() || type() == booleanValue || type() == nullValue;
case booleanValue:
- return isNumeric() || type_ == booleanValue || type_ == nullValue;
+ return isNumeric() || type() == booleanValue || type() == nullValue;
case stringValue:
- return isNumeric() || type_ == booleanValue || type_ == stringValue ||
- type_ == nullValue;
+ return isNumeric() || type() == booleanValue || type() == stringValue ||
+ type() == nullValue;
case arrayValue:
- return type_ == arrayValue || type_ == nullValue;
+ return type() == arrayValue || type() == nullValue;
case objectValue:
- return type_ == objectValue || type_ == nullValue;
+ return type() == objectValue || type() == nullValue;
}
JSON_ASSERT_UNREACHABLE;
return false;
@@ -3402,7 +3268,7 @@ bool Value::isConvertibleTo(ValueType other) const {
/// Number of values in array or object
ArrayIndex Value::size() const {
- switch (type_) {
+ switch (type()) {
case nullValue:
case intValue:
case uintValue:
@@ -3426,20 +3292,19 @@ ArrayIndex Value::size() const {
bool Value::empty() const {
if (isNull() || isArray() || isObject())
- return size() == 0u;
- else
- return false;
+ return size() == 0U;
+ return false;
}
-Value::operator bool() const { return ! isNull(); }
+Value::operator bool() const { return !isNull(); }
void Value::clear() {
- JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue ||
- type_ == objectValue,
+ JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue ||
+ type() == objectValue,
"in Json::Value::clear(): requires complex value");
start_ = 0;
limit_ = 0;
- switch (type_) {
+ switch (type()) {
case arrayValue:
case objectValue:
value_.map_->clear();
@@ -3450,15 +3315,15 @@ void Value::clear() {
}
void Value::resize(ArrayIndex newSize) {
- JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == arrayValue,
+ JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue,
"in Json::Value::resize(): requires arrayValue");
- if (type_ == nullValue)
+ if (type() == nullValue)
*this = Value(arrayValue);
ArrayIndex oldSize = size();
if (newSize == 0)
clear();
else if (newSize > oldSize)
- (*this)[newSize - 1];
+ this->operator[](newSize - 1);
else {
for (ArrayIndex index = newSize; index < oldSize; ++index) {
value_.map_->erase(index);
@@ -3469,12 +3334,12 @@ void Value::resize(ArrayIndex newSize) {
Value& Value::operator[](ArrayIndex index) {
JSON_ASSERT_MESSAGE(
- type_ == nullValue || type_ == arrayValue,
+ type() == nullValue || type() == arrayValue,
"in Json::Value::operator[](ArrayIndex): requires arrayValue");
- if (type_ == nullValue)
+ if (type() == nullValue)
*this = Value(arrayValue);
CZString key(index);
- ObjectValues::iterator it = value_.map_->lower_bound(key);
+ auto it = value_.map_->lower_bound(key);
if (it != value_.map_->end() && (*it).first == key)
return (*it).second;
@@ -3492,9 +3357,9 @@ Value& Value::operator[](int index) {
const Value& Value::operator[](ArrayIndex index) const {
JSON_ASSERT_MESSAGE(
- type_ == nullValue || type_ == arrayValue,
+ type() == nullValue || type() == arrayValue,
"in Json::Value::operator[](ArrayIndex)const: requires arrayValue");
- if (type_ == nullValue)
+ if (type() == nullValue)
return nullSingleton();
CZString key(index);
ObjectValues::const_iterator it = value_.map_->find(key);
@@ -3510,26 +3375,85 @@ const Value& Value::operator[](int index) const {
return (*this)[ArrayIndex(index)];
}
-void Value::initBasic(ValueType vtype, bool allocated) {
- type_ = vtype;
- allocated_ = allocated;
- comments_ = 0;
+void Value::initBasic(ValueType type, bool allocated) {
+ setType(type);
+ setIsAllocated(allocated);
+ comments_ = Comments{};
start_ = 0;
limit_ = 0;
}
+void Value::dupPayload(const Value& other) {
+ setType(other.type());
+ setIsAllocated(false);
+ switch (type()) {
+ case nullValue:
+ case intValue:
+ case uintValue:
+ case realValue:
+ case booleanValue:
+ value_ = other.value_;
+ break;
+ case stringValue:
+ if (other.value_.string_ && other.isAllocated()) {
+ unsigned len;
+ char const* str;
+ decodePrefixedString(other.isAllocated(), other.value_.string_, &len,
+ &str);
+ value_.string_ = duplicateAndPrefixStringValue(str, len);
+ setIsAllocated(true);
+ } else {
+ value_.string_ = other.value_.string_;
+ }
+ break;
+ case arrayValue:
+ case objectValue:
+ value_.map_ = new ObjectValues(*other.value_.map_);
+ break;
+ default:
+ JSON_ASSERT_UNREACHABLE;
+ }
+}
+
+void Value::releasePayload() {
+ switch (type()) {
+ case nullValue:
+ case intValue:
+ case uintValue:
+ case realValue:
+ case booleanValue:
+ break;
+ case stringValue:
+ if (isAllocated())
+ releasePrefixedStringValue(value_.string_);
+ break;
+ case arrayValue:
+ case objectValue:
+ delete value_.map_;
+ break;
+ default:
+ JSON_ASSERT_UNREACHABLE;
+ }
+}
+
+void Value::dupMeta(const Value& other) {
+ comments_ = other.comments_;
+ start_ = other.start_;
+ limit_ = other.limit_;
+}
+
// Access an object value by name, create a null member if it does not exist.
// @pre Type of '*this' is object or null.
// @param key is null-terminated.
Value& Value::resolveReference(const char* key) {
JSON_ASSERT_MESSAGE(
- type_ == nullValue || type_ == objectValue,
+ type() == nullValue || type() == objectValue,
"in Json::Value::resolveReference(): requires objectValue");
- if (type_ == nullValue)
+ if (type() == nullValue)
*this = Value(objectValue);
- CZString actualKey(
- key, static_cast<unsigned>(strlen(key)), CZString::noDuplication); // NOTE!
- ObjectValues::iterator it = value_.map_->lower_bound(actualKey);
+ CZString actualKey(key, static_cast<unsigned>(strlen(key)),
+ CZString::noDuplication); // NOTE!
+ auto it = value_.map_->lower_bound(actualKey);
if (it != value_.map_->end() && (*it).first == actualKey)
return (*it).second;
@@ -3540,16 +3464,15 @@ Value& Value::resolveReference(const char* key) {
}
// @param key is not null-terminated.
-Value& Value::resolveReference(char const* key, char const* cend)
-{
+Value& Value::resolveReference(char const* key, char const* end) {
JSON_ASSERT_MESSAGE(
- type_ == nullValue || type_ == objectValue,
+ type() == nullValue || type() == objectValue,
"in Json::Value::resolveReference(key, end): requires objectValue");
- if (type_ == nullValue)
+ if (type() == nullValue)
*this = Value(objectValue);
- CZString actualKey(
- key, static_cast<unsigned>(cend-key), CZString::duplicateOnCopy);
- ObjectValues::iterator it = value_.map_->lower_bound(actualKey);
+ CZString actualKey(key, static_cast<unsigned>(end - key),
+ CZString::duplicateOnCopy);
+ auto it = value_.map_->lower_bound(actualKey);
if (it != value_.map_->end() && (*it).first == actualKey)
return (*it).second;
@@ -3566,27 +3489,35 @@ Value Value::get(ArrayIndex index, const Value& defaultValue) const {
bool Value::isValidIndex(ArrayIndex index) const { return index < size(); }
-Value const* Value::find(char const* key, char const* cend) const
-{
- JSON_ASSERT_MESSAGE(
- type_ == nullValue || type_ == objectValue,
- "in Json::Value::find(key, end, found): requires objectValue or nullValue");
- if (type_ == nullValue) return NULL;
- CZString actualKey(key, static_cast<unsigned>(cend-key), CZString::noDuplication);
+Value const* Value::find(char const* begin, char const* end) const {
+ JSON_ASSERT_MESSAGE(type() == nullValue || type() == objectValue,
+ "in Json::Value::find(begin, end): requires "
+ "objectValue or nullValue");
+ if (type() == nullValue)
+ return nullptr;
+ CZString actualKey(begin, static_cast<unsigned>(end - begin),
+ CZString::noDuplication);
ObjectValues::const_iterator it = value_.map_->find(actualKey);
- if (it == value_.map_->end()) return NULL;
+ if (it == value_.map_->end())
+ return nullptr;
return &(*it).second;
}
-const Value& Value::operator[](const char* key) const
-{
+Value* Value::demand(char const* begin, char const* end) {
+ JSON_ASSERT_MESSAGE(type() == nullValue || type() == objectValue,
+ "in Json::Value::demand(begin, end): requires "
+ "objectValue or nullValue");
+ return &resolveReference(begin, end);
+}
+const Value& Value::operator[](const char* key) const {
Value const* found = find(key, key + strlen(key));
- if (!found) return nullSingleton();
+ if (!found)
+ return nullSingleton();
return *found;
}
-Value const& Value::operator[](JSONCPP_STRING const& key) const
-{
+Value const& Value::operator[](const String& key) const {
Value const* found = find(key.data(), key.data() + key.length());
- if (!found) return nullSingleton();
+ if (!found)
+ return nullSingleton();
return *found;
}
@@ -3594,7 +3525,7 @@ Value& Value::operator[](const char* key) {
return resolveReference(key, key + strlen(key));
}
-Value& Value::operator[](const JSONCPP_STRING& key) {
+Value& Value::operator[](const String& key) {
return resolveReference(key.data(), key.data() + key.length());
}
@@ -3602,178 +3533,140 @@ Value& Value::operator[](const StaticString& key) {
return resolveReference(key.c_str());
}
-#ifdef JSON_USE_CPPTL
-Value& Value::operator[](const CppTL::ConstString& key) {
- return resolveReference(key.c_str(), key.end_c_str());
-}
-Value const& Value::operator[](CppTL::ConstString const& key) const
-{
- Value const* found = find(key.c_str(), key.end_c_str());
- if (!found) return nullSingleton();
- return *found;
+Value& Value::append(const Value& value) { return append(Value(value)); }
+
+Value& Value::append(Value&& value) {
+ JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue,
+ "in Json::Value::append: requires arrayValue");
+ if (type() == nullValue) {
+ *this = Value(arrayValue);
+ }
+ return this->value_.map_->emplace(size(), std::move(value)).first->second;
}
-#endif
-Value& Value::append(const Value& value) { return (*this)[size()] = value; }
+bool Value::insert(ArrayIndex index, const Value& newValue) {
+ return insert(index, Value(newValue));
+}
-#if JSON_HAS_RVALUE_REFERENCES
- Value& Value::append(Value&& value) { return (*this)[size()] = std::move(value); }
-#endif
+bool Value::insert(ArrayIndex index, Value&& newValue) {
+ JSON_ASSERT_MESSAGE(type() == nullValue || type() == arrayValue,
+ "in Json::Value::insert: requires arrayValue");
+ ArrayIndex length = size();
+ if (index > length) {
+ return false;
+ }
+ for (ArrayIndex i = length; i > index; i--) {
+ (*this)[i] = std::move((*this)[i - 1]);
+ }
+ (*this)[index] = std::move(newValue);
+ return true;
+}
-Value Value::get(char const* key, char const* cend, Value const& defaultValue) const
-{
- Value const* found = find(key, cend);
+Value Value::get(char const* begin, char const* end,
+ Value const& defaultValue) const {
+ Value const* found = find(begin, end);
return !found ? defaultValue : *found;
}
-Value Value::get(char const* key, Value const& defaultValue) const
-{
+Value Value::get(char const* key, Value const& defaultValue) const {
return get(key, key + strlen(key), defaultValue);
}
-Value Value::get(JSONCPP_STRING const& key, Value const& defaultValue) const
-{
+Value Value::get(String const& key, Value const& defaultValue) const {
return get(key.data(), key.data() + key.length(), defaultValue);
}
-
-bool Value::removeMember(const char* key, const char* cend, Value* removed)
-{
- if (type_ != objectValue) {
+bool Value::removeMember(const char* begin, const char* end, Value* removed) {
+ if (type() != objectValue) {
return false;
}
- CZString actualKey(key, static_cast<unsigned>(cend-key), CZString::noDuplication);
- ObjectValues::iterator it = value_.map_->find(actualKey);
+ CZString actualKey(begin, static_cast<unsigned>(end - begin),
+ CZString::noDuplication);
+ auto it = value_.map_->find(actualKey);
if (it == value_.map_->end())
return false;
- *removed = it->second;
+ if (removed)
+ *removed = std::move(it->second);
value_.map_->erase(it);
return true;
}
-bool Value::removeMember(const char* key, Value* removed)
-{
+bool Value::removeMember(const char* key, Value* removed) {
return removeMember(key, key + strlen(key), removed);
}
-bool Value::removeMember(JSONCPP_STRING const& key, Value* removed)
-{
+bool Value::removeMember(String const& key, Value* removed) {
return removeMember(key.data(), key.data() + key.length(), removed);
}
-void Value::removeMember(const char* key)
-{
- JSON_ASSERT_MESSAGE(type_ == nullValue || type_ == objectValue,
+void Value::removeMember(const char* key) {
+ JSON_ASSERT_MESSAGE(type() == nullValue || type() == objectValue,
"in Json::Value::removeMember(): requires objectValue");
- if (type_ == nullValue)
+ if (type() == nullValue)
return;
CZString actualKey(key, unsigned(strlen(key)), CZString::noDuplication);
value_.map_->erase(actualKey);
}
-void Value::removeMember(const JSONCPP_STRING& key)
-{
- removeMember(key.c_str());
-}
+void Value::removeMember(const String& key) { removeMember(key.c_str()); }
bool Value::removeIndex(ArrayIndex index, Value* removed) {
- if (type_ != arrayValue) {
+ if (type() != arrayValue) {
return false;
}
CZString key(index);
- ObjectValues::iterator it = value_.map_->find(key);
+ auto it = value_.map_->find(key);
if (it == value_.map_->end()) {
return false;
}
- *removed = it->second;
+ if (removed)
+ *removed = it->second;
ArrayIndex oldSize = size();
// shift left all items left, into the place of the "removed"
- for (ArrayIndex i = index; i < (oldSize - 1); ++i){
+ for (ArrayIndex i = index; i < (oldSize - 1); ++i) {
CZString keey(i);
(*value_.map_)[keey] = (*this)[i + 1];
}
// erase the last one ("leftover")
CZString keyLast(oldSize - 1);
- ObjectValues::iterator itLast = value_.map_->find(keyLast);
+ auto itLast = value_.map_->find(keyLast);
value_.map_->erase(itLast);
return true;
}
-#ifdef JSON_USE_CPPTL
-Value Value::get(const CppTL::ConstString& key,
- const Value& defaultValue) const {
- return get(key.c_str(), key.end_c_str(), defaultValue);
+bool Value::isMember(char const* begin, char const* end) const {
+ Value const* value = find(begin, end);
+ return nullptr != value;
}
-#endif
-
-bool Value::isMember(char const* key, char const* cend) const
-{
- Value const* value = find(key, cend);
- return NULL != value;
-}
-bool Value::isMember(char const* key) const
-{
+bool Value::isMember(char const* key) const {
return isMember(key, key + strlen(key));
}
-bool Value::isMember(JSONCPP_STRING const& key) const
-{
+bool Value::isMember(String const& key) const {
return isMember(key.data(), key.data() + key.length());
}
-#ifdef JSON_USE_CPPTL
-bool Value::isMember(const CppTL::ConstString& key) const {
- return isMember(key.c_str(), key.end_c_str());
-}
-#endif
-
Value::Members Value::getMemberNames() const {
JSON_ASSERT_MESSAGE(
- type_ == nullValue || type_ == objectValue,
+ type() == nullValue || type() == objectValue,
"in Json::Value::getMemberNames(), value must be objectValue");
- if (type_ == nullValue)
+ if (type() == nullValue)
return Value::Members();
Members members;
members.reserve(value_.map_->size());
ObjectValues::const_iterator it = value_.map_->begin();
ObjectValues::const_iterator itEnd = value_.map_->end();
for (; it != itEnd; ++it) {
- members.push_back(JSONCPP_STRING((*it).first.data(),
- (*it).first.length()));
+ members.push_back(String((*it).first.data(), (*it).first.length()));
}
return members;
}
-//
-//# ifdef JSON_USE_CPPTL
-// EnumMemberNames
-// Value::enumMemberNames() const
-//{
-// if ( type_ == objectValue )
-// {
-// return CppTL::Enum::any( CppTL::Enum::transform(
-// CppTL::Enum::keys( *(value_.map_), CppTL::Type<const CZString &>() ),
-// MemberNamesTransform() ) );
-// }
-// return EnumMemberNames();
-//}
-//
-//
-// EnumValues
-// Value::enumValues() const
-//{
-// if ( type_ == objectValue || type_ == arrayValue )
-// return CppTL::Enum::anyValues( *(value_.map_),
-// CppTL::Type<const Value &>() );
-// return EnumValues();
-//}
-//
-//# endif
static bool IsIntegral(double d) {
double integral_part;
return modf(d, &integral_part) == 0.0;
}
-bool Value::isNull() const { return type_ == nullValue; }
+bool Value::isNull() const { return type() == nullValue; }
-bool Value::isBool() const { return type_ == booleanValue; }
+bool Value::isBool() const { return type() == booleanValue; }
bool Value::isInt() const {
- switch (type_) {
+ switch (type()) {
case intValue:
#if defined(JSON_HAS_INT64)
return value_.int_ >= minInt && value_.int_ <= maxInt;
@@ -3792,7 +3685,7 @@ bool Value::isInt() const {
}
bool Value::isUInt() const {
- switch (type_) {
+ switch (type()) {
case intValue:
#if defined(JSON_HAS_INT64)
return value_.int_ >= 0 && LargestUInt(value_.int_) <= LargestUInt(maxUInt);
@@ -3816,7 +3709,7 @@ bool Value::isUInt() const {
bool Value::isInt64() const {
#if defined(JSON_HAS_INT64)
- switch (type_) {
+ switch (type()) {
case intValue:
return true;
case uintValue:
@@ -3836,7 +3729,7 @@ bool Value::isInt64() const {
bool Value::isUInt64() const {
#if defined(JSON_HAS_INT64)
- switch (type_) {
+ switch (type()) {
case intValue:
return value_.int_ >= 0;
case uintValue:
@@ -3855,61 +3748,92 @@ bool Value::isUInt64() const {
}
bool Value::isIntegral() const {
- switch (type_) {
- case intValue:
- case uintValue:
- return true;
- case realValue:
+ switch (type()) {
+ case intValue:
+ case uintValue:
+ return true;
+ case realValue:
#if defined(JSON_HAS_INT64)
- // Note that maxUInt64 (= 2^64 - 1) is not exactly representable as a
- // double, so double(maxUInt64) will be rounded up to 2^64. Therefore we
- // require the value to be strictly less than the limit.
- return value_.real_ >= double(minInt64) && value_.real_ < maxUInt64AsDouble && IsIntegral(value_.real_);
+ // Note that maxUInt64 (= 2^64 - 1) is not exactly representable as a
+ // double, so double(maxUInt64) will be rounded up to 2^64. Therefore we
+ // require the value to be strictly less than the limit.
+ return value_.real_ >= double(minInt64) &&
+ value_.real_ < maxUInt64AsDouble && IsIntegral(value_.real_);
#else
- return value_.real_ >= minInt && value_.real_ <= maxUInt && IsIntegral(value_.real_);
+ return value_.real_ >= minInt && value_.real_ <= maxUInt &&
+ IsIntegral(value_.real_);
#endif // JSON_HAS_INT64
- default:
- break;
+ default:
+ break;
}
return false;
}
-bool Value::isDouble() const { return type_ == intValue || type_ == uintValue || type_ == realValue; }
+bool Value::isDouble() const {
+ return type() == intValue || type() == uintValue || type() == realValue;
+}
bool Value::isNumeric() const { return isDouble(); }
-bool Value::isString() const { return type_ == stringValue; }
+bool Value::isString() const { return type() == stringValue; }
-bool Value::isArray() const { return type_ == arrayValue; }
+bool Value::isArray() const { return type() == arrayValue; }
-bool Value::isObject() const { return type_ == objectValue; }
+bool Value::isObject() const { return type() == objectValue; }
-void Value::setComment(const char* comment, size_t len, CommentPlacement placement) {
- if (!comments_)
- comments_ = new CommentInfo[numberOfCommentPlacement];
- if ((len > 0) && (comment[len-1] == '\n')) {
- // Always discard trailing newline, to aid indentation.
- len -= 1;
- }
- comments_[placement].setComment(comment, len);
+Value::Comments::Comments(const Comments& that)
+ : ptr_{cloneUnique(that.ptr_)} {}
+
+Value::Comments::Comments(Comments&& that) : ptr_{std::move(that.ptr_)} {}
+
+Value::Comments& Value::Comments::operator=(const Comments& that) {
+ ptr_ = cloneUnique(that.ptr_);
+ return *this;
+}
+
+Value::Comments& Value::Comments::operator=(Comments&& that) {
+ ptr_ = std::move(that.ptr_);
+ return *this;
+}
+
+bool Value::Comments::has(CommentPlacement slot) const {
+ return ptr_ && !(*ptr_)[slot].empty();
}
-void Value::setComment(const char* comment, CommentPlacement placement) {
- setComment(comment, strlen(comment), placement);
+String Value::Comments::get(CommentPlacement slot) const {
+ if (!ptr_)
+ return {};
+ return (*ptr_)[slot];
}
-void Value::setComment(const JSONCPP_STRING& comment, CommentPlacement placement) {
- setComment(comment.c_str(), comment.length(), placement);
+void Value::Comments::set(CommentPlacement slot, String comment) {
+ if (!ptr_) {
+ ptr_ = std::unique_ptr<Array>(new Array());
+ }
+ // check comments array boundry.
+ if (slot < CommentPlacement::numberOfCommentPlacement) {
+ (*ptr_)[slot] = std::move(comment);
+ }
+}
+
+void Value::setComment(String comment, CommentPlacement placement) {
+ if (!comment.empty() && (comment.back() == '\n')) {
+ // Always discard trailing newline, to aid indentation.
+ comment.pop_back();
+ }
+ JSON_ASSERT(!comment.empty());
+ JSON_ASSERT_MESSAGE(
+ comment[0] == '\0' || comment[0] == '/',
+ "in Json::Value::setComment(): Comments must start with /");
+ comments_.set(placement, std::move(comment));
}
bool Value::hasComment(CommentPlacement placement) const {
- return comments_ != 0 && comments_[placement].comment_ != 0;
+ return comments_.has(placement);
}
-JSONCPP_STRING Value::getComment(CommentPlacement placement) const {
- if (hasComment(placement))
- return comments_[placement].comment_;
- return "";
+String Value::getComment(CommentPlacement placement) const {
+ return comments_.get(placement);
}
void Value::setOffsetStart(ptrdiff_t start) { start_ = start; }
@@ -3920,18 +3844,18 @@ ptrdiff_t Value::getOffsetStart() const { return start_; }
ptrdiff_t Value::getOffsetLimit() const { return limit_; }
-JSONCPP_STRING Value::toStyledString() const {
+String Value::toStyledString() const {
StreamWriterBuilder builder;
- JSONCPP_STRING out = this->hasComment(commentBefore) ? "\n" : "";
+ String out = this->hasComment(commentBefore) ? "\n" : "";
out += Json::writeString(builder, *this);
- out += "\n";
+ out += '\n';
return out;
}
Value::const_iterator Value::begin() const {
- switch (type_) {
+ switch (type()) {
case arrayValue:
case objectValue:
if (value_.map_)
@@ -3940,11 +3864,11 @@ Value::const_iterator Value::begin() const {
default:
break;
}
- return const_iterator();
+ return {};
}
Value::const_iterator Value::end() const {
- switch (type_) {
+ switch (type()) {
case arrayValue:
case objectValue:
if (value_.map_)
@@ -3953,11 +3877,11 @@ Value::const_iterator Value::end() const {
default:
break;
}
- return const_iterator();
+ return {};
}
Value::iterator Value::begin() {
- switch (type_) {
+ switch (type()) {
case arrayValue:
case objectValue:
if (value_.map_)
@@ -3970,7 +3894,7 @@ Value::iterator Value::begin() {
}
Value::iterator Value::end() {
- switch (type_) {
+ switch (type()) {
case arrayValue:
case objectValue:
if (value_.map_)
@@ -3985,25 +3909,20 @@ Value::iterator Value::end() {
// class PathArgument
// //////////////////////////////////////////////////////////////////
-PathArgument::PathArgument() : key_(), index_(), kind_(kindNone) {}
+PathArgument::PathArgument() = default;
PathArgument::PathArgument(ArrayIndex index)
- : key_(), index_(index), kind_(kindIndex) {}
+ : index_(index), kind_(kindIndex) {}
-PathArgument::PathArgument(const char* key)
- : key_(key), index_(), kind_(kindKey) {}
+PathArgument::PathArgument(const char* key) : key_(key), kind_(kindKey) {}
-PathArgument::PathArgument(const JSONCPP_STRING& key)
- : key_(key.c_str()), index_(), kind_(kindKey) {}
+PathArgument::PathArgument(String key) : key_(std::move(key)), kind_(kindKey) {}
// class Path
// //////////////////////////////////////////////////////////////////
-Path::Path(const JSONCPP_STRING& path,
- const PathArgument& a1,
- const PathArgument& a2,
- const PathArgument& a3,
- const PathArgument& a4,
+Path::Path(const String& path, const PathArgument& a1, const PathArgument& a2,
+ const PathArgument& a3, const PathArgument& a4,
const PathArgument& a5) {
InArgs in;
in.reserve(5);
@@ -4015,10 +3934,10 @@ Path::Path(const JSONCPP_STRING& path,
makePath(path, in);
}
-void Path::makePath(const JSONCPP_STRING& path, const InArgs& in) {
+void Path::makePath(const String& path, const InArgs& in) {
const char* current = path.c_str();
const char* end = current + path.length();
- InArgs::const_iterator itInArg = in.begin();
+ auto itInArg = in.begin();
while (current != end) {
if (*current == '[') {
++current;
@@ -4041,13 +3960,12 @@ void Path::makePath(const JSONCPP_STRING& path, const InArgs& in) {
const char* beginName = current;
while (current != end && !strchr("[.", *current))
++current;
- args_.push_back(JSONCPP_STRING(beginName, current));
+ args_.push_back(String(beginName, current));
}
}
}
-void Path::addPathInArg(const JSONCPP_STRING& /*path*/,
- const InArgs& in,
+void Path::addPathInArg(const String& /*path*/, const InArgs& in,
InArgs::const_iterator& itInArg,
PathArgument::Kind kind) {
if (itInArg == in.end()) {
@@ -4059,30 +3977,29 @@ void Path::addPathInArg(const JSONCPP_STRING& /*path*/,
}
}
-void Path::invalidPath(const JSONCPP_STRING& /*path*/, int /*location*/) {
+void Path::invalidPath(const String& /*path*/, int /*location*/) {
// Error: invalid path.
}
const Value& Path::resolve(const Value& root) const {
const Value* node = &root;
- for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {
- const PathArgument& arg = *it;
+ for (const auto& arg : args_) {
if (arg.kind_ == PathArgument::kindIndex) {
if (!node->isArray() || !node->isValidIndex(arg.index_)) {
- // Error: unable to resolve path (array value expected at position...
- return Value::null;
+ // Error: unable to resolve path (array value expected at position... )
+ return Value::nullSingleton();
}
node = &((*node)[arg.index_]);
} else if (arg.kind_ == PathArgument::kindKey) {
if (!node->isObject()) {
// Error: unable to resolve path (object value expected at position...)
- return Value::null;
+ return Value::nullSingleton();
}
node = &((*node)[arg.key_]);
if (node == &Value::nullSingleton()) {
// Error: unable to resolve path (object has no member named '' at
// position...)
- return Value::null;
+ return Value::nullSingleton();
}
}
}
@@ -4091,8 +4008,7 @@ const Value& Path::resolve(const Value& root) const {
Value Path::resolve(const Value& root, const Value& defaultValue) const {
const Value* node = &root;
- for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {
- const PathArgument& arg = *it;
+ for (const auto& arg : args_) {
if (arg.kind_ == PathArgument::kindIndex) {
if (!node->isArray() || !node->isValidIndex(arg.index_))
return defaultValue;
@@ -4110,8 +4026,7 @@ Value Path::resolve(const Value& root, const Value& defaultValue) const {
Value& Path::make(Value& root) const {
Value* node = &root;
- for (Args::const_iterator it = args_.begin(); it != args_.end(); ++it) {
- const PathArgument& arg = *it;
+ for (const auto& arg : args_) {
if (arg.kind_ == PathArgument::kindIndex) {
if (!node->isArray()) {
// Error: node is not an array at position ...
@@ -4148,71 +4063,81 @@ Value& Path::make(Value& root) const {
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
#if !defined(JSON_IS_AMALGAMATION)
-#include <json/writer.h>
#include "json_tool.h"
+#include <json/writer.h>
#endif // if !defined(JSON_IS_AMALGAMATION)
+#include <algorithm>
+#include <cassert>
+#include <cctype>
+#include <cstring>
#include <iomanip>
#include <memory>
+#include <set>
#include <sstream>
#include <utility>
-#include <set>
-#include <cassert>
-#include <cstring>
+
+#if __cplusplus >= 201103L
+#include <cmath>
#include <cstdio>
-#if defined(_MSC_VER) && _MSC_VER >= 1200 && _MSC_VER < 1800 // Between VC++ 6.0 and VC++ 11.0
+#if !defined(isnan)
+#define isnan std::isnan
+#endif
+
+#if !defined(isfinite)
+#define isfinite std::isfinite
+#endif
+
+#else
+#include <cmath>
+#include <cstdio>
+
+#if defined(_MSC_VER)
+#if !defined(isnan)
+#include <float.h>
+#define isnan _isnan
+#endif
+
+#if !defined(isfinite)
#include <float.h>
#define isfinite _finite
-#elif defined(__sun) && defined(__SVR4) //Solaris
+#endif
+
+#if !defined(_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES)
+#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
+#endif //_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
+
+#endif //_MSC_VER
+
+#if defined(__sun) && defined(__SVR4) // Solaris
#if !defined(isfinite)
#include <ieeefp.h>
#define isfinite finite
#endif
-#elif defined(_AIX)
-#if !defined(isfinite)
-#include <math.h>
-#define isfinite finite
#endif
-#elif defined(__hpux)
+
+#if defined(__hpux)
#if !defined(isfinite)
#if defined(__ia64) && !defined(finite)
-#define isfinite(x) ((sizeof(x) == sizeof(float) ? \
- _Isfinitef(x) : _IsFinite(x)))
-#else
-#include <math.h>
-#define isfinite finite
-#endif
+#define isfinite(x) \
+ ((sizeof(x) == sizeof(float) ? _Isfinitef(x) : _IsFinite(x)))
#endif
-#else
-#include <cmath>
-#if !(defined(__QNXNTO__)) // QNX already defines isfinite
-#define isfinite std::isfinite
#endif
#endif
-#if defined(_MSC_VER)
-#if !defined(WINCE) && defined(__STDC_SECURE_LIB__) && _MSC_VER >= 1500 // VC++ 9.0 and above
-#define snprintf sprintf_s
-#elif _MSC_VER >= 1900 // VC++ 14.0 and above
-#define snprintf std::snprintf
-#else
-#define snprintf _snprintf
+#if !defined(isnan)
+// IEEE standard states that NaN values will not compare to themselves
+#define isnan(x) (x != x)
#endif
-#elif defined(__ANDROID__) || defined(__QNXNTO__)
-#define snprintf snprintf
-#elif __cplusplus >= 201103L
-#if !defined(__MINGW32__) && !defined(__CYGWIN__)
-#define snprintf std::snprintf
+
+#if !defined(__APPLE__)
+#if !defined(isfinite)
+#define isfinite finite
#endif
#endif
-
-#if defined(__BORLANDC__)
-#include <float.h>
-#define isfinite _finite
-#define snprintf _snprintf
#endif
-#if defined(_MSC_VER) && _MSC_VER >= 1400 // VC++ 8.0
+#if defined(_MSC_VER)
// Disable warning about strdup being deprecated.
#pragma warning(disable : 4996)
#endif
@@ -4220,12 +4145,12 @@ Value& Path::make(Value& root) const {
namespace Json {
#if __cplusplus >= 201103L || (defined(_CPPLIB_VER) && _CPPLIB_VER >= 520)
-typedef std::unique_ptr<StreamWriter> StreamWriterPtr;
+using StreamWriterPtr = std::unique_ptr<StreamWriter>;
#else
-typedef std::auto_ptr<StreamWriter> StreamWriterPtr;
+using StreamWriterPtr = std::auto_ptr<StreamWriter>;
#endif
-JSONCPP_STRING valueToString(LargestInt value) {
+String valueToString(LargestInt value) {
UIntToStringBuffer buffer;
char* current = buffer + sizeof(buffer);
if (value == Value::minLargestInt) {
@@ -4241,7 +4166,7 @@ JSONCPP_STRING valueToString(LargestInt value) {
return current;
}
-JSONCPP_STRING valueToString(LargestUInt value) {
+String valueToString(LargestUInt value) {
UIntToStringBuffer buffer;
char* current = buffer + sizeof(buffer);
uintToString(value, current);
@@ -4251,67 +4176,70 @@ JSONCPP_STRING valueToString(LargestUInt value) {
#if defined(JSON_HAS_INT64)
-JSONCPP_STRING valueToString(Int value) {
- return valueToString(LargestInt(value));
-}
+String valueToString(Int value) { return valueToString(LargestInt(value)); }
-JSONCPP_STRING valueToString(UInt value) {
- return valueToString(LargestUInt(value));
-}
+String valueToString(UInt value) { return valueToString(LargestUInt(value)); }
#endif // # if defined(JSON_HAS_INT64)
namespace {
-JSONCPP_STRING valueToString(double value, bool useSpecialFloats, unsigned int precision) {
- // Allocate a buffer that is more than large enough to store the 16 digits of
- // precision requested below.
- char buffer[36];
- int len = -1;
-
- char formatString[15];
- snprintf(formatString, sizeof(formatString), "%%.%ug", precision);
-
+String valueToString(double value, bool useSpecialFloats,
+ unsigned int precision, PrecisionType precisionType) {
// Print into the buffer. We need not request the alternative representation
// that always has a decimal point because JSON doesn't distinguish the
// concepts of reals and integers.
- if (isfinite(value)) {
- len = snprintf(buffer, sizeof(buffer), formatString, value);
- fixNumericLocale(buffer, buffer + len);
-
- // try to ensure we preserve the fact that this was given to us as a double on input
- if (!strchr(buffer, '.') && !strchr(buffer, 'e')) {
- strcat(buffer, ".0");
+ if (!isfinite(value)) {
+ static const char* const reps[2][3] = {{"NaN", "-Infinity", "Infinity"},
+ {"null", "-1e+9999", "1e+9999"}};
+ return reps[useSpecialFloats ? 0 : 1]
+ [isnan(value) ? 0 : (value < 0) ? 1 : 2];
+ }
+
+ String buffer(size_t(36), '\0');
+ while (true) {
+ int len = jsoncpp_snprintf(
+ &*buffer.begin(), buffer.size(),
+ (precisionType == PrecisionType::significantDigits) ? "%.*g" : "%.*f",
+ precision, value);
+ assert(len >= 0);
+ auto wouldPrint = static_cast<size_t>(len);
+ if (wouldPrint >= buffer.size()) {
+ buffer.resize(wouldPrint + 1);
+ continue;
}
+ buffer.resize(wouldPrint);
+ break;
+ }
- } else {
- // IEEE standard states that NaN values will not compare to themselves
- if (value != value) {
- len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "NaN" : "null");
- } else if (value < 0) {
- len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "-Infinity" : "-1e+9999");
- } else {
- len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "Infinity" : "1e+9999");
- }
+ buffer.erase(fixNumericLocale(buffer.begin(), buffer.end()), buffer.end());
+
+ // strip the zero padding from the right
+ if (precisionType == PrecisionType::decimalPlaces) {
+ buffer.erase(fixZerosInTheEnd(buffer.begin(), buffer.end()), buffer.end());
+ }
+
+ // try to ensure we preserve the fact that this was given to us as a double on
+ // input
+ if (buffer.find('.') == buffer.npos && buffer.find('e') == buffer.npos) {
+ buffer += ".0";
}
- assert(len >= 0);
return buffer;
}
-}
+} // namespace
-JSONCPP_STRING valueToString(double value) { return valueToString(value, false, 17); }
+String valueToString(double value, unsigned int precision,
+ PrecisionType precisionType) {
+ return valueToString(value, false, precision, precisionType);
+}
-JSONCPP_STRING valueToString(bool value) { return value ? "true" : "false"; }
+String valueToString(bool value) { return value ? "true" : "false"; }
-static bool isAnyCharRequiredQuoting(char const* s, size_t n) {
+static bool doesAnyCharRequireEscaping(char const* s, size_t n) {
assert(s || !n);
- char const* const end = s + n;
- for (char const* cur = s; cur < end; ++cur) {
- if (*cur == '\\' || *cur == '\"' || *cur < ' '
- || static_cast<unsigned char>(*cur) < 0x80)
- return true;
- }
- return false;
+ return std::any_of(s, s + n, [](unsigned char c) {
+ return c == '\\' || c == '"' || c < 0x20 || c > 0x7F;
+ });
}
static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
@@ -4326,8 +4254,8 @@ static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
if (e - s < 2)
return REPLACEMENT_CHARACTER;
- unsigned int calculated = ((firstByte & 0x1F) << 6)
- | (static_cast<unsigned int>(s[1]) & 0x3F);
+ unsigned int calculated =
+ ((firstByte & 0x1F) << 6) | (static_cast<unsigned int>(s[1]) & 0x3F);
s += 1;
// oversized encoded characters are invalid
return calculated < 0x80 ? REPLACEMENT_CHARACTER : calculated;
@@ -4337,9 +4265,9 @@ static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
if (e - s < 3)
return REPLACEMENT_CHARACTER;
- unsigned int calculated = ((firstByte & 0x0F) << 12)
- | ((static_cast<unsigned int>(s[1]) & 0x3F) << 6)
- | (static_cast<unsigned int>(s[2]) & 0x3F);
+ unsigned int calculated = ((firstByte & 0x0F) << 12) |
+ ((static_cast<unsigned int>(s[1]) & 0x3F) << 6) |
+ (static_cast<unsigned int>(s[2]) & 0x3F);
s += 2;
// surrogates aren't valid codepoints itself
// shouldn't be UTF-8 encoded
@@ -4353,10 +4281,10 @@ static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
if (e - s < 4)
return REPLACEMENT_CHARACTER;
- unsigned int calculated = ((firstByte & 0x07) << 24)
- | ((static_cast<unsigned int>(s[1]) & 0x3F) << 12)
- | ((static_cast<unsigned int>(s[2]) & 0x3F) << 6)
- | (static_cast<unsigned int>(s[3]) & 0x3F);
+ unsigned int calculated = ((firstByte & 0x07) << 18) |
+ ((static_cast<unsigned int>(s[1]) & 0x3F) << 12) |
+ ((static_cast<unsigned int>(s[2]) & 0x3F) << 6) |
+ (static_cast<unsigned int>(s[3]) & 0x3F);
s += 3;
// oversized encoded characters are invalid
return calculated < 0x10000 ? REPLACEMENT_CHARACTER : calculated;
@@ -4365,28 +4293,27 @@ static unsigned int utf8ToCodepoint(const char*& s, const char* e) {
return REPLACEMENT_CHARACTER;
}
-static const char hex2[] =
- "000102030405060708090a0b0c0d0e0f"
- "101112131415161718191a1b1c1d1e1f"
- "202122232425262728292a2b2c2d2e2f"
- "303132333435363738393a3b3c3d3e3f"
- "404142434445464748494a4b4c4d4e4f"
- "505152535455565758595a5b5c5d5e5f"
- "606162636465666768696a6b6c6d6e6f"
- "707172737475767778797a7b7c7d7e7f"
- "808182838485868788898a8b8c8d8e8f"
- "909192939495969798999a9b9c9d9e9f"
- "a0a1a2a3a4a5a6a7a8a9aaabacadaeaf"
- "b0b1b2b3b4b5b6b7b8b9babbbcbdbebf"
- "c0c1c2c3c4c5c6c7c8c9cacbcccdcecf"
- "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf"
- "e0e1e2e3e4e5e6e7e8e9eaebecedeeef"
- "f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff";
-
-static JSONCPP_STRING toHex16Bit(unsigned int x) {
+static const char hex2[] = "000102030405060708090a0b0c0d0e0f"
+ "101112131415161718191a1b1c1d1e1f"
+ "202122232425262728292a2b2c2d2e2f"
+ "303132333435363738393a3b3c3d3e3f"
+ "404142434445464748494a4b4c4d4e4f"
+ "505152535455565758595a5b5c5d5e5f"
+ "606162636465666768696a6b6c6d6e6f"
+ "707172737475767778797a7b7c7d7e7f"
+ "808182838485868788898a8b8c8d8e8f"
+ "909192939495969798999a9b9c9d9e9f"
+ "a0a1a2a3a4a5a6a7a8a9aaabacadaeaf"
+ "b0b1b2b3b4b5b6b7b8b9babbbcbdbebf"
+ "c0c1c2c3c4c5c6c7c8c9cacbcccdcecf"
+ "d0d1d2d3d4d5d6d7d8d9dadbdcdddedf"
+ "e0e1e2e3e4e5e6e7e8e9eaebecedeeef"
+ "f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff";
+
+static String toHex16Bit(unsigned int x) {
const unsigned int hi = (x >> 8) & 0xff;
const unsigned int lo = x & 0xff;
- JSONCPP_STRING result(4, ' ');
+ String result(4, ' ');
result[0] = hex2[2 * hi];
result[1] = hex2[2 * hi + 1];
result[2] = hex2[2 * lo];
@@ -4394,18 +4321,26 @@ static JSONCPP_STRING toHex16Bit(unsigned int x) {
return result;
}
-static JSONCPP_STRING valueToQuotedStringN(const char* value, unsigned length) {
- if (value == NULL)
+static void appendRaw(String& result, unsigned ch) {
+ result += static_cast<char>(ch);
+}
+
+static void appendHex(String& result, unsigned ch) {
+ result.append("\\u").append(toHex16Bit(ch));
+}
+
+static String valueToQuotedStringN(const char* value, unsigned length,
+ bool emitUTF8 = false) {
+ if (value == nullptr)
return "";
- if (!isAnyCharRequiredQuoting(value, length))
- return JSONCPP_STRING("\"") + value + "\"";
+ if (!doesAnyCharRequireEscaping(value, length))
+ return String("\"") + value + "\"";
// We have to walk value and escape any special characters.
- // Appending to JSONCPP_STRING is not efficient, but this should be rare.
+ // Appending to String is not efficient, but this should be rare.
// (Note: forward slashes are *not* rare, but I am not escaping them.)
- JSONCPP_STRING::size_type maxsize =
- length * 2 + 3; // allescaped+quotes+NULL
- JSONCPP_STRING result;
+ String::size_type maxsize = length * 2 + 3; // allescaped+quotes+NULL
+ String result;
result.reserve(maxsize); // to avoid lots of mallocs
result += "\"";
char const* end = value + length;
@@ -4441,45 +4376,50 @@ static JSONCPP_STRING valueToQuotedStringN(const char* value, unsigned length) {
// Should add a flag to allow this compatibility mode and prevent this
// sequence from occurring.
default: {
- unsigned int cp = utf8ToCodepoint(c, end);
- // don't escape non-control characters
- // (short escape sequence are applied above)
- if (cp < 0x80 && cp >= 0x20)
- result += static_cast<char>(cp);
- else if (cp < 0x10000) { // codepoint is in Basic Multilingual Plane
- result += "\\u";
- result += toHex16Bit(cp);
+ if (emitUTF8) {
+ unsigned codepoint = static_cast<unsigned char>(*c);
+ if (codepoint < 0x20) {
+ appendHex(result, codepoint);
+ } else {
+ appendRaw(result, codepoint);
}
- else { // codepoint is not in Basic Multilingual Plane
- // convert to surrogate pair first
- cp -= 0x10000;
- result += "\\u";
- result += toHex16Bit((cp >> 10) + 0xD800);
- result += "\\u";
- result += toHex16Bit((cp & 0x3FF) + 0xDC00);
+ } else {
+ unsigned codepoint = utf8ToCodepoint(c, end); // modifies `c`
+ if (codepoint < 0x20) {
+ appendHex(result, codepoint);
+ } else if (codepoint < 0x80) {
+ appendRaw(result, codepoint);
+ } else if (codepoint < 0x10000) {
+ // Basic Multilingual Plane
+ appendHex(result, codepoint);
+ } else {
+ // Extended Unicode. Encode 20 bits as a surrogate pair.
+ codepoint -= 0x10000;
+ appendHex(result, 0xd800 + ((codepoint >> 10) & 0x3ff));
+ appendHex(result, 0xdc00 + (codepoint & 0x3ff));
}
}
- break;
+ } break;
}
}
result += "\"";
return result;
}
-JSONCPP_STRING valueToQuotedString(const char* value) {
+String valueToQuotedString(const char* value) {
return valueToQuotedStringN(value, static_cast<unsigned int>(strlen(value)));
}
// Class Writer
// //////////////////////////////////////////////////////////////////
-Writer::~Writer() {}
+Writer::~Writer() = default;
// Class FastWriter
// //////////////////////////////////////////////////////////////////
FastWriter::FastWriter()
- : yamlCompatibilityEnabled_(false), dropNullPlaceholders_(false),
- omitEndingLineFeed_(false) {}
+
+ = default;
void FastWriter::enableYAMLCompatibility() { yamlCompatibilityEnabled_ = true; }
@@ -4487,11 +4427,11 @@ void FastWriter::dropNullPlaceholders() { dropNullPlaceholders_ = true; }
void FastWriter::omitEndingLineFeed() { omitEndingLineFeed_ = true; }
-JSONCPP_STRING FastWriter::write(const Value& root) {
+String FastWriter::write(const Value& root) {
document_.clear();
writeValue(root);
if (!omitEndingLineFeed_)
- document_ += "\n";
+ document_ += '\n';
return document_;
}
@@ -4510,13 +4450,13 @@ void FastWriter::writeValue(const Value& value) {
case realValue:
document_ += valueToString(value.asDouble());
break;
- case stringValue:
- {
+ case stringValue: {
// Is NULL possible for value.string_? No.
char const* str;
char const* end;
bool ok = value.getString(&str, &end);
- if (ok) document_ += valueToQuotedStringN(str, static_cast<unsigned>(end-str));
+ if (ok)
+ document_ += valueToQuotedStringN(str, static_cast<unsigned>(end - str));
break;
}
case booleanValue:
@@ -4535,12 +4475,12 @@ void FastWriter::writeValue(const Value& value) {
case objectValue: {
Value::Members members(value.getMemberNames());
document_ += '{';
- for (Value::Members::iterator it = members.begin(); it != members.end();
- ++it) {
- const JSONCPP_STRING& name = *it;
+ for (auto it = members.begin(); it != members.end(); ++it) {
+ const String& name = *it;
if (it != members.begin())
document_ += ',';
- document_ += valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length()));
+ document_ += valueToQuotedStringN(name.data(),
+ static_cast<unsigned>(name.length()));
document_ += yamlCompatibilityEnabled_ ? ": " : ":";
writeValue(value[name]);
}
@@ -4552,17 +4492,16 @@ void FastWriter::writeValue(const Value& value) {
// Class StyledWriter
// //////////////////////////////////////////////////////////////////
-StyledWriter::StyledWriter()
- : rightMargin_(74), indentSize_(3), addChildValues_() {}
+StyledWriter::StyledWriter() = default;
-JSONCPP_STRING StyledWriter::write(const Value& root) {
+String StyledWriter::write(const Value& root) {
document_.clear();
addChildValues_ = false;
indentString_.clear();
writeCommentBeforeValue(root);
writeValue(root);
writeCommentAfterValueOnSameLine(root);
- document_ += "\n";
+ document_ += '\n';
return document_;
}
@@ -4580,14 +4519,15 @@ void StyledWriter::writeValue(const Value& value) {
case realValue:
pushValue(valueToString(value.asDouble()));
break;
- case stringValue:
- {
+ case stringValue: {
// Is NULL possible for value.string_? No.
char const* str;
char const* end;
bool ok = value.getString(&str, &end);
- if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str)));
- else pushValue("");
+ if (ok)
+ pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end - str)));
+ else
+ pushValue("");
break;
}
case booleanValue:
@@ -4603,9 +4543,9 @@ void StyledWriter::writeValue(const Value& value) {
else {
writeWithIndent("{");
indent();
- Value::Members::iterator it = members.begin();
+ auto it = members.begin();
for (;;) {
- const JSONCPP_STRING& name = *it;
+ const String& name = *it;
const Value& childValue = value[name];
writeCommentBeforeValue(childValue);
writeWithIndent(valueToQuotedString(name.c_str()));
@@ -4675,7 +4615,7 @@ bool StyledWriter::isMultilineArray(const Value& value) {
for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) {
const Value& childValue = value[index];
isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
- childValue.size() > 0);
+ !childValue.empty());
}
if (!isMultiLine) // check if line length > max line length
{
@@ -4695,7 +4635,7 @@ bool StyledWriter::isMultilineArray(const Value& value) {
return isMultiLine;
}
-void StyledWriter::pushValue(const JSONCPP_STRING& value) {
+void StyledWriter::pushValue(const String& value) {
if (addChildValues_)
childValues_.push_back(value);
else
@@ -4713,12 +4653,12 @@ void StyledWriter::writeIndent() {
document_ += indentString_;
}
-void StyledWriter::writeWithIndent(const JSONCPP_STRING& value) {
+void StyledWriter::writeWithIndent(const String& value) {
writeIndent();
document_ += value;
}
-void StyledWriter::indent() { indentString_ += JSONCPP_STRING(indentSize_, ' '); }
+void StyledWriter::indent() { indentString_ += String(indentSize_, ' '); }
void StyledWriter::unindent() {
assert(indentString_.size() >= indentSize_);
@@ -4729,20 +4669,19 @@ void StyledWriter::writeCommentBeforeValue(const Value& root) {
if (!root.hasComment(commentBefore))
return;
- document_ += "\n";
+ document_ += '\n';
writeIndent();
- const JSONCPP_STRING& comment = root.getComment(commentBefore);
- JSONCPP_STRING::const_iterator iter = comment.begin();
+ const String& comment = root.getComment(commentBefore);
+ String::const_iterator iter = comment.begin();
while (iter != comment.end()) {
document_ += *iter;
- if (*iter == '\n' &&
- ((iter+1) != comment.end() && *(iter + 1) == '/'))
+ if (*iter == '\n' && ((iter + 1) != comment.end() && *(iter + 1) == '/'))
writeIndent();
++iter;
}
// Comments are stripped of trailing newlines, so add one here
- document_ += "\n";
+ document_ += '\n';
}
void StyledWriter::writeCommentAfterValueOnSameLine(const Value& root) {
@@ -4750,9 +4689,9 @@ void StyledWriter::writeCommentAfterValueOnSameLine(const Value& root) {
document_ += " " + root.getComment(commentAfterOnSameLine);
if (root.hasComment(commentAfter)) {
- document_ += "\n";
+ document_ += '\n';
document_ += root.getComment(commentAfter);
- document_ += "\n";
+ document_ += '\n';
}
}
@@ -4765,22 +4704,23 @@ bool StyledWriter::hasCommentForValue(const Value& value) {
// Class StyledStreamWriter
// //////////////////////////////////////////////////////////////////
-StyledStreamWriter::StyledStreamWriter(JSONCPP_STRING indentation)
- : document_(NULL), rightMargin_(74), indentation_(indentation),
- addChildValues_() {}
+StyledStreamWriter::StyledStreamWriter(String indentation)
+ : document_(nullptr), indentation_(std::move(indentation)),
+ addChildValues_(), indented_(false) {}
-void StyledStreamWriter::write(JSONCPP_OSTREAM& out, const Value& root) {
+void StyledStreamWriter::write(OStream& out, const Value& root) {
document_ = &out;
addChildValues_ = false;
indentString_.clear();
indented_ = true;
writeCommentBeforeValue(root);
- if (!indented_) writeIndent();
+ if (!indented_)
+ writeIndent();
indented_ = true;
writeValue(root);
writeCommentAfterValueOnSameLine(root);
*document_ << "\n";
- document_ = NULL; // Forget the stream, for safety.
+ document_ = nullptr; // Forget the stream, for safety.
}
void StyledStreamWriter::writeValue(const Value& value) {
@@ -4797,14 +4737,15 @@ void StyledStreamWriter::writeValue(const Value& value) {
case realValue:
pushValue(valueToString(value.asDouble()));
break;
- case stringValue:
- {
+ case stringValue: {
// Is NULL possible for value.string_? No.
char const* str;
char const* end;
bool ok = value.getString(&str, &end);
- if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str)));
- else pushValue("");
+ if (ok)
+ pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end - str)));
+ else
+ pushValue("");
break;
}
case booleanValue:
@@ -4820,9 +4761,9 @@ void StyledStreamWriter::writeValue(const Value& value) {
else {
writeWithIndent("{");
indent();
- Value::Members::iterator it = members.begin();
+ auto it = members.begin();
for (;;) {
- const JSONCPP_STRING& name = *it;
+ const String& name = *it;
const Value& childValue = value[name];
writeCommentBeforeValue(childValue);
writeWithIndent(valueToQuotedString(name.c_str()));
@@ -4859,7 +4800,8 @@ void StyledStreamWriter::writeArrayValue(const Value& value) {
if (hasChildValue)
writeWithIndent(childValues_[index]);
else {
- if (!indented_) writeIndent();
+ if (!indented_)
+ writeIndent();
indented_ = true;
writeValue(childValue);
indented_ = false;
@@ -4894,7 +4836,7 @@ bool StyledStreamWriter::isMultilineArray(const Value& value) {
for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) {
const Value& childValue = value[index];
isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
- childValue.size() > 0);
+ !childValue.empty());
}
if (!isMultiLine) // check if line length > max line length
{
@@ -4914,7 +4856,7 @@ bool StyledStreamWriter::isMultilineArray(const Value& value) {
return isMultiLine;
}
-void StyledStreamWriter::pushValue(const JSONCPP_STRING& value) {
+void StyledStreamWriter::pushValue(const String& value) {
if (addChildValues_)
childValues_.push_back(value);
else
@@ -4929,8 +4871,9 @@ void StyledStreamWriter::writeIndent() {
*document_ << '\n' << indentString_;
}
-void StyledStreamWriter::writeWithIndent(const JSONCPP_STRING& value) {
- if (!indented_) writeIndent();
+void StyledStreamWriter::writeWithIndent(const String& value) {
+ if (!indented_)
+ writeIndent();
*document_ << value;
indented_ = false;
}
@@ -4946,13 +4889,13 @@ void StyledStreamWriter::writeCommentBeforeValue(const Value& root) {
if (!root.hasComment(commentBefore))
return;
- if (!indented_) writeIndent();
- const JSONCPP_STRING& comment = root.getComment(commentBefore);
- JSONCPP_STRING::const_iterator iter = comment.begin();
+ if (!indented_)
+ writeIndent();
+ const String& comment = root.getComment(commentBefore);
+ String::const_iterator iter = comment.begin();
while (iter != comment.end()) {
*document_ << *iter;
- if (*iter == '\n' &&
- ((iter+1) != comment.end() && *(iter + 1) == '/'))
+ if (*iter == '\n' && ((iter + 1) != comment.end() && *(iter + 1) == '/'))
// writeIndent(); // would include newline
*document_ << indentString_;
++iter;
@@ -4984,84 +4927,73 @@ bool StyledStreamWriter::hasCommentForValue(const Value& value) {
struct CommentStyle {
/// Decide whether to write comments.
enum Enum {
- None, ///< Drop all comments.
- Most, ///< Recover odd behavior of previous versions (not implemented yet).
- All ///< Keep all comments.
+ None, ///< Drop all comments.
+ Most, ///< Recover odd behavior of previous versions (not implemented yet).
+ All ///< Keep all comments.
};
};
-struct BuiltStyledStreamWriter : public StreamWriter
-{
- BuiltStyledStreamWriter(
- JSONCPP_STRING const& indentation,
- CommentStyle::Enum cs,
- JSONCPP_STRING const& colonSymbol,
- JSONCPP_STRING const& nullSymbol,
- JSONCPP_STRING const& endingLineFeedSymbol,
- bool useSpecialFloats,
- unsigned int precision);
- int write(Value const& root, JSONCPP_OSTREAM* sout) JSONCPP_OVERRIDE;
+struct BuiltStyledStreamWriter : public StreamWriter {
+ BuiltStyledStreamWriter(String indentation, CommentStyle::Enum cs,
+ String colonSymbol, String nullSymbol,
+ String endingLineFeedSymbol, bool useSpecialFloats,
+ bool emitUTF8, unsigned int precision,
+ PrecisionType precisionType);
+ int write(Value const& root, OStream* sout) override;
+
private:
void writeValue(Value const& value);
void writeArrayValue(Value const& value);
bool isMultilineArray(Value const& value);
- void pushValue(JSONCPP_STRING const& value);
+ void pushValue(String const& value);
void writeIndent();
- void writeWithIndent(JSONCPP_STRING const& value);
+ void writeWithIndent(String const& value);
void indent();
void unindent();
void writeCommentBeforeValue(Value const& root);
void writeCommentAfterValueOnSameLine(Value const& root);
static bool hasCommentForValue(const Value& value);
- typedef std::vector<JSONCPP_STRING> ChildValues;
+ using ChildValues = std::vector<String>;
ChildValues childValues_;
- JSONCPP_STRING indentString_;
+ String indentString_;
unsigned int rightMargin_;
- JSONCPP_STRING indentation_;
+ String indentation_;
CommentStyle::Enum cs_;
- JSONCPP_STRING colonSymbol_;
- JSONCPP_STRING nullSymbol_;
- JSONCPP_STRING endingLineFeedSymbol_;
+ String colonSymbol_;
+ String nullSymbol_;
+ String endingLineFeedSymbol_;
bool addChildValues_ : 1;
bool indented_ : 1;
bool useSpecialFloats_ : 1;
+ bool emitUTF8_ : 1;
unsigned int precision_;
+ PrecisionType precisionType_;
};
BuiltStyledStreamWriter::BuiltStyledStreamWriter(
- JSONCPP_STRING const& indentation,
- CommentStyle::Enum cs,
- JSONCPP_STRING const& colonSymbol,
- JSONCPP_STRING const& nullSymbol,
- JSONCPP_STRING const& endingLineFeedSymbol,
- bool useSpecialFloats,
- unsigned int precision)
- : rightMargin_(74)
- , indentation_(indentation)
- , cs_(cs)
- , colonSymbol_(colonSymbol)
- , nullSymbol_(nullSymbol)
- , endingLineFeedSymbol_(endingLineFeedSymbol)
- , addChildValues_(false)
- , indented_(false)
- , useSpecialFloats_(useSpecialFloats)
- , precision_(precision)
-{
-}
-int BuiltStyledStreamWriter::write(Value const& root, JSONCPP_OSTREAM* sout)
-{
+ String indentation, CommentStyle::Enum cs, String colonSymbol,
+ String nullSymbol, String endingLineFeedSymbol, bool useSpecialFloats,
+ bool emitUTF8, unsigned int precision, PrecisionType precisionType)
+ : rightMargin_(74), indentation_(std::move(indentation)), cs_(cs),
+ colonSymbol_(std::move(colonSymbol)), nullSymbol_(std::move(nullSymbol)),
+ endingLineFeedSymbol_(std::move(endingLineFeedSymbol)),
+ addChildValues_(false), indented_(false),
+ useSpecialFloats_(useSpecialFloats), emitUTF8_(emitUTF8),
+ precision_(precision), precisionType_(precisionType) {}
+int BuiltStyledStreamWriter::write(Value const& root, OStream* sout) {
sout_ = sout;
addChildValues_ = false;
indented_ = true;
indentString_.clear();
writeCommentBeforeValue(root);
- if (!indented_) writeIndent();
+ if (!indented_)
+ writeIndent();
indented_ = true;
writeValue(root);
writeCommentAfterValueOnSameLine(root);
*sout_ << endingLineFeedSymbol_;
- sout_ = NULL;
+ sout_ = nullptr;
return 0;
}
void BuiltStyledStreamWriter::writeValue(Value const& value) {
@@ -5076,16 +5008,19 @@ void BuiltStyledStreamWriter::writeValue(Value const& value) {
pushValue(valueToString(value.asLargestUInt()));
break;
case realValue:
- pushValue(valueToString(value.asDouble(), useSpecialFloats_, precision_));
+ pushValue(valueToString(value.asDouble(), useSpecialFloats_, precision_,
+ precisionType_));
break;
- case stringValue:
- {
+ case stringValue: {
// Is NULL is possible for value.string_? No.
char const* str;
char const* end;
bool ok = value.getString(&str, &end);
- if (ok) pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end-str)));
- else pushValue("");
+ if (ok)
+ pushValue(valueToQuotedStringN(str, static_cast<unsigned>(end - str),
+ emitUTF8_));
+ else
+ pushValue("");
break;
}
case booleanValue:
@@ -5101,12 +5036,13 @@ void BuiltStyledStreamWriter::writeValue(Value const& value) {
else {
writeWithIndent("{");
indent();
- Value::Members::iterator it = members.begin();
+ auto it = members.begin();
for (;;) {
- JSONCPP_STRING const& name = *it;
+ String const& name = *it;
Value const& childValue = value[name];
writeCommentBeforeValue(childValue);
- writeWithIndent(valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length())));
+ writeWithIndent(valueToQuotedStringN(
+ name.data(), static_cast<unsigned>(name.length()), emitUTF8_));
*sout_ << colonSymbol_;
writeValue(childValue);
if (++it == members.end()) {
@@ -5140,7 +5076,8 @@ void BuiltStyledStreamWriter::writeArrayValue(Value const& value) {
if (hasChildValue)
writeWithIndent(childValues_[index]);
else {
- if (!indented_) writeIndent();
+ if (!indented_)
+ writeIndent();
indented_ = true;
writeValue(childValue);
indented_ = false;
@@ -5158,13 +5095,15 @@ void BuiltStyledStreamWriter::writeArrayValue(Value const& value) {
{
assert(childValues_.size() == size);
*sout_ << "[";
- if (!indentation_.empty()) *sout_ << " ";
+ if (!indentation_.empty())
+ *sout_ << " ";
for (unsigned index = 0; index < size; ++index) {
if (index > 0)
*sout_ << ((!indentation_.empty()) ? ", " : ",");
*sout_ << childValues_[index];
}
- if (!indentation_.empty()) *sout_ << " ";
+ if (!indentation_.empty())
+ *sout_ << " ";
*sout_ << "]";
}
}
@@ -5177,7 +5116,7 @@ bool BuiltStyledStreamWriter::isMultilineArray(Value const& value) {
for (ArrayIndex index = 0; index < size && !isMultiLine; ++index) {
Value const& childValue = value[index];
isMultiLine = ((childValue.isArray() || childValue.isObject()) &&
- childValue.size() > 0);
+ !childValue.empty());
}
if (!isMultiLine) // check if line length > max line length
{
@@ -5197,7 +5136,7 @@ bool BuiltStyledStreamWriter::isMultilineArray(Value const& value) {
return isMultiLine;
}
-void BuiltStyledStreamWriter::pushValue(JSONCPP_STRING const& value) {
+void BuiltStyledStreamWriter::pushValue(String const& value) {
if (addChildValues_)
childValues_.push_back(value);
else
@@ -5216,8 +5155,9 @@ void BuiltStyledStreamWriter::writeIndent() {
}
}
-void BuiltStyledStreamWriter::writeWithIndent(JSONCPP_STRING const& value) {
- if (!indented_) writeIndent();
+void BuiltStyledStreamWriter::writeWithIndent(String const& value) {
+ if (!indented_)
+ writeIndent();
*sout_ << value;
indented_ = false;
}
@@ -5230,17 +5170,18 @@ void BuiltStyledStreamWriter::unindent() {
}
void BuiltStyledStreamWriter::writeCommentBeforeValue(Value const& root) {
- if (cs_ == CommentStyle::None) return;
+ if (cs_ == CommentStyle::None)
+ return;
if (!root.hasComment(commentBefore))
return;
- if (!indented_) writeIndent();
- const JSONCPP_STRING& comment = root.getComment(commentBefore);
- JSONCPP_STRING::const_iterator iter = comment.begin();
+ if (!indented_)
+ writeIndent();
+ const String& comment = root.getComment(commentBefore);
+ String::const_iterator iter = comment.begin();
while (iter != comment.end()) {
*sout_ << *iter;
- if (*iter == '\n' &&
- ((iter+1) != comment.end() && *(iter + 1) == '/'))
+ if (*iter == '\n' && ((iter + 1) != comment.end() && *(iter + 1) == '/'))
// writeIndent(); // would write extra newline
*sout_ << indentString_;
++iter;
@@ -5248,8 +5189,10 @@ void BuiltStyledStreamWriter::writeCommentBeforeValue(Value const& root) {
indented_ = false;
}
-void BuiltStyledStreamWriter::writeCommentAfterValueOnSameLine(Value const& root) {
- if (cs_ == CommentStyle::None) return;
+void BuiltStyledStreamWriter::writeCommentAfterValueOnSameLine(
+ Value const& root) {
+ if (cs_ == CommentStyle::None)
+ return;
if (root.hasComment(commentAfterOnSameLine))
*sout_ << " " + root.getComment(commentAfterOnSameLine);
@@ -5269,28 +5212,19 @@ bool BuiltStyledStreamWriter::hasCommentForValue(const Value& value) {
///////////////
// StreamWriter
-StreamWriter::StreamWriter()
- : sout_(NULL)
-{
-}
-StreamWriter::~StreamWriter()
-{
-}
-StreamWriter::Factory::~Factory()
-{}
-StreamWriterBuilder::StreamWriterBuilder()
-{
- setDefaults(&settings_);
-}
-StreamWriterBuilder::~StreamWriterBuilder()
-{}
-StreamWriter* StreamWriterBuilder::newStreamWriter() const
-{
- JSONCPP_STRING indentation = settings_["indentation"].asString();
- JSONCPP_STRING cs_str = settings_["commentStyle"].asString();
- bool eyc = settings_["enableYAMLCompatibility"].asBool();
- bool dnp = settings_["dropNullPlaceholders"].asBool();
- bool usf = settings_["useSpecialFloats"].asBool();
+StreamWriter::StreamWriter() : sout_(nullptr) {}
+StreamWriter::~StreamWriter() = default;
+StreamWriter::Factory::~Factory() = default;
+StreamWriterBuilder::StreamWriterBuilder() { setDefaults(&settings_); }
+StreamWriterBuilder::~StreamWriterBuilder() = default;
+StreamWriter* StreamWriterBuilder::newStreamWriter() const {
+ const String indentation = settings_["indentation"].asString();
+ const String cs_str = settings_["commentStyle"].asString();
+ const String pt_str = settings_["precisionType"].asString();
+ const bool eyc = settings_["enableYAMLCompatibility"].asBool();
+ const bool dnp = settings_["dropNullPlaceholders"].asBool();
+ const bool usf = settings_["useSpecialFloats"].asBool();
+ const bool emitUTF8 = settings_["emitUTF8"].asBool();
unsigned int pre = settings_["precision"].asUInt();
CommentStyle::Enum cs = CommentStyle::All;
if (cs_str == "All") {
@@ -5300,74 +5234,80 @@ StreamWriter* StreamWriterBuilder::newStreamWriter() const
} else {
throwRuntimeError("commentStyle must be 'All' or 'None'");
}
- JSONCPP_STRING colonSymbol = " : ";
+ PrecisionType precisionType(significantDigits);
+ if (pt_str == "significant") {
+ precisionType = PrecisionType::significantDigits;
+ } else if (pt_str == "decimal") {
+ precisionType = PrecisionType::decimalPlaces;
+ } else {
+ throwRuntimeError("precisionType must be 'significant' or 'decimal'");
+ }
+ String colonSymbol = " : ";
if (eyc) {
colonSymbol = ": ";
} else if (indentation.empty()) {
colonSymbol = ":";
}
- JSONCPP_STRING nullSymbol = "null";
+ String nullSymbol = "null";
if (dnp) {
nullSymbol.clear();
}
- if (pre > 17) pre = 17;
- JSONCPP_STRING endingLineFeedSymbol;
- return new BuiltStyledStreamWriter(
- indentation, cs,
- colonSymbol, nullSymbol, endingLineFeedSymbol, usf, pre);
-}
-static void getValidWriterKeys(std::set<JSONCPP_STRING>* valid_keys)
-{
- valid_keys->clear();
- valid_keys->insert("indentation");
- valid_keys->insert("commentStyle");
- valid_keys->insert("enableYAMLCompatibility");
- valid_keys->insert("dropNullPlaceholders");
- valid_keys->insert("useSpecialFloats");
- valid_keys->insert("precision");
-}
-bool StreamWriterBuilder::validate(Json::Value* invalid) const
-{
- Json::Value my_invalid;
- if (!invalid) invalid = &my_invalid; // so we do not need to test for NULL
- Json::Value& inv = *invalid;
- std::set<JSONCPP_STRING> valid_keys;
- getValidWriterKeys(&valid_keys);
- Value::Members keys = settings_.getMemberNames();
- size_t n = keys.size();
- for (size_t i = 0; i < n; ++i) {
- JSONCPP_STRING const& key = keys[i];
- if (valid_keys.find(key) == valid_keys.end()) {
- inv[key] = settings_[key];
- }
+ if (pre > 17)
+ pre = 17;
+ String endingLineFeedSymbol;
+ return new BuiltStyledStreamWriter(indentation, cs, colonSymbol, nullSymbol,
+ endingLineFeedSymbol, usf, emitUTF8, pre,
+ precisionType);
+}
+
+bool StreamWriterBuilder::validate(Json::Value* invalid) const {
+ static const auto& valid_keys = *new std::set<String>{
+ "indentation",
+ "commentStyle",
+ "enableYAMLCompatibility",
+ "dropNullPlaceholders",
+ "useSpecialFloats",
+ "emitUTF8",
+ "precision",
+ "precisionType",
+ };
+ for (auto si = settings_.begin(); si != settings_.end(); ++si) {
+ auto key = si.name();
+ if (valid_keys.count(key))
+ continue;
+ if (invalid)
+ (*invalid)[std::move(key)] = *si;
+ else
+ return false;
}
- return 0u == inv.size();
+ return invalid ? invalid->empty() : true;
}
-Value& StreamWriterBuilder::operator[](JSONCPP_STRING key)
-{
+
+Value& StreamWriterBuilder::operator[](const String& key) {
return settings_[key];
}
// static
-void StreamWriterBuilder::setDefaults(Json::Value* settings)
-{
+void StreamWriterBuilder::setDefaults(Json::Value* settings) {
//! [StreamWriterBuilderDefaults]
(*settings)["commentStyle"] = "All";
(*settings)["indentation"] = "\t";
(*settings)["enableYAMLCompatibility"] = false;
(*settings)["dropNullPlaceholders"] = false;
(*settings)["useSpecialFloats"] = false;
+ (*settings)["emitUTF8"] = false;
(*settings)["precision"] = 17;
+ (*settings)["precisionType"] = "significant";
//! [StreamWriterBuilderDefaults]
}
-JSONCPP_STRING writeString(StreamWriter::Factory const& builder, Value const& root) {
- JSONCPP_OSTRINGSTREAM sout;
- StreamWriterPtr const writer(builder.newStreamWriter());
+String writeString(StreamWriter::Factory const& factory, Value const& root) {
+ OStringStream sout;
+ StreamWriterPtr const writer(factory.newStreamWriter());
writer->write(root, &sout);
return sout.str();
}
-JSONCPP_OSTREAM& operator<<(JSONCPP_OSTREAM& sout, Value const& root) {
+OStream& operator<<(OStream& sout, Value const& root) {
StreamWriterBuilder builder;
StreamWriterPtr const writer(builder.newStreamWriter());
writer->write(root, &sout);
diff --git a/lib/lua/CMakeLists.txt b/lib/lua/CMakeLists.txt
index 119dd6302..5d0dc0f70 100644
--- a/lib/lua/CMakeLists.txt
+++ b/lib/lua/CMakeLists.txt
@@ -1,5 +1,3 @@
-cmake_minimum_required(VERSION 2.4 FATAL_ERROR)
-
project(lua C)
set(LUA_VERSION_MAJOR 5)
@@ -15,9 +13,8 @@ set(LIBS)
if(APPLE)
set(DEFAULT_POSIX TRUE)
- set(DEFAULT_DLOPEN ON)
- # use this on Mac OS X 10.3-
- option(LUA_USE_MACOSX "Mac OS X 10.3-" OFF)
+ set(DEFAULT_DLOPEN OFF)
+ set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_MACOSX")
elseif(UNIX OR CYGWIN)
set(DEFAULT_POSIX TRUE)
elseif(WIN32)
@@ -32,12 +29,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(DEFAULT_DLOPEN ON)
endif()
-# For "Mac OS X 10.3-"
-if(LUA_USE_MACOSX)
- set(COMMON_CFLAGS "${COMMON_CFLAGS} -DLUA_USE_MACOSX")
- set(LUA_USE_DLOPEN FALSE)
-endif(LUA_USE_MACOSX)
-
option(LUA_USE_DLOPEN "Enable dlopen support." ${DEFAULT_DLOPEN})
mark_as_advanced(LUA_USE_DLOPEN)
diff --git a/minetest.conf.example b/minetest.conf.example
index a5f98ee5e..47c03ff80 100644
--- a/minetest.conf.example
+++ b/minetest.conf.example
@@ -75,10 +75,10 @@
# type: bool
# always_fly_fast = true
-# The time in seconds it takes between repeated right clicks when holding the right
-# mouse button.
+# The time in seconds it takes between repeated node placements when holding
+# the place button.
# type: float min: 0.001
-# repeat_rightclick_time = 0.25
+# repeat_place_time = 0.25
# Automatically jump up single-node obstacles.
# type: bool
@@ -129,6 +129,10 @@
# type: float min: 0.001
# repeat_joystick_button_time = 0.17
+# The deadzone of the joystick
+# type: int
+# joystick_deadzone = 2048
+
# The sensitivity of the joystick axes for moving the
# ingame view frustum around.
# type: float
@@ -166,6 +170,16 @@
# type: key
# keymap_sneak = KEY_LSHIFT
+# Key for digging.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+# type: key
+# keymap_dig = KEY_LBUTTON
+
+# Key for placing.
+# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
+# type: key
+# keymap_place = KEY_RBUTTON
+
# Key for opening the inventory.
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
# type: key
@@ -489,6 +503,11 @@
### Basic
+# Whether nametag backgrounds should be shown by default.
+# Mods may still set a background.
+# type: bool
+# show_nametag_backgrounds = true
+
# Enable vertex buffer objects.
# This should greatly improve graphics performance.
# type: bool
@@ -569,8 +588,13 @@
# type: int
# texture_min_size = 64
-# Experimental option, might cause visible spaces between blocks
-# when set to higher number than 0.
+# Use multi-sample antialiasing (MSAA) to smooth out block edges.
+# This algorithm smooths out the 3D viewport while keeping the image sharp,
+# but it doesn't affect the insides of textures
+# (which is especially noticeable with transparent textures).
+# Visible spaces appear between nodes when shaders are disabled.
+# If set to 0, MSAA is disabled.
+# A restart is required after changing this option.
# type: enum values: 0, 1, 2, 4, 8, 16
# fsaa = 0
@@ -602,52 +626,6 @@
# type: bool
# tone_mapping = false
-#### Bumpmapping
-
-# Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack
-# or need to be auto-generated.
-# Requires shaders to be enabled.
-# type: bool
-# enable_bumpmapping = false
-
-# Enables on the fly normalmap generation (Emboss effect).
-# Requires bumpmapping to be enabled.
-# type: bool
-# generate_normalmaps = false
-
-# Strength of generated normalmaps.
-# type: float
-# normalmaps_strength = 0.6
-
-# Defines sampling step of texture.
-# A higher value results in smoother normal maps.
-# type: int min: 0 max: 2
-# normalmaps_smooth = 0
-
-#### Parallax Occlusion
-
-# Enables parallax occlusion mapping.
-# Requires shaders to be enabled.
-# type: bool
-# enable_parallax_occlusion = false
-
-# 0 = parallax occlusion with slope information (faster).
-# 1 = relief mapping (slower, more accurate).
-# type: int min: 0 max: 1
-# parallax_occlusion_mode = 1
-
-# Number of parallax occlusion iterations.
-# type: int
-# parallax_occlusion_iterations = 4
-
-# Overall scale of parallax occlusion effect.
-# type: float
-# parallax_occlusion_scale = 0.08
-
-# Overall bias of parallax occlusion effect, usually scale/2.
-# type: float
-# parallax_occlusion_bias = 0.04
-
#### Waving Nodes
# Set to true to enable waving liquids (like water).
@@ -696,9 +674,9 @@
# type: int min: 1
# fps_max = 60
-# Maximum FPS when game is paused.
+# Maximum FPS when the window is not focused, or when the game is paused.
# type: int min: 1
-# pause_fps_max = 20
+# fps_max_unfocused = 20
# Open the pause menu when the window's focus is lost. Does not pause if a formspec is
# open.
@@ -707,7 +685,7 @@
# View distance in nodes.
# type: int min: 20 max: 4000
-# viewing_range = 100
+# viewing_range = 190
# Camera 'near clipping plane' distance in nodes, between 0 and 0.25
# Only works on GLES platforms. Most users will not need to change this.
@@ -786,8 +764,8 @@
# The rendering back-end for Irrlicht.
# A restart is required after changing this.
# Note: On Android, stick with OGLES1 if unsure! App may fail to start otherwise.
-# On other platforms, OpenGL is recommended, and it’s the only driver with
-# shader support currently.
+# On other platforms, OpenGL is recommended.
+# Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)
# type: enum values: null, software, burningsvideo, direct3d8, direct3d9, opengl, ogles1, ogles2
# video_driver = opengl
@@ -860,10 +838,12 @@
# selectionbox_width = 2
# Crosshair color (R,G,B).
+# Also controls the object crosshair color
# type: string
# crosshair_color = (255,255,255)
# Crosshair alpha (opaqueness, between 0 and 255).
+# Also controls the object crosshair color
# type: int min: 0 max: 255
# crosshair_alpha = 255
@@ -955,8 +935,9 @@
# autoscale_mode = disable
# Show entity selection boxes
+# A restart is required after changing this.
# type: bool
-# show_entity_selectionbox = true
+# show_entity_selectionbox = false
## Menus
@@ -1171,7 +1152,7 @@
# File in client/serverlist/ that contains your favorite servers displayed in the
# Multiplayer Tab.
# type: string
-# serverlist_file = favoriteservers.txt
+# serverlist_file = favoriteservers.json
# Maximum size of the out chat queue.
# 0 to disable queueing and -1 to make the queue size unlimited.
@@ -1192,7 +1173,7 @@
# Maximum number of mapblocks for client to be kept in memory.
# Set to -1 for unlimited amount.
# type: int
-# client_mapblock_limit = 5000
+# client_mapblock_limit = 7500
# Whether to show the client debug info (has the same effect as hitting F5).
# type: bool
@@ -1280,6 +1261,14 @@
# type: int
# max_packets_per_iteration = 1024
+# ZLib compression level to use when sending mapblocks to the client.
+# -1 - Zlib's default compression level
+# 0 - no compresson, fastest
+# 9 - best compression, slowest
+# (levels 1-3 use Zlib's "fast" method, 4-9 use the normal method)
+# type: int min: -1 max: 9
+# map_compression_level_net = -1
+
## Game
# Default game when creating a new world.
@@ -1314,7 +1303,7 @@
# type: bool
# enable_damage = false
-# Enable creative mode for new created maps.
+# Enable creative mode for all players
# type: bool
# creative_mode = false
@@ -1394,7 +1383,7 @@
# to maintain active objects up to this distance in the direction the
# player is looking. (This can avoid mobs suddenly disappearing from view)
# type: int
-# active_object_send_range_blocks = 4
+# active_object_send_range_blocks = 8
# The radius of the volume of blocks around every player that is subject to the
# active block stuff, stated in mapblocks (16 nodes).
@@ -1402,11 +1391,11 @@
# This is also the minimum range in which active objects (mobs) are maintained.
# This should be configured together with active_object_send_range_blocks.
# type: int
-# active_block_range = 3
+# active_block_range = 4
# From how far blocks are sent to clients, stated in mapblocks (16 nodes).
# type: int
-# max_block_send_distance = 10
+# max_block_send_distance = 12
# Maximum number of forceloaded mapblocks.
# type: int
@@ -1499,11 +1488,11 @@
### Advanced
# Handling for deprecated Lua API calls:
-# - legacy: (try to) mimic old behaviour (default for release).
-# - log: mimic and log backtrace of deprecated call (default for debug).
+# - none: Do not log deprecated calls
+# - log: mimic and log backtrace of deprecated call (default).
# - error: abort on usage of deprecated call (suggested for mod developers).
-# type: enum values: legacy, log, error
-# deprecated_lua_api_handling = legacy
+# type: enum values: none, log, error
+# deprecated_lua_api_handling = log
# Number of extra blocks that can be loaded by /clearobjects at once.
# This is a trade-off between sqlite transaction overhead and
@@ -1524,6 +1513,14 @@
# type: enum values: 0, 1, 2
# sqlite_synchronous = 2
+# ZLib compression level to use when saving mapblocks to disk.
+# -1 - Zlib's default compression level
+# 0 - no compresson, fastest
+# 9 - best compression, slowest
+# (levels 1-3 use Zlib's "fast" method, 4-9 use the normal method)
+# type: int min: -1 max: 9
+# map_compression_level_disk = 3
+
# Length of a server tick and the interval at which objects are generally updated over
# network.
# type: float
@@ -1537,6 +1534,11 @@
# type: float
# abm_interval = 1.0
+# The time budget allowed for ABMs to execute on each step
+# (as a fraction of the ABM Interval)
+# type: float min: 0.1 max: 0.9
+# abm_time_budget = 0.2
+
# Length of time between NodeTimer execution cycles
# type: float
# nodetimer_interval = 0.2
@@ -1733,13 +1735,6 @@
# type: bool
# high_precision_fpu = true
-# Changes the main menu UI:
-# - Full: Multiple singleplayer worlds, game choice, texture pack chooser, etc.
-# - Simple: One singleplayer world, no game or texture pack choosers. May be
-# necessary for smaller screens.
-# type: enum values: full, simple
-# main_menu_style = full
-
# Replaces the default main menu with a custom one.
# type: string
# main_menu_script =
@@ -1766,7 +1761,7 @@
# From how far blocks are generated for clients, stated in mapblocks (16 nodes).
# type: int
-# max_block_generate_distance = 8
+# max_block_generate_distance = 10
# Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).
# Only mapchunks completely within the mapgen limit are generated.
@@ -1777,8 +1772,8 @@
# Global map generation attributes.
# In Mapgen v6 the 'decorations' flag controls all decorations except trees
# and junglegrass, in all other mapgens this flag controls all decorations.
-# type: flags possible values: caves, dungeons, light, decorations, biomes, nocaves, nodungeons, nolight, nodecorations, nobiomes
-# mg_flags = caves,dungeons,light,decorations,biomes
+# type: flags possible values: caves, dungeons, light, decorations, biomes, ores, nocaves, nodungeons, nolight, nodecorations, nobiomes, noores
+# mg_flags = caves,dungeons,light,decorations,biomes,ores
## Biome API temperature and humidity noise parameters
@@ -2764,8 +2759,8 @@
# Map generation attributes specific to Mapgen Flat.
# Occasional lakes and hills can be added to the flat world.
-# type: flags possible values: lakes, hills, nolakes, nohills
-# mgflat_spflags = nolakes,nohills
+# type: flags possible values: lakes, hills, caverns, nolakes, nohills, nocaverns
+# mgflat_spflags = nolakes,nohills,nocaverns
# Y of flat ground.
# type: int
@@ -2821,6 +2816,18 @@
# type: float
# mgflat_hill_steepness = 64.0
+# Y-level of cavern upper limit.
+# type: int
+# mgflat_cavern_limit = -256
+
+# Y-distance over which caverns expand to full size.
+# type: int
+# mgflat_cavern_taper = 256
+
+# Defines full size of caverns, smaller values create larger caverns.
+# type: float
+# mgflat_cavern_threshold = 0.7
+
# Lower Y limit of dungeons.
# type: int
# mgflat_dungeon_ymin = -31000
@@ -2883,6 +2890,19 @@
# flags =
# }
+# 3D noise defining giant caverns.
+# type: noise_params_3d
+# mgflat_np_cavern = {
+# offset = 0,
+# scale = 1,
+# spread = (384, 128, 384),
+# seed = 723,
+# octaves = 5,
+# persistence = 0.63,
+# lacunarity = 2.0,
+# flags =
+# }
+
# 3D noise that determines number of dungeons per mapchunk.
# type: noise_params_3d
# mgflat_np_dungeons = {
@@ -3333,17 +3353,17 @@
# Maximum number of blocks that can be queued for loading.
# type: int
-# emergequeue_limit_total = 512
+# emergequeue_limit_total = 1024
# Maximum number of blocks to be queued that are to be loaded from file.
# This limit is enforced per player.
# type: int
-# emergequeue_limit_diskonly = 64
+# emergequeue_limit_diskonly = 128
# Maximum number of blocks to be queued that are to be generated.
# This limit is enforced per player.
# type: int
-# emergequeue_limit_generate = 64
+# emergequeue_limit_generate = 128
# Number of emerge threads to use.
# Value 0:
@@ -3375,3 +3395,8 @@
# type: string
# contentdb_flag_blacklist = nonfree, desktop_default
+# Maximum number of concurrent downloads. Downloads exceeding this limit will be queued.
+# This should be lower than curl_parallel_limit.
+# type: int
+# contentdb_max_concurrent_downloads = 3
+
diff --git a/misc/debpkg-control b/misc/debpkg-control
index b228f4c79..30dc94088 100644
--- a/misc/debpkg-control
+++ b/misc/debpkg-control
@@ -3,9 +3,9 @@ Priority: extra
Standards-Version: 3.6.2
Package: minetest-staging
Version: 0.4.15-DATEPLACEHOLDER
-Depends: libc6, libcurl3-gnutls, libfreetype6, libirrlicht1.8, LEVELDB_PLACEHOLDER, liblua5.1-0, libluajit-5.1-2, libopenal1, libstdc++6, libvorbisfile3, libx11-6, zlib1g
+Depends: libc6, libcurl3-gnutls, libfreetype6, libirrlicht1.8, libjsoncpp1, LEVELDB_PLACEHOLDER, liblua5.1-0, libluajit-5.1-2, libopenal1, libsqlite3-0, libstdc++6, libvorbisfile3, libx11-6, zlib1g
Maintainer: Loic Blot <loic.blot@unix-experience.fr>
-Homepage: http://minetest.net/
+Homepage: https://www.minetest.net/
Vcs-Git: https://github.com/minetest/minetest.git
Vcs-Browser: https://github.com/minetest/minetest.git
Architecture: amd64
diff --git a/misc/minetest.exe.manifest b/misc/minetest.exe.manifest
index 3c32b0f8b..dcad3fcde 100644
--- a/misc/minetest.exe.manifest
+++ b/misc/minetest.exe.manifest
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <assemblyIdentity type="win32" name="minetest" version="0.0.0.0" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
@@ -10,6 +11,7 @@
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
+ <activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
</windowsSettings>
</application>
</assembly>
diff --git a/misc/net.minetest.minetest.appdata.xml b/misc/net.minetest.minetest.appdata.xml
index c177c3713..0e5397b37 100644
--- a/misc/net.minetest.minetest.appdata.xml
+++ b/misc/net.minetest.minetest.appdata.xml
@@ -62,6 +62,6 @@
<translation type="gettext">minetest</translation>
<update_contact>sfan5@live.de</update_contact>
<releases>
- <release date="2020-07-09" version="5.3.0"/>
+ <release date="2021-02-23" version="5.4.0"/>
</releases>
</component>
diff --git a/po/ar/minetest.po b/po/ar/minetest.po
index 9bda5109d..1ab09c2bd 100644
--- a/po/ar/minetest.po
+++ b/po/ar/minetest.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-27 20:41+0000\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-10-29 16:26+0000\n"
"Last-Translator: abidin toumi <abidin24@disroot.org>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/minetest/minetest/"
"ar/>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.3.2-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -52,10 +52,6 @@ msgstr "أعد الإتصال"
msgid "The server has requested a reconnect:"
msgstr "يطلب الخادم إعادة الإتصال:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "يحمل..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "لا تتطابق نسخ Ø§Ù„Ù…ÙŠÙØ§Ù‚. "
@@ -69,10 +65,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "الخادم يدعم نسخ Ø§Ù„Ù…ÙŠÙØ§Ù‚ ما بين $1 Ùˆ $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr "جرب إعادة تمكين قائمة الحوادم العامة وتحقق من إتصالك بالانترنت."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "نحن ندعم نسخة Ø§Ù„Ù…ÙŠÙØ§Ù‚ $1Ùقط."
@@ -80,7 +72,8 @@ msgstr "نحن ندعم نسخة Ø§Ù„Ù…ÙŠÙØ§Ù‚ $1Ùقط."
msgid "We support protocol versions between version $1 and $2."
msgstr "نحن ندعم نسخ Ø§Ù„Ù…ÙŠÙØ§Ù‚ ما بين $1 Ùˆ $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -90,7 +83,8 @@ msgstr "نحن ندعم نسخ Ø§Ù„Ù…ÙŠÙØ§Ù‚ ما بين $1 Ùˆ $2."
msgid "Cancel"
msgstr "ألغÙ"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "الإعتماديات:"
@@ -164,16 +158,57 @@ msgid "enabled"
msgstr "Ù…ÙÙØ¹Ù„"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "يحمل..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "كل الحزم"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Ø§Ù„Ù…ÙØªØ§Ø­ مستخدم مسبقا"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Ø¹ÙØ¯ للقائمة الرئيسة"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "استض٠لعبة"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "لا يمكن استخدام ContentDB عند بناء Minetest بدون cURL"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Downloading..."
@@ -193,22 +228,48 @@ msgid "Install"
msgstr "ثبت"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "ثبت"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "الإعتماديات الإختيارية:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "التعديلات"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No packages could be retrieved"
-msgstr ""
+msgstr "تعذر استيراد الحزم"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No results"
msgstr "بدون نتائج"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "إبحث"
+#, fuzzy
+msgid "No updates"
+msgstr "Ø­Ø¯ÙØ«"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -223,8 +284,12 @@ msgid "Update"
msgstr "Ø­Ø¯ÙØ«"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "إعرض"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -232,31 +297,31 @@ msgstr "إسم العالم \"$1\" موجود مسبقاً"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "تضاريس إضاÙية"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
-msgstr ""
+msgstr "تبريد مع زيادة Ø§Ù„Ø§Ø±ØªÙØ§Ø¹"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Altitude dry"
-msgstr ""
+msgstr "نقص الرطوبة مع Ø§Ù„Ø§Ø±ØªÙØ§Ø¹"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biome blending"
-msgstr ""
+msgstr "دمج المواطن البيئية"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biomes"
-msgstr ""
+msgstr "مواطن بيئية"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caverns"
-msgstr ""
+msgstr "مغارات"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caves"
-msgstr ""
+msgstr "كهوÙ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
@@ -276,19 +341,17 @@ msgstr "نزÙّل لعبة من minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Dungeons"
-msgstr ""
+msgstr "الزنزانات"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
msgstr "أرض مسطحة"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floating landmasses in the sky"
msgstr "أرض عائمة ÙÙŠ السماء"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floatlands (experimental)"
msgstr "أراضيٌ عائمة (تجريبية)"
@@ -298,7 +361,7 @@ msgstr "اللعبة"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "ولد تضاريس غير كسورية: محيطات وباطن الأرض"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
@@ -306,11 +369,11 @@ msgstr "التلال"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Humid rivers"
-msgstr ""
+msgstr "أنهار رطبة"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "Ø²ÙØ¯ الرطوبة قرب الأنهار"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
@@ -338,7 +401,7 @@ msgstr "جبال"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "تدÙÙ‚ الطين"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
@@ -367,17 +430,17 @@ msgstr "أنهار بمستوى البحر"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Seed"
-msgstr ""
+msgstr "البذرة"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "تغيير سلس للمناطق البيئية"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
-msgstr ""
+msgstr "المنشآت السطحية (لا تأثر على الأشجار والأعشاب المنشأة ب v6)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
@@ -393,11 +456,11 @@ msgstr "معتدل، صحراء، غابة"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "المعتدلة, الصحراء, الغابة, التندرا, التايغا"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Terrain surface erosion"
-msgstr ""
+msgstr "تآكل التربة"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
@@ -521,6 +584,10 @@ msgid "Scale"
msgstr "تكبير/تصغير"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "إبحث"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "إختر الدليل"
@@ -542,7 +609,7 @@ msgstr "يحب أن لا تزيد القيمة عن $1."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "X"
-msgstr ""
+msgstr "X"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "X spread"
@@ -570,7 +637,7 @@ msgstr ""
#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "absvalue"
-msgstr ""
+msgstr "القيمة المطلقة"
#. ~ "defaults" is a noise parameter flag.
#. It describes the default processing options
@@ -585,7 +652,7 @@ msgstr "Ø¥ÙØªØ±Ø§Ø¶ÙŠ"
#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "eased"
-msgstr ""
+msgstr "مخÙÙ"
#: builtin/mainmenu/pkgmgr.lua
msgid "$1 (Enabled)"
@@ -609,7 +676,7 @@ msgstr "تثبيت تعديل: لا يمكن العصور على اسم مجلد
#: builtin/mainmenu/pkgmgr.lua
msgid "Install: Unsupported file type \"$1\" or broken archive"
-msgstr ""
+msgstr "يثبت: نوع المل٠\"$1\" غير مدعوم أو هو أرشي٠تالÙ"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install: file: \"$1\""
@@ -617,7 +684,7 @@ msgstr "ثبت: الملÙ: \"$1\""
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to find a valid mod or modpack"
-msgstr ""
+msgstr "ÙØ´Ù„ إيجاد تعديل أو حزمة تعديلات صالحة"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a $1 as a texture pack"
@@ -625,7 +692,7 @@ msgstr "ÙØ´Ù„ تثبيت $1 كحزمة إكساء"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a game as a $1"
-msgstr "ÙØ´Ù„ تثبيت اللعبة كـ $1"
+msgstr "ÙØ´Ù„ تثبيت اللعبة Ùƒ $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a mod as a $1"
@@ -633,7 +700,20 @@ msgstr "ÙØ´Ù„ تثبيت التعديل كـ $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a modpack as a $1"
-msgstr ""
+msgstr "تعذر تثبيت حزمة التعديلات مثل $1"
+
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "يحمل..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "البرمجة النصية للعميل معطلة"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr "جرب إعادة تمكين قائمة الحوادم العامة وتحقق من إتصالك بالانترنت."
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
@@ -665,7 +745,7 @@ msgstr "Ù„Ø§ÙŠØªÙˆÙØ± وص٠للحزمة"
#: builtin/mainmenu/tab_content.lua
msgid "Rename"
-msgstr ""
+msgstr "أعد التسمية"
#: builtin/mainmenu/tab_content.lua
msgid "Uninstall Package"
@@ -688,6 +768,17 @@ msgid "Credits"
msgstr "إشادات"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "إختر الدليل"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "المساهمون السابقون"
@@ -697,22 +788,18 @@ msgstr "المطورون الرئيسيون السابقون"
#: builtin/mainmenu/tab_local.lua
msgid "Announce Server"
-msgstr ""
+msgstr "أعلن عن الخادوم"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
msgid "Bind Address"
-msgstr ""
+msgstr "العنوان المطلوب"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "اضبط"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
-#, fuzzy
msgid "Creative Mode"
msgstr "النمط الإبداعي"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "مكن الضرر"
@@ -729,8 +816,8 @@ msgid "Install games from ContentDB"
msgstr "ثبت العابا من ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "الاسم\\كلمة المرور"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -741,6 +828,11 @@ msgid "No world created or selected!"
msgstr "لم تنشئ او تحدد عالما!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "كلمة مرور جديدة"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "إلعب"
@@ -749,6 +841,11 @@ msgid "Port"
msgstr "Ø§Ù„Ù…Ù†ÙØ°"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "حدد العالم:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "حدد العالم:"
@@ -764,24 +861,23 @@ msgstr "ابدأ اللعبة"
msgid "Address / Port"
msgstr "العنوان \\ Ø§Ù„Ù…Ù†ÙØ°"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "اتصل"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-#, fuzzy
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "النمط الإبداعي"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "الضرر ممكن"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Ø­Ø°Ù Ø§Ù„Ù…ÙØ¶Ù„Ø©"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Ø§Ù„Ù…ÙØ¶Ù„Ø©"
@@ -789,23 +885,22 @@ msgstr "Ø§Ù„Ù…ÙØ¶Ù„Ø©"
msgid "Join Game"
msgstr "انضم للعبة"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "الاسم \\ كلمة المرور"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-#, fuzzy
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "قتال اللاعبين ممكن"
#: builtin/mainmenu/tab_settings.lua
msgid "2x"
-msgstr ""
+msgstr "2x"
#: builtin/mainmenu/tab_settings.lua
msgid "3D Clouds"
@@ -813,11 +908,11 @@ msgstr "سحب 3D"
#: builtin/mainmenu/tab_settings.lua
msgid "4x"
-msgstr ""
+msgstr "4x"
#: builtin/mainmenu/tab_settings.lua
msgid "8x"
-msgstr ""
+msgstr "8x"
#: builtin/mainmenu/tab_settings.lua
msgid "All Settings"
@@ -825,11 +920,7 @@ msgstr "كل الإعدادات"
#: builtin/mainmenu/tab_settings.lua
msgid "Antialiasing:"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
+msgstr "التنعييم:"
#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
@@ -837,11 +928,7 @@ msgstr "Ø­ÙØ¸ حجم الشاشة تلقائيا"
#: builtin/mainmenu/tab_settings.lua
msgid "Bilinear Filter"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
+msgstr "مرشح خطي ثنائي"
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
@@ -853,11 +940,7 @@ msgstr "زجاج متصل"
#: builtin/mainmenu/tab_settings.lua
msgid "Fancy Leaves"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "ÙˆÙ„ÙØ¯ خرائط عادية"
+msgstr "اوراق Ø¨ØªÙØ§ØµÙŠÙ„ واضحة"
#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
@@ -868,10 +951,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "بدون مرشح"
@@ -884,11 +963,11 @@ msgid "Node Highlighting"
msgstr "إبراز العقد"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
msgid "Node Outlining"
-msgstr ""
+msgstr "عدم إبراز العقد"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "None"
msgstr "بدون"
@@ -900,17 +979,9 @@ msgstr "اوراق معتÙمة"
msgid "Opaque Water"
msgstr "مياه معتمة"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "أعد تعيين عالم اللاعب Ø§Ù„Ù…Ù†ÙØ±Ø¯"
+msgstr "جسيمات"
#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
@@ -925,11 +996,15 @@ msgid "Shaders"
msgstr "Ù…ÙØ¸Ù„لات"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "أراضيٌ عائمة (تجريبية)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "مظللات (غير Ù…ØªÙˆÙØ±)"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Simple Leaves"
msgstr "أوراق بسيطة"
@@ -951,11 +1026,11 @@ msgstr ""
#: builtin/mainmenu/tab_settings.lua
msgid "Touchthreshold: (px)"
-msgstr ""
+msgstr "حساسية اللمس: (بكسل)"
#: builtin/mainmenu/tab_settings.lua
msgid "Trilinear Filter"
-msgstr ""
+msgstr "مرشح خطي ثلاثي"
#: builtin/mainmenu/tab_settings.lua
msgid "Waving Leaves"
@@ -969,23 +1044,6 @@ msgstr "سوائل متموجة"
msgid "Waving Plants"
msgstr "نباتات متموجة"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "نعم"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "اضبط التعديلات"
-
-#: builtin/mainmenu/tab_simple_main.lua
-#, fuzzy
-msgid "Main"
-msgstr "الرئيسية"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "إلعب ÙØ±Ø¯ÙŠØ§"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "انتهت مهلة الاتصال."
@@ -1023,7 +1081,6 @@ msgid "Invalid gamespec."
msgstr "Ù…ÙˆØ§ØµÙØ§Øª اللعبة غير صالحة."
#: src/client/clientlauncher.cpp
-#, fuzzy
msgid "Main Menu"
msgstr "القائمة الرئيسية"
@@ -1041,11 +1098,11 @@ msgstr "يرجى اختيار اسم!"
#: src/client/clientlauncher.cpp
msgid "Provided password file failed to open: "
-msgstr ""
+msgstr "ÙØ´Ù„ ÙØªØ­ مل٠كلمة المرور المدخل: "
#: src/client/clientlauncher.cpp
msgid "Provided world path doesn't exist: "
-msgstr ""
+msgstr "مسار العالم المدخل غير موجود: "
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string. Put either "no" or "yes"
@@ -1064,114 +1121,131 @@ msgid ""
"\n"
"Check debug.txt for details."
msgstr ""
+"\n"
+"راجع debug.txt لمزيد من Ø§Ù„ØªÙØ§ØµÙŠÙ„."
#: src/client/game.cpp
msgid "- Address: "
-msgstr ""
+msgstr "- العنوان: "
#: src/client/game.cpp
msgid "- Creative Mode: "
-msgstr ""
+msgstr "- النمط الإبداعي: "
#: src/client/game.cpp
msgid "- Damage: "
-msgstr ""
+msgstr "- التضرر: "
#: src/client/game.cpp
msgid "- Mode: "
-msgstr ""
+msgstr "- النمط: "
#: src/client/game.cpp
msgid "- Port: "
-msgstr ""
+msgstr "- Ø§Ù„Ù…Ù†ÙØ°: "
#: src/client/game.cpp
msgid "- Public: "
-msgstr ""
+msgstr "- عام: "
#. ~ PvP = Player versus Player
#: src/client/game.cpp
msgid "- PvP: "
-msgstr ""
+msgstr "- قتال اللاعبين: "
#: src/client/game.cpp
msgid "- Server Name: "
-msgstr ""
+msgstr "- اسم الخادم: "
#: src/client/game.cpp
msgid "Automatic forward disabled"
-msgstr ""
+msgstr "المشي التلقائي معطل"
#: src/client/game.cpp
msgid "Automatic forward enabled"
-msgstr ""
+msgstr "المشي التلقائي ممكن"
#: src/client/game.cpp
msgid "Camera update disabled"
-msgstr ""
+msgstr "تحديث الكاميرا معطل"
#: src/client/game.cpp
msgid "Camera update enabled"
-msgstr ""
+msgstr "تحديث الكاميرا Ù…ÙØ¹Ù„"
#: src/client/game.cpp
msgid "Change Password"
-msgstr ""
+msgstr "غير كلمة المرور"
#: src/client/game.cpp
msgid "Cinematic mode disabled"
-msgstr ""
+msgstr "الوضع السينمائي معطل"
#: src/client/game.cpp
msgid "Cinematic mode enabled"
-msgstr ""
+msgstr "الوضع السينمائي Ù…ÙØ¹Ù„"
#: src/client/game.cpp
+#, fuzzy
msgid "Client side scripting is disabled"
-msgstr ""
+msgstr "البرمجة النصية للعميل معطلة"
#: src/client/game.cpp
msgid "Connecting to server..."
-msgstr ""
+msgstr "يتصل بالخادوم…"
#: src/client/game.cpp
msgid "Continue"
-msgstr ""
+msgstr "تابع"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
+"أزرار التحكم:\n"
+"- %s: سر للأمام\n"
+"- %s: سر للخلÙ\n"
+"- %s: سر يسارا\n"
+"- %s: سر يمينا\n"
+"- %s: Ø§Ù‚ÙØ²/تسلق\n"
+"- %s: ازحÙ/انزل\n"
+"- %s: ارمي عنصر\n"
+"- %s: Ø§ÙØªØ­ المخزن\n"
+"- تحريك Ø§Ù„ÙØ£Ø±Ø©: دوران\n"
+"- زر Ø§Ù„ÙØ£Ø±Ø© الأيمن: Ø§Ø­ÙØ±/الكم\n"
+"- زر Ø§Ù„ÙØ£Ø±Ø© الأيسر: ضع/استخدم\n"
+"- عجلة Ø§Ù„ÙØ£Ø±Ø©: غيير العنصر\n"
+"- -%s: دردشة\n"
#: src/client/game.cpp
msgid "Creating client..."
-msgstr ""
+msgstr "ينشىء عميلا…"
#: src/client/game.cpp
msgid "Creating server..."
-msgstr ""
+msgstr "ينشىء خادوما…"
#: src/client/game.cpp
msgid "Debug info and profiler graph hidden"
-msgstr ""
+msgstr "معلومات التنقيح ومنحنى محلل البيانات مخÙيان"
#: src/client/game.cpp
msgid "Debug info shown"
-msgstr ""
+msgstr "معلومات التنقيح مرئية"
#: src/client/game.cpp
msgid "Debug info, profiler graph, and wireframe hidden"
@@ -1192,114 +1266,98 @@ msgid ""
"- touch&drag, tap 2nd finger\n"
" --> place single item to slot\n"
msgstr ""
+"اعدادات التحكم Ø§Ù„Ø§ÙØªØ±Ø§Ø¶ÙŠØ©: \n"
+"بدون قائمة مرئية: \n"
+"- لمسة واحدة: زر ØªÙØ¹ÙŠÙ„\n"
+"- لمسة مزدوجة: ضع/استخدم\n"
+"- تحريك إصبع: دوران\n"
+"المخزن أو قائمة مرئية: \n"
+"- لمسة مزدوجة (خارج القائمة): \n"
+" --> اغلق القائمة\n"
+"- لمس خانة أو تكديس: \n"
+" --> حرك التكديس\n"
+"- لمس وسحب, ولمس باصبع ثان: \n"
+" --> وضع عنصر واحد ÙÙŠ خانة\n"
#: src/client/game.cpp
msgid "Disabled unlimited viewing range"
-msgstr ""
+msgstr "مدى الرؤية غير المحدود معطل"
#: src/client/game.cpp
msgid "Enabled unlimited viewing range"
-msgstr ""
+msgstr "مدى الرؤية غير المحدود Ù…ÙØ¹Ù„"
#: src/client/game.cpp
msgid "Exit to Menu"
-msgstr ""
+msgstr "اخرج للقائمة"
#: src/client/game.cpp
msgid "Exit to OS"
-msgstr ""
+msgstr "اخرج لنظام التشغيل"
#: src/client/game.cpp
msgid "Fast mode disabled"
-msgstr ""
+msgstr "نمط السرعة معطل"
#: src/client/game.cpp
msgid "Fast mode enabled"
-msgstr ""
+msgstr "نمط السرعة Ù…ÙØ¹Ù„"
#: src/client/game.cpp
msgid "Fast mode enabled (note: no 'fast' privilege)"
-msgstr ""
+msgstr "نمط السرعة Ù…ÙØ¹Ù„ (ملاحظة: لا تمتلك امتياز 'السرعة')"
#: src/client/game.cpp
msgid "Fly mode disabled"
-msgstr ""
+msgstr "نمط الطيران معطل"
#: src/client/game.cpp
msgid "Fly mode enabled"
-msgstr ""
+msgstr "نمط الطيران Ù…ÙØ¹Ù„"
#: src/client/game.cpp
msgid "Fly mode enabled (note: no 'fly' privilege)"
-msgstr ""
+msgstr "نمط الطيران Ù…ÙØ¹Ù„ (ملاحظة: لا تمتلك امتياز 'الطيران')"
#: src/client/game.cpp
msgid "Fog disabled"
-msgstr ""
+msgstr "الضباب معطل"
#: src/client/game.cpp
msgid "Fog enabled"
-msgstr ""
+msgstr "الضباب Ù…ÙØ¹Ù„"
#: src/client/game.cpp
msgid "Game info:"
-msgstr ""
+msgstr "معلومات اللعبة:"
#: src/client/game.cpp
msgid "Game paused"
-msgstr ""
+msgstr "اللعبة Ù…ÙˆÙ‚ÙØ© مؤقتا"
#: src/client/game.cpp
msgid "Hosting server"
-msgstr ""
+msgstr "Ø§Ø³ØªØ¶Ø§ÙØ© خادوم"
#: src/client/game.cpp
msgid "Item definitions..."
-msgstr ""
+msgstr "تعري٠العنصر…"
#: src/client/game.cpp
msgid "KiB/s"
-msgstr ""
+msgstr "كب\\ثا"
#: src/client/game.cpp
msgid "Media..."
-msgstr ""
+msgstr "وسائط…"
#: src/client/game.cpp
msgid "MiB/s"
-msgstr ""
+msgstr "مب\\ثا"
#: src/client/game.cpp
msgid "Minimap currently disabled by game or mod"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
+msgstr "الخريطة المصغرة معطلة من قبل لعبة أو تعديل"
#: src/client/game.cpp
msgid "Noclip mode disabled"
@@ -1315,15 +1373,15 @@ msgstr ""
#: src/client/game.cpp
msgid "Node definitions..."
-msgstr ""
+msgstr "ØªØ¹Ø±ÙŠÙØ§Øª العقدة..."
#: src/client/game.cpp
msgid "Off"
-msgstr ""
+msgstr "معطّل"
#: src/client/game.cpp
msgid "On"
-msgstr ""
+msgstr "Ù…ÙØ¹Ù„"
#: src/client/game.cpp
msgid "Pitch move mode disabled"
@@ -1335,63 +1393,63 @@ msgstr ""
#: src/client/game.cpp
msgid "Profiler graph shown"
-msgstr ""
+msgstr "منحنى محلل البيانات ظاهر"
#: src/client/game.cpp
msgid "Remote server"
-msgstr ""
+msgstr "خادوم بعيد"
#: src/client/game.cpp
msgid "Resolving address..."
-msgstr ""
+msgstr "يستورد العناوين…"
#: src/client/game.cpp
msgid "Shutting down..."
-msgstr ""
+msgstr "يغلق…"
#: src/client/game.cpp
msgid "Singleplayer"
-msgstr ""
+msgstr "لاعب Ù…Ù†ÙØ±Ø¯"
#: src/client/game.cpp
msgid "Sound Volume"
-msgstr ""
+msgstr "حجم الصوت"
#: src/client/game.cpp
msgid "Sound muted"
-msgstr ""
+msgstr "الصوت مكتوم"
#: src/client/game.cpp
msgid "Sound system is disabled"
-msgstr ""
+msgstr "نظام الصوت معطل"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "نظام الصوت غير مدمج أثناء البناء"
#: src/client/game.cpp
msgid "Sound unmuted"
-msgstr ""
+msgstr "الصوت غير مكتوم"
#: src/client/game.cpp
#, c-format
msgid "Viewing range changed to %d"
-msgstr ""
+msgstr "غÙيرَ مدى الرؤية الى %d"
#: src/client/game.cpp
#, c-format
msgid "Viewing range is at maximum: %d"
-msgstr ""
+msgstr "مدى الرؤية ÙÙŠ أقصى حد: %d"
#: src/client/game.cpp
#, c-format
msgid "Viewing range is at minimum: %d"
-msgstr ""
+msgstr "مدى الرؤية ÙÙŠ أدنى حد: %d"
#: src/client/game.cpp
#, c-format
msgid "Volume changed to %d%%"
-msgstr ""
+msgstr "غÙير الحجم الى %d%%"
#: src/client/game.cpp
msgid "Wireframe shown"
@@ -1399,60 +1457,61 @@ msgstr ""
#: src/client/game.cpp
msgid "Zoom currently disabled by game or mod"
-msgstr ""
+msgstr "التكبير معطل من قبل لعبة أو تعديل"
#: src/client/game.cpp
msgid "ok"
-msgstr ""
+msgstr "مواÙÙ‚"
#: src/client/gameui.cpp
msgid "Chat hidden"
-msgstr ""
+msgstr "الدردشة مخÙية"
#: src/client/gameui.cpp
msgid "Chat shown"
-msgstr ""
+msgstr "الدردشة ظاهرة"
#: src/client/gameui.cpp
msgid "HUD hidden"
-msgstr ""
+msgstr "الواجهة مخÙية"
#: src/client/gameui.cpp
msgid "HUD shown"
-msgstr ""
+msgstr "الواجهة ظاهرة"
#: src/client/gameui.cpp
msgid "Profiler hidden"
-msgstr ""
+msgstr "محلل البيانات مخÙÙŠ"
#: src/client/gameui.cpp
#, c-format
msgid "Profiler shown (page %d of %d)"
-msgstr ""
+msgstr "محلل البيانات ظاهر ( ØµÙØ­Ø© %d من %d)"
#: src/client/keycode.cpp
msgid "Apps"
-msgstr ""
+msgstr "تطبيقات"
#: src/client/keycode.cpp
msgid "Backspace"
-msgstr ""
+msgstr "Backspace"
#: src/client/keycode.cpp
msgid "Caps Lock"
-msgstr ""
+msgstr "Caps Lock"
#: src/client/keycode.cpp
msgid "Clear"
-msgstr ""
+msgstr "امسح"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Control"
-msgstr ""
+msgstr "Control"
#: src/client/keycode.cpp
msgid "Down"
-msgstr ""
+msgstr "أسÙÙ„"
#: src/client/keycode.cpp
msgid "End"
@@ -1467,239 +1526,307 @@ msgid "Execute"
msgstr ""
#: src/client/keycode.cpp
+#, fuzzy
msgid "Help"
-msgstr ""
+msgstr "Help"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Home"
-msgstr ""
+msgstr "Home"
#: src/client/keycode.cpp
+#, fuzzy
msgid "IME Accept"
-msgstr ""
+msgstr "IME Accept"
#: src/client/keycode.cpp
+#, fuzzy
msgid "IME Convert"
-msgstr ""
+msgstr "IME Convert"
#: src/client/keycode.cpp
+#, fuzzy
msgid "IME Escape"
-msgstr ""
+msgstr "IME Escape"
#: src/client/keycode.cpp
+#, fuzzy
msgid "IME Mode Change"
-msgstr ""
+msgstr "IME Mode Change"
#: src/client/keycode.cpp
+#, fuzzy
msgid "IME Nonconvert"
-msgstr ""
+msgstr "IME Nonconvert"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Insert"
-msgstr ""
+msgstr "Insert"
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
msgid "Left"
-msgstr ""
+msgstr "يسار"
#: src/client/keycode.cpp
msgid "Left Button"
-msgstr ""
+msgstr "الزر الأيسر"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Left Control"
-msgstr ""
+msgstr "Left Control"
#: src/client/keycode.cpp
msgid "Left Menu"
-msgstr ""
+msgstr "القائمة اليسرى"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Left Shift"
-msgstr ""
+msgstr "Left Shift"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Left Windows"
-msgstr ""
+msgstr "Left Windows"
#. ~ Key name, common on Windows keyboards
#: src/client/keycode.cpp
+#, fuzzy
msgid "Menu"
-msgstr ""
+msgstr "Menu"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Middle Button"
-msgstr ""
+msgstr "Middle Button"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Num Lock"
-msgstr ""
+msgstr "Num Lock"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad *"
-msgstr ""
+msgstr "Numpad *"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad +"
-msgstr ""
+msgstr "Numpad +"
#: src/client/keycode.cpp
msgid "Numpad -"
msgstr ""
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad ."
-msgstr ""
+msgstr "Numpad ."
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad /"
-msgstr ""
+msgstr "Numpad /"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad 0"
-msgstr ""
+msgstr "Numpad 0"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad 1"
-msgstr ""
+msgstr "Numpad 1"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad 2"
-msgstr ""
+msgstr "Numpad 2"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad 3"
-msgstr ""
+msgstr "Numpad 3"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad 4"
-msgstr ""
+msgstr "Numpad 4"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad 5"
-msgstr ""
+msgstr "Numpad 5"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad 6"
-msgstr ""
+msgstr "Numpad 6"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad 7"
-msgstr ""
+msgstr "Numpad 7"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad 8"
-msgstr ""
+msgstr "Numpad 8"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Numpad 9"
-msgstr ""
+msgstr "Numpad 9"
#: src/client/keycode.cpp
+#, fuzzy
msgid "OEM Clear"
-msgstr ""
+msgstr "OEM Clear"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Page down"
-msgstr ""
+msgstr "Page down"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Page up"
-msgstr ""
+msgstr "Page up"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Pause"
-msgstr ""
+msgstr "Pause"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Play"
-msgstr ""
+msgstr "Play"
#. ~ "Print screen" key
#: src/client/keycode.cpp
+#, fuzzy
msgid "Print"
-msgstr ""
+msgstr "Print"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Return"
-msgstr ""
+msgstr "Return"
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
+#, fuzzy
msgid "Right"
-msgstr ""
+msgstr "Right"
#: src/client/keycode.cpp
msgid "Right Button"
msgstr ""
#: src/client/keycode.cpp
+#, fuzzy
msgid "Right Control"
-msgstr ""
+msgstr "Right Control"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Right Menu"
-msgstr ""
+msgstr "Right Menu"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Right Shift"
-msgstr ""
+msgstr "Right Shift"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Right Windows"
-msgstr ""
+msgstr "Right Windows"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Scroll Lock"
-msgstr ""
+msgstr "Scroll Lock"
#. ~ Key name
#: src/client/keycode.cpp
+#, fuzzy
msgid "Select"
-msgstr ""
+msgstr "Select"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Shift"
-msgstr ""
+msgstr "Shift"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Sleep"
-msgstr ""
+msgstr "Sleep"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Snapshot"
-msgstr ""
+msgstr "Snapshot"
#: src/client/keycode.cpp
msgid "Space"
msgstr ""
#: src/client/keycode.cpp
+#, fuzzy
msgid "Tab"
-msgstr ""
+msgstr "Tab"
#: src/client/keycode.cpp
+#, fuzzy
msgid "Up"
-msgstr ""
+msgstr "Up"
#: src/client/keycode.cpp
+#, fuzzy
msgid "X Button 1"
-msgstr ""
+msgstr "X Button 1"
#: src/client/keycode.cpp
+#, fuzzy
msgid "X Button 2"
-msgstr ""
+msgstr "X Button 2"
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
msgid "Zoom"
-msgstr ""
+msgstr "ÙƒØ¨ÙØ±"
+
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "الخريطة المصغرة مخÙية"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "الخريطة المصغرة ÙÙŠ وضع الرادار، تكبير x1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "الخريطة المصغرة ÙÙŠ وضع الأسطح، تكبير x1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "الخريطة المصغرة ÙÙŠ وضع الأسطح، تكبير x1"
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
-msgstr ""
+msgstr "كلمتا المرور غير متطابقتين!"
#: src/gui/guiConfirmRegistration.cpp
msgid "Register and Join"
-msgstr ""
+msgstr "سجل وادخل"
#: src/gui/guiConfirmRegistration.cpp
#, c-format
@@ -1710,38 +1837,41 @@ msgid ""
"Please retype your password and click 'Register and Join' to confirm account "
"creation, or click 'Cancel' to abort."
msgstr ""
+"أنت على وشك دخول هذا الخادوم للمرة الأولى باسم \"%s\".\n"
+"اذا رغبت بالاستمرار سيتم إنشاء حساب جديد باستخدام بياناتك الاعتمادية.\n"
+"لتأكيد التسجيل ادخل كلمة مرورك وانقر 'سجل وادخل'، أو 'ألغ' للإلغاء."
#: src/gui/guiFormSpecMenu.cpp
msgid "Proceed"
-msgstr ""
+msgstr "تابع"
#: src/gui/guiKeyChangeMenu.cpp
msgid "\"Special\" = climb down"
-msgstr ""
+msgstr "\"خاص\" = التسلق نزولا"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Autoforward"
-msgstr ""
+msgstr "المشي التلقائي"
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Automatic jumping"
-msgstr ""
+msgstr "Ø§Ù„Ù‚ÙØ² التلقائي"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Backward"
-msgstr ""
+msgstr "للخلÙ"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Change camera"
-msgstr ""
+msgstr "غير الكاميرا"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Chat"
-msgstr ""
+msgstr "دردشة"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Command"
-msgstr ""
+msgstr "الأوامر"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Console"
@@ -1757,15 +1887,15 @@ msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
msgid "Double tap \"jump\" to toggle fly"
-msgstr ""
+msgstr "اضغط مرتين على \"Ø§Ù‚ÙØ²\" Ù„ØªÙØ¹ÙŠÙ„ الطيران"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Drop"
-msgstr ""
+msgstr "اسقاط"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Forward"
-msgstr ""
+msgstr "للأمام"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Inc. range"
@@ -1777,15 +1907,15 @@ msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
msgid "Inventory"
-msgstr ""
+msgstr "المخزن"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Jump"
-msgstr ""
+msgstr "Ø§Ù‚ÙØ²"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Key already in use"
-msgstr ""
+msgstr "Ø§Ù„Ù…ÙØªØ§Ø­ مستخدم مسبقا"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
@@ -1797,23 +1927,23 @@ msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
msgid "Mute"
-msgstr ""
+msgstr "اكتم"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Next item"
-msgstr ""
+msgstr "العنصر التالي"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Prev. item"
-msgstr ""
+msgstr "العنصر السابق"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Range select"
-msgstr ""
+msgstr "حدد المدى"
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
-msgstr ""
+msgstr "صوّر الشاشة"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Sneak"
@@ -1821,31 +1951,31 @@ msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
msgid "Special"
-msgstr ""
+msgstr "خاص"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle HUD"
-msgstr ""
+msgstr "بدّل عرض الواجهة"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle chat log"
-msgstr ""
+msgstr "بدّل عرض سجل المحادثة"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fast"
-msgstr ""
+msgstr "بدّل وضع السرعة"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fly"
-msgstr ""
+msgstr "بدّل حالة الطيران"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fog"
-msgstr ""
+msgstr "بدّل ظهور الضباب"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle minimap"
-msgstr ""
+msgstr "بدّل ظهور الخريطة المصغرة"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
@@ -1857,41 +1987,41 @@ msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
msgid "press key"
-msgstr ""
+msgstr "اضغط على زر"
#: src/gui/guiPasswordChange.cpp
msgid "Change"
-msgstr ""
+msgstr "ØºÙŠÙ‘ÙØ±"
#: src/gui/guiPasswordChange.cpp
msgid "Confirm Password"
-msgstr ""
+msgstr "أكد كلمة المرور"
#: src/gui/guiPasswordChange.cpp
msgid "New Password"
-msgstr ""
+msgstr "كلمة مرور جديدة"
#: src/gui/guiPasswordChange.cpp
msgid "Old Password"
-msgstr ""
+msgstr "كلمة المرور القديمة"
#: src/gui/guiVolumeChange.cpp
msgid "Exit"
-msgstr ""
+msgstr "أخرج"
#: src/gui/guiVolumeChange.cpp
msgid "Muted"
-msgstr ""
+msgstr "مكتوم"
#: src/gui/guiVolumeChange.cpp
msgid "Sound Volume: "
-msgstr ""
+msgstr "حجم الصوت: "
#. ~ Imperative, as in "Enter/type in text".
#. Don't forget the space.
#: src/gui/modalMenu.cpp
msgid "Enter "
-msgstr ""
+msgstr "أدخل "
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string which needs to contain the translation's
@@ -1905,6 +2035,8 @@ msgid ""
"(Android) Fixes the position of virtual joystick.\n"
"If disabled, virtual joystick will center to first-touch's position."
msgstr ""
+"(أندرويد) ثبت موقع عصى التحكم.\n"
+"اذا Ø¹ÙØ·Ù„ ستنتقل عصى التحكم لموقع اللمسة الأولى."
#: src/settings_translation_file.cpp
msgid ""
@@ -1937,12 +2069,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2042,13 +2168,17 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "A message to be displayed to all clients when the server shuts down."
-msgstr ""
+msgstr "رسالة تعرض لكل العملاء عند اغلاق الخادم."
#: src/settings_translation_file.cpp
msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2282,10 +2412,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2356,16 +2482,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2517,6 +2633,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2573,7 +2693,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2581,7 +2703,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2681,12 +2805,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2757,6 +2875,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2817,7 +2939,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2905,14 +3027,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2922,18 +3036,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2950,12 +3052,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -2965,7 +3061,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3020,11 +3116,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Field of view"
-msgstr ""
+msgstr "حقل الرؤية"
#: src/settings_translation_file.cpp
msgid "Field of view in degrees."
-msgstr ""
+msgstr "حقل الرؤية بالدرجات."
#: src/settings_translation_file.cpp
msgid ""
@@ -3267,10 +3363,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3324,8 +3416,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3792,6 +3884,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3872,6 +3968,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -3971,6 +4074,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4501,7 +4611,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Load the game profiler"
-msgstr ""
+msgstr "حمّل محلل بيانات اللعبة"
#: src/settings_translation_file.cpp
msgid ""
@@ -4527,10 +4637,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4544,6 +4650,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4707,7 +4821,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4756,6 +4870,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -4985,14 +5106,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5018,10 +5131,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5047,34 +5156,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5140,6 +5221,14 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5295,10 +5384,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5550,6 +5635,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5679,10 +5774,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5776,6 +5867,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5834,8 +5929,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5861,15 +5956,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6005,6 +6105,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6207,6 +6318,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6329,6 +6446,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6340,11 +6475,59 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "تنزيل وتثبيت $1, يرجى الإنتظار..."
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "هل أنت متأكد من إعادة تعيين عالم اللاعب الوحيد؟"
#~ msgid "Back"
#~ msgstr "Ø¹ÙØ¯"
+#~ msgid "Bump Mapping"
+#~ msgstr "خريطة النتوءات"
+
+#~ msgid "Config mods"
+#~ msgstr "اضبط التعديلات"
+
+#~ msgid "Configure"
+#~ msgstr "اضبط"
+
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "تنزيل وتثبيت $1, يرجى الإنتظار..."
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "ÙˆÙ„ÙØ¯ خرائط عادية"
+
+#~ msgid "Main"
+#~ msgstr "الرئيسية"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "الخريطة المصغرة ÙÙŠ وضع الرادار، تكبير x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "الخريطة المصغرة ÙÙŠ وضع الرادار، تكبير x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "الخريطة المصغرة ÙÙŠ وضع الأسطح، تكبير x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "الخريطة المصغرة ÙÙŠ وضع الأسطح، تكبير x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "الاسم\\كلمة المرور"
+
+#~ msgid "No"
+#~ msgstr "لا"
+
#~ msgid "Ok"
#~ msgstr "مواÙÙ‚"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "أعد تعيين عالم اللاعب Ø§Ù„Ù…Ù†ÙØ±Ø¯"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "إلعب ÙØ±Ø¯ÙŠØ§"
+
+#~ msgid "View"
+#~ msgstr "إعرض"
+
+#~ msgid "Yes"
+#~ msgstr "نعم"
diff --git a/po/be/minetest.po b/po/be/minetest.po
index ed091587d..8b597ca4b 100644
--- a/po/be/minetest.po
+++ b/po/be/minetest.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Belarusian (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: 2019-11-19 23:04+0000\n"
"Last-Translator: Viktar Vauchkevich <victorenator@gmail.com>\n"
"Language-Team: Belarusian <https://hosted.weblate.org/projects/minetest/"
@@ -47,10 +47,6 @@ msgstr "Перазлучыцца"
msgid "The server has requested a reconnect:"
msgstr "Сервер патрабуе перазлучыцца:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Загрузка…"
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "ВерÑÑ–Ñ– пратакола адрозніваюцца. "
@@ -64,12 +60,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Сервер падтрымлівае верÑÑ–Ñ– пратакола паміж $1 Ñ– $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"ПаÑпрабуйце паўторна ўключыць ÑÐ¿Ñ–Ñ Ð¿ÑƒÐ±Ð»Ñ–Ñ‡Ð½Ñ‹Ñ… Ñервераў Ñ– праверце злучÑнне з "
-"Ñецівам."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Мы падтрымліваем толькі $1 верÑÑ–ÑŽ пратакола."
@@ -77,7 +67,8 @@ msgstr "Мы падтрымліваем толькі $1 верÑÑ–ÑŽ пратаÐ
msgid "We support protocol versions between version $1 and $2."
msgstr "Мы падтрымліваем верÑÑ–Ñ– пратакола паміж $1 Ñ– $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -87,7 +78,8 @@ msgstr "Мы падтрымліваем верÑÑ–Ñ– пратакола памі
msgid "Cancel"
msgstr "СкаÑаваць"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "ЗалежнаÑці:"
@@ -161,14 +153,55 @@ msgid "enabled"
msgstr "уключаны"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Загрузка…"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "УÑе пакункі"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Клавіша ўжо выкарыÑтоўваецца"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Ð’Ñрнуцца Ñž галоўнае меню"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "ГулÑць (Ñервер)"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -191,6 +224,16 @@ msgid "Install"
msgstr "УÑталÑваць"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "УÑталÑваць"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "ÐеабавÑÐ·ÐºÐ¾Ð²Ñ‹Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð°Ñці:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Мадыфікацыі"
@@ -204,9 +247,26 @@ msgid "No results"
msgstr "Вынікі адÑутнічаюць"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Пошук"
+#, fuzzy
+msgid "No updates"
+msgstr "Ðбнавіць"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Not found"
+msgstr "Выключыць гук"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -221,7 +281,11 @@ msgid "Update"
msgstr "Ðбнавіць"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -535,6 +599,10 @@ msgid "Scale"
msgstr "Маштаб"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Пошук"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Ðбраць каталог"
@@ -652,6 +720,21 @@ msgstr "Ðе атрымалаÑÑ ÑžÑталÑваць мадыфікацыю Ñ
msgid "Unable to install a modpack as a $1"
msgstr "Ðе атрымалаÑÑ ÑžÑталÑваць пакунак мадыфікацый Ñк $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Загрузка…"
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "КліентÑÐºÑ–Ñ Ð¼Ð°Ð´Ñ‹Ñ„Ñ–ÐºÐ°Ñ†Ñ‹Ñ– выключаныÑ"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"ПаÑпрабуйце паўторна ўключыць ÑÐ¿Ñ–Ñ Ð¿ÑƒÐ±Ð»Ñ–Ñ‡Ð½Ñ‹Ñ… Ñервераў Ñ– праверце злучÑнне з "
+"Ñецівам."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Пошук у Ñеціве"
@@ -705,6 +788,17 @@ msgid "Credits"
msgstr "ПадзÑкі"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Ðбраць каталог"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Ð‘Ñ‹Ð»Ñ‹Ñ ÑžÐ´Ð·ÐµÐ»ÑŒÐ½Ñ–ÐºÑ–"
@@ -721,14 +815,10 @@ msgid "Bind Address"
msgstr "ÐÐ´Ñ€Ð°Ñ Ð¿Ñ€Ñ‹Ð²Ñзкі"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Ðаладзіць"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Творчы Ñ€Ñжым"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Уключыць пашкоджанні"
@@ -745,8 +835,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "ІмÑ/Пароль"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -757,6 +847,11 @@ msgid "No world created or selected!"
msgstr "ÐÑма Ñтворанага альбо абранага Ñвету!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Ðовы пароль"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "ГулÑць"
@@ -765,6 +860,11 @@ msgid "Port"
msgstr "Порт"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Ðбраць Ñвет:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Ðбраць Ñвет:"
@@ -780,23 +880,23 @@ msgstr "Пачаць гульню"
msgid "Address / Port"
msgstr "ÐÐ´Ñ€Ð°Ñ / Порт"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Злучыцца"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Творчы Ñ€Ñжым"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Пашкоджанні ўключаныÑ"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Прыбраць з упадабанага"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Упадабанае"
@@ -804,16 +904,16 @@ msgstr "Упадабанае"
msgid "Join Game"
msgstr "Далучыцца да гульні"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Ð†Ð¼Ñ / Пароль"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Пінг"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP уключаны"
@@ -842,10 +942,6 @@ msgid "Antialiasing:"
msgstr "Згладжванне:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Ð’Ñ‹ ўпÑўненыÑ, што хочаце Ñкінуць Ñвет адзіночнай гульні?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Запамінаць памеры Ñкрана"
@@ -853,10 +949,6 @@ msgstr "Запамінаць памеры Ñкрана"
msgid "Bilinear Filter"
msgstr "Білінейны фільтр"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "ТÑкÑтураванне маÑкамі"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "ЗмÑніць клавішы"
@@ -870,10 +962,6 @@ msgid "Fancy Leaves"
msgstr "Ðздобленае ліÑце"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ñ‹Ñ Ð¼Ð°Ð¿Ñ‹ нармалÑÑž"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "MIP-Ñ‚ÑкÑтураванне"
@@ -882,10 +970,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "MIP-Ñ‚ÑкÑтураванне + анізатропны фільтр"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Ðе"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Без фільтра"
@@ -913,19 +997,11 @@ msgstr "ÐепразрыÑтае ліÑце"
msgid "Opaque Water"
msgstr "ÐепразрыÑÑ‚Ð°Ñ Ð²Ð°Ð´Ð°"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "ПаралакÑÐ½Ð°Ñ Ð°ÐºÐ»ÑŽÐ·Ñ–Ñ"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "ЧаÑціцы"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Скінуць Ñвет адзіночнай гульні"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Экран:"
@@ -938,6 +1014,11 @@ msgid "Shaders"
msgstr "ШÑйдÑры"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Узровень лÑтучых аÑтравоў"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "ШÑйдÑры (недаÑтупна)"
@@ -981,22 +1062,6 @@ msgstr "Калыханне вадкаÑцÑÑž"
msgid "Waving Plants"
msgstr "Ð”Ñ€Ñ‹Ð³Ð¾Ñ‚ÐºÑ–Ñ Ñ€Ð°Ñліны"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Так"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Ðалады мадыфікацый"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Галоўнае меню"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Пачаць адзіночную гульню"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Таймаут злучÑннÑ."
@@ -1151,20 +1216,20 @@ msgid "Continue"
msgstr "ПрацÑгнуць"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1312,34 +1377,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Мінімапа на дадзены момант Ð°Ð´ÐºÐ»ÑŽÑ‡Ð°Ð½Ð°Ñ Ð³ÑƒÐ»ÑŒÐ½Ñ‘Ð¹ альбо мадыфікацыÑй"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Мінімапа ÑхаванаÑ"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Мінімапа Ñž Ñ€Ñжыме радару, павелічÑнне Ñ…1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Мінімапа Ñž Ñ€Ñжыме радару, павелічÑнне Ñ…2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Мінімапа Ñž Ñ€Ñжыме радару, павелічÑнне Ñ…4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Мінімапа Ñž Ñ€Ñжыме паверхні, павелічÑнне Ñ…1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Мінімапа Ñž Ñ€Ñжыме паверхні, павелічÑнне Ñ…2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Мінімапа Ñž Ñ€Ñжыме паверхні, павелічÑнне Ñ…4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "РÑжым руху Ñкрозь Ñцены адключаны"
@@ -1731,6 +1768,25 @@ msgstr "Дадат. кнопка 2"
msgid "Zoom"
msgstr "ПавÑлічыць"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Мінімапа ÑхаванаÑ"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Мінімапа Ñž Ñ€Ñжыме радару, павелічÑнне Ñ…1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Мінімапа Ñž Ñ€Ñжыме паверхні, павелічÑнне Ñ…1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Мінімальны памер Ñ‚ÑкÑтуры"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Паролі не Ñупадаюць!"
@@ -2002,14 +2058,6 @@ msgstr ""
"воÑтраву, зрабіце ÑžÑе 3 лікі роўнымі Ð´Ð»Ñ Ð½ÐµÐ°Ð¿Ñ€Ð°Ñ†Ð°Ð²Ð°Ð½Ð°Ð¹ формы."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = паралакÑÐ½Ð°Ñ Ð°ÐºÐ»ÑŽÐ·Ñ–Ñ Ñа звеÑткамі аб нахіле (хутка).\n"
-"1 = Ñ€Ñльефнае Ñ‚ÑкÑтураванне (павольней, але ÑкаÑней)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "2D-шум, што кіруе формай/памерам горных хрыбтоў."
@@ -2132,6 +2180,10 @@ msgid "ABM interval"
msgstr "ІнтÑрвал Ð·Ð°Ñ…Ð°Ð²Ð°Ð½Ð½Ñ Ð¼Ð°Ð¿Ñ‹"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "Absolute limit of queued blocks to emerge"
msgstr "ÐбÑалютны ліміт чаргі запытаў"
@@ -2387,10 +2439,6 @@ msgid "Builtin"
msgstr "Убудаваны"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "РÑльефнае Ñ‚ÑкÑтураванне"
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
@@ -2467,22 +2515,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Змена інтÑрфейÑу галоўнага меню:\n"
-"- full: выбар Ñвету Ð´Ð»Ñ Ð°Ð´Ð·Ñ–Ð½Ð¾Ñ‡Ð½Ð°Ð¹ альбо Ñеткавай гульні, аÑобны ÑÐ¿Ñ–Ñ "
-"чужых Ñервераў.\n"
-"- simple: адзін Ñвет Ð´Ð»Ñ Ð°Ð´Ð·Ñ–Ð½Ð¾Ñ‡Ð½Ð°Ð¹ гульні Ñž меню, дзе ÑÐ¿Ñ–Ñ Ñ‡ÑƒÐ¶Ñ‹Ñ… "
-"Ñервераў; можа быць карыÑна Ð´Ð»Ñ Ð½ÐµÐ²ÐµÐ»Ñ–Ñ‡ÐºÑ–Ñ… Ñкранаў.\n"
-"Прадвызначана: simple Ð´Ð»Ñ Android, full Ð´Ð»Ñ ÑžÑÑ–Ñ… аÑтатніх."
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat font size"
msgstr "Памер шрыфту"
@@ -2648,6 +2680,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "Чорны ÑÐ¿Ñ–Ñ ÑцÑжкоў ContentDB"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "URL ContentDB"
@@ -2708,7 +2744,10 @@ msgid "Crosshair alpha"
msgstr "ПразрыÑтаÑць перакрыжаваннÑ"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "ПразрыÑтаÑць Ð¿ÐµÑ€Ð°ÐºÑ€Ñ‹Ð¶Ð°Ð²Ð°Ð½Ð½Ñ (паміж 0 Ñ– 255)."
#: src/settings_translation_file.cpp
@@ -2716,8 +2755,10 @@ msgid "Crosshair color"
msgstr "Колер перакрыжаваннÑ"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Колер Ð¿ÐµÑ€Ð°ÐºÑ€Ñ‹Ð¶Ð°Ð²Ð°Ð½Ð½Ñ (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2823,14 +2864,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Вызначае размÑшчÑнне Ñ– Ñ€Ñльеф дадатковых пагоркаў Ñ– азёр."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Вызначае крок дыÑкрÑтызацыі Ñ‚ÑкÑтуры.\n"
-"Больш выÑокае значÑнне прыводзіць да больш гладкіх мапаў нармалÑÑž."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Вызначае базавы ўзровень зÑмлі."
@@ -2910,6 +2943,11 @@ msgid "Desynchronize block animation"
msgstr "ДÑÑінхранізаваць анімацыю блока"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Клавіша ўправа"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "ЧаÑціцы пры капанні"
@@ -2972,7 +3010,8 @@ msgid "Enable console window"
msgstr "Уключаць акно канÑолі"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Уключыць творчы Ñ€Ñжым Ð´Ð»Ñ Ð½Ð¾Ð²Ñ‹Ñ… мап."
#: src/settings_translation_file.cpp
@@ -3077,17 +3116,6 @@ msgid "Enables animation of inventory items."
msgstr "Уключае анімацыю прадметаў інвентару."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Уключае Ñ€Ñльефнае Ñ‚ÑкÑтураванне. Мапы нармалÑÑž муÑÑць быць пакункам Ñ‚ÑкÑтур "
-"ці Ñтворанымі аўтаматычна.\n"
-"Патрабуюцца ÑžÐºÐ»ÑŽÑ‡Ð°Ð½Ñ‹Ñ ÑˆÑйдÑры."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Уключае кÑшаванне павернутых вонкі Ñетак."
@@ -3097,22 +3125,6 @@ msgstr "Уключае мінімапу."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Уключае генерацыю мапаў нармалÑÑž лётма (Ñфект Emboss).\n"
-"Патрабуецца Ñ€Ñльефнае Ñ‚ÑкÑтураванне."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Уключае паралакÑнае аклюзіўнае Ñ‚ÑкÑтураванне.\n"
-"Патрабуюцца ÑžÐºÐ»ÑŽÑ‡Ð°Ð½Ñ‹Ñ ÑˆÑйдÑры."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3129,14 +3141,6 @@ msgstr "Метады ÑутнаÑці"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"ЭкÑперыментальны параметр, Ñкі можа прывеÑці да візуальных прагалаў\n"
-"паміж блокамі пры значÑнні большым за 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3146,8 +3150,9 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS у меню паўзы"
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "МакÑімальны FPS, калі Ð³ÑƒÐ»ÑŒÐ½Ñ Ð¿Ñ€Ñ‹Ð¿Ñ‹Ð½ÐµÐ½Ð°Ñ."
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3479,10 +3484,6 @@ msgid "GUI scaling filter txr2img"
msgstr "txr2img-фільтр Ð¼Ð°ÑˆÑ‚Ð°Ð±Ð°Ð²Ð°Ð½Ð½Ñ Ð³Ñ€Ð°Ñ„Ñ–Ñ‡Ð½Ð°Ð³Ð° інтÑрфейÑу"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ñ‹Ñ Ð¼Ð°Ð¿Ñ‹ нармалÑÑž"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Ð“Ð»Ð°Ð±Ð°Ð»ÑŒÐ½Ñ‹Ñ Ð·Ð²Ð°Ñ€Ð¾Ñ‚Ð½Ñ‹Ñ Ð²Ñ‹ÐºÐ»Ñ–ÐºÑ–"
@@ -3543,8 +3544,8 @@ msgstr "Клавіша пераключÑÐ½Ð½Ñ HUD"
#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Ðпрацоўка ÑаÑтарÑлых выклікаў Lua API:\n"
@@ -4072,6 +4073,11 @@ msgid "Joystick button repetition interval"
msgstr "ІнтÑрвал паўтору кнопкі джойÑціка"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "Тып джойÑціка"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "ÐдчувальнаÑць джойÑціка"
@@ -4172,6 +4178,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Клавіша Ñкока.\n"
+"ГлÑдзіце http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4314,6 +4331,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Клавіша Ñкока.\n"
+"ГлÑдзіце http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -5072,10 +5100,6 @@ msgid "Main menu script"
msgstr "Скрыпт галоўнага меню"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Стыль галоўнага меню"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5092,6 +5116,14 @@ msgid "Makes all liquids opaque"
msgstr "Робіць уÑе вадкаÑці непразрыÑтымі"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Каталог мапаў"
@@ -5275,7 +5307,8 @@ msgid "Maximum FPS"
msgstr "МакÑімальны FPS (кадраў за Ñекунду)"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "МакÑімальны FPS, калі Ð³ÑƒÐ»ÑŒÐ½Ñ Ð¿Ñ€Ñ‹Ð¿Ñ‹Ð½ÐµÐ½Ð°Ñ."
#: src/settings_translation_file.cpp
@@ -5336,6 +5369,13 @@ msgstr ""
"Пакінце пуÑтым Ð´Ð»Ñ Ð°ÑžÑ‚Ð°Ð¼Ð°Ñ‚Ñ‹Ñ‡Ð½Ð°Ð³Ð° выбару неабходнага значÑннÑ."
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr "МакÑÑ–Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð»ÑŒÐºÐ°Ñць прымуÑова загружаемых блокаў мапы."
@@ -5593,14 +5633,6 @@ msgid "Noises"
msgstr "Шумы"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "ДыÑкрÑÑ‚Ñ‹Ð·Ð°Ñ†Ñ‹Ñ Ð¼Ð°Ð¿Ñ‹ нармалÑÑž"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Моц мапы нармалÑÑž"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "КолькаÑць узнікаючых патокаў"
@@ -5647,10 +5679,6 @@ msgstr ""
"Ñ– Ñпажываннем памÑці (4096 = 100 МБ, Ñк правіла)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "КолькаÑць Ñ–Ñ‚Ñрацый паралакÑнай аклюзіі."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Сеціўны Ñ€Ñпазіторый"
@@ -5678,34 +5706,6 @@ msgstr ""
"небудзь меню ўжо адкрыта."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "Ðгульны зрух Ñфекту паралакÑнай аклюзіі. Звычайна маштаб/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Ðгульны маштаб Ñфекту паралакÑнай аклюзіі."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "ПаралакÑÐ½Ð°Ñ Ð°ÐºÐ»ÑŽÐ·Ñ–Ñ"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Зрух паралакÑнай аклюзіі"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "ІтÑрацыі паралакÑнай аклюзіі"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "РÑжым паралакÑнай аклюзіі"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "Маштаб паралакÑнай аклюзіі"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5774,6 +5774,16 @@ msgid "Pitch move mode"
msgstr "РÑжым Ð½Ð°Ñ…Ñ–Ð»ÐµÐ½Ð½Ñ Ñ€ÑƒÑ…Ñƒ"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Клавіша палёту"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "ІнтÑрвал паўторнай пÑтрычкі правай кнопкі мышы"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5956,10 +5966,6 @@ msgid "Right key"
msgstr "Клавіша ўправа"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "ІнтÑрвал паўторнай пÑтрычкі правай кнопкі мышы"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "Ð“Ð»Ñ‹Ð±Ñ–Ð½Ñ Ñ€Ñчышча"
@@ -6258,6 +6264,19 @@ msgid "Show entity selection boxes"
msgstr "Паказваць воблаÑць вылучÑннÑ"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Прызначыць мову. Пакіньце пуÑтым, каб выкарыÑтаць мову ÑÑ–ÑÑ‚Ñмы.\n"
+"ПаÑÐ»Ñ Ð·Ð¼ÐµÐ½Ñ‹ мовы патрÑбна перазапуÑціць гульню."
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Паведамленне аб выключÑнні"
@@ -6412,10 +6431,6 @@ msgid "Strength of 3D mode parallax."
msgstr "Моц паралакÑа."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Моц згенераваных мапаў нармалÑÑž."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6522,6 +6537,11 @@ msgid "The URL for the content repository"
msgstr "URL Ñ€ÑпазіторыÑ"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "The deadzone of the joystick"
+msgstr "ІдÑнтыфікатар джойÑціка Ð´Ð»Ñ Ð²Ñ‹ÐºÐ°Ñ€Ñ‹ÑтаннÑ"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6588,13 +6608,14 @@ msgstr ""
"Ðеабходна наладжваць разам з active_object_range."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"The rendering back-end for Irrlicht.\n"
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
"Рухавік адмалёўкі Ð´Ð»Ñ Irrlicht.\n"
"ПаÑÐ»Ñ Ð·Ð¼ÐµÐ½Ñ‹ гÑтага параметра ÑпатрÑбіцца перазупуÑк.\n"
@@ -6635,6 +6656,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6642,10 +6669,10 @@ msgstr ""
"джойÑціка."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
"Ð§Ð°Ñ Ñƒ Ñекундах паміж паўторамі падзей пры ўтрыманні правай кнопкі мышы."
@@ -6808,6 +6835,17 @@ msgstr ""
"Гама-карÑÐºÑ†Ñ‹Ñ Ð¿Ñ€Ñ‹ памÑншÑнні маштабу не падтрымліваецца."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "ВыкарыÑтоўваць трылінейную фільтрацыю пры маштабаванні Ñ‚ÑкÑтур."
@@ -7047,6 +7085,12 @@ msgstr ""
"Ð¿Ð°Ð´Ñ‡Ð°Ñ ÐºÐ°Ð¼Ð¿Ñ–Ð»Ñцыі."
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
"Ці павінна быць паміж блокамі мапы дÑÑÑ–Ð½Ñ…Ñ€Ð°Ð½Ñ–Ð·Ð°Ñ†Ñ‹Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ‹Ñ– Ñ‚ÑкÑтур блокаў."
@@ -7188,6 +7232,24 @@ msgid "Y-level of seabed."
msgstr "Y-узровень марÑкога дна."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "Таймаўт ÑÐ¿Ð°Ð¼Ð¿Ð¾ÑžÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° па cURL"
@@ -7200,180 +7262,336 @@ msgid "cURL timeout"
msgstr "Таймаўт cURL"
#~ msgid ""
-#~ "Map generation attributes specific to Mapgen v5.\n"
-#~ "Flags that are not enabled are not modified from the default.\n"
-#~ "Flags starting with 'no' are used to explicitly disable them."
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
#~ msgstr ""
-#~ "Ðтрыбуты генерацыі мапы Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð°Ñ€Ð° мапы 5.\n"
-#~ "ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ð°Ñ‚Ñ€Ñ‹Ð±ÑƒÑ‚Ñ‹ прадвызначана не змÑнÑюцца.\n"
-#~ "Ðтрыбуты, што пачынаюцца з 'no' выкарыÑтоўваюцца Ð´Ð»Ñ Ñ–Ñ… выключÑннÑ."
+#~ "0 = паралакÑÐ½Ð°Ñ Ð°ÐºÐ»ÑŽÐ·Ñ–Ñ Ñа звеÑткамі аб нахіле (хутка).\n"
+#~ "1 = Ñ€Ñльефнае Ñ‚ÑкÑтураванне (павольней, але ÑкаÑней)."
-#~ msgid "Toggle Cinematic"
-#~ msgstr "КінематаграфічнаÑць"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "Ðаладка гама-ÐºÐ°Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñветлавых табліц. Ð’Ñ‹ÑÐ¾ÐºÑ–Ñ Ð·Ð½Ð°Ñ‡Ñнні — больш "
+#~ "ÑрчÑйшыÑ.\n"
+#~ "ГÑты параметр прызначаны толькі Ð´Ð»Ñ ÐºÐ»Ñ–ÐµÐ½Ñ‚Ð° Ñ– ігнаруецца Ñерверам."
+
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgstr "Кіруе звужÑннем аÑтравоў горнага тыпу ніжÑй ÑÑÑ€ÑднÑй кропкі."
+
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Ð’Ñ‹ ўпÑўненыÑ, што хочаце Ñкінуць Ñвет адзіночнай гульні?"
+
+#~ msgid "Back"
+#~ msgstr "Ðазад"
+
+#~ msgid "Bump Mapping"
+#~ msgstr "ТÑкÑтураванне маÑкамі"
+
+#~ msgid "Bumpmapping"
+#~ msgstr "РÑльефнае Ñ‚ÑкÑтураванне"
+
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "ЦÑнтр ÑÑÑ€ÑднÑга ўздыму крывой ÑвÑтла."
#~ msgid ""
-#~ "Map generation attributes specific to Mapgen Carpathian.\n"
-#~ "Flags that are not enabled are not modified from the default.\n"
-#~ "Flags starting with 'no' are used to explicitly disable them."
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
#~ msgstr ""
-#~ "Ðтрыбуты генерацыі мапы Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð°Ñ€Ð° мапы \"Карпаты\".\n"
-#~ "ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ð°Ñ‚Ñ€Ñ‹Ð±ÑƒÑ‚Ñ‹ прадвызначана не змÑнÑюцца.\n"
-#~ "Ðтрыбуты, што пачынаюцца з \"no\", выкарыÑтоўваюцца Ð´Ð»Ñ Ñ–Ñ… выключÑннÑ."
+#~ "Змена інтÑрфейÑу галоўнага меню:\n"
+#~ "- full: выбар Ñвету Ð´Ð»Ñ Ð°Ð´Ð·Ñ–Ð½Ð¾Ñ‡Ð½Ð°Ð¹ альбо Ñеткавай гульні, аÑобны ÑÐ¿Ñ–Ñ "
+#~ "чужых Ñервераў.\n"
+#~ "- simple: адзін Ñвет Ð´Ð»Ñ Ð°Ð´Ð·Ñ–Ð½Ð¾Ñ‡Ð½Ð°Ð¹ гульні Ñž меню, дзе ÑÐ¿Ñ–Ñ Ñ‡ÑƒÐ¶Ñ‹Ñ… "
+#~ "Ñервераў; можа быць карыÑна Ð´Ð»Ñ Ð½ÐµÐ²ÐµÐ»Ñ–Ñ‡ÐºÑ–Ñ… Ñкранаў.\n"
+#~ "Прадвызначана: simple Ð´Ð»Ñ Android, full Ð´Ð»Ñ ÑžÑÑ–Ñ… аÑтатніх."
+
+#~ msgid "Config mods"
+#~ msgstr "Ðалады мадыфікацый"
+
+#~ msgid "Configure"
+#~ msgstr "Ðаладзіць"
#~ msgid "Content Store"
#~ msgstr "Крама дадаткаў"
-#~ msgid "Select Package File:"
-#~ msgstr "Ðбраць файл пакунка:"
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "Кіруе шчыльнаÑцю горнага Ñ€Ñльефу лÑтучых аÑтравоў.\n"
+#~ "ГÑты зрух дадаецца да значÑÐ½Ð½Ñ 'np_mountain'."
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Y верхнÑга ліміту лавы Ñž шырокіх пÑчорах."
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Кіруе шырынёй тунÑлÑÑž. Меншае значÑнне Ñтварае больш ÑˆÑ‹Ñ€Ð¾ÐºÑ–Ñ Ñ‚ÑƒÐ½Ñлі."
-#~ msgid "Waving Water"
-#~ msgstr "ХвалÑванне вады"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Колер Ð¿ÐµÑ€Ð°ÐºÑ€Ñ‹Ð¶Ð°Ð²Ð°Ð½Ð½Ñ (R,G,B)."
-#~ msgid "Whether dungeons occasionally project from the terrain."
-#~ msgstr "Ð’Ñ‹Ñтуп падзÑмеллÑÑž па-над Ñ€Ñльефам."
+#~ msgid "Darkness sharpness"
+#~ msgstr "РÑзкаÑць цемры"
#~ msgid ""
-#~ "Map generation attributes specific to Mapgen v7.\n"
-#~ "'ridges' enables the rivers.\n"
-#~ "Flags that are not enabled are not modified from the default.\n"
-#~ "Flags starting with 'no' are used to explicitly disable them."
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
#~ msgstr ""
-#~ "Ðтрыбуты генерацыі мапы Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð°Ñ€Ð° мапы 7.\n"
-#~ "Параметр \"ridges\" (хрыбты) ўключае Ñ€Ñкі.\n"
-#~ "ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹ прадвызначана не змÑнÑюцца.\n"
-#~ "Параметры, што пачынаюцца з \"no\", выкарыÑтоўваюцца Ð´Ð»Ñ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÑннÑ."
+#~ "Вызначае воблаÑці гладкага Ñ€Ñльефу лÑтучых аÑтравоў.\n"
+#~ "Ð“Ð»Ð°Ð´ÐºÐ°Ñ Ð¿Ð°Ð²ÐµÑ€Ñ…Ð½Ñ Ð·'ÑўлÑецца, калі шум больш нулÑ."
-#~ msgid "Projecting dungeons"
-#~ msgstr "Праектаванне падзÑмеллÑÑž"
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Вызначае крок дыÑкрÑтызацыі Ñ‚ÑкÑтуры.\n"
+#~ "Больш выÑокае значÑнне прыводзіць да больш гладкіх мапаў нармалÑÑž."
#~ msgid ""
-#~ "If enabled together with fly mode, makes move directions relative to the "
-#~ "player's pitch."
+#~ "Deprecated, define and locate cave liquids using biome definitions "
+#~ "instead.\n"
+#~ "Y of upper limit of lava in large caves."
#~ msgstr ""
-#~ "Калі ўключана адначаÑова з Ñ€Ñжымам палёту, то вызначае напрамак руху "
-#~ "адноÑна кроку гульца."
+#~ "СаÑтарÑлы. Вызначае Ñ– размÑшчае пÑÑ‡Ð¾Ñ€Ð½Ñ‹Ñ Ð²Ð°Ð´ÐºÐ°Ñці з выкарыÑтаннем "
+#~ "азначÑннÑÑž біёму.\n"
+#~ "Y верхнÑй мÑжы лавы Ñž вÑлікіх пÑчорах."
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Y-узровень, да Ñкога раÑпаўÑюджваюцца цені лÑтучых аÑтравоў."
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Спампоўванне Ñ– ÑžÑталёўка $1. Калі лаÑка, пачакайце…"
-#~ msgid "Y-level of floatland midpoint and lake surface."
-#~ msgstr "Y-узровень ÑÑÑ€ÑднÑй кропкі Ñ– паверхні азёр лÑтучых аÑтравоў."
+#~ msgid "Enable VBO"
+#~ msgstr "Уключыць VBO"
-#~ msgid "Waving water"
-#~ msgstr "ХвалÑванне вады"
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "Уключае Ñ€Ñльефнае Ñ‚ÑкÑтураванне. Мапы нармалÑÑž муÑÑць быць пакункам "
+#~ "Ñ‚ÑкÑтур ці Ñтворанымі аўтаматычна.\n"
+#~ "Патрабуюцца ÑžÐºÐ»ÑŽÑ‡Ð°Ð½Ñ‹Ñ ÑˆÑйдÑры."
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Уключае кінематаграфічнае танальнае адлюÑтраванне"
+
+#~ msgid ""
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "ВарыÑÑ†Ñ‹Ñ Ð²Ñ‹ÑˆÑ‹Ð½Ñ– пагоркаў Ñ– глыбінь азёр на гладкай мÑÑцоваÑці лÑтучых "
-#~ "аÑтравоў."
+#~ "Уключае генерацыю мапаў нармалÑÑž лётма (Ñфект Emboss).\n"
+#~ "Патрабуецца Ñ€Ñльефнае Ñ‚ÑкÑтураванне."
#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Ð¢Ñ‹Ð¿Ð¾Ð²Ð°Ñ Ð¼Ð°ÐºÑÑ–Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ñ‹ÑˆÑ‹Ð½Ñ, вышÑй Ñ– ніжÑй ÑÑÑ€ÑднÑй кропкі гор лÑтучых "
-#~ "аÑтравоў."
+#~ "Уключае паралакÑнае аклюзіўнае Ñ‚ÑкÑтураванне.\n"
+#~ "Патрабуюцца ÑžÐºÐ»ÑŽÑ‡Ð°Ð½Ñ‹Ñ ÑˆÑйдÑры."
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "ГÑты шрыфт будзе выкарыÑтоўваецца Ð´Ð»Ñ Ð½ÐµÐºÐ°Ñ‚Ð¾Ñ€Ñ‹Ñ… моў."
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
+#~ msgstr ""
+#~ "ЭкÑперыментальны параметр, Ñкі можа прывеÑці да візуальных прагалаў\n"
+#~ "паміж блокамі пры значÑнні большым за 0."
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "Моц ÑÑÑ€ÑднÑга ўздыму крывой ÑвÑтла."
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS у меню паўзы"
-#~ msgid "Shadow limit"
-#~ msgstr "Ліміт ценÑÑž"
+#~ msgid "Floatland base height noise"
+#~ msgstr "Шум базавай вышыні лÑтучых аÑтравоў"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "ШлÑÑ… да TrueTypeFont ці раÑтравага шрыфту."
+#~ msgid "Floatland mountain height"
+#~ msgstr "Ð’Ñ‹ÑˆÑ‹Ð½Ñ Ð³Ð¾Ñ€ на лÑтучых аÑтравоў"
-#~ msgid "Lightness sharpness"
-#~ msgstr "РÑзкаÑць паваротліваÑці"
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "ПразрыÑтаÑць цені шрыфту (ад 0 да 255)."
-#~ msgid "Lava depth"
-#~ msgstr "Ð“Ð»Ñ‹Ð±Ñ–Ð½Ñ Ð»Ð°Ð²Ñ‹"
+#~ msgid "Gamma"
+#~ msgstr "Гама"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ñ‹Ñ Ð¼Ð°Ð¿Ñ‹ нармалÑÑž"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ñ‹Ñ Ð¼Ð°Ð¿Ñ‹ нармалÑÑž"
#~ msgid "IPv6 support."
#~ msgstr "Падтрымка IPv6."
-#~ msgid "Gamma"
-#~ msgstr "Гама"
+#~ msgid ""
+#~ "If enabled together with fly mode, makes move directions relative to the "
+#~ "player's pitch."
+#~ msgstr ""
+#~ "Калі ўключана адначаÑова з Ñ€Ñжымам палёту, то вызначае напрамак руху "
+#~ "адноÑна кроку гульца."
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "ПразрыÑтаÑць цені шрыфту (ад 0 да 255)."
+#~ msgid "Lava depth"
+#~ msgstr "Ð“Ð»Ñ‹Ð±Ñ–Ð½Ñ Ð»Ð°Ð²Ñ‹"
-#~ msgid "Floatland mountain height"
-#~ msgstr "Ð’Ñ‹ÑˆÑ‹Ð½Ñ Ð³Ð¾Ñ€ на лÑтучых аÑтравоў"
+#~ msgid "Lightness sharpness"
+#~ msgstr "РÑзкаÑць паваротліваÑці"
-#~ msgid "Floatland base height noise"
-#~ msgstr "Шум базавай вышыні лÑтучых аÑтравоў"
+#~ msgid "Limit of emerge queues on disk"
+#~ msgstr "Ðбмежаванне чÑргаў на дыÑку"
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Уключае кінематаграфічнае танальнае адлюÑтраванне"
+#~ msgid "Main"
+#~ msgstr "Галоўнае меню"
-#~ msgid "Enable VBO"
-#~ msgstr "Уключыць VBO"
+#~ msgid "Main menu style"
+#~ msgstr "Стыль галоўнага меню"
#~ msgid ""
-#~ "Deprecated, define and locate cave liquids using biome definitions "
-#~ "instead.\n"
-#~ "Y of upper limit of lava in large caves."
+#~ "Map generation attributes specific to Mapgen Carpathian.\n"
+#~ "Flags that are not enabled are not modified from the default.\n"
+#~ "Flags starting with 'no' are used to explicitly disable them."
#~ msgstr ""
-#~ "СаÑтарÑлы. Вызначае Ñ– размÑшчае пÑÑ‡Ð¾Ñ€Ð½Ñ‹Ñ Ð²Ð°Ð´ÐºÐ°Ñці з выкарыÑтаннем "
-#~ "азначÑннÑÑž біёму.\n"
-#~ "Y верхнÑй мÑжы лавы Ñž вÑлікіх пÑчорах."
+#~ "Ðтрыбуты генерацыі мапы Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð°Ñ€Ð° мапы \"Карпаты\".\n"
+#~ "ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ð°Ñ‚Ñ€Ñ‹Ð±ÑƒÑ‚Ñ‹ прадвызначана не змÑнÑюцца.\n"
+#~ "Ðтрыбуты, што пачынаюцца з \"no\", выкарыÑтоўваюцца Ð´Ð»Ñ Ñ–Ñ… выключÑннÑ."
#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
-#~ msgstr ""
-#~ "Вызначае воблаÑці гладкага Ñ€Ñльефу лÑтучых аÑтравоў.\n"
-#~ "Ð“Ð»Ð°Ð´ÐºÐ°Ñ Ð¿Ð°Ð²ÐµÑ€Ñ…Ð½Ñ Ð·'ÑўлÑецца, калі шум больш нулÑ."
-
-#~ msgid "Darkness sharpness"
-#~ msgstr "РÑзкаÑць цемры"
-
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ "Map generation attributes specific to Mapgen v5.\n"
+#~ "Flags that are not enabled are not modified from the default.\n"
+#~ "Flags starting with 'no' are used to explicitly disable them."
#~ msgstr ""
-#~ "Кіруе шырынёй тунÑлÑÑž. Меншае значÑнне Ñтварае больш ÑˆÑ‹Ñ€Ð¾ÐºÑ–Ñ Ñ‚ÑƒÐ½Ñлі."
+#~ "Ðтрыбуты генерацыі мапы Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð°Ñ€Ð° мапы 5.\n"
+#~ "ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ð°Ñ‚Ñ€Ñ‹Ð±ÑƒÑ‚Ñ‹ прадвызначана не змÑнÑюцца.\n"
+#~ "Ðтрыбуты, што пачынаюцца з 'no' выкарыÑтоўваюцца Ð´Ð»Ñ Ñ–Ñ… выключÑннÑ."
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Map generation attributes specific to Mapgen v7.\n"
+#~ "'ridges' enables the rivers.\n"
+#~ "Flags that are not enabled are not modified from the default.\n"
+#~ "Flags starting with 'no' are used to explicitly disable them."
#~ msgstr ""
-#~ "Кіруе шчыльнаÑцю горнага Ñ€Ñльефу лÑтучых аÑтравоў.\n"
-#~ "ГÑты зрух дадаецца да значÑÐ½Ð½Ñ 'np_mountain'."
+#~ "Ðтрыбуты генерацыі мапы Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð°Ñ€Ð° мапы 7.\n"
+#~ "Параметр \"ridges\" (хрыбты) ўключае Ñ€Ñкі.\n"
+#~ "ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ñ‹Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹ прадвызначана не змÑнÑюцца.\n"
+#~ "Параметры, што пачынаюцца з \"no\", выкарыÑтоўваюцца Ð´Ð»Ñ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÑннÑ."
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "ЦÑнтр ÑÑÑ€ÑднÑга ўздыму крывой ÑвÑтла."
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Мінімапа Ñž Ñ€Ñжыме радару, павелічÑнне Ñ…2"
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
-#~ msgstr "Кіруе звужÑннем аÑтравоў горнага тыпу ніжÑй ÑÑÑ€ÑднÑй кропкі."
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Мінімапа Ñž Ñ€Ñжыме радару, павелічÑнне Ñ…4"
-#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
-#~ msgstr ""
-#~ "Ðаладка гама-ÐºÐ°Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñветлавых табліц. Ð’Ñ‹ÑÐ¾ÐºÑ–Ñ Ð·Ð½Ð°Ñ‡Ñнні — больш "
-#~ "ÑрчÑйшыÑ.\n"
-#~ "ГÑты параметр прызначаны толькі Ð´Ð»Ñ ÐºÐ»Ñ–ÐµÐ½Ñ‚Ð° Ñ– ігнаруецца Ñерверам."
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Мінімапа Ñž Ñ€Ñжыме паверхні, павелічÑнне Ñ…2"
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Каталог Ð´Ð»Ñ Ð·Ð°Ñ…Ð¾ÑžÐ²Ð°Ð½Ð½Ñ Ð·Ð´Ñ‹Ð¼ÐºÐ°Ñž Ñкрана."
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Мінімапа Ñž Ñ€Ñжыме паверхні, павелічÑнне Ñ…4"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "ІнтÑнÑіўнаÑць паралакÑнай аклюзіі"
+#~ msgid "Name/Password"
+#~ msgstr "ІмÑ/Пароль"
-#~ msgid "Limit of emerge queues on disk"
-#~ msgstr "Ðбмежаванне чÑргаў на дыÑку"
+#~ msgid "No"
+#~ msgstr "Ðе"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Спампоўванне Ñ– ÑžÑталёўка $1. Калі лаÑка, пачакайце…"
+#~ msgid "Normalmaps sampling"
+#~ msgstr "ДыÑкрÑÑ‚Ñ‹Ð·Ð°Ñ†Ñ‹Ñ Ð¼Ð°Ð¿Ñ‹ нармалÑÑž"
-#~ msgid "Back"
-#~ msgstr "Ðазад"
+#~ msgid "Normalmaps strength"
+#~ msgstr "Моц мапы нармалÑÑž"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "КолькаÑць Ñ–Ñ‚Ñрацый паралакÑнай аклюзіі."
#~ msgid "Ok"
#~ msgstr "Добра"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "Ðгульны зрух Ñфекту паралакÑнай аклюзіі. Звычайна маштаб/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Ðгульны маштаб Ñфекту паралакÑнай аклюзіі."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "ПаралакÑÐ½Ð°Ñ Ð°ÐºÐ»ÑŽÐ·Ñ–Ñ"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "ПаралакÑÐ½Ð°Ñ Ð°ÐºÐ»ÑŽÐ·Ñ–Ñ"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Зрух паралакÑнай аклюзіі"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "ІтÑрацыі паралакÑнай аклюзіі"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "РÑжым паралакÑнай аклюзіі"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Маштаб паралакÑнай аклюзіі"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "ІнтÑнÑіўнаÑць паралакÑнай аклюзіі"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "ШлÑÑ… да TrueTypeFont ці раÑтравага шрыфту."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Каталог Ð´Ð»Ñ Ð·Ð°Ñ…Ð¾ÑžÐ²Ð°Ð½Ð½Ñ Ð·Ð´Ñ‹Ð¼ÐºÐ°Ñž Ñкрана."
+
+#~ msgid "Projecting dungeons"
+#~ msgstr "Праектаванне падзÑмеллÑÑž"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Скінуць Ñвет адзіночнай гульні"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Ðбраць файл пакунка:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "Ліміт ценÑÑž"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Пачаць адзіночную гульню"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Моц згенераваных мапаў нармалÑÑž."
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "Моц ÑÑÑ€ÑднÑга ўздыму крывой ÑвÑтла."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "ГÑты шрыфт будзе выкарыÑтоўваецца Ð´Ð»Ñ Ð½ÐµÐºÐ°Ñ‚Ð¾Ñ€Ñ‹Ñ… моў."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "КінематаграфічнаÑць"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr ""
+#~ "Ð¢Ñ‹Ð¿Ð¾Ð²Ð°Ñ Ð¼Ð°ÐºÑÑ–Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ñ‹ÑˆÑ‹Ð½Ñ, вышÑй Ñ– ніжÑй ÑÑÑ€ÑднÑй кропкі гор лÑтучых "
+#~ "аÑтравоў."
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr ""
+#~ "ВарыÑÑ†Ñ‹Ñ Ð²Ñ‹ÑˆÑ‹Ð½Ñ– пагоркаў Ñ– глыбінь азёр на гладкай мÑÑцоваÑці лÑтучых "
+#~ "аÑтравоў."
+
+#~ msgid "Waving Water"
+#~ msgstr "ХвалÑванне вады"
+
+#~ msgid "Waving water"
+#~ msgstr "ХвалÑванне вады"
+
+#~ msgid "Whether dungeons occasionally project from the terrain."
+#~ msgstr "Ð’Ñ‹Ñтуп падзÑмеллÑÑž па-над Ñ€Ñльефам."
+
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Y верхнÑга ліміту лавы Ñž шырокіх пÑчорах."
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr "Y-узровень ÑÑÑ€ÑднÑй кропкі Ñ– паверхні азёр лÑтучых аÑтравоў."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Y-узровень, да Ñкога раÑпаўÑюджваюцца цені лÑтучых аÑтравоў."
+
+#~ msgid "Yes"
+#~ msgstr "Так"
diff --git a/po/fil/minetest.po b/po/bg/minetest.po
index c78b043ed..62011a94a 100644
--- a/po/fil/minetest.po
+++ b/po/bg/minetest.po
@@ -1,81 +1,78 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the minetest package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
msgid ""
msgstr ""
-"Project-Id-Version: Filipino (Minetest)\n"
+"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-01-11 18:26+0000\n"
-"Last-Translator: rubenwardy <rubenwardy@gmail.com>\n"
-"Language-Team: Filipino <https://hosted.weblate.org/projects/minetest/"
-"minetest/fil/>\n"
-"Language: fil\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-08-04 04:41+0000\n"
+"Last-Translator: atomicbeef <teddyg522@gmail.com>\n"
+"Language-Team: Bulgarian <https://hosted.weblate.org/projects/minetest/"
+"minetest/bg/>\n"
+"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 "
-"|| n % 10 == 6 || n % 10 == 9);\n"
-"X-Generator: Weblate 3.10.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.2-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
-msgstr ""
+msgstr "Прераждането"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "You died"
-msgstr ""
+msgstr "Ти умрÑ"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "Добре"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
-msgstr ""
+msgstr "Имаше грешка в Lua Ñкрипт:"
#: builtin/fstk/ui.lua
msgid "An error occurred:"
-msgstr ""
+msgstr "Имаше грешка:"
#: builtin/fstk/ui.lua
msgid "Main menu"
-msgstr ""
+msgstr "Главното меню"
#: builtin/fstk/ui.lua
msgid "Reconnect"
-msgstr ""
+msgstr "ПовтарÑне на връзката"
#: builtin/fstk/ui.lua
msgid "The server has requested a reconnect:"
-msgstr ""
-
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr ""
+msgstr "Сървърт поиÑка нова връзка:"
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
-msgstr ""
+msgstr "ВерÑиÑта на протокола е грешна. "
#: builtin/mainmenu/common.lua
msgid "Server enforces protocol version $1. "
-msgstr ""
+msgstr "Сървърт налага верÑÐ¸Ñ $1 на протокола. "
#: builtin/mainmenu/common.lua
msgid "Server supports protocol versions between $1 and $2. "
-msgstr ""
-
-#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
+msgstr "Сървърът Ð¿Ð¾Ð´ÐºÑ€ÐµÐ¿Ñ Ð²ÐµÑ€Ñии на протокола между $1 и $2. "
#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
-msgstr ""
+msgstr "Ðие Ñамо подкрепÑме верÑÐ¸Ñ $1 на протокола."
#: builtin/mainmenu/common.lua
msgid "We support protocol versions between version $1 and $2."
-msgstr ""
+msgstr "Ðие подкрепÑме верÑии на протокола между $1 и $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -83,372 +80,448 @@ msgstr ""
#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
#: src/gui/guiPasswordChange.cpp
msgid "Cancel"
-msgstr ""
+msgstr "Отказ"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
-msgstr ""
+msgstr "ЗавиÑимоÑти:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Disable all"
-msgstr ""
+msgstr "Деактивиране на вÑички"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Disable modpack"
-msgstr ""
+msgstr "Деактивиране на модпака"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable all"
-msgstr ""
+msgstr "Ðктиривране на вÑички"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable modpack"
-msgstr ""
+msgstr "Ðктивиране на модпака"
#: builtin/mainmenu/dlg_config_world.lua
msgid ""
"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
"characters [a-z0-9_] are allowed."
msgstr ""
+"Ðктивиране на мода \"$1\" беше неуÑпешно, защото Ñъдържа забранени Ñимволи. "
+"Само Ñимволите [a-z0-9_] Ñа разрешени."
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "Ðамиране на Още Модове"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
-msgstr ""
+msgstr "Мод:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No (optional) dependencies"
-msgstr ""
+msgstr "ÐÑма (незадължителни) завиÑимоÑти"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No game description provided."
-msgstr ""
+msgstr "ÐÑма опиÑание за играта."
#: builtin/mainmenu/dlg_config_world.lua
msgid "No hard dependencies"
-msgstr ""
+msgstr "ÐÑма задължителни завиÑимоÑти"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No modpack description provided."
-msgstr ""
+msgstr "ÐÑма опиÑание за модпака."
#: builtin/mainmenu/dlg_config_world.lua
msgid "No optional dependencies"
-msgstr ""
+msgstr "ÐÑма незадължителни завиÑимоÑти"
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
msgid "Optional dependencies:"
-msgstr ""
+msgstr "Ðезадължителни завиÑимоÑти:"
#: builtin/mainmenu/dlg_config_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
msgid "Save"
-msgstr ""
+msgstr "ЗапиÑване"
#: builtin/mainmenu/dlg_config_world.lua
msgid "World:"
-msgstr ""
+msgstr "СвÑÑ‚:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "enabled"
+msgstr "Ðктивиран"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "ИзтеглÑ..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
+msgstr "Ð’Ñички пакети"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
+msgstr "Обратно към Главното Меню"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "ContentDB не е налично когато Minetest е ÑÑŠÑтавен без cURL"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Downloading..."
-msgstr ""
+msgstr "ИзтеглÑ..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
-msgstr ""
+msgstr "ИзтеглÑнето на $1 беше неуÑпешно"
#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
-msgstr ""
+msgstr "Игри"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Install"
-msgstr ""
+msgstr "ИнÑталиране"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "ИнÑталиране"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Ðезадължителни завиÑимоÑти:"
#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
-msgstr ""
+msgstr "Модове"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No packages could be retrieved"
-msgstr ""
+msgstr "Получаване на пакети беше неуÑпешно"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No results"
+msgstr "ÐÑма резултати"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "No updates"
+msgstr "ÐктуализациÑ"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
+msgid "Overwrite"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Texture packs"
+msgid "Please check that the base game is correct."
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Uninstall"
+msgid "Queued"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Texture packs"
+msgstr "Пакети на текÑтури"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Uninstall"
+msgstr "ДеинÑталиране"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Update"
+msgstr "ÐктуализациÑ"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Update All [$1]"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
-msgstr ""
+msgstr "Вече има ÑвÑÑ‚ Ñ Ð¸Ð¼ÐµÑ‚Ð¾ \"$1\""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "Допълнителен терен"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
-msgstr ""
+msgstr "Студ от виÑочина"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Altitude dry"
-msgstr ""
+msgstr "Сух от виÑочина"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biome blending"
-msgstr ""
+msgstr "СмеÑване между природни зони"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biomes"
-msgstr ""
+msgstr "Природни зони"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caverns"
-msgstr ""
+msgstr "Пещери"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caves"
-msgstr ""
+msgstr "Пещери"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
-msgstr ""
+msgstr "Създаване"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Decorations"
-msgstr ""
+msgstr "УкраÑи"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
-msgstr ""
+msgstr "ИзтеглÑне на игра, например Minetest Game, от minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download one from minetest.net"
-msgstr ""
+msgstr "Изтегли един от minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Dungeons"
-msgstr ""
+msgstr "Тъмници"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "Равен терен"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
-msgstr ""
+msgstr "Земни маÑи в небето"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floatlands (experimental)"
-msgstr ""
+msgstr "Земни маÑи в небето (екÑпериментално)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
-msgstr ""
+msgstr "Игра"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Създаване на нефрактален терен: Морета и под земÑта"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "Хълми"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Humid rivers"
-msgstr ""
+msgstr "Влажни реки"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "ÐараÑтва влажноÑÑ‚ около реки"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "Езера"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "ÐиÑка влажноÑÑ‚ и виÑока топлина причинÑва ниÑки или Ñухи реки"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
-msgstr ""
+msgstr "Създаване на Ñвета"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen flags"
-msgstr ""
+msgstr "Флагове за Ñъздаване на Ñвета"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mapgen-specific flags"
-msgstr ""
+msgstr "Флагове ÑпеÑифични за Ñъздване на Ñвета"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mountains"
-msgstr ""
+msgstr "Планини"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "Кален поток"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "Мрежа от тунели и пещери"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
-msgstr ""
+msgstr "ÐÑма избрана игра"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "ÐамалÑва топлина Ñ Ð²Ð¸Ñочина"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "ÐамалÑва влажноÑÑ‚ Ñ Ð²Ð¸Ñочина"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Rivers"
-msgstr ""
+msgstr "Реки"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "Реки на морÑкото ниво"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Seed"
-msgstr ""
+msgstr "Семе"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "Гладка промÑна между природни зони"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
+"ПоÑвÑване на Ñтруктури на терена (нÑма ефект на трева от джунгла и дървета "
+"Ñъздадени от v6)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "ПоÑвÑване на Ñтруктури на терена, типично дървета и раÑтениÑ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
-msgstr ""
+msgstr "Умерен, ПуÑтинÑ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgstr "Умерен, ПуÑтинÑ, Джунгла"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "Умерен, ПуÑтинÑ, Джунгла, Тундра, Тайга"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Terrain surface erosion"
-msgstr ""
+msgstr "Ð•Ñ€Ð¾Ð·Ð¸Ñ Ð½Ð° повърхноÑÑ‚ на терен"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "Трева в джунглата и дървета"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Vary river depth"
-msgstr ""
+msgstr "Вариране на дълбочина на реки"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "Много големи пещери дълбоко под земÑта"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Warning: The Development Test is meant for developers."
-msgstr ""
+msgstr "Внимание: ТеÑтът за Развитие е предназначен за разработници."
#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
-msgstr ""
+msgstr "Име на Ñвета"
#: builtin/mainmenu/dlg_create_world.lua
msgid "You have no games installed."
-msgstr ""
+msgstr "ÐÑмаш инÑалирани игри."
#: builtin/mainmenu/dlg_delete_content.lua
msgid "Are you sure you want to delete \"$1\"?"
-msgstr ""
+msgstr "Сигурен ли Ñи че иÑкаш да изтриваш \"$1\"?"
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua
#: src/client/keycode.cpp
msgid "Delete"
-msgstr ""
+msgstr "Изтриване"
#: builtin/mainmenu/dlg_delete_content.lua
msgid "pkgmgr: failed to delete \"$1\""
-msgstr ""
+msgstr "pkgmgr: Изтриване на \"$1\" беше неуÑпешно"
#: builtin/mainmenu/dlg_delete_content.lua
msgid "pkgmgr: invalid path \"$1\""
-msgstr ""
+msgstr "pkgmgr: Грешна пътека \"$1\""
#: builtin/mainmenu/dlg_delete_world.lua
msgid "Delete World \"$1\"?"
-msgstr ""
+msgstr "Да изтриe ли Ñвета \"$1\"?"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid "Accept"
-msgstr ""
+msgstr "Приемане"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid "Rename Modpack:"
-msgstr ""
+msgstr "Преименуване на модпак:"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid ""
"This modpack has an explicit name given in its modpack.conf which will "
"override any renaming here."
msgstr ""
+"Този модпак има изрично име дадено в Ð½ÐµÐ³Ð¾Ð²Ð¸Ñ modpack.conf, което ще Ð¾Ñ‚Ð¼ÐµÐ½Ñ "
+"вÑÑко преименуване тука."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "(No description of setting given)"
@@ -463,12 +536,13 @@ msgid "< Back to Settings page"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+#, fuzzy
msgid "Browse"
-msgstr ""
+msgstr "Преглеждане"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Disabled"
-msgstr ""
+msgstr "Изключено"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Edit"
@@ -476,7 +550,7 @@ msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Enabled"
-msgstr ""
+msgstr "Включено"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Lacunarity"
@@ -488,7 +562,7 @@ msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
msgid "Offset"
-msgstr ""
+msgstr "ИзмеÑтване"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Persistance"
@@ -507,8 +581,13 @@ msgid "Restore Default"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
+#, fuzzy
msgid "Scale"
-msgstr ""
+msgstr "Мащаб"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "ТърÑене"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
@@ -535,8 +614,9 @@ msgid "X"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+#, fuzzy
msgid "X spread"
-msgstr ""
+msgstr "РазпроÑтранение на Ð¥-оÑта"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Y"
@@ -544,7 +624,7 @@ msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Y spread"
-msgstr ""
+msgstr "РазпроÑтранение на У-оÑта"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Z"
@@ -625,6 +705,20 @@ msgstr ""
msgid "Unable to install a modpack as a $1"
msgstr ""
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Зарежда..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Опитай да включиш Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸Ñ ÑпиÑък на Ñървъри отново и Ñи провай интернет "
+"връзката."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -678,6 +772,16 @@ msgid "Credits"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr ""
@@ -694,14 +798,10 @@ msgid "Bind Address"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr ""
@@ -718,7 +818,7 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
+msgid "Name"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -730,6 +830,10 @@ msgid "No world created or selected!"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr ""
@@ -738,6 +842,10 @@ msgid "Port"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr ""
@@ -753,23 +861,23 @@ msgstr ""
msgid "Address / Port"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr ""
@@ -777,16 +885,16 @@ msgstr ""
msgid "Join Game"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr ""
@@ -815,10 +923,6 @@ msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
@@ -826,10 +930,6 @@ msgstr ""
msgid "Bilinear Filter"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr ""
@@ -843,10 +943,6 @@ msgid "Fancy Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr ""
@@ -855,10 +951,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr ""
@@ -886,19 +978,11 @@ msgstr ""
msgid "Opaque Water"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr ""
@@ -911,6 +995,11 @@ msgid "Shaders"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Земни маÑи в небето (екÑпериментално)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -954,22 +1043,6 @@ msgstr ""
msgid "Waving Plants"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr ""
@@ -1040,7 +1113,7 @@ msgstr ""
#. When in doubt, test your translation.
#: src/client/fontengine.cpp
msgid "needs_fallback_font"
-msgstr "yes"
+msgstr "no"
#: src/client/game.cpp
msgid ""
@@ -1129,13 +1202,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1257,34 +1330,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1676,6 +1721,24 @@ msgstr ""
msgid "Zoom"
msgstr ""
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr ""
@@ -1881,7 +1944,7 @@ msgstr ""
#. language code (e.g. "de" for German).
#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp
msgid "LANG_CODE"
-msgstr "fil"
+msgstr "bg"
#: src/settings_translation_file.cpp
msgid ""
@@ -1920,12 +1983,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2032,6 +2089,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2265,10 +2326,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2339,16 +2396,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2500,6 +2547,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2556,7 +2607,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2564,7 +2617,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2664,12 +2719,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2740,6 +2789,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2800,7 +2853,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2888,14 +2941,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2905,18 +2950,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2933,12 +2966,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -2948,7 +2975,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3250,10 +3277,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3307,8 +3330,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3775,6 +3798,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3855,6 +3882,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -3954,6 +3988,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4510,10 +4551,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4527,6 +4564,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4690,7 +4735,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4739,6 +4784,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -4968,14 +5020,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5001,10 +5045,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5030,34 +5070,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5123,6 +5135,14 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5278,10 +5298,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5533,6 +5549,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5662,10 +5688,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5759,6 +5781,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5817,8 +5843,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5844,15 +5870,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -5988,6 +6019,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6190,6 +6232,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6312,6 +6360,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6322,3 +6388,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "cURL timeout"
msgstr ""
+
+#~ msgid "View"
+#~ msgstr "Гледане"
diff --git a/po/ca/minetest.po b/po/ca/minetest.po
index 5ce219f7f..f9aecf265 100644
--- a/po/ca/minetest.po
+++ b/po/ca/minetest.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Catalan (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/minetest/"
@@ -49,10 +49,6 @@ msgstr "Torneu a connectar"
msgid "The server has requested a reconnect:"
msgstr "El servidor ha sol·licitat una reconnexió:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Carregant ..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Desajust de la versió del protocol. "
@@ -67,12 +63,6 @@ msgstr ""
"El servidor es compatible amb les versions de protocol entre $ 1 i $ 2 . "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Intenta tornar a habilitar la llista de servidors públics i comprovi la seva "
-"connexió a Internet ."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Nosaltres sols suportem la versió $1 del protocol."
@@ -80,7 +70,8 @@ msgstr "Nosaltres sols suportem la versió $1 del protocol."
msgid "We support protocol versions between version $1 and $2."
msgstr "Nosaltres suportem versions del protocol entre la versió $1 i la $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -90,7 +81,8 @@ msgstr "Nosaltres suportem versions del protocol entre la versió $1 i la $2."
msgid "Cancel"
msgstr "Cancel·lar"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Dependències:"
@@ -172,15 +164,56 @@ msgid "enabled"
msgstr "Activat"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Carregant ..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
+msgid "Already installed"
+msgstr "La tecla s'està utilitzant"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
msgid "Back to Main Menu"
msgstr "Menú principal"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Ocultar Joc"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -204,6 +237,16 @@ msgid "Install"
msgstr "Instal·lar"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Instal·lar"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Dependències opcionals:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mods"
@@ -217,9 +260,24 @@ msgid "No results"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Buscar"
+msgid "No updates"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
@@ -236,7 +294,11 @@ msgid "Update"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -549,6 +611,10 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Buscar"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select directory"
msgstr "Selecciona el fitxer del mod:"
@@ -683,6 +749,20 @@ msgstr "Error al instal·lar $1 en $2"
msgid "Unable to install a modpack as a $1"
msgstr "Error al instal·lar $1 en $2"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Carregant ..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Intenta tornar a habilitar la llista de servidors públics i comprovi la seva "
+"connexió a Internet ."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -743,6 +823,17 @@ msgid "Credits"
msgstr "Crèdits"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Selecciona el fitxer del mod:"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Antics Col·laboradors"
@@ -759,14 +850,10 @@ msgid "Bind Address"
msgstr "Adreça BIND"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Configurar"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Mode Creatiu"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Permetre Danys"
@@ -785,8 +872,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Nom/Contrasenya"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -797,6 +884,11 @@ msgid "No world created or selected!"
msgstr "No s'ha creat ningun món o no s'ha seleccionat!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Nova contrasenya"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Jugar Joc"
@@ -805,6 +897,11 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Seleccionar un món:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Seleccionar un món:"
@@ -821,23 +918,23 @@ msgstr "Ocultar Joc"
msgid "Address / Port"
msgstr "Adreça / Port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Connectar"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Mode creatiu"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Dany activat"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Esborra preferit"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Preferit"
@@ -846,16 +943,16 @@ msgstr "Preferit"
msgid "Join Game"
msgstr "Ocultar Joc"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Nom / Contrasenya"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP activat"
@@ -885,10 +982,6 @@ msgid "Antialiasing:"
msgstr "Suavitzat (Antialiasing):"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Esteu segur que voleu reiniciar el seu món d'un sol jugador?"
-
-#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "Autosave Screen Size"
msgstr "Desar automàticament mesures de la pantalla"
@@ -897,10 +990,6 @@ msgstr "Desar automàticament mesures de la pantalla"
msgid "Bilinear Filter"
msgstr "Filtre Bilineal"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Mapat de relleu"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Configurar Controls"
@@ -914,11 +1003,6 @@ msgid "Fancy Leaves"
msgstr "Fulles Boniques"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
-msgid "Generate Normal Maps"
-msgstr "Generar Mapes Normals"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmap"
@@ -927,10 +1011,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap + Aniso. Filtre"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "No"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Sense Filtre"
@@ -958,20 +1038,11 @@ msgstr "Fulles opaques"
msgid "Opaque Water"
msgstr "Aigua opaca"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Oclusió de paral·laxi"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Partícules"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
-msgid "Reset singleplayer world"
-msgstr "Reiniciar el mon individual"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Pantalla:"
@@ -984,6 +1055,10 @@ msgid "Shaders"
msgstr "Ombres"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr ""
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -1029,22 +1104,6 @@ msgstr "Moviment de les Fulles"
msgid "Waving Plants"
msgstr "Moviment de Plantes"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Sí"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Configurar mods"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Principal"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Començar Un Jugador"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Temps d'espera de la connexió esgotat."
@@ -1217,13 +1276,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1375,34 +1434,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1807,6 +1838,24 @@ msgstr "X Botó 2"
msgid "Zoom"
msgstr "Zoom"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Les contrasenyes no coincideixen!"
@@ -2072,14 +2121,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = oclusió de la paral.laxi amb informació d'inclinació (més ràpid).\n"
-"1 = mapa de relleu (més lent, més precís)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2199,6 +2240,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "Absolute limit of queued blocks to emerge"
msgstr "Límit absolut de cues emergents"
@@ -2447,10 +2492,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Mapat de relleu"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2527,16 +2568,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat font size"
msgstr "Mida del chunk"
@@ -2702,6 +2733,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "Continuar"
@@ -2764,7 +2799,9 @@ msgid "Crosshair alpha"
msgstr "Punt de mira Alpha"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2772,8 +2809,10 @@ msgid "Crosshair color"
msgstr "Color del punt de mira"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Color del punt de mira (R, G, B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2878,12 +2917,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2956,6 +2989,11 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
+msgid "Dig key"
+msgstr "Tecla dreta"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Digging particles"
msgstr "Partícules"
@@ -3017,7 +3055,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3105,14 +3143,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -3122,18 +3152,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3150,12 +3168,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3165,7 +3177,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3471,10 +3483,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3530,8 +3538,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -4006,6 +4014,10 @@ msgid "Joystick button repetition interval"
msgstr "Interval de repetició del click dret"
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "Joystick frustum sensitivity"
msgstr "Sensibilitat del ratolí"
@@ -4095,6 +4107,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tecla per botar.\n"
+"Veure http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4232,6 +4255,17 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tecla per botar.\n"
+"Veure http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4954,11 +4988,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Menú principal"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4972,6 +5001,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -5144,7 +5181,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -5193,6 +5230,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5423,14 +5467,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5456,10 +5492,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5485,35 +5517,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "Oclusió de paral·laxi"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5580,6 +5583,16 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Tecla mode cinematogràfic"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "Interval de repetició del click dret"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5737,10 +5750,6 @@ msgid "Right key"
msgstr "Tecla dreta"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Interval de repetició del click dret"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -6015,6 +6024,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -6150,10 +6169,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6248,6 +6263,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6306,8 +6325,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6332,6 +6351,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"The time in seconds it takes between repeated events\n"
@@ -6343,9 +6368,8 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
"El temps en segons que es pren entre la repetició de clicks drets quan "
"s'està mantenint el botó dret del ratolí."
@@ -6485,6 +6509,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6692,6 +6727,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6818,6 +6859,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6829,19 +6888,12 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Activar Cinematogràfic"
-
-#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "Selecciona el fitxer del mod:"
-
-#~ msgid "Enable VBO"
-#~ msgstr "Activar VBO"
-
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
#~ msgstr ""
-#~ "Controla l'amplada dels túnels, un valor més petit crea túnels més amples."
+#~ "0 = oclusió de la paral.laxi amb informació d'inclinació (més ràpid).\n"
+#~ "1 = mapa de relleu (més lent, més precís)."
#, fuzzy
#~ msgid ""
@@ -6853,12 +6905,78 @@ msgstr ""
#~ "petits n'augmentaràn la brillantor.\n"
#~ "Aquesta configuració només afecta al client, el servidor l'ignora."
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Esteu segur que voleu reiniciar el seu món d'un sol jugador?"
+
+#~ msgid "Back"
+#~ msgstr "Enrere"
+
+#~ msgid "Bump Mapping"
+#~ msgstr "Mapat de relleu"
+
+#~ msgid "Bumpmapping"
+#~ msgstr "Mapat de relleu"
+
+#~ msgid "Config mods"
+#~ msgstr "Configurar mods"
+
+#~ msgid "Configure"
+#~ msgstr "Configurar"
+
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Controla l'amplada dels túnels, un valor més petit crea túnels més amples."
+
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Color del punt de mira (R, G, B)."
+
#, fuzzy
#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr "Descarregant $1, si us plau esperi ..."
-#~ msgid "Back"
-#~ msgstr "Enrere"
+#~ msgid "Enable VBO"
+#~ msgstr "Activar VBO"
+
+#, fuzzy
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Generar Mapes Normals"
+
+#~ msgid "Main"
+#~ msgstr "Principal"
+
+#, fuzzy
+#~ msgid "Main menu style"
+#~ msgstr "Menú principal"
+
+#~ msgid "Name/Password"
+#~ msgstr "Nom/Contrasenya"
+
+#~ msgid "No"
+#~ msgstr "No"
#~ msgid "Ok"
#~ msgstr "D'acord"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Oclusió de paral·laxi"
+
+#, fuzzy
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Oclusió de paral·laxi"
+
+#, fuzzy
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Reiniciar el mon individual"
+
+#, fuzzy
+#~ msgid "Select Package File:"
+#~ msgstr "Selecciona el fitxer del mod:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Començar Un Jugador"
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Activar Cinematogràfic"
+
+#~ msgid "Yes"
+#~ msgstr "Sí"
diff --git a/po/cs/minetest.po b/po/cs/minetest.po
index f710ac43f..1bb3a4336 100644
--- a/po/cs/minetest.po
+++ b/po/cs/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Czech (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-07-08 20:47+0000\n"
-"Last-Translator: sfan5 <sfan5@live.de>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-03 04:31+0000\n"
+"Last-Translator: Vít Skalický <vit.skalicky@email.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/minetest/minetest/"
"cs/>\n"
"Language: cs\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -24,7 +24,7 @@ msgstr "Zemřel jsi"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -46,10 +46,6 @@ msgstr "Znovu se připojit"
msgid "The server has requested a reconnect:"
msgstr "Server vyžaduje znovupřipojení se:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Nahrávám..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Neshoda verze protokolu. "
@@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Server podporuje verze protokolů mezi $1 a $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Zkuste znovu povolit seznam veřejných serverů a zkontrolujte své internetové "
-"připojení."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Podporujeme pouze protokol verze $1."
@@ -76,7 +66,8 @@ msgstr "Podporujeme pouze protokol verze $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Podporujeme verze protokolů mezi $1 a $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Podporujeme verze protokolů mezi $1 a $2."
msgid "Cancel"
msgstr "Zrušit"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Závislosti:"
@@ -116,7 +108,7 @@ msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "Najít více modů"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -160,14 +152,56 @@ msgid "enabled"
msgstr "zapnuto"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" již existuje. Chcete jej přepsat?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 od $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 se stahuje,\n"
+"$2 Äeká ve frontÄ›"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 se stahuje..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "VÅ¡echny balíÄky"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Klávesa je již používána"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Zpět do hlavní nabídky"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Založit hru"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -190,6 +224,16 @@ msgid "Install"
msgstr "Instalovat"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Instalovat"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Volitelné závislosti:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mody"
@@ -203,9 +247,25 @@ msgid "No results"
msgstr "Žádné výsledky"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Hledat"
+#, fuzzy
+msgid "No updates"
+msgstr "Aktualizovat"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -220,7 +280,11 @@ msgid "Update"
msgstr "Aktualizovat"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -531,6 +595,10 @@ msgid "Scale"
msgstr "Přiblížení"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Hledat"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Vyberte adresář"
@@ -648,6 +716,21 @@ msgstr "Selhala instalace rozšíření $1"
msgid "Unable to install a modpack as a $1"
msgstr "Selhala instalace rozšíření $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Nahrávám..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Uživatelské skripty nejsou povoleny"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Zkuste znovu povolit seznam veřejných serverů a zkontrolujte své internetové "
+"připojení."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Procházet online obsah"
@@ -701,6 +784,17 @@ msgid "Credits"
msgstr "Autoři"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Vyberte adresář"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Bývalí přispěvatelé"
@@ -717,14 +811,10 @@ msgid "Bind Address"
msgstr "Poslouchat na Adrese"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Nastavit"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Kreativní mód"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Povolit zranění"
@@ -741,8 +831,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Jméno/Heslo"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -753,6 +843,11 @@ msgid "No world created or selected!"
msgstr "Žádný svět nebyl vytvořen ani vybrán!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Nové heslo"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Spustit hru"
@@ -761,6 +856,11 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Vyberte svět:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Vyberte svět:"
@@ -776,23 +876,23 @@ msgstr "Spustit hru"
msgid "Address / Port"
msgstr "Adresa / Port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Připojit"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Kreativní mód"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Zranění povoleno"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Smazat oblíbené"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Oblíbené"
@@ -800,16 +900,16 @@ msgstr "Oblíbené"
msgid "Join Game"
msgstr "Připojit se ke hře"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Jméno / Heslo"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP (hrÃ¡Ä proti hráÄi) povoleno"
@@ -838,10 +938,6 @@ msgid "Antialiasing:"
msgstr "Antialiasing:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Jste si jisti, že chcete resetovat místní svět?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Pamatovat si velikost obrazovky"
@@ -849,10 +945,6 @@ msgstr "Pamatovat si velikost obrazovky"
msgid "Bilinear Filter"
msgstr "Bilineární filtr"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Bump mapping"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Změnit klávesy"
@@ -866,10 +958,6 @@ msgid "Fancy Leaves"
msgstr "Vícevrstevné listí"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Generovat Normální Mapy"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmapy zapnuté"
@@ -878,10 +966,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmapy + anizotropní filtr"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Ne"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Filtrování vypnuto"
@@ -909,19 +993,11 @@ msgstr "Neprůhledné listí"
msgid "Opaque Water"
msgstr "Neprůhledná voda"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Parallax occlusion"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Částice"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Reset místního světa"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Obrazovka:"
@@ -934,6 +1010,11 @@ msgid "Shaders"
msgstr "Shadery"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Výška létajících ostrovů"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Shadery (není dostupné)"
@@ -977,22 +1058,6 @@ msgstr "Vlnění Kapalin"
msgid "Waving Plants"
msgstr "Vlnění rostlin"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Ano"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Nastavení modů"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Hlavní nabídka"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Start místní hry"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "VyprÅ¡el Äasový limit pÅ™ipojení."
@@ -1148,20 +1213,20 @@ msgid "Continue"
msgstr "PokraÄovat"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1309,34 +1374,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Minimapa je aktuálně zakázána"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Minimapa je skryta"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Minimapa v režimu radar, Přiblížení x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Minimapa v režimu radar, Přiblížení x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Minimapa v režimu radar, Přiblížení x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Minimapa v režimu povrch, Přiblížení x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Minimapa v režimu povrch, Přiblížení x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Minimapa v režimu povrch, Přiblížení x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Režim bez ořezu zakázán"
@@ -1728,6 +1765,25 @@ msgstr "X TlaÄítko 2"
msgid "Zoom"
msgstr "Přiblížení"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Minimapa je skryta"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Minimapa v režimu radar, Přiblížení x1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Minimapa v režimu povrch, Přiblížení x1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Minimální velikost textury k filtrování"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Hesla se neshodují!"
@@ -1999,14 +2055,6 @@ msgstr ""
"pro ostrov, nastavte vÅ¡echna 3 Äísla stejnÄ› pro ryzí tvar."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = parallax occlusion s informacemi o sklonu (rychlejší).\n"
-"1 = mapování reliéfu (pomalejší, ale přesnější)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "2D šum, který definuje tvar/velikost horských útvarů."
@@ -2129,6 +2177,10 @@ msgid "ABM interval"
msgstr "Interval Aktivní Blokové Modifikace (ABM)"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "Absolute limit of queued blocks to emerge"
msgstr "Maximální poÄet emerge front"
@@ -2390,10 +2442,6 @@ msgid "Builtin"
msgstr "Zabudované"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Bump mapování"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2465,16 +2513,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat font size"
msgstr "Velikost písma"
@@ -2636,6 +2674,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "PokraÄovat"
@@ -2697,7 +2739,10 @@ msgid "Crosshair alpha"
msgstr "Průhlednost zaměřovaÄe"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "Průhlednost zaměřovaÄe (mezi 0 a 255)."
#: src/settings_translation_file.cpp
@@ -2705,8 +2750,10 @@ msgid "Crosshair color"
msgstr "Barva zaměřovaÄe"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Barva zaměřovaÄe (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2815,14 +2862,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "UrÄuje pozici a terén možných hor a jezer."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"UrÄuje vyhlazovací krok textur.\n"
-"Vyšší hodnota znamená vyhlazenější normálové mapy."
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Defines the base ground level."
msgstr "UrÄuje lesní oblasti a hustotu stromového porostu."
@@ -2906,6 +2945,11 @@ msgid "Desynchronize block animation"
msgstr "Nesynchronizovat animace bloků"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Klávesa doprava"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Částicové efekty při těžení"
@@ -2970,7 +3014,8 @@ msgid "Enable console window"
msgstr "Povolit konzolové okno"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Zapnout kreativní mód pro nové mapy."
#: src/settings_translation_file.cpp
@@ -3075,17 +3120,6 @@ msgid "Enables animation of inventory items."
msgstr "Povolí animaci věcí v inventáři."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Povolí bump mapping textur. Balík textur buÄ poskytne normálové mapy,\n"
-"nebo musí být automaticky vytvořeny.\n"
-"Nastavení vyžaduje zapnuté shadery."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Zapnout cachování geom. sítí otoÄených pomocí facedir."
@@ -3095,22 +3129,6 @@ msgstr "Zapne minimapu."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Zapne generování normálových map za bÄ›hu (efekt protlaÄení).\n"
-"Nastavení vyžaduje zapnutý bump mapping."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Zapne parallax occlusion mapping.\n"
-"Nastavení vyžaduje zapnuté shadery."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3127,14 +3145,6 @@ msgstr "Metody entit"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Experimentální nastavení, může zapříÄinit viditelné mezery mezi bloky,\n"
-"je-li nastaveno na vyšší Äíslo než 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3144,8 +3154,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS v menu pauzy"
+msgid "FPS when unfocused or paused"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3480,10 +3490,6 @@ msgid "GUI scaling filter txr2img"
msgstr "Filtrovat při škálování GUI (txr2img)"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Generovat normálové mapy"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Globální callback funkce"
@@ -3547,8 +3553,8 @@ msgstr "Klávesa pro přepnutí HUD (Head-Up Display)"
#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Zacházení s voláními zastaralého Lua API:\n"
@@ -4096,6 +4102,11 @@ msgid "Joystick button repetition interval"
msgstr "Interval opakování tlaÄítek joysticku"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "Typ joysticku"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Citlivost otáÄení pohledu joystickem"
@@ -4197,6 +4208,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"klávesy pro snížení hlasitosti.\n"
+"viz. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4308,6 +4330,17 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"klávesy pro snížení hlasitosti.\n"
+"viz. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -5009,11 +5042,6 @@ msgid "Main menu script"
msgstr "Skript hlavní nabídky"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Skript hlavní nabídky"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5027,6 +5055,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -5226,7 +5262,7 @@ msgid "Maximum FPS"
msgstr "Maximální FPS"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -5275,6 +5311,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5506,14 +5549,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5539,10 +5574,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5568,35 +5599,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Parallax occlusion"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Náklon parallax occlusion"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "PoÄet iterací parallax occlusion"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Režim parallax occlusion"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "Škála parallax occlusion"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5654,15 +5656,24 @@ msgid "Physics"
msgstr "Fyzika"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Pitch move key"
-msgstr "Klávesa létání"
+msgstr "létání"
#: src/settings_translation_file.cpp
msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Klávesa létání"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "Interval opakování pravého kliknutí"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5820,10 +5831,6 @@ msgid "Right key"
msgstr "Klávesa doprava"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Interval opakování pravého kliknutí"
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "River channel depth"
msgstr "Hloubka řeky"
@@ -6117,6 +6124,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Zpráva o vypnutí"
@@ -6250,10 +6267,6 @@ msgid "Strength of 3D mode parallax."
msgstr "Síla vygenerovaných normálových map."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Síla vygenerovaných normálových map."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6348,6 +6361,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6406,8 +6423,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6433,15 +6450,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6580,6 +6602,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6791,6 +6824,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6915,6 +6954,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6926,43 +6983,53 @@ msgstr "cURL limit paralelních stahování"
msgid "cURL timeout"
msgstr "cURL timeout"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Plynulá kamera"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = parallax occlusion s informacemi o sklonu (rychlejší).\n"
+#~ "1 = mapování reliéfu (pomalejší, ale přesnější)."
-#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "Vybrat soubor s modem:"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "Upraví gamma kódování svÄ›telných tabulek. Vyšší Äísla znamenají svÄ›tlejší "
+#~ "hodnoty.\n"
+#~ "Toto nastavení ovlivňuje pouze klienta a serverem není použito."
-#~ msgid "Waving Water"
-#~ msgstr "Vlnění vody"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Jste si jisti, že chcete resetovat místní svět?"
-#~ msgid "Waving water"
-#~ msgstr "Vlnění vody"
+#~ msgid "Back"
+#~ msgstr "Zpět"
-#, fuzzy
-#~ msgid "Lava depth"
-#~ msgstr "Hloubka velké jeskyně"
+#~ msgid "Bump Mapping"
+#~ msgstr "Bump mapping"
-#~ msgid "IPv6 support."
-#~ msgstr ""
-#~ "Nastavuje reálnou délku dne.\n"
-#~ "NapÅ™.: 72 = 20 minut, 360 = 4 minuty, 1 = 24 hodin, 0 = Äas zůstává stále "
-#~ "stejný."
+#~ msgid "Bumpmapping"
+#~ msgstr "Bump mapování"
-#~ msgid "Gamma"
-#~ msgstr "Gamma"
+#~ msgid "Config mods"
+#~ msgstr "Nastavení modů"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Neprůhlednost stínu písma (od 0 do 255)."
+#~ msgid "Configure"
+#~ msgstr "Nastavit"
-#~ msgid "Floatland base height noise"
-#~ msgstr "Šum základní výšky létajících ostrovů"
+#, fuzzy
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "Stanovuje hustotu horského terénu na létajících ostrovech.\n"
+#~ "Jedná se o posun přidaný k hodnotě šumu 'np_mountain'."
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Zapne filmový tone mapping"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr "Ovládá šířku tunelů, menší hodnota vytváří širší tunely."
-#~ msgid "Enable VBO"
-#~ msgstr "Zapnout VBO"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Barva zaměřovaÄe (R,G,B)."
#~ msgid ""
#~ "Defines areas of floatland smooth terrain.\n"
@@ -6971,31 +7038,149 @@ msgstr "cURL timeout"
#~ "UrÄuje oblasti létajících ostrovů s rovinný terénem.\n"
#~ "Terén bude rovný v místech, kde hodnota šumu bude větší než 0."
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
-#~ msgstr "Ovládá šířku tunelů, menší hodnota vytváří širší tunely."
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "UrÄuje vyhlazovací krok textur.\n"
+#~ "Vyšší hodnota znamená vyhlazenější normálové mapy."
+
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Stahuji a instaluji $1, prosím Äekejte..."
+
+#~ msgid "Enable VBO"
+#~ msgstr "Zapnout VBO"
-#, fuzzy
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Stanovuje hustotu horského terénu na létajících ostrovech.\n"
-#~ "Jedná se o posun přidaný k hodnotě šumu 'np_mountain'."
+#~ "Povolí bump mapping textur. Balík textur buÄ poskytne normálové mapy,\n"
+#~ "nebo musí být automaticky vytvořeny.\n"
+#~ "Nastavení vyžaduje zapnuté shadery."
+
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Zapne filmový tone mapping"
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Upraví gamma kódování svÄ›telných tabulek. Vyšší Äísla znamenají svÄ›tlejší "
-#~ "hodnoty.\n"
-#~ "Toto nastavení ovlivňuje pouze klienta a serverem není použito."
+#~ "Zapne generování normálových map za bÄ›hu (efekt protlaÄení).\n"
+#~ "Nastavení vyžaduje zapnutý bump mapping."
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Stahuji a instaluji $1, prosím Äekejte..."
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "Zapne parallax occlusion mapping.\n"
+#~ "Nastavení vyžaduje zapnuté shadery."
-#~ msgid "Back"
-#~ msgstr "Zpět"
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
+#~ msgstr ""
+#~ "Experimentální nastavení, může zapříÄinit viditelné mezery mezi bloky,\n"
+#~ "je-li nastaveno na vyšší Äíslo než 0."
+
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS v menu pauzy"
+
+#~ msgid "Floatland base height noise"
+#~ msgstr "Šum základní výšky létajících ostrovů"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Neprůhlednost stínu písma (od 0 do 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "Gamma"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Generovat Normální Mapy"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Generovat normálové mapy"
+
+#~ msgid "IPv6 support."
+#~ msgstr ""
+#~ "Nastavuje reálnou délku dne.\n"
+#~ "NapÅ™.: 72 = 20 minut, 360 = 4 minuty, 1 = 24 hodin, 0 = Äas zůstává stále "
+#~ "stejný."
+
+#, fuzzy
+#~ msgid "Lava depth"
+#~ msgstr "Hloubka velké jeskyně"
+
+#~ msgid "Main"
+#~ msgstr "Hlavní nabídka"
+
+#, fuzzy
+#~ msgid "Main menu style"
+#~ msgstr "Skript hlavní nabídky"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Minimapa v režimu radar, Přiblížení x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Minimapa v režimu radar, Přiblížení x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Minimapa v režimu povrch, Přiblížení x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Minimapa v režimu povrch, Přiblížení x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Jméno/Heslo"
+
+#~ msgid "No"
+#~ msgstr "Ne"
#~ msgid "Ok"
#~ msgstr "OK"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parallax occlusion"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Parallax occlusion"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Náklon parallax occlusion"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "PoÄet iterací parallax occlusion"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Režim parallax occlusion"
+
+#, fuzzy
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Škála parallax occlusion"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Reset místního světa"
+
+#, fuzzy
+#~ msgid "Select Package File:"
+#~ msgstr "Vybrat soubor s modem:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Start místní hry"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Síla vygenerovaných normálových map."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Plynulá kamera"
+
+#~ msgid "Waving Water"
+#~ msgstr "Vlnění vody"
+
+#~ msgid "Waving water"
+#~ msgstr "Vlnění vody"
+
+#~ msgid "Yes"
+#~ msgstr "Ano"
diff --git a/po/da/minetest.po b/po/da/minetest.po
index 931e3dbbf..5a11a9779 100644
--- a/po/da/minetest.po
+++ b/po/da/minetest.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Danish (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: 2020-03-31 10:14+0000\n"
"Last-Translator: sfan5 <sfan5@live.de>\n"
"Language-Team: Danish <https://hosted.weblate.org/projects/minetest/minetest/"
@@ -47,10 +47,6 @@ msgstr "Forbind igen"
msgid "The server has requested a reconnect:"
msgstr "Serveren har anmodet om at forbinde igen:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Indlæser..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Protokol versionerne matchede ikke. "
@@ -64,12 +60,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Serveren understøtter protokol versioner mellem $1 og $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Prøv at slå den offentlige serverliste fra og til, og tjek din internet "
-"forbindelse."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Vi understøtter kun protokol version $1."
@@ -77,7 +67,8 @@ msgstr "Vi understøtter kun protokol version $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Vi understøtter protokol versioner mellem $1 og $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -87,7 +78,8 @@ msgstr "Vi understøtter protokol versioner mellem $1 og $2."
msgid "Cancel"
msgstr "Anuller"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Afhængigheder:"
@@ -165,14 +157,55 @@ msgid "enabled"
msgstr "aktiveret"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Indlæser..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Alle pakker"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Tast allerede i brug"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Tilbage til hovedmenuen"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Vær vært for spil"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -195,6 +228,16 @@ msgid "Install"
msgstr "Installer"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Installer"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Valgfrie afhængigheder:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mods"
@@ -208,9 +251,25 @@ msgid "No results"
msgstr "Der er ingen resultater at vise"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Søg"
+#, fuzzy
+msgid "No updates"
+msgstr "Opdater"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -225,7 +284,11 @@ msgid "Update"
msgstr "Opdater"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -540,6 +603,10 @@ msgid "Scale"
msgstr "Skala"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Søg"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Vælg mappe"
@@ -657,6 +724,20 @@ msgstr "Kan ikke installere $1 som et mod"
msgid "Unable to install a modpack as a $1"
msgstr "Kan ikke installere $1 som en samling af mods"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Indlæser..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Prøv at slå den offentlige serverliste fra og til, og tjek din internet "
+"forbindelse."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Gennemse online indhold"
@@ -710,6 +791,17 @@ msgid "Credits"
msgstr "Skabt af"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Vælg mappe"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Tidligere bidragere"
@@ -726,14 +818,10 @@ msgid "Bind Address"
msgstr "Bind adresse"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Konfigurér"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Kreativ tilstand"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Aktivér skade"
@@ -750,8 +838,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Navn/kodeord"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -762,6 +850,11 @@ msgid "No world created or selected!"
msgstr "Ingen verden oprettet eller valgt!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Nyt kodeord"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Start spil"
@@ -770,6 +863,11 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Vælg verden:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Vælg verden:"
@@ -786,23 +884,23 @@ msgstr "Vær vært for spil"
msgid "Address / Port"
msgstr "Adresse/port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Forbind"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Kreativ tilstand"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Skade aktiveret"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Slet favorit"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Favorit"
@@ -811,16 +909,16 @@ msgstr "Favorit"
msgid "Join Game"
msgstr "Vær vært for spil"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Navn/adgangskode"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "Spiller mod spiller aktiveret"
@@ -850,10 +948,6 @@ msgid "Antialiasing:"
msgstr "Udjævning:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Er du sikker på, at du vil nulstille din enkelt spiller-verden?"
-
-#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "Autosave Screen Size"
msgstr "Autogem skærmstørrelse"
@@ -862,11 +956,6 @@ msgstr "Autogem skærmstørrelse"
msgid "Bilinear Filter"
msgstr "Bi-lineær filtréring"
-#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
-msgid "Bump Mapping"
-msgstr "Bump Mapping"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Skift tastatur-bindinger"
@@ -881,11 +970,6 @@ msgstr "Smukke blade"
#: builtin/mainmenu/tab_settings.lua
#, fuzzy
-msgid "Generate Normal Maps"
-msgstr "Opret normalkort"
-
-#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Mipmap"
msgstr "Mipmap"
@@ -894,10 +978,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap + Aniso-filter"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Nej"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Intet filter"
@@ -925,19 +1005,11 @@ msgstr "Uuigennemsigtige blade"
msgid "Opaque Water"
msgstr "Uigennemsigtigt vand"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Parallax-okklusion"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Partikler"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Nulstil spillerverden"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Skærm:"
@@ -950,6 +1022,11 @@ msgid "Shaders"
msgstr "Dybdeskabere"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Svævelandsniveau"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -995,22 +1072,6 @@ msgstr "Bølgende blade"
msgid "Waving Plants"
msgstr "Bølgende planter"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Ja"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Konfigurér mods"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Hovedmenu"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Enlig spiller"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Forbindelses fejl (tidsfristen udløb)."
@@ -1172,20 +1233,20 @@ msgid "Continue"
msgstr "Fortsæt"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1341,35 +1402,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-#, fuzzy
-msgid "Minimap hidden"
-msgstr "Minikorttast"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1766,6 +1798,25 @@ msgstr "X knap 2"
msgid "Zoom"
msgstr "Zoom"
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap hidden"
+msgstr "Minikorttast"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Kodeordene er ikke ens!"
@@ -2028,14 +2079,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = parallax-okklusion med kurveinformation (hurtigere).\n"
-"1 = relief-oversættelse (langsommere, mere præcis)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2158,6 +2201,10 @@ msgid "ABM interval"
msgstr "Interval for kortlagring"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "Absolute limit of queued blocks to emerge"
msgstr "Absolut begrænsning af fremkomstkøer"
@@ -2408,11 +2455,6 @@ msgid "Builtin"
msgstr "Indbygget"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Bumpmapping"
-msgstr "Bumpmapping"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2490,16 +2532,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat font size"
msgstr "Skriftstørrelse"
@@ -2664,6 +2696,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "Fortsæt"
@@ -2725,7 +2761,10 @@ msgid "Crosshair alpha"
msgstr "Crosshair alpha"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "Crosshair alpha (uigennemsigtighed, mellem 0 og 255)."
#: src/settings_translation_file.cpp
@@ -2733,8 +2772,10 @@ msgid "Crosshair color"
msgstr "Crosshair-farve"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Crosshair-farve (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2840,14 +2881,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Definerer sampling-trin for tekstur.\n"
-"En højere værdi resulterer i en mere rullende normale kort."
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Defines the base ground level."
msgstr "Definerer træområder og trætæthed."
@@ -2925,6 +2958,11 @@ msgid "Desynchronize block animation"
msgstr "Afsynkroniser blokanimation"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Højretast"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Gravepartikler"
@@ -2988,7 +3026,8 @@ msgid "Enable console window"
msgstr "Aktivér konsolvindue"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Aktivér kreativ tilstand for nyoprettede kort."
#: src/settings_translation_file.cpp
@@ -3093,18 +3132,6 @@ msgid "Enables animation of inventory items."
msgstr "Aktiverer animation af lagerelementer."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Aktiverer bumpmapping for teksturer. Normalmaps skal være angivet af "
-"teksturpakken\n"
-"eller skal være automatisk oprettet.\n"
-"Kræver at dybdeskabere er aktiveret."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Aktiverer mellemlagring af facedir-roterede mesher."
@@ -3114,22 +3141,6 @@ msgstr "Aktiverer minikort."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Aktiverer løbende normalmap-oprettelse (Emboss-effekt).\n"
-"Kræver bumpmapping for at være aktiveret."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Aktiverer parallax-okklusionoversættelse.\n"
-"Kræver at dybdeskabere er aktiveret."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3146,14 +3157,6 @@ msgstr "Entitetmetoder"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Eksperimentelt tilvalg, kan medføre synlige mellemrum mellem blokke\n"
-"når angivet til et højere nummer end 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3163,8 +3166,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS i pausemenu"
+msgid "FPS when unfocused or paused"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3504,10 +3507,6 @@ msgid "GUI scaling filter txr2img"
msgstr "GUI-skaleringsfilter txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Opret normalkort"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Globale tilbagekald"
@@ -3573,8 +3572,8 @@ msgstr "Tast for HUD"
#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Håndtering for forældede lua api-kald:\n"
@@ -4094,6 +4093,10 @@ msgid "Joystick button repetition interval"
msgstr "Joystick-knaps gentagelsesinterval"
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Joystick frustum-sensitivitet"
@@ -4197,6 +4200,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tast for hop.\n"
+"Se http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4344,6 +4358,17 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tast for hop.\n"
+"Se http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -5132,11 +5157,6 @@ msgid "Main menu script"
msgstr "Hovedmenuskript"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Hovedmenuskript"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5153,6 +5173,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Kortmappe"
@@ -5353,7 +5381,7 @@ msgid "Maximum FPS"
msgstr "Maksimal FPS"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -5402,6 +5430,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5635,14 +5670,6 @@ msgid "Noises"
msgstr "Lyde"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5668,10 +5695,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5697,35 +5720,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "Parallax-okklusion"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5793,6 +5787,16 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Flyvetast"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "Joystick-knaps gentagelsesinterval"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5951,10 +5955,6 @@ msgid "Right key"
msgstr "Højretast"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "River channel depth"
msgstr "Floddybde"
@@ -6253,6 +6253,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Nedlukningsbesked"
@@ -6386,10 +6396,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6487,6 +6493,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6546,8 +6556,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6573,15 +6583,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6720,6 +6735,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6932,6 +6958,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -7056,6 +7088,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -7067,59 +7117,164 @@ msgstr ""
msgid "cURL timeout"
msgstr "cURL-tidsudløb"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Aktiver filmisk"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = parallax-okklusion med kurveinformation (hurtigere).\n"
+#~ "1 = relief-oversættelse (langsommere, mere præcis)."
-#~ msgid "Select Package File:"
-#~ msgstr "Vælg pakke fil:"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "Justér gammakodningen for lystabellerne. Et større tal betyder lysere.\n"
+#~ "Denne indstilling gælder kun for klienten og ignoreres af serveren."
-#, fuzzy
-#~ msgid "Shadow limit"
-#~ msgstr "Skygge grænse"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Er du sikker på, at du vil nulstille din enkelt spiller-verden?"
+
+#~ msgid "Back"
+#~ msgstr "Tilbage"
#, fuzzy
-#~ msgid "Lava depth"
-#~ msgstr "Dybde for stor hule"
+#~ msgid "Bump Mapping"
+#~ msgstr "Bump Mapping"
-#~ msgid "IPv6 support."
-#~ msgstr "Understøttelse af IPv6."
+#, fuzzy
+#~ msgid "Bumpmapping"
+#~ msgstr "Bumpmapping"
-#~ msgid "Gamma"
-#~ msgstr "Gamma"
+#~ msgid "Config mods"
+#~ msgstr "Konfigurér mods"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Alfa for skrifttypeskygge (uigennemsigtighed, mellem 0 og 255)."
+#~ msgid "Configure"
+#~ msgstr "Konfigurér"
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Aktiverer filmisk toneoversættelse"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Styrer bredden af tunneller. En lavere værdi giver bredere tunneller."
-#~ msgid "Enable VBO"
-#~ msgstr "Aktiver VBO"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Crosshair-farve (R,G,B)."
#, fuzzy
#~ msgid "Darkness sharpness"
#~ msgstr "Søstejlhed"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
#~ msgstr ""
-#~ "Styrer bredden af tunneller. En lavere værdi giver bredere tunneller."
+#~ "Definerer sampling-trin for tekstur.\n"
+#~ "En højere værdi resulterer i en mere rullende normale kort."
+
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Henter og installerer $1, vent venligst..."
+
+#~ msgid "Enable VBO"
+#~ msgstr "Aktiver VBO"
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Justér gammakodningen for lystabellerne. Et større tal betyder lysere.\n"
-#~ "Denne indstilling gælder kun for klienten og ignoreres af serveren."
+#~ "Aktiverer bumpmapping for teksturer. Normalmaps skal være angivet af "
+#~ "teksturpakken\n"
+#~ "eller skal være automatisk oprettet.\n"
+#~ "Kræver at dybdeskabere er aktiveret."
+
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Aktiverer filmisk toneoversættelse"
+
+#~ msgid ""
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
+#~ msgstr ""
+#~ "Aktiverer løbende normalmap-oprettelse (Emboss-effekt).\n"
+#~ "Kræver bumpmapping for at være aktiveret."
+
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "Aktiverer parallax-okklusionoversættelse.\n"
+#~ "Kræver at dybdeskabere er aktiveret."
+
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
+#~ msgstr ""
+#~ "Eksperimentelt tilvalg, kan medføre synlige mellemrum mellem blokke\n"
+#~ "når angivet til et højere nummer end 0."
+
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS i pausemenu"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Alfa for skrifttypeskygge (uigennemsigtighed, mellem 0 og 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "Gamma"
+
+#, fuzzy
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Opret normalkort"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Opret normalkort"
+
+#~ msgid "IPv6 support."
+#~ msgstr "Understøttelse af IPv6."
+
+#, fuzzy
+#~ msgid "Lava depth"
+#~ msgstr "Dybde for stor hule"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "Begrænsning af fremkomsten af forespørgsler på disk"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Henter og installerer $1, vent venligst..."
+#~ msgid "Main"
+#~ msgstr "Hovedmenu"
-#~ msgid "Back"
-#~ msgstr "Tilbage"
+#, fuzzy
+#~ msgid "Main menu style"
+#~ msgstr "Hovedmenuskript"
+
+#~ msgid "Name/Password"
+#~ msgstr "Navn/kodeord"
+
+#~ msgid "No"
+#~ msgstr "Nej"
#~ msgid "Ok"
#~ msgstr "Ok"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parallax-okklusion"
+
+#, fuzzy
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Parallax-okklusion"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Nulstil spillerverden"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Vælg pakke fil:"
+
+#, fuzzy
+#~ msgid "Shadow limit"
+#~ msgstr "Skygge grænse"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Enlig spiller"
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Aktiver filmisk"
+
+#~ msgid "Yes"
+#~ msgstr "Ja"
diff --git a/po/de/minetest.po b/po/de/minetest.po
index be63088d2..484c4707f 100644
--- a/po/de/minetest.po
+++ b/po/de/minetest.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: German (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-15 22:41+0000\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-13 08:50+0000\n"
"Last-Translator: Wuzzy <almikes@aol.com>\n"
"Language-Team: German <https://hosted.weblate.org/projects/minetest/minetest/"
"de/>\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.1\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -46,27 +46,17 @@ msgstr "Erneut verbinden"
msgid "The server has requested a reconnect:"
msgstr "Der Server hat um eine Wiederverbindung gebeten:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Lädt …"
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Protokollversion stimmt nicht überein. "
#: builtin/mainmenu/common.lua
msgid "Server enforces protocol version $1. "
-msgstr "Server erfordert Protokollversion $1. "
+msgstr "Der Server erfordert Protokollversion $1. "
#: builtin/mainmenu/common.lua
msgid "Server supports protocol versions between $1 and $2. "
-msgstr "Server unterstützt Protokollversionen zwischen $1 und $2. "
-
-#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Versuchen Sie, die öffentliche Serverliste neu zu laden und prüfen Sie Ihre "
-"Internetverbindung."
+msgstr "Der Server unterstützt die Protokollversionen von $1 bis $2. "
#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
@@ -76,7 +66,8 @@ msgstr "Wir unterstützen nur Protokollversion $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Wir unterstützen Protokollversionen zwischen $1 und $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Wir unterstützen Protokollversionen zwischen $1 und $2."
msgid "Cancel"
msgstr "Abbrechen"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Abhängigkeiten:"
@@ -111,8 +103,8 @@ msgid ""
"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
"characters [a-z0-9_] are allowed."
msgstr ""
-"Fehler beim Aktivieren der Mod „$1“, da sie unerlaubte Zeichen enthält. Nur "
-"die folgenden Zeichen sind erlaubt: [a-z0-9_]."
+"Die Mod „$1“ konnte nicht aktiviert werden, da sie unzulässige Zeichen "
+"enthält. Nur die folgenden Zeichen sind erlaubt: [a-z0-9_]."
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
@@ -132,7 +124,7 @@ msgstr "Keine Spielbeschreibung verfügbar."
#: builtin/mainmenu/dlg_config_world.lua
msgid "No hard dependencies"
-msgstr "Keine harten Abhängigkeiten"
+msgstr "Keine notwendigen Abhängigkeiten"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No modpack description provided."
@@ -153,23 +145,64 @@ msgstr "Speichern"
#: builtin/mainmenu/dlg_config_world.lua
msgid "World:"
-msgstr "Welt:"
+msgstr "Weltname:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "enabled"
msgstr "Aktiviert"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "„$1“ existiert bereits. Wollen Sie es überschreiben?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "$1 und $2 Abhängigkeiten werden installiert."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 von $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 laden herunter,\n"
+"$2 warten"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 laden herunter…"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "$1 benötigte Abhängigkeiten konnten nicht gefunden werden."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 wird installiert und $2 Abhängigkeiten werden übersprungen."
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Alle Pakete"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Bereits installiert"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Zurück zum Hauptmenü"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Basis-Spiel:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr "ContentDB ist nicht verfügbar, wenn Minetest ohne cURL kompiliert wurde"
+msgstr ""
+"ContentDB ist nicht verfügbar, wenn Minetest ohne cURL kompiliert wurde"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Downloading..."
@@ -189,22 +222,45 @@ msgid "Install"
msgstr "Installieren"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "$1 installieren"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "Fehlende Abhängigkeiten installieren"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mods"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No packages could be retrieved"
-msgstr "Es konnten keine Pakete empfangen werden"
+msgstr "Es konnten keine Pakete abgerufen werden"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No results"
msgstr "Keine Treffer"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Suchen"
+msgid "No updates"
+msgstr "Keine Updates"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "Nicht gefunden"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Überschreiben"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "Bitte prüfen Sie, ob das Basis-Spiel korrekt ist."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "Eingereiht"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -219,8 +275,12 @@ msgid "Update"
msgstr "Aktualisieren"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "Ansehen"
+msgid "Update All [$1]"
+msgstr "Alle aktualisieren [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Mehr Informationen im Webbrowser anschauen"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -313,7 +373,7 @@ msgstr "Seen"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
msgstr ""
-"Niedrige Luftfeuchtigkeit und hohe Hitze erzeugen seichte oder "
+"Niedrige Luftfeuchtigkeit und große Wärme erzeugen seichte oder "
"ausgetrocknete Flüsse"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
@@ -334,7 +394,7 @@ msgstr "Berge"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr "Schlammfließen"
+msgstr "Erosion"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
@@ -346,11 +406,11 @@ msgstr "Kein Spiel ausgewählt"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr "Reduziert Hitze mit der Höhe"
+msgstr "Reduziert die Wärme mit der Höhe"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr "Reduziert Luftfeuchte mit der Höhe"
+msgstr "Reduziert Luftfeuchtigkeit mit der Höhe"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Rivers"
@@ -358,12 +418,12 @@ msgstr "Flüsse"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr "Flüsse am Meeresspiegel"
+msgstr "Flüsse auf Meeresspiegelhöhe"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Seed"
-msgstr "Seed"
+msgstr "Startwert (Seed)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
@@ -374,13 +434,13 @@ msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
-"Gebäude, die auf dem Gelände auftauchen (keine Wirkung auf von v6 erzeugte "
-"Bäume u. Dschungelgras)"
+"Strukturen, die auf dem Gelände auftauchen (keine Wirkung auf von v6 "
+"erzeugte Bäume u. Dschungelgras)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
msgstr ""
-"Gebäude, die auf dem Gelände auftauchen, üblicherweise Bäume und Pflanzen"
+"Strukturen, die auf dem Gelände auftauchen, üblicherweise Bäume und Pflanzen"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
@@ -424,7 +484,7 @@ msgstr "Es sind keine Spiele installiert."
#: builtin/mainmenu/dlg_delete_content.lua
msgid "Are you sure you want to delete \"$1\"?"
-msgstr "Sind Sie sich sicher, dass Sie „$1“ löschen wollen?"
+msgstr "Sind Sie sicher, dass „$1“ gelöscht werden soll?"
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua
@@ -434,7 +494,7 @@ msgstr "Entfernen"
#: builtin/mainmenu/dlg_delete_content.lua
msgid "pkgmgr: failed to delete \"$1\""
-msgstr "pkgmgr: Fehler beim Löschen von „$1“"
+msgstr "pkgmgr: Fehler beim Entfernen von „$1“"
#: builtin/mainmenu/dlg_delete_content.lua
msgid "pkgmgr: invalid path \"$1\""
@@ -442,7 +502,7 @@ msgstr "pkgmgr: Ungültiger Pfad „$1“"
#: builtin/mainmenu/dlg_delete_world.lua
msgid "Delete World \"$1\"?"
-msgstr "Welt „$1“ löschen?"
+msgstr "Die Welt „$1“ löschen?"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid "Accept"
@@ -482,7 +542,7 @@ msgstr "Deaktiviert"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Edit"
-msgstr "Ändern"
+msgstr "Bearbeiten"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Enabled"
@@ -521,6 +581,10 @@ msgid "Scale"
msgstr "Skalierung"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Suchen"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Verzeichnis auswählen"
@@ -530,7 +594,7 @@ msgstr "Datei auswählen"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
-msgstr "Technische Namen zeigen"
+msgstr "Techn. Bezeichnung zeigen"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "The value must be at least $1."
@@ -601,12 +665,12 @@ msgstr "Fehler bei der Installation von $1 nach $2"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install Mod: Unable to find real mod name for: $1"
-msgstr "Mod installieren: Echter Modname für $1 konnte nicht gefunden werden"
+msgstr "Modinstallation: Richtiger Modname für $1 konnte nicht gefunden werden"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install Mod: Unable to find suitable folder name for modpack $1"
msgstr ""
-"Mod installieren: Geeigneter Verzeichnisname für Modpack $1 konnte nicht "
+"Modinstallation: Geeigneter Verzeichnisname für Modpack $1 konnte nicht "
"gefunden werden"
#: builtin/mainmenu/pkgmgr.lua
@@ -624,23 +688,38 @@ msgstr "Keine gültige Mod oder Modpack gefunden"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a $1 as a texture pack"
-msgstr "Fehler bei der Installation von $1 als Texturenpaket"
+msgstr "Fehler bei der Texturenpaket-Installation von $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a game as a $1"
-msgstr "Fehler bei der Installation eines Spiels als $1"
+msgstr "Fehler bei der Spiel-Installation von $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a mod as a $1"
-msgstr "Fehler bei der Installation einer Mod als $1"
+msgstr "Fehler bei der Mod-Installation von $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a modpack as a $1"
-msgstr "Fehler bei der Installation eines Modpacks als $1"
+msgstr "Fehler bei der Modpack-Installation von $1"
+
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Lädt …"
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Clientseitige Skripte sind deaktiviert"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Versuchen Sie die öffentliche Serverliste neu zu laden und prüfen Sie Ihre "
+"Internetverbindung."
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
-msgstr "Online-Inhalte durchsuchen"
+msgstr "Onlineinhalte durchsuchen"
#: builtin/mainmenu/tab_content.lua
msgid "Content"
@@ -691,6 +770,18 @@ msgid "Credits"
msgstr "Mitwirkende"
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr "Benutzerdatenverzeichnis öffnen"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Öffnet das Verzeichnis, welches die Welten, Spiele, Mods und\n"
+"Texturenpakete des Benutzers enthält, im Datei-Manager."
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Frühere Mitwirkende"
@@ -700,21 +791,17 @@ msgstr "Ehemalige Hauptentwickler"
#: builtin/mainmenu/tab_local.lua
msgid "Announce Server"
-msgstr "Server ankündigen"
+msgstr "Server veröffentlichen"
#: builtin/mainmenu/tab_local.lua
msgid "Bind Address"
msgstr "Bind-Adresse"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Konfigurieren"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Kreativmodus"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Schaden einschalten"
@@ -728,11 +815,11 @@ msgstr "Server hosten"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr "Spiele von ContentDB installieren"
+msgstr "Spiele aus ContentDB installieren"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Name/Passwort"
+msgid "Name"
+msgstr "Name"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -743,6 +830,10 @@ msgid "No world created or selected!"
msgstr "Keine Welt angegeben oder ausgewählt!"
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "Passwort"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Spiel starten"
@@ -751,6 +842,10 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "Mods auswählen"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Welt wählen:"
@@ -766,23 +861,23 @@ msgstr "Spiel starten"
msgid "Address / Port"
msgstr "Adresse / Port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Verbinden"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Kreativmodus"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Schaden aktiviert"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Favorit löschen"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Favorit"
@@ -790,16 +885,16 @@ msgstr "Favorit"
msgid "Join Game"
msgstr "Spiel beitreten"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Name / Passwort"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Latenz"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "Spielerkampf aktiviert"
@@ -828,24 +923,16 @@ msgid "Antialiasing:"
msgstr "Kantenglättung:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Sind Sie sicher, dass Sie die Einzelspielerwelt löschen wollen?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
-msgstr "Monitorgröße automatisch merken"
+msgstr "Fenstergröße merken"
#: builtin/mainmenu/tab_settings.lua
msgid "Bilinear Filter"
msgstr "Bilinearer Filter"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Bumpmapping"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
-msgstr "Tasten ändern"
+msgstr "Tastenbelegung"
#: builtin/mainmenu/tab_settings.lua
msgid "Connected Glass"
@@ -856,10 +943,6 @@ msgid "Fancy Leaves"
msgstr "Schöne Blätter"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Normalmaps generieren"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmap"
@@ -868,20 +951,16 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap u. Aniso. Filter"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Nein"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Kein Filter"
#: builtin/mainmenu/tab_settings.lua
msgid "No Mipmap"
-msgstr "Keine Mipmap"
+msgstr "Kein Mipmapping"
#: builtin/mainmenu/tab_settings.lua
msgid "Node Highlighting"
-msgstr "Blöcke leuchten"
+msgstr "Blöcke aufhellen"
#: builtin/mainmenu/tab_settings.lua
msgid "Node Outlining"
@@ -899,19 +978,11 @@ msgstr "Undurchs. Blätter"
msgid "Opaque Water"
msgstr "Undurchs. Wasser"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Parallax-Occlusion"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Partikel"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Einzelspielerwelt zurücksetzen"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Monitor:"
@@ -924,6 +995,10 @@ msgid "Shaders"
msgstr "Shader"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr "Shader (experimentell)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Shader (nicht verfügbar)"
@@ -941,11 +1016,11 @@ msgstr "Texturierung:"
#: builtin/mainmenu/tab_settings.lua
msgid "To enable shaders the OpenGL driver needs to be used."
-msgstr "Um Shader zu benutzen, muss der OpenGL-Treiber benutzt werden."
+msgstr "Um Shader zu aktivieren, muss der OpenGL-Treiber genutzt werden."
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
msgid "Tone Mapping"
-msgstr "Tone-Mapping"
+msgstr "Dynamikkompression"
#: builtin/mainmenu/tab_settings.lua
msgid "Touchthreshold: (px)"
@@ -967,22 +1042,6 @@ msgstr "Flüssigkeitswellen"
msgid "Waving Plants"
msgstr "Wehende Pflanzen"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Ja"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Mods konfigurieren"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Hauptmenü"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Einzelspieler starten"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Verbindungsfehler, Zeitüberschreitung."
@@ -1017,7 +1076,7 @@ msgstr "Spiel konnte nicht gefunden oder geladen werden: \""
#: src/client/clientlauncher.cpp
msgid "Invalid gamespec."
-msgstr "Ungültige Spielspezif."
+msgstr "Ungültige Spielspezifikationen"
#: src/client/clientlauncher.cpp
msgid "Main Menu"
@@ -1029,7 +1088,7 @@ msgstr "Keine Welt ausgewählt und keine Adresse angegeben. Nichts zu tun."
#: src/client/clientlauncher.cpp
msgid "Player name too long."
-msgstr "Spielername zu lang."
+msgstr "Der Spielername ist zu lang."
#: src/client/clientlauncher.cpp
msgid "Please choose a name!"
@@ -1037,7 +1096,7 @@ msgstr "Bitte wählen Sie einen Namen!"
#: src/client/clientlauncher.cpp
msgid "Provided password file failed to open: "
-msgstr "Fehler beim öffnen der ausgewählten Passwort-Datei: "
+msgstr "Fehler beim Öffnen der angegebenen Passwortdatei: "
#: src/client/clientlauncher.cpp
msgid "Provided world path doesn't exist: "
@@ -1061,7 +1120,7 @@ msgid ""
"Check debug.txt for details."
msgstr ""
"\n"
-"Siehe debug.txt für Details."
+"Für mehr Details siehe debug.txt."
#: src/client/game.cpp
msgid "- Address: "
@@ -1144,13 +1203,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1160,12 +1219,12 @@ msgstr ""
"- %s: Nach links\n"
"- %s: Nach rechts\n"
"- %s: Springen/klettern\n"
+"- %s: Graben/Schlagen\n"
+"- %s: Bauen/Benutzen\n"
"- %s: Kriechen/runter\n"
"- %s: Gegenstand wegwerfen\n"
"- %s: Inventar\n"
"- Maus: Drehen/Umschauen\n"
-"- Maus links: Graben/Schlagen\n"
-"- Maus rechts: Bauen/Benutzen\n"
"- Mausrad: Gegenstand wählen\n"
"- %s: Chat\n"
@@ -1187,7 +1246,7 @@ msgstr "Debug-Infos angezeigt"
#: src/client/game.cpp
msgid "Debug info, profiler graph, and wireframe hidden"
-msgstr "Debug-Infos, Profiler-Graph und Drahtmodell verborgen"
+msgstr "Debug-Infos, Profiler und Drahtgitter deaktiviert"
#: src/client/game.cpp
msgid ""
@@ -1227,7 +1286,7 @@ msgstr "Unbegrenzte Sichtweite aktiviert"
#: src/client/game.cpp
msgid "Exit to Menu"
-msgstr "Hauptmenü"
+msgstr "Zum Hauptmenü"
#: src/client/game.cpp
msgid "Exit to OS"
@@ -1279,7 +1338,7 @@ msgstr "Gehosteter Server"
#: src/client/game.cpp
msgid "Item definitions..."
-msgstr "Gegenstands-Definitionen …"
+msgstr "Gegenstandsdefinitionen …"
#: src/client/game.cpp
msgid "KiB/s"
@@ -1298,34 +1357,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Übersichtskarte momentan von Spiel oder Mod deaktiviert"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Übersichtskarte verborgen"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Übersichtskarte im Radarmodus, Zoom ×1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Übersichtskarte im Radarmodus, Zoom ×2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Übersichtskarte im Radarmodus, Zoom ×4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Übersichtskarte im Bodenmodus, Zoom ×1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Übersichtskarte im Bodenmodus, Zoom ×2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Übersichtskarte im Bodenmodus, Zoom ×4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Geistmodus deaktiviert"
@@ -1367,7 +1398,7 @@ msgstr "Entfernter Server"
#: src/client/game.cpp
msgid "Resolving address..."
-msgstr "Löse Adresse auf …"
+msgstr "Adressauflösung …"
#: src/client/game.cpp
msgid "Shutting down..."
@@ -1383,7 +1414,7 @@ msgstr "Tonlautstärke"
#: src/client/game.cpp
msgid "Sound muted"
-msgstr "Ton verstummt"
+msgstr "Ton stummgeschaltet"
#: src/client/game.cpp
msgid "Sound system is disabled"
@@ -1395,7 +1426,7 @@ msgstr "Tonsystem ist in diesem Build nicht unterstützt"
#: src/client/game.cpp
msgid "Sound unmuted"
-msgstr "Ton nicht mehr verstummt"
+msgstr "Ton nicht mehr stumm"
#: src/client/game.cpp
#, c-format
@@ -1419,7 +1450,7 @@ msgstr "Lautstärke auf %d%% gesetzt"
#: src/client/game.cpp
msgid "Wireframe shown"
-msgstr "Drahtmodell angezeigt"
+msgstr "Drahtmodell aktiv"
#: src/client/game.cpp
msgid "Zoom currently disabled by game or mod"
@@ -1717,6 +1748,24 @@ msgstr "X-Knopf 2"
msgid "Zoom"
msgstr "Zoom"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Übersichtskarte verborgen"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Übersichtskarte im Radarmodus, Zoom ×%d"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Übersichtskarte im Bodenmodus, Zoom ×%d"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "Übersichtskarte im Texturmodus"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Passwörter stimmen nicht überein!"
@@ -1996,14 +2045,6 @@ msgstr ""
"gleich für die Reinform."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = Parallax-Mapping mit Stufeninformation (schneller).\n"
-"1 = Relief-Mapping (langsamer, genauer)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "2-D-Rauschen, welches die Form/Größe von gezahnten Bergen steuert."
@@ -2043,7 +2084,7 @@ msgstr "3-Dimensionaler-Modus"
#: src/settings_translation_file.cpp
msgid "3D mode parallax strength"
-msgstr "3D-Modus-Parallaxstärke"
+msgstr "3-D-Modus-Parallaxstärke"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
@@ -2065,7 +2106,7 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
-"3D-Rauschen, das die Form von Schwebeländern definiert.\n"
+"3-D-Rauschen, das die Form von Schwebeländern definiert.\n"
"Falls vom Standardwert verschieden, müsste der Rauschwert „Skalierung“\n"
"(standardmäßig 0.7) evtl. angepasst werden, da die Schwebeland-\n"
"zuspitzung am Besten funktioniert, wenn dieses Rauschen\n"
@@ -2143,6 +2184,10 @@ msgid "ABM interval"
msgstr "ABM-Intervall"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr "ABM-Zeitbudget"
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr "Absolute Grenze der zu erzeugenden Kartenblöcke in Warteschlange"
@@ -2405,10 +2450,6 @@ msgid "Builtin"
msgstr "Builtin"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Bumpmapping"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2487,22 +2528,6 @@ msgstr ""
"Wobei 0.0 die minimale Lichtstufe und 1.0 die höchste Lichtstufe ist."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Ändert die Hauptmenü-UI:\n"
-"- Full: Mehrere Einzelspielerwelten, Spiel- und Texturenpaketauswahl, "
-"usw.\n"
-"- Simple: Eine Einzelspielerwelt, keine Spiel- oder Texturenpaketauswahl. "
-"Könnte\n"
-"für kleinere Bildschirme nötig sein."
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr "Chat-Schriftgröße"
@@ -2670,6 +2695,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "ContentDB: Schwarze Liste"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "ContentDB Max. gleichzeitige Downloads"
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "ContentDB-URL"
@@ -2736,16 +2765,24 @@ msgid "Crosshair alpha"
msgstr "Fadenkreuzundurchsichtigkeit"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr "Fadenkreuzundurchsichtigkeit (Wert zwischen 0 und 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Fadenkreuzundurchsichtigkeit (Wert zwischen 0 und 255).\n"
+"Gilt auch für das Objektfadenkreuz"
#: src/settings_translation_file.cpp
msgid "Crosshair color"
msgstr "Fadenkreuzfarbe"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Fadenkreuzfarbe (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Fadenkreuzfarbe (R,G,B).\n"
+"Gilt auch für das Objektfadenkreuz"
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2853,14 +2890,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Definiert Ort und Gelände der optionalen Hügel und Seen."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Definiert die Sampling-Schrittgröße der Textur.\n"
-"Ein höherer Wert resultiert in weichere Normal-Maps."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Definiert die Basisgeländehöhe."
@@ -2941,6 +2970,10 @@ msgid "Desynchronize block animation"
msgstr "Blockanimationen desynchronisieren"
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr "Grabetaste"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Grabepartikel"
@@ -3005,7 +3038,8 @@ msgid "Enable console window"
msgstr "Konsolenfenster aktivieren"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Kreativmodus für neu erstellte Karten aktivieren."
#: src/settings_translation_file.cpp
@@ -3113,7 +3147,7 @@ msgid ""
"appearance of high dynamic range images. Mid-range contrast is slightly\n"
"enhanced, highlights and shadows are gradually compressed."
msgstr ""
-"Aktiviert filmisches Tone-Mapping wie in Hables „Uncharted 2“.\n"
+"Aktiviert filmische Dynamikkompression wie in Hables „Uncharted 2“.\n"
"Simuliert die Tonkurve von fotografischem Film und wie dies das Aussehen\n"
"von „High Dynamic Range“-Bildern annähert. Mittlerer Kontrast wird leicht\n"
"verstärkt, aufleuchtende Bereiche und Schatten werden graduell komprimiert."
@@ -3123,19 +3157,6 @@ msgid "Enables animation of inventory items."
msgstr "Aktiviert die Animation von Inventargegenständen."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Aktiviert das Bump-Mapping für Texturen. Normal-Maps müssen im "
-"Texturenpaket\n"
-"vorhanden sein oder müssen automatisch erzeugt werden.\n"
-"Shader müssen aktiviert werden, bevor diese Einstellung aktiviert werden "
-"kann."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
"Aktiviert das Zwischenspeichern von 3-D-Modellen, die mittels facedir "
@@ -3147,22 +3168,6 @@ msgstr "Aktiviert die Übersichtskarte."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Aktiviert die spontane Normalmap-Erzeugung (Prägungseffekt).\n"
-"Für diese Einstellung muss außerdem Bump-Mapping aktiviert sein."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Aktiviert Parralax-Occlusion-Mapping.\n"
-"Hierfür müssen Shader aktiviert sein."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3183,14 +3188,6 @@ msgstr "Entity-Methoden"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Experimentelle Einstellung, könnte sichtbare Leerräume zwischen\n"
-"Blöcken verursachen, wenn auf einen Wert größer 0 gesetzt."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3207,8 +3204,10 @@ msgstr ""
"geeignet."
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "Bildwiederholrate im Pausenmenü"
+msgid "FPS when unfocused or paused"
+msgstr ""
+"Maximale Bildwiederholrate, während das Spiel pausiert oder nicht fokussiert "
+"ist"
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3289,7 +3288,7 @@ msgstr "Fülltiefenrauschen"
#: src/settings_translation_file.cpp
msgid "Filmic tone mapping"
-msgstr "Filmisches Tone-Mapping"
+msgstr "Filmische Dynamikkompression"
#: src/settings_translation_file.cpp
msgid ""
@@ -3547,10 +3546,6 @@ msgid "GUI scaling filter txr2img"
msgstr "GUI-Skalierungsfilter txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Normalmaps generieren"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Globale Rückruffunktionen"
@@ -3612,17 +3607,17 @@ msgstr "Taste zum Umschalten des HUD"
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Handhabung für veraltete Lua-API-Aufrufe:\n"
-"- legacy: Versuchen, altes Verhalten zu imitieren (Standard für Release).\n"
-"- log: Imitieren, und den Backtrace des veralteten Funktionsaufrufs "
+"- none: Veraltete Aufrufe nicht protokollieren.\n"
+"- log: Imitieren und den Backtrace des veralteten Funktionsaufrufs "
"protokollieren\n"
-" (Standard für Debug).\n"
+" (Standard).\n"
"- error: Bei Verwendung eines veralteten Funktionsaufrufs abbrechen\n"
-" (empfohlen für Mod- Entwickler)."
+" (empfohlen für Mod-Entwickler)."
#: src/settings_translation_file.cpp
msgid ""
@@ -4164,6 +4159,10 @@ msgid "Joystick button repetition interval"
msgstr "Joystick-Button-Wiederholungsrate"
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr "Joystick-Totbereich"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Joystick-Pyramidenstumpf-Empfindlichkeit"
@@ -4267,6 +4266,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Taste zum Graben.\n"
+"Siehe http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4409,6 +4418,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Taste zum Bauen.\n"
+"Siehe http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -5161,10 +5180,6 @@ msgid "Main menu script"
msgstr "Hauptmenü-Skript"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Hauptmenü-Stil"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5182,6 +5197,14 @@ msgid "Makes all liquids opaque"
msgstr "Macht alle Flüssigkeiten undurchsichtig"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr "Kartenkompressionsstufe für Festspeicher"
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr "Kartenkompressionsstufe für Netzwerkverkehr"
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Kartenverzeichnis"
@@ -5366,8 +5389,10 @@ msgid "Maximum FPS"
msgstr "Maximale Bildwiederholrate"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
-msgstr "Maximale Bildwiederholrate, während das Spiel pausiert ist."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
+msgstr ""
+"Maximale Bildwiederholrate, während das Fenster nicht fokussiert oder das "
+"Spiel pausiert ist."
#: src/settings_translation_file.cpp
msgid "Maximum forceloaded blocks"
@@ -5426,6 +5451,16 @@ msgstr ""
"Diese Grenze wird für jeden Spieler einzeln erzwungen."
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+"Maximale Anzahl an gleichzeitigen Downloads. Weitere werden in einer "
+"Warteschlange eingereiht.\n"
+"Dies sollte niedriger als das curl_parallel_limit sein."
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr "Maximale Anzahl der zwangsgeladenen Kartenblöcke."
@@ -5691,14 +5726,6 @@ msgid "Noises"
msgstr "Rauschen"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Normalmaps-Sampling"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Normalmap-Stärke"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "Anzahl der Erzeugerthreads"
@@ -5739,10 +5766,6 @@ msgstr ""
"Transaktions-Overhead und Speicherverbrauch (Faustregel: 4096=100MB)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "Anzahl der Parallax-Occlusion-Iterationen."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Online-Inhaltespeicher"
@@ -5774,36 +5797,6 @@ msgstr ""
"Wird nicht pausieren, wenn ein Formspec geöffnet ist."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-"Startwert des Parallax-Occlusion-Effektes, üblicherweise Skalierung geteilt "
-"durch 2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Gesamtskalierung des Parallax-Occlusion-Effektes."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Parallax-Occlusion"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Parallax-Occlusion-Startwert"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Parallax-Occlusion-Iterationen"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Parallax-Occlusion-Modus"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "Parallax-Occlusion-Skalierung"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5895,6 +5888,14 @@ msgid "Pitch move mode"
msgstr "Nick-Bewegungsmodus"
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr "Bautaste"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr "Bauen-Wiederholungsrate"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -6082,10 +6083,6 @@ msgid "Right key"
msgstr "Rechtstaste"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Rechtsklick-Wiederholungsrate"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "Flusskanaltiefe"
@@ -6127,7 +6124,7 @@ msgstr "Runde Übersichtskarte"
#: src/settings_translation_file.cpp
msgid "Safe digging and placing"
-msgstr "Sicheres graben und bauen"
+msgstr "Sicheres Graben und Bauen"
#: src/settings_translation_file.cpp
msgid "Sandy beaches occur when np_beach exceeds this value."
@@ -6385,6 +6382,19 @@ msgid "Show entity selection boxes"
msgstr "Entity-Auswahlboxen zeigen"
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Entityauswahlboxen zeigen\n"
+"Nach Änderung ist ein Neustart erforderlich."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Schrift standardmäßig fett"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Herunterfahrnachricht"
@@ -6540,11 +6550,7 @@ msgstr "Stufenbergsausbreitungsrauschen"
#: src/settings_translation_file.cpp
msgid "Strength of 3D mode parallax."
-msgstr "Stärke von 3D-Modus-Parallax."
-
-#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Stärke der generierten Normalmaps."
+msgstr "Stärke von 3-D-Modus-Parallax."
#: src/settings_translation_file.cpp
msgid ""
@@ -6670,6 +6676,10 @@ msgid "The URL for the content repository"
msgstr "Die URL für den Inhaltespeicher"
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr "Der Totbereich des Joysticks"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6748,17 +6758,17 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
"Das Renderer-Backend für Irrlicht.\n"
"Ein Neustart ist erforderlich, wenn dies geändert wird.\n"
"Anmerkung: Auf Android belassen Sie dies bei OGLES1, wenn Sie sich unsicher "
"sind.\n"
-"Die App könnte sonst unfähig sein, zu starten.\n"
-"Auf anderen Plattformen wird OpelGL empfohlen, dies ist momentan der "
-"einzige\n"
-"Treiber mit Shader-Unterstützung."
+"Die App könnte sonst nicht mehr starten.\n"
+"Auf anderen Plattformen wird OpenGL empfohlen.\n"
+"Shader werden unter OpenGL (nur Desktop) und OGLES2 (experimentell) "
+"unterstützt."
#: src/settings_translation_file.cpp
msgid ""
@@ -6795,6 +6805,14 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+"Das erlaubte Zeitbudget für ABM-Ausführung jeden Schritt\n"
+"(als Bruchteil des ABM-Intervalls)"
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6803,13 +6821,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
-"Die Zeit in Sekunden, in dem Rechtsklicks wiederholt werden, wenn die "
-"rechte\n"
-"Maustaste gedrückt gehalten wird."
+"Die Zeit in Sekunden, in dem die Blockplatzierung wiederholt wird, wenn\n"
+"die Bautaste gedrückt gehalten wird."
#: src/settings_translation_file.cpp
msgid "The type of joystick"
@@ -6977,6 +6993,26 @@ msgstr ""
"Eine gammakorrigierte Herunterskalierung wird nicht unterstützt."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+"Multi-Sample-Antialiasing (MSAA) benutzen, um Blockecken zu glätten.\n"
+"Dieser Algorithmus glättet das 3-D-Sichtfeld während das Bild scharf "
+"bleibt,\n"
+"beeinträchtigt jedoch nicht die Textureninnenflächen\n"
+"(was sich insbesondere bei transparenten Texturen bemerkbar macht).\n"
+"Sichtbare Lücken erscheinen zwischen Blöcken, wenn Shader ausgeschaltet "
+"sind.\n"
+"Wenn der Wert auf 0 steht, ist MSAA deaktiviert.\n"
+"Ein Neustart ist erforderlich, nachdem diese Option geändert worden ist."
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "Trilineare Filterung bei der Skalierung von Texturen benutzen."
@@ -7035,8 +7071,8 @@ msgid ""
"Defines the 'persistence' value for terrain_base and terrain_alt noises."
msgstr ""
"Variiert die Rauheit des Geländes.\n"
-"Definiert den „persistence“-Wert für „terrain_base“- und "
-"„terrain_alt“-Rauschen."
+"Definiert den „persistence“-Wert für „terrain_base“- und „terrain_alt“-"
+"Rauschen."
#: src/settings_translation_file.cpp
msgid "Varies steepness of cliffs."
@@ -7220,6 +7256,12 @@ msgstr ""
"benutzt."
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
"Ob Blocktexturanimationen pro Kartenblock desynchronisiert sein sollten."
@@ -7378,6 +7420,36 @@ msgid "Y-level of seabed."
msgstr "Y-Höhe vom Meeresgrund."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"ZLib-Kompressionsniveau für Kartenblöcke im Festspeicher.\n"
+"-1 - Zlib-Standard-Kompressionsniveau\n"
+"0 - keine Kompression, am schnellsten\n"
+"9 - beste Kompression, am langsamsten\n"
+"(Niveaus 1-3 verwenden Zlibs „schnelles“ Verfahren, 4-9 das normale "
+"Verfahren)"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"ZLib-Kompressionsniveau für Kartenblöcke, die zu Clients gesendet werden.\n"
+"-1 - Zlib-Standard-Kompressionsniveau\n"
+"0 - keine Kompression, am schnellsten\n"
+"9 - beste Kompression, am langsamsten\n"
+"(Niveaus 1-3 verwenden Zlibs „schnelles“ Verfahren, 4-9 das normale "
+"Verfahren)"
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "cURL-Dateidownload-Zeitüberschreitung"
@@ -7389,85 +7461,95 @@ msgstr "cURL-Parallel-Begrenzung"
msgid "cURL timeout"
msgstr "cURL-Zeitüberschreitung"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Filmmodus umschalten"
-
-#~ msgid "Select Package File:"
-#~ msgstr "Paket-Datei auswählen:"
-
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Y-Wert der Obergrenze von Lava in großen Höhlen."
-
-#~ msgid "Waving Water"
-#~ msgstr "Wasserwellen"
-
-#~ msgid "Whether dungeons occasionally project from the terrain."
-#~ msgstr "Ob Verliese manchmal aus dem Gelände herausragen."
-
-#~ msgid "Projecting dungeons"
-#~ msgstr "Herausragende Verliese"
-
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Y-Höhe, bis zu der sich die Schatten der Schwebeländer ausbreiten."
-
-#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
#~ msgstr ""
-#~ "Y-Höhe vom Mittelpunkt der Schwebeländer sowie\n"
-#~ "des Wasserspiegels von Seen."
-
-#~ msgid "Waving water"
-#~ msgstr "Wasserwellen"
+#~ "0 = Parallax-Mapping mit Stufeninformation (schneller).\n"
+#~ "1 = Relief-Mapping (langsamer, genauer)."
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
#~ msgstr ""
-#~ "Variierung der Hügelhöhe und Seetiefe in den ruhig verlaufenden\n"
-#~ "Regionen der Schwebeländer."
+#~ "Ändert die Gammakodierung der Lichttabellen. Kleinere Werte sind heller.\n"
+#~ "Diese Einstellung ist rein clientseitig und wird vom Server ignoriert."
-#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
#~ msgstr ""
-#~ "Typische Maximalhöhe, über und unter dem Mittelpunkt von Gebirgen in den\n"
-#~ "Schwebeländern."
+#~ "Verändert, wie Schwebeländer des Bergtyps sich über und unter dem "
+#~ "Mittelpunkt zuspitzen."
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Diese Schrift wird von bestimmten Sprachen benutzt."
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Sind Sie sicher, dass Sie die Einzelspielerwelt löschen wollen?"
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "Stärke der Lichtkurven-Mittenverstärkung."
+#~ msgid "Back"
+#~ msgstr "Rücktaste"
-#~ msgid "Shadow limit"
-#~ msgstr "Schattenbegrenzung"
+#~ msgid "Bump Mapping"
+#~ msgstr "Bumpmapping"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "Pfad zu einer TrueType- oder Bitmap-Schrift."
+#~ msgid "Bumpmapping"
+#~ msgstr "Bumpmapping"
-#~ msgid "Lightness sharpness"
-#~ msgstr "Helligkeitsschärfe"
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "Mitte der Lichtkurven-Mittenverstärkung."
-#~ msgid "Lava depth"
-#~ msgstr "Lavatiefe"
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "Ändert die Hauptmenü-UI:\n"
+#~ "- Full: Mehrere Einzelspielerwelten, Spiel- und Texturenpaketauswahl, "
+#~ "usw.\n"
+#~ "- Simple: Eine Einzelspielerwelt, keine Spiel- oder "
+#~ "Texturenpaketauswahl. Könnte\n"
+#~ "für kleinere Bildschirme nötig sein."
-#~ msgid "IPv6 support."
-#~ msgstr "IPv6-Unterstützung."
+#~ msgid "Config mods"
+#~ msgstr "Mods konfigurieren"
-#~ msgid "Gamma"
-#~ msgstr "Gamma"
+#~ msgid "Configure"
+#~ msgstr "Konfigurieren"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
#~ msgstr ""
-#~ "Undurchsichtigkeit des Schattens der Schrift (Wert zwischen 0 und 255)."
+#~ "Legt die Dichte von Gebirgen in den Schwebeländern fest.\n"
+#~ "Dies ist ein Versatz, der zum Rauschwert „mgv7_np_mountain“ addiert wird."
-#~ msgid "Floatland mountain height"
-#~ msgstr "Schwebelandberghöhe"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Legt die Breite von Tunneln fest; ein kleinerer Wert erzeugt breitere "
+#~ "Tunnel."
-#~ msgid "Floatland base height noise"
-#~ msgstr "Schwebeland-Basishöhenrauschen"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Fadenkreuzfarbe (R,G,B)."
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Aktiviert filmisches Tone-Mapping"
+#~ msgid "Darkness sharpness"
+#~ msgstr "Dunkelheits-Steilheit"
-#~ msgid "Enable VBO"
-#~ msgstr "VBO aktivieren"
+#~ msgid ""
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
+#~ msgstr ""
+#~ "Definiert Gebiete von ruhig verlaufendem\n"
+#~ "Gelände in den Schwebeländern. Weiche\n"
+#~ "Schwebeländer treten auf, wenn der\n"
+#~ "Rauschwert > 0 ist."
+
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Definiert die Sampling-Schrittgröße der Textur.\n"
+#~ "Ein höherer Wert resultiert in weichere Normal-Maps."
#~ msgid ""
#~ "Deprecated, define and locate cave liquids using biome definitions "
@@ -7478,60 +7560,213 @@ msgstr "cURL-Zeitüberschreitung"
#~ "Höhlenflüssigkeiten in Biomdefinitionen.\n"
#~ "Y der Obergrenze von Lava in großen Höhlen."
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "$1 wird heruntergeladen und installiert, bitte warten …"
+
+#~ msgid "Enable VBO"
+#~ msgstr "VBO aktivieren"
+
#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Definiert Gebiete von ruhig verlaufendem\n"
-#~ "Gelände in den Schwebeländern. Weiche\n"
-#~ "Schwebeländer treten auf, wenn der\n"
-#~ "Rauschwert > 0 ist."
+#~ "Aktiviert das Bump-Mapping für Texturen. Normal-Maps müssen im "
+#~ "Texturenpaket\n"
+#~ "vorhanden sein oder müssen automatisch erzeugt werden.\n"
+#~ "Shader müssen aktiviert werden, bevor diese Einstellung aktiviert werden "
+#~ "kann."
-#~ msgid "Darkness sharpness"
-#~ msgstr "Dunkelheits-Steilheit"
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Aktiviert filmisches Tone-Mapping"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Legt die Breite von Tunneln fest; ein kleinerer Wert erzeugt breitere "
-#~ "Tunnel."
+#~ "Aktiviert die spontane Normalmap-Erzeugung (Prägungseffekt).\n"
+#~ "Für diese Einstellung muss außerdem Bump-Mapping aktiviert sein."
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Legt die Dichte von Gebirgen in den Schwebeländern fest.\n"
-#~ "Dies ist ein Versatz, der zum Rauschwert „mgv7_np_mountain“ addiert wird."
+#~ "Aktiviert Parralax-Occlusion-Mapping.\n"
+#~ "Hierfür müssen Shader aktiviert sein."
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "Mitte der Lichtkurven-Mittenverstärkung."
-
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
#~ msgstr ""
-#~ "Verändert, wie Schwebeländer des Bergtyps sich über und unter dem "
-#~ "Mittelpunkt zuspitzen."
+#~ "Experimentelle Einstellung, könnte sichtbare Leerräume zwischen\n"
+#~ "Blöcken verursachen, wenn auf einen Wert größer 0 gesetzt."
-#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ msgid "FPS in pause menu"
+#~ msgstr "Bildwiederholrate im Pausenmenü"
+
+#~ msgid "Floatland base height noise"
+#~ msgstr "Schwebeland-Basishöhenrauschen"
+
+#~ msgid "Floatland mountain height"
+#~ msgstr "Schwebelandberghöhe"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
#~ msgstr ""
-#~ "Ändert die Gammakodierung der Lichttabellen. Kleinere Werte sind heller.\n"
-#~ "Diese Einstellung ist rein clientseitig und wird vom Server ignoriert."
+#~ "Undurchsichtigkeit des Schattens der Schrift (Wert zwischen 0 und 255)."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Pfad, in dem Bildschirmfotos abgespeichert werden."
+#~ msgid "Gamma"
+#~ msgstr "Gamma"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "Parallax-Occlusion-Stärke"
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Normalmaps generieren"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Normalmaps generieren"
+
+#~ msgid "IPv6 support."
+#~ msgstr "IPv6-Unterstützung."
+
+#~ msgid "Lava depth"
+#~ msgstr "Lavatiefe"
+
+#~ msgid "Lightness sharpness"
+#~ msgstr "Helligkeitsschärfe"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "Erzeugungswarteschlangengrenze auf Festspeicher"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "$1 wird heruntergeladen und installiert, bitte warten …"
+#~ msgid "Main"
+#~ msgstr "Hauptmenü"
-#~ msgid "Back"
-#~ msgstr "Rücktaste"
+#~ msgid "Main menu style"
+#~ msgstr "Hauptmenü-Stil"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Übersichtskarte im Radarmodus, Zoom ×2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Übersichtskarte im Radarmodus, Zoom ×4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Übersichtskarte im Bodenmodus, Zoom ×2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Übersichtskarte im Bodenmodus, Zoom ×4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Name/Passwort"
+
+#~ msgid "No"
+#~ msgstr "Nein"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Normalmaps-Sampling"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Normalmap-Stärke"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "Anzahl der Parallax-Occlusion-Iterationen."
#~ msgid "Ok"
#~ msgstr "OK"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr ""
+#~ "Startwert des Parallax-Occlusion-Effektes, üblicherweise Skalierung "
+#~ "geteilt durch 2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Gesamtskalierung des Parallax-Occlusion-Effektes."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parallax-Occlusion"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Parallax-Occlusion"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Parallax-Occlusion-Startwert"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Parallax-Occlusion-Iterationen"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Parallax-Occlusion-Modus"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Parallax-Occlusion-Skalierung"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "Parallax-Occlusion-Stärke"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "Pfad zu einer TrueType- oder Bitmap-Schrift."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Pfad, in dem Bildschirmfotos abgespeichert werden."
+
+#~ msgid "Projecting dungeons"
+#~ msgstr "Herausragende Verliese"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Einzelspielerwelt zurücksetzen"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Paket-Datei auswählen:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "Schattenbegrenzung"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Einzelspieler starten"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Stärke der generierten Normalmaps."
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "Stärke der Lichtkurven-Mittenverstärkung."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Diese Schrift wird von bestimmten Sprachen benutzt."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Filmmodus umschalten"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr ""
+#~ "Typische Maximalhöhe, über und unter dem Mittelpunkt von Gebirgen in den\n"
+#~ "Schwebeländern."
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr ""
+#~ "Variierung der Hügelhöhe und Seetiefe in den ruhig verlaufenden\n"
+#~ "Regionen der Schwebeländer."
+
+#~ msgid "View"
+#~ msgstr "Ansehen"
+
+#~ msgid "Waving Water"
+#~ msgstr "Wasserwellen"
+
+#~ msgid "Waving water"
+#~ msgstr "Wasserwellen"
+
+#~ msgid "Whether dungeons occasionally project from the terrain."
+#~ msgstr "Ob Verliese manchmal aus dem Gelände herausragen."
+
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Y-Wert der Obergrenze von Lava in großen Höhlen."
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr ""
+#~ "Y-Höhe vom Mittelpunkt der Schwebeländer sowie\n"
+#~ "des Wasserspiegels von Seen."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Y-Höhe, bis zu der sich die Schatten der Schwebeländer ausbreiten."
+
+#~ msgid "Yes"
+#~ msgstr "Ja"
diff --git a/po/dv/minetest.po b/po/dv/minetest.po
index c5d325108..4c4b53954 100644
--- a/po/dv/minetest.po
+++ b/po/dv/minetest.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Dhivehi (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: 2019-11-10 15:04+0000\n"
"Last-Translator: Krock <mk939@ymail.com>\n"
"Language-Team: Dhivehi <https://hosted.weblate.org/projects/minetest/"
@@ -48,10 +48,6 @@ msgstr "aa gulhumeh"
msgid "The server has requested a reconnect:"
msgstr "ÞÞ¦Þ§ÞˆÞ¦Þƒ Þ‡Þ¨Þ‚Þ° ÞƒÞ¨Þ†Þ¦Þ‚Þ¬Þ†Þ°Þ“Þ¦Þ†Þ¦ÞÞ° Þ‡Þ¬Þ‹Þ¬ÞŠÞ¨:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "ÞÞ¯Þ‘Þ°ÞˆÞ¦Þ‚Þ©..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Þ•Þ°ÞƒÞ®Þ“Þ®Þ†Þ¯ÞÞ° ÞˆÞ§ÞÞ¦Þ‚Þ° ÞŠÞªÞÞªÞ‡Þ¬ÞƒÞªÞ‰Þ¬Þ‡Þ°. "
@@ -65,10 +61,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "$1 Þ‡Þ§Þ‡Þ¨ 2$ Þ‹Þ¬Þ‰Þ¬Þ‹ÞªÞŽÞ¬ Þ•Þ°ÞƒÞ®Þ“Þ®Þ†Þ¯ÞÞ° ÞˆÞ§Þަންތައް ÞÞ§ÞˆÞ¦Þƒ ÞÞ¦Þ¨Þ•Þ¯Þ“Þ° Þ†ÞªÞƒÞ­. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr "Þ•Þ¦Þ„Þ°ÞÞ¨Þ†Þ° ÞÞ§ÞˆÞ¦Þƒ ÞÞ¨ÞÞ°Þ“Þª Þ‡Þ¦ÞÞªÞ‚Þ° Þ–Þ¦Þ‡Þ°ÞÞ¦ÞˆÞ§.Þ‡Þ¦Þ‹Þ¨ Þ‡Þ¨Þ‚Þ°Þ“Þ¦Þ‚Þ¬Þ“Þ° Þ†Þ¦Þ‚Þ¬Þ†Þ°ÞÞ¦Þ‚Þ° Þ—Þ¬Þ†Þ°Þ†ÞªÞƒÞ¦Þ‡Þ°ÞˆÞ§."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Þ‡Þ¦Þ…ÞªÞŽÞ¦Þ‚Þ‘ÞªÞ‰Þ¬Þ‚Þ° Þ€Þ¦Þ‰Þ¦Þ‡Þ¬Þ†Þ¦Þ‚Þ¨ ÞÞ¦Þ•Þ¯Þ“Þ°Þ†ÞªÞƒÞ¦Þ‚Þ© Þ•Þ°ÞƒÞ®Þ“Þ®Þ†Þ¯ÞÞ° ÞˆÞ§ÞÞ¦Þ‚Þ° 1$."
@@ -76,7 +68,8 @@ msgstr "Þ‡Þ¦Þ…ÞªÞŽÞ¦Þ‚Þ‘ÞªÞ‰Þ¬Þ‚Þ° Þ€Þ¦Þ‰Þ¦Þ‡Þ¬Þ†Þ¦Þ‚Þ¨ ÞÞ¦Þ•Þ¯Þ“Þ°Þ†ÞªÞƒÞ¦Þ‚Þ©
msgid "We support protocol versions between version $1 and $2."
msgstr "Þ‡Þ¦Þ…ÞªÞŽÞ¦Þ‚Þ‘ÞªÞ‰Þ¬Þ‚Þ° 1$ Þ‡Þ§Þ‡Þ¨ 2$ Þ‡Þ§Þ‡Þ¨ Þ‹Þ¬Þ‰Þ¬Þ‹ÞªÞŽÞ¬ Þ•Þ®ÞƒÞ®Þ“Þ®Þ†Þ¯ÞÞ° ÞˆÞ§Þަންތައް ÞÞ¦Þ•Þ¯Þ“Þ° Þ†ÞªÞƒÞ¦Þ‚Þ°."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +79,8 @@ msgstr "Þ‡Þ¦Þ…ÞªÞŽÞ¦Þ‚Þ‘ÞªÞ‰Þ¬Þ‚Þ° 1$ Þ‡Þ§Þ‡Þ¨ 2$ Þ‡Þ§Þ‡Þ¨ Þ‹Þ¬Þ‰Þ¬Þ‹ÞªÞŽÞ¬ Þ•Þ®
msgid "Cancel"
msgstr "Þ†Þ¬Þ‚Þ°ÞÞ¦ÞÞ°"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Þ„Þ¦ÞƒÞ¯ÞÞ§ÞˆÞ§(Þ‘Þ¨Þ•Þ¬Þ‚Þ°Þ‘Þ¬Þ‚Þ°ÞÞ©Þ’Þ°):"
@@ -162,14 +156,54 @@ msgid "enabled"
msgstr "Þ–Þ¦Þ‡Þ°ÞÞ§ÞŠÞ¦"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "ÞÞ¯Þ‘Þ°ÞˆÞ¦Þ‚Þ©..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Þ‡Þ¬Þ‚Þ„ÞªÞƒÞ¨ Þ‰Þ¬Þ‡Þ¨Þ‚Þ° Þ‰Þ¬Þ‚Þ«Þ‡Þ¦ÞÞ°"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "ÞŽÞ­Þ‰Þ° Þ€Þ®ÞÞ°Þ“Þ°Þ†ÞªÞƒÞ­"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -192,6 +226,16 @@ msgid "Install"
msgstr "Þ‡Þ¦Þ…Þ§"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Þ‡Þ¦Þ…Þ§"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "ÞÞ§Þ’Þ¨Þ‰ÞªÞ‚Þ«Þ‚Þ° Þ‘Þ¨Þ•Þ¬Þ‚Þ°Þ‘Þ¬Þ‚Þ°Þީތައް:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "މޮޑްތައް"
@@ -205,9 +249,24 @@ msgid "No results"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Þ€Þ¯Þ‹Þ§"
+msgid "No updates"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -222,7 +281,11 @@ msgid "Update"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -521,6 +584,10 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Þ€Þ¯Þ‹Þ§"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select directory"
msgstr "Þ‰Þ®Þ‘Þ°ÞŽÞ¬ ÞŠÞ¦Þ‡Þ¨ÞÞ° އިހްތިޔާރުކުރޭ:"
@@ -643,6 +710,18 @@ msgstr "$1 $2Þ‡Þ¦ÞÞ° Þ‚Þ­Þ…ÞªÞ‚Þª"
msgid "Unable to install a modpack as a $1"
msgstr "$1 $2Þ‡Þ¦ÞÞ° Þ‚Þ­Þ…ÞªÞ‚Þª"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "ÞÞ¯Þ‘Þ°ÞˆÞ¦Þ‚Þ©..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr "Þ•Þ¦Þ„Þ°ÞÞ¨Þ†Þ° ÞÞ§ÞˆÞ¦Þƒ ÞÞ¨ÞÞ°Þ“Þª Þ‡Þ¦ÞÞªÞ‚Þ° Þ–Þ¦Þ‡Þ°ÞÞ¦ÞˆÞ§.Þ‡Þ¦Þ‹Þ¨ Þ‡Þ¨Þ‚Þ°Þ“Þ¦Þ‚Þ¬Þ“Þ° Þ†Þ¦Þ‚Þ¬Þ†Þ°ÞÞ¦Þ‚Þ° Þ—Þ¬Þ†Þ°Þ†ÞªÞƒÞ¦Þ‡Þ°ÞˆÞ§."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -700,6 +779,17 @@ msgid "Credits"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Þ‰Þ®Þ‘Þ°ÞŽÞ¬ ÞŠÞ¦Þ‡Þ¨ÞÞ° އިހްތިޔާރުކުރޭ:"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr ""
@@ -716,14 +806,10 @@ msgid "Bind Address"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Þ„Þ¦Þ‹Þ¦ÞÞªÞŽÞ¬Þ‚Þ­"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Þ†Þ°ÞƒÞ¨Þ‡Þ­Þ“Þ¨ÞˆÞ° Þ‰Þ¯Þ‘Þ°"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "ÞŽÞ¬Þ‡Þ°ÞÞªÞ‚Þ° Þ–Þ¦Þ‡Þ°ÞÞ§"
@@ -740,8 +826,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Þ•Þ§ÞÞ°ÞˆÞ¯Þ‘Þ° / Þ‚Þ¦Þ‚Þ°"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -752,6 +838,11 @@ msgid "No world created or selected!"
msgstr "Þ‡Þ¬Þ‡Þ°ÞˆÞ¬ÞÞ° Þ‹ÞªÞ‚Þ¨Þ”Þ¬Þ‡Þ¬Þ‡Þ° Þ‡ÞªÞŠÞ¬Þ‹Þ¨ÞŠÞ¦Þ‡Þ¬Þ‡Þ° ނުވަތަ އިހްތިޔާރުވެފައެއް Þ‚Þ¬Þ Þ°!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Þ•Þ§ÞÞ°ÞˆÞ¯Þ‘Þ° / Þ‚Þ¦Þ‚Þ°"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "ÞŽÞ­Þ‰Þ° Þ†ÞªÞ…Þ­"
@@ -760,6 +851,11 @@ msgid "Port"
msgstr "Þ•Þ¯Þ“Þ°"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "ދުނިޔެ އިހްތިޔާރު ކުރޭ:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "ދުނިޔެ އިހްތިޔާރު ކުރޭ:"
@@ -776,23 +872,23 @@ msgstr "ÞŽÞ­Þ‰Þ° Þ€Þ®ÞÞ°Þ“Þ°Þ†ÞªÞƒÞ­"
msgid "Address / Port"
msgstr "Þ‡Þ¬Þ‘Þ°ÞƒÞ¬ÞÞ° / Þ•Þ¯Þ“Þ°"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Þ†Þ¦Þ‚Þ¬Þ†Þ°Þ“Þ°Þ†ÞªÞƒÞ­"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Þ†Þ°ÞƒÞ¨Þ‡Þ­Þ“Þ¨ÞˆÞ° Þ‰Þ¯Þ‘Þ°"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Þ‡Þ¦Þ‚Þ¨Þ”Þ§ÞˆÞªÞ‚Þ° Þ–Þ¦Þ‡Þ°ÞÞ§ÞŠÞ¦Þ‡Þ¨"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Þ‡Þ¬Þ‚Þ°Þ‰Þ¬ ÞŽÞ¦Þ”Þ§Þ‚ÞªÞˆÞ­"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Þ‡Þ¬Þ‚Þ°Þ‰Þ¬ ÞŽÞ¦Þ”Þ§ÞˆÞ­"
@@ -801,16 +897,16 @@ msgstr "Þ‡Þ¬Þ‚Þ°Þ‰Þ¬ ÞŽÞ¦Þ”Þ§ÞˆÞ­"
msgid "Join Game"
msgstr "ÞŽÞ­Þ‰Þ° Þ€Þ®ÞÞ°Þ“Þ°Þ†ÞªÞƒÞ­"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Þ•Þ§ÞÞ°ÞˆÞ¯Þ‘Þ° / Þ‚Þ¦Þ‚Þ°"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "Þ•Þ©.ÞˆÞ©.Þ•Þ© Þ–Þ¦Þ‡Þ°ÞÞ§"
@@ -839,10 +935,6 @@ msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
@@ -850,10 +942,6 @@ msgstr ""
msgid "Bilinear Filter"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr ""
@@ -867,10 +955,6 @@ msgid "Fancy Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr ""
@@ -879,10 +963,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Þ‚Þ«Þ‚Þ°"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr ""
@@ -910,19 +990,11 @@ msgstr ""
msgid "Opaque Water"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "ÞÞ°Þ†Þ°ÞƒÞ©Þ‚Þ°:"
@@ -935,6 +1007,10 @@ msgid "Shaders"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr ""
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -978,22 +1054,6 @@ msgstr ""
msgid "Waving Plants"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr ""
@@ -1156,13 +1216,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1300,34 +1360,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1720,6 +1752,24 @@ msgstr ""
msgid "Zoom"
msgstr ""
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr ""
@@ -1965,12 +2015,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2077,6 +2121,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2314,10 +2362,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2388,16 +2432,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2549,6 +2583,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "ÞÞ®Þ“Þ¯Þƒ Þ†ÞªÞÞ¯Þ’Þ°Þ†Þ®ÞÞ°ÞÞ§"
@@ -2606,7 +2644,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2614,7 +2654,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2716,12 +2758,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2792,6 +2828,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2852,7 +2892,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2940,14 +2980,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2957,18 +2989,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2985,12 +3005,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3000,8 +3014,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "Þ•Þ¯ÞÞ° Þ‰Þ¬Þ‚Þ«ÞŽÞ¦Þ‡Þ¨ Þ‡Þ¬ÞŠÞ°.Þ•Þ©.Þ‡Þ¬ÞÞ°"
+msgid "FPS when unfocused or paused"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3302,10 +3316,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3359,8 +3369,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3827,6 +3837,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3907,6 +3921,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4006,6 +4027,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4562,11 +4590,6 @@ msgid "Main menu script"
msgstr "Þ‰Þ¬Þ‡Þ¨Þ‚Þ° Þ‰Þ¬Þ‚Þ« ÞÞ°Þ†Þ°ÞƒÞ¨Þ•Þ°Þ“Þ°"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Þ‰Þ¬Þ‡Þ¨Þ‚Þ° Þ‰Þ¬Þ‚Þ« ÞÞ°Þ†Þ°ÞƒÞ¨Þ•Þ°Þ“Þ°"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4580,6 +4603,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4749,7 +4780,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4798,6 +4829,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5030,14 +5068,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5063,10 +5093,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5092,34 +5118,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5185,6 +5183,14 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5340,10 +5346,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5595,6 +5597,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5724,10 +5736,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5821,6 +5829,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5879,8 +5891,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5906,15 +5918,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6050,6 +6067,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6252,6 +6280,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6375,6 +6409,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6386,12 +6438,25 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
-#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "Þ‰Þ®Þ‘Þ°ÞŽÞ¬ ÞŠÞ¦Þ‡Þ¨ÞÞ° އިހްތިޔާރުކުރޭ:"
+#~ msgid "Configure"
+#~ msgstr "Þ„Þ¦Þ‹Þ¦ÞÞªÞŽÞ¬Þ‚Þ­"
#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr "$1 Þ‘Þ¦Þ‡ÞªÞ‚Þ°ÞÞ¯Þ‘Þ®Þ†Þ®ÞÞ° Þ‡Þ¨Þ‚Þ°ÞÞ°Þ“Þ¯ÞÞ°Þ†ÞªÞƒÞ¦Þ‚Þ©ØŒ Þ‰Þ¦Þ‘ÞªÞ†ÞªÞƒÞ¦Þ‡Þ°ÞˆÞ§..."
+#~ msgid "FPS in pause menu"
+#~ msgstr "Þ•Þ¯ÞÞ° Þ‰Þ¬Þ‚Þ«ÞŽÞ¦Þ‡Þ¨ Þ‡Þ¬ÞŠÞ°.Þ•Þ©.Þ‡Þ¬ÞÞ°"
+
+#, fuzzy
+#~ msgid "Main menu style"
+#~ msgstr "Þ‰Þ¬Þ‡Þ¨Þ‚Þ° Þ‰Þ¬Þ‚Þ« ÞÞ°Þ†Þ°ÞƒÞ¨Þ•Þ°Þ“Þ°"
+
+#~ msgid "No"
+#~ msgstr "Þ‚Þ«Þ‚Þ°"
+
#~ msgid "Ok"
#~ msgstr "emme rangalhu"
+
+#, fuzzy
+#~ msgid "Select Package File:"
+#~ msgstr "Þ‰Þ®Þ‘Þ°ÞŽÞ¬ ÞŠÞ¦Þ‡Þ¨ÞÞ° އިހްތިޔާރުކުރޭ:"
diff --git a/po/el/minetest.po b/po/el/minetest.po
index 1992676a4..b9b6182bf 100644
--- a/po/el/minetest.po
+++ b/po/el/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Greek (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-03-31 20:29+0000\n"
-"Last-Translator: THANOS SIOURDAKIS <siourdakisthanos@gmail.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-13 08:50+0000\n"
+"Last-Translator: Michalis <michalisntovas@yahoo.gr>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/minetest/minetest/"
"el/>\n"
"Language: el\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.0-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -46,10 +46,6 @@ msgstr "ΕπανασÏνδεση"
msgid "The server has requested a reconnect:"
msgstr "Ο διακομιστής ζήτησε επανασÏνδεση:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "ΦόÏτωση..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Ασυμφωνία έκδοσης Ï€Ïωτοκόλλου. "
@@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Ο διακομιστής υποστηÏίζει εκδόσεις Ï€Ïωτοκόλλων Î¼ÎµÏ„Î±Î¾Ï $1 και $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Δοκιμάστε να ενεÏγοποιήσετε ξανά τη δημόσια λίστα διακομιστών και ελέγξτε τη "
-"σÏνδεσή σας στο διαδίκτυο."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "ΥποστηÏίζουμε μόνο το Ï€Ïωτόκολλο έκδοσης $1."
@@ -76,7 +66,8 @@ msgstr "ΥποστηÏίζουμε μόνο το Ï€Ïωτόκολλο έκδοσ
msgid "We support protocol versions between version $1 and $2."
msgstr "ΥποστηÏίζουμε τις εκδόσεις Ï€Ïωτοκόλλων Î¼ÎµÏ„Î±Î¾Ï Ï„Î·Ï‚ έκδοσης $1 και $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -84,9 +75,10 @@ msgstr "ΥποστηÏίζουμε τις εκδόσεις Ï€ÏωτοκόλλωÎ
#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
#: src/gui/guiPasswordChange.cpp
msgid "Cancel"
-msgstr "Ματαίωση"
+msgstr "ΆκυÏο"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "ΕξαÏτήσεις:"
@@ -158,21 +150,59 @@ msgid "enabled"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Λήψη ..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
-msgstr "ΦόÏτωση..."
+msgstr "Λήψη ..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
@@ -188,6 +218,14 @@ msgid "Install"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr ""
@@ -201,8 +239,23 @@ msgid "No results"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
+msgid "No updates"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
@@ -218,7 +271,11 @@ msgid "Update"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -513,6 +570,10 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr ""
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr ""
@@ -627,6 +688,20 @@ msgstr ""
msgid "Unable to install a modpack as a $1"
msgstr ""
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "ΦόÏτωση..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Δοκιμάστε να ενεÏγοποιήσετε ξανά τη δημόσια λίστα διακομιστών και ελέγξτε τη "
+"σÏνδεσή σας στο διαδίκτυο."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -680,6 +755,16 @@ msgid "Credits"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr ""
@@ -696,14 +781,10 @@ msgid "Bind Address"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr ""
@@ -720,7 +801,7 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
+msgid "Name"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -732,6 +813,10 @@ msgid "No world created or selected!"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr ""
@@ -740,6 +825,10 @@ msgid "Port"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr ""
@@ -755,23 +844,23 @@ msgstr ""
msgid "Address / Port"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr ""
@@ -779,16 +868,16 @@ msgstr ""
msgid "Join Game"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr ""
@@ -817,10 +906,6 @@ msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
@@ -828,10 +913,6 @@ msgstr ""
msgid "Bilinear Filter"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr ""
@@ -845,10 +926,6 @@ msgid "Fancy Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr ""
@@ -857,10 +934,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr ""
@@ -888,19 +961,11 @@ msgstr ""
msgid "Opaque Water"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr ""
@@ -913,6 +978,10 @@ msgid "Shaders"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr ""
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -956,22 +1025,6 @@ msgstr ""
msgid "Waving Plants"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr ""
@@ -1042,7 +1095,7 @@ msgstr ""
#. When in doubt, test your translation.
#: src/client/fontengine.cpp
msgid "needs_fallback_font"
-msgstr "yes"
+msgstr "no"
#: src/client/game.cpp
msgid ""
@@ -1131,13 +1184,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1259,34 +1312,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1678,6 +1703,24 @@ msgstr ""
msgid "Zoom"
msgstr ""
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr ""
@@ -1922,12 +1965,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2034,6 +2071,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2267,10 +2308,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2341,16 +2378,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2502,6 +2529,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2558,7 +2589,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2566,7 +2599,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2666,12 +2701,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2742,6 +2771,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2802,7 +2835,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2890,14 +2923,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2907,18 +2932,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2935,12 +2948,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -2950,7 +2957,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3252,10 +3259,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3309,8 +3312,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3777,6 +3780,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3857,6 +3864,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -3956,6 +3970,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4512,10 +4533,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4529,6 +4546,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4692,7 +4717,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4741,6 +4766,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -4970,14 +5002,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5003,10 +5027,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5032,34 +5052,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5125,6 +5117,14 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5280,10 +5280,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5535,6 +5531,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5664,10 +5670,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5761,6 +5763,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5819,8 +5825,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5846,15 +5852,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -5990,6 +6001,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6192,6 +6214,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6314,6 +6342,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
diff --git a/po/eo/minetest.po b/po/eo/minetest.po
index 752538f5e..64db5dd71 100644
--- a/po/eo/minetest.po
+++ b/po/eo/minetest.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Esperanto (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-07-06 21:41+0000\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-07-17 08:41+0000\n"
"Last-Translator: Tirifto <tirifto@posteo.cz>\n"
"Language-Team: Esperanto <https://hosted.weblate.org/projects/minetest/"
"minetest/eo/>\n"
@@ -46,10 +46,6 @@ msgstr "Rekonekti"
msgid "The server has requested a reconnect:"
msgstr "La servilo petis rekonekton:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Enlegante…"
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Protokola versia miskongruo. "
@@ -63,11 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "La servilo subtenas protokolajn versiojn inter $1 kaj $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Provu reÅalti la publikan liston de serviloj kaj kontroli vian retkonekton."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Ni nur subtenas protokolan version $1."
@@ -75,7 +66,8 @@ msgstr "Ni nur subtenas protokolan version $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Ni subtenas protokolajn versiojn inter versioj $1 kaj $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -85,7 +77,8 @@ msgstr "Ni subtenas protokolajn versiojn inter versioj $1 kaj $2."
msgid "Cancel"
msgstr "Nuligi"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Dependas de:"
@@ -159,21 +152,61 @@ msgid "enabled"
msgstr "Åaltita"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "ElÅutante…"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Ĉiuj pakaĵoj"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Klavo jam estas uzata"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Reeniri al ĉefmenuo"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Gastigi ludon"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "ContentDB ne estas disponebla per Minetest kodotradukita sen cURL"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
-msgstr "Enlegante…"
+msgstr "ElÅutante…"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
@@ -189,6 +222,16 @@ msgid "Install"
msgstr "Instali"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Instali"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Malnepraj dependaĵoj:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Modifaĵoj"
@@ -202,9 +245,26 @@ msgid "No results"
msgstr "Neniuj rezultoj"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Serĉi"
+#, fuzzy
+msgid "No updates"
+msgstr "Äœisdatigi"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Not found"
+msgstr "Silentigi sonon"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -219,8 +279,12 @@ msgid "Update"
msgstr "Äœisdatigi"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "Vido"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -334,7 +398,7 @@ msgstr "Montoj"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "Fluo de koto"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
@@ -521,6 +585,10 @@ msgid "Scale"
msgstr "Skalo"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Serĉi"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Elekti dosierujon"
@@ -636,6 +704,20 @@ msgstr "Malsukcesis instali modifaĵon kiel $1"
msgid "Unable to install a modpack as a $1"
msgstr "Malsukcesis instali modifaĵaron kiel $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Enlegante…"
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Klient-flanka skriptado malÅaltita"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Provu reÅalti la publikan liston de serviloj kaj kontroli vian retkonekton."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Foliumi enretan enhavon"
@@ -689,6 +771,17 @@ msgid "Credits"
msgstr "Kontribuantaro"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Elekti dosierujon"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Eksaj kontribuistoj"
@@ -705,14 +798,10 @@ msgid "Bind Address"
msgstr "Asocii adreso"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Agordi"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Krea reÄimo"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Åœalti difektadon"
@@ -726,11 +815,11 @@ msgstr "Gastigi servilon"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "Instali ludojn de ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Nomo/Pasvorto"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -741,6 +830,11 @@ msgid "No world created or selected!"
msgstr "Neniu mondo estas kreita aÅ­ elektita!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Nova pasvorto"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Ludi"
@@ -749,6 +843,11 @@ msgid "Port"
msgstr "Pordo"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Elektu mondon:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Elektu mondon:"
@@ -764,23 +863,23 @@ msgstr "Ekigi ludon"
msgid "Address / Port"
msgstr "Adreso / Pordo"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Konekti"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Krea reÄimo"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Difektado estas Åaltita"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Forigi Åataton"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Åœati"
@@ -788,16 +887,16 @@ msgstr "Åœati"
msgid "Join Game"
msgstr "AliÄi al ludo"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Nomo / Pasvorto"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Retprokrasto"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "Dueloj Åaltitas"
@@ -826,10 +925,6 @@ msgid "Antialiasing:"
msgstr "Glatigo:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Ĉu vi certas, ke vi volas rekomenci vian mondon por unu ludanto?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Memori grandecon de ekrano"
@@ -837,10 +932,6 @@ msgstr "Memori grandecon de ekrano"
msgid "Bilinear Filter"
msgstr "Dulineara filtrilo"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Tubera mapado"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "ÅœanÄi klavojn"
@@ -854,10 +945,6 @@ msgid "Fancy Leaves"
msgstr "Åœikaj folioj"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Estigi Normalmapojn"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Etmapo"
@@ -866,10 +953,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Etmapo + Neizotropa filtrilo"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Ne"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Neniu filtrilo"
@@ -897,19 +980,11 @@ msgstr "Netravideblaj folioj"
msgid "Opaque Water"
msgstr "Netravidebla akvo"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Paralaksa ombrigo"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Partikloj"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Rekomenci mondon por unu ludanto"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Ekrano:"
@@ -922,6 +997,11 @@ msgid "Shaders"
msgstr "Ombrigiloj"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Fluginsuloj (eksperimentaj)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Ombrigiloj (nehaveblaj)"
@@ -965,22 +1045,6 @@ msgstr "Ondantaj fluaĵoj"
msgid "Waving Plants"
msgstr "Ondantaj plantoj"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Jes"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Agordi modifaĵojn"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Ĉefmenuo"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Komenci ludon por unu"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Konekto eltempiÄis."
@@ -1135,20 +1199,20 @@ msgid "Continue"
msgstr "DaÅ­rigi"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1296,34 +1360,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Mapeto nuntempe malÅaltita de ludo aÅ­ modifaĵo"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Mapeto kaÅita"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Mapeto en radara reÄimo, zomo ×1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Mapeto en radara reÄimo, zomo ×2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Mapeto en radara reÄimo, zomo ×4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Mapeto en supraĵa reÄimo, zomo ×1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Mapeto en supraĵa reÄimo, zomo ×2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Mapeto en supraĵa reÄimo, zomo ×4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Trapasa reÄimo malÅaltita"
@@ -1715,6 +1751,25 @@ msgstr "X-Butono 2"
msgid "Zoom"
msgstr "Zomo"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Mapeto kaÅita"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Mapeto en radara reÄimo, zomo ×1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Mapeto en supraĵa reÄimo, zomo ×1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Minimuma grandeco de teksturoj"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Pasvortoj ne kongruas!"
@@ -1985,14 +2040,6 @@ msgstr ""
"egaligu ĉiujn tri nombrojn por akiri la krudan formon."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = paralaksa ombrigo kun klinaj informoj (pli rapida).\n"
-"1 = reliefa mapado (pli preciza)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "2d-a bruo, kiu regas la formon/grandon de krestaj montoj."
@@ -2051,6 +2098,10 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
+"3d-bruo difinanta la strukturon de fluginsuloj.\n"
+"ÅœanÄite de la implicita valoro, la bruo «scale» (implicite 0.7) eble\n"
+"bezonos alÄustigon, ĉar maldikigaj funkcioj de fluginsuloj funkcias\n"
+"plej bone kiam la bruo havas valoron inter -2.0 kaj 2.0."
#: src/settings_translation_file.cpp
msgid "3D noise defining structure of river canyon walls."
@@ -2115,9 +2166,12 @@ msgid "ABM interval"
msgstr "Intertempo de ABM (aktiva modifilo de monderoj)"
#: src/settings_translation_file.cpp
-#, fuzzy
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
-msgstr "Maksimumo de mondestigaj vicoj"
+msgstr "Absoluta maksimumo de atendantaj estigotaj monderoj"
#: src/settings_translation_file.cpp
msgid "Acceleration in air"
@@ -2174,6 +2228,11 @@ msgid ""
"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
"to be sure) creates a solid floatland layer."
msgstr ""
+"AlÄustigas densecon de la fluginsula tavolo.\n"
+"Plialtigu la valoron por pliigi densecon. Eblas plusa aÅ­ minusa.\n"
+"Valoro = 0.0: 50% de volumeno estas fluginsuloj.\n"
+"Valoro = 2.0 (povas esti pli alta, depende de «mgv7_np_floatland»; ĉiam\n"
+"kontrolu certige) kreas solidan tavolon de fluginsulaĵo."
#: src/settings_translation_file.cpp
msgid "Advanced"
@@ -2369,10 +2428,6 @@ msgid "Builtin"
msgstr "Primitivaĵo"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Mapado de elstaraĵoj"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2450,22 +2505,6 @@ msgstr ""
"Kie 0.0 estas minimuma lumnivelo, 1.0 estas maksimuma numnivelo."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"ÅœanÄoj al fasado de la ĉefmenuo:\n"
-"- full (plena): Pluraj mondoj por unu ludanto, elektilo de ludo, "
-"teksturaro, ktp.\n"
-"- simple (simpla): Unu mondo por unu ludanto, neniuj elektiloj de ludo aÅ­ "
-"teksturaro.\n"
-"Povus esti bezona por malgrandaj ekranoj."
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr "Grandeco de babiluja tiparo"
@@ -2474,9 +2513,8 @@ msgid "Chat key"
msgstr "Babila klavo"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat log level"
-msgstr "Erarserĉa protokola nivelo"
+msgstr "Babileja protokola nivelo"
#: src/settings_translation_file.cpp
msgid "Chat message count limit"
@@ -2632,6 +2670,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "Malpermesitaj flagoj de ContentDB"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "URL de la datena deponejo"
@@ -2696,7 +2738,10 @@ msgid "Crosshair alpha"
msgstr "Travidebleco de celilo"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "Travidebleco de celilo (maltravidebleco, inter 0 kaj 255)."
#: src/settings_translation_file.cpp
@@ -2704,8 +2749,10 @@ msgid "Crosshair color"
msgstr "Koloro de celilo"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Koloro de celilo (R,V,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2768,9 +2815,8 @@ msgid "Default report format"
msgstr "Implicita raporta formo"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Default stack size"
-msgstr "Norma ludo"
+msgstr "Implicita grandeco de la kolumno"
#: src/settings_translation_file.cpp
msgid ""
@@ -2811,14 +2857,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Difinas lokon kaj terenon de malnepraj montetoj kaj lagoj."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Difinas glatigan paÅon de teksturoj.\n"
-"Pli alta valoro signifas pli glatajn normalmapojn."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Difinas la bazan ternivelon."
@@ -2898,6 +2936,11 @@ msgid "Desynchronize block animation"
msgstr "Malsamtempigi bildmovon de monderoj"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Dekstren-klavo"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Fosaj partikloj"
@@ -2962,7 +3005,8 @@ msgid "Enable console window"
msgstr "Åœalti konzolan fenestron"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Åœalti krean reÄimon por novaj mapoj."
#: src/settings_translation_file.cpp
@@ -3072,18 +3116,6 @@ msgid "Enables animation of inventory items."
msgstr "Ŝaltas movbildojn en portaĵujo."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Ŝaltas mapadon de elstaraĵoj por teksturoj. Normalmapoj devas veni kun la "
-"teksturaro,\n"
-"aÅ­ estiÄi memage.\n"
-"Bezonas Åaltitajn ombrigilojn."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Åœaltas kaÅmemoradon de maÅoj turnitaj per «facedir»."
@@ -3093,22 +3125,6 @@ msgstr "Åœaltas mapeton."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Åœaltas dumludan estigadon de normalmapoj (Reliefiga efekto).\n"
-"Bezonas Åaltitan mapadon de elstaraĵoj."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Åœaltas mapadon de paralaksa ombrigo.\n"
-"Bezonas Åaltitajn ombrigilojn."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3129,14 +3145,6 @@ msgstr "Metodoj de estoj"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Prova elekteblo; povas estigi videblajn spacojn inter monderoj\n"
-"je nombro super 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3144,10 +3152,18 @@ msgid ""
"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
"flatter lowlands, suitable for a solid floatland layer."
msgstr ""
+"Eksponento de maldikigo de fluginsuloj. ÅœanÄas la konduton\n"
+"de maldikigo.\n"
+"Valoro = 1.0 kreas unuforman, linearan maldikigon.\n"
+"Valoroj > 1.0 kreas glatan maldikigon taÅ­gan por la implicitaj apartaj\n"
+"fluginsuloj.\n"
+"Valoroj < 1.0 (ekzemple 0.25) kreas pli difinitan ternivelon kun\n"
+"pli plataj malaltejoj, taŭgaj por solida tavolo de fluginsulaĵo."
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "Kadroj sekunde en paÅ­za menuo"
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "Maksimumaj KS paÅ­ze."
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3266,39 +3282,32 @@ msgid "Fixed virtual joystick"
msgstr "Fiksita virtuala stirstango"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland density"
-msgstr "Denseco de fluginsulaj montoj"
+msgstr "Denseco de fluginsuloj"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland maximum Y"
-msgstr "Maksimuma Y de forgeskelo"
+msgstr "Maksimuma Y de fluginsuloj"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland minimum Y"
-msgstr "Minimuma Y de forgeskeloj"
+msgstr "Minimuma Y de fluginsuloj"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland noise"
-msgstr "Baza bruo de fluginsuloj"
+msgstr "Bruo de fluginsuloj"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland taper exponent"
-msgstr "Eksponento de fluginsulaj montoj"
+msgstr "Eksponento de maldikigo de fluginsuloj"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland tapering distance"
-msgstr "Baza bruo de fluginsuloj"
+msgstr "Distanco de maldikigo de fluginsuloj"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland water level"
-msgstr "Alteco de fluginsuloj"
+msgstr "Akvonivelo de fluginsuloj"
#: src/settings_translation_file.cpp
msgid "Fly key"
@@ -3357,6 +3366,8 @@ msgid ""
"Font size of the recent chat text and chat prompt in point (pt).\n"
"Value 0 will use the default font size."
msgstr ""
+"Grandeco de tiparo de freÅa babila teksto kaj babilujo en punktoj (pt).\n"
+"Valoro 0 uzos la implicitan grandecon de tiparo."
#: src/settings_translation_file.cpp
msgid ""
@@ -3477,10 +3488,6 @@ msgid "GUI scaling filter txr2img"
msgstr "Skala filtrilo de grafika interfaco txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Estigi normalmapojn"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Mallokaj revokoj"
@@ -3490,6 +3497,10 @@ msgid ""
"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
"and junglegrass, in all other mapgens this flag controls all decorations."
msgstr ""
+"Ĉieaj atributoj de mondestigo.\n"
+"En mondestigo v6, la parametro «decorations» regas ĉiujn ornamojn\n"
+"krom arboj kaj Äangala herbo; en ĉiuj ailaj mondestigiloj, ĉi tiu parametro\n"
+"regas ĉiujn ornamojn."
#: src/settings_translation_file.cpp
msgid ""
@@ -3536,10 +3547,11 @@ msgid "HUD toggle key"
msgstr "Baskula klavo por travida fasado"
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Traktado de evitindaj Lua-API-vokoj:\n"
@@ -4035,7 +4047,7 @@ msgstr "Dosierindiko al kursiva egallarÄa tiparo"
#: src/settings_translation_file.cpp
msgid "Item entity TTL"
-msgstr ""
+msgstr "Daŭro de lasita portaĵo"
#: src/settings_translation_file.cpp
msgid "Iterations"
@@ -4063,6 +4075,11 @@ msgid "Joystick button repetition interval"
msgstr "Ripeta periodo de stirstangaj klavoj"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "Speco de stirstango"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Sentemo de stirstanga vidamplekso"
@@ -4165,6 +4182,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Klavo por salti.\n"
+"Vidu http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4307,6 +4335,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Klavo por salti.\n"
+"Vidu http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -5045,19 +5084,14 @@ msgid "Lower Y limit of dungeons."
msgstr "Suba Y-limo de forgeskeloj."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Lower Y limit of floatlands."
-msgstr "Suba Y-limo de forgeskeloj."
+msgstr "Suba Y-limo de fluginsuloj."
#: src/settings_translation_file.cpp
msgid "Main menu script"
msgstr "Ĉefmenua skripto"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Stilo de ĉefmenuo"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5074,6 +5108,14 @@ msgid "Makes all liquids opaque"
msgstr "Igas fluaĵojn netravideblaj"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Dosierujo kun mapoj"
@@ -5132,15 +5174,16 @@ msgstr ""
"kaj la flago «jungles» estas malatentata."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen v7.\n"
"'ridges': Rivers.\n"
"'floatlands': Floating land masses in the atmosphere.\n"
"'caverns': Giant caves deep underground."
msgstr ""
-"Mapestigilaj ecoj speciale por Mapestigilo v7.\n"
-"«ridges» Åaltas la riverojn."
+"Mapestigaj ecoj speciale por Mapestigilo v7.\n"
+"«ridges»: Riveroj.\n"
+"«floatlands»: Flugantaj teramasoj en la atmosfero.\n"
+"«caverns»: Grandaj kavernegoj profunde sub tero."
#: src/settings_translation_file.cpp
msgid "Map generation limit"
@@ -5255,7 +5298,8 @@ msgid "Maximum FPS"
msgstr "Maksimumaj KS"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "Maksimumaj KS paÅ­ze."
#: src/settings_translation_file.cpp
@@ -5299,22 +5343,27 @@ msgid "Maximum number of blocks that can be queued for loading."
msgstr "Maksimuma nombro da mondopecoj atendantaj legon."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Maximum number of blocks to be queued that are to be generated.\n"
"This limit is enforced per player."
msgstr ""
"Maksimumo nombro de mondopecoj atendantaj estigon.\n"
-"Vakigu por memaga elekto de Äusta kvanto."
+"Ĉi tiu limo estas devigata al ĉiu ludanto aparte."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Maximum number of blocks to be queued that are to be loaded from file.\n"
"This limit is enforced per player."
msgstr ""
"Maksimuma nombro de atendantaj mondopecoj legotaj de loka dosiero.\n"
-"Agordi vake por memaga elekto de Äusta nombro."
+"Ĉi tiu limo estas devigata al ĉiu ludanto aparte."
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
@@ -5410,7 +5459,7 @@ msgstr "Metodo emfazi elektitan objekton."
#: src/settings_translation_file.cpp
msgid "Minimal level of logging to be written to chat."
-msgstr ""
+msgstr "Minimuma nivelo de protokolado skribota al la babilujo."
#: src/settings_translation_file.cpp
msgid "Minimap"
@@ -5529,9 +5578,8 @@ msgid ""
msgstr "Nomo de la servilo, montrota al ludantoj kaj en la listo de serviloj."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Near plane"
-msgstr "Proksime tonda ebeno"
+msgstr "Proksima ebeno"
#: src/settings_translation_file.cpp
msgid "Network"
@@ -5570,14 +5618,6 @@ msgid "Noises"
msgstr "Bruoj"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Normalmapa specimenado"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Normalmapa potenco"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "Nombro da mondestigaj fadenoj"
@@ -5623,10 +5663,6 @@ msgstr ""
"kaj uzon de memoro (4096=100MB, proksimume)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "Nombro da iteracioj de paralaksa ombrigo."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Enreta deponejo de enhavo"
@@ -5657,34 +5693,6 @@ msgstr ""
"fenestro estas malfermita."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "Entuta ekarto de la efiko de paralaksa ombrigo, kutime skalo/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Entuta vasteco de paralaksa ombrigo."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Paralaksa ombrigo"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Ekarto de paralaksa okludo"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Iteracioj de paralaksa ombrigo"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "ReÄimo de paralaksa ombrigo"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "Skalo de paralaksa ombrigo"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5704,6 +5712,8 @@ msgid ""
"Path to save screenshots at. Can be an absolute or relative path.\n"
"The folder will be created if it doesn't already exist."
msgstr ""
+"Dosierindiko por konservotaj ekrankopioj. Povas esti absoluta\n"
+"aÅ­ relativa. La dosierujo estos kreita, se Äi ne jam ekzistas."
#: src/settings_translation_file.cpp
msgid ""
@@ -5769,6 +5779,16 @@ msgid "Pitch move mode"
msgstr "Celilsekva reÄimo"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Fluga klavo"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "Periodo inter ripetoj de dekstra klako"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5948,10 +5968,6 @@ msgid "Right key"
msgstr "Dekstren-klavo"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Periodo inter ripetoj de dekstra klako"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "Profundeco de rivera akvovojo"
@@ -6245,6 +6261,20 @@ msgid "Show entity selection boxes"
msgstr "Montri elektujojn de estoj"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Agordi la lingvon. Lasu malplena por uzi la sisteman.\n"
+"Rerulo necesas post la ÅanÄo."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Implice grasa tiparo"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Ferma mesaÄo"
@@ -6393,10 +6423,6 @@ msgid "Strength of 3D mode parallax."
msgstr "Potenco de paralakso."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Forteco de estigitaj normalmapoj."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6505,6 +6531,11 @@ msgid "The URL for the content repository"
msgstr "URL al la deponejo de enhavo"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "The deadzone of the joystick"
+msgstr "Identigilo de la uzota stirstango"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6569,13 +6600,14 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"The rendering back-end for Irrlicht.\n"
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
"La bildiga internaĵo por Irrlicht.\n"
"Rerulo necesas post ĉi tiu ÅanÄo.\n"
@@ -6617,6 +6649,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6624,10 +6662,10 @@ msgstr ""
"de stirstangaj klavoj."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
"Tempo (en sekundoj) inter ripetaj klakoj dum premo de la dekstra musbutono."
@@ -6783,6 +6821,17 @@ msgstr ""
"Gamae Äusta malgrandigado ne estas subtenata."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "Uzi trilinearan filtradon skalante teksturojn."
@@ -7016,6 +7065,12 @@ msgstr ""
"MalÅaltite, ĉi tio anstataÅ­e uzigas tiparojn bitbildajn kaj XML-vektorajn."
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr "Ĉu teksturaj movbildoj de monderoj malsamtempiÄu en ĉiu mondopeco."
@@ -7159,6 +7214,24 @@ msgid "Y-level of seabed."
msgstr "Y-nivelo de marplanko."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "Tempolimo de dosiere elÅuto de cURL"
@@ -7170,70 +7243,90 @@ msgstr "Samtempa limo de cURL"
msgid "cURL timeout"
msgstr "cURL tempolimo"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Baskuligi glitan vidpunkton"
-
-#~ msgid "Select Package File:"
-#~ msgstr "Elekti pakaĵan dosieron:"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = paralaksa ombrigo kun klinaj informoj (pli rapida).\n"
+#~ "1 = reliefa mapado (pli preciza)."
-#, fuzzy
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Y de supera limo de grandaj kvazaÅ­-hazardaj kavernoj."
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "AlÄustigi la gamaan kodadon al la lumtabeloj. Pli altaj nombroj estas pli "
+#~ "helaj.\n"
+#~ "Ĉi tiu agordo estas klientflanka, kaj serviloj Äin malatentos."
-#~ msgid "Waving Water"
-#~ msgstr "Ondanta akvo"
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgstr ""
+#~ "ÅœanÄas kiel montecaj fluginsuloj maldikiÄas super kaj sub la mezpunkto."
-#~ msgid "Projecting dungeons"
-#~ msgstr "Planante forgeskelojn"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Ĉu vi certas, ke vi volas rekomenci vian mondon por unu ludanto?"
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Y-nivelo kien etendiÄas ombroj de fluginsuloj."
+#~ msgid "Back"
+#~ msgstr "Reeniri"
-#~ msgid "Waving water"
-#~ msgstr "Ondanta akvo"
+#~ msgid "Bump Mapping"
+#~ msgstr "Tubera mapado"
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
-#~ msgstr ""
-#~ "Variaĵo de alteco de montetoj kaj profundeco de lagoj sur glata tereno de "
-#~ "fluginsuloj."
+#~ msgid "Bumpmapping"
+#~ msgstr "Mapado de elstaraĵoj"
#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
#~ msgstr ""
-#~ "Ordinara plejalto, super kaj sub la mezpunkto, de fluginsulaj montoj."
-
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Tiu ĉi tiparo uziÄos por iuj lingvoj."
-
-#~ msgid "Shadow limit"
-#~ msgstr "Limo por ombroj"
-
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "Dosierindiko al tiparo «TrueType» aŭ bitbildo."
+#~ "ÅœanÄoj al fasado de la ĉefmenuo:\n"
+#~ "- full (plena): Pluraj mondoj por unu ludanto, elektilo de ludo, "
+#~ "teksturaro, ktp.\n"
+#~ "- simple (simpla): Unu mondo por unu ludanto, neniuj elektiloj de ludo "
+#~ "aÅ­ teksturaro.\n"
+#~ "Povus esti bezona por malgrandaj ekranoj."
-#~ msgid "Lightness sharpness"
-#~ msgstr "Akreco de heleco"
+#~ msgid "Config mods"
+#~ msgstr "Agordi modifaĵojn"
-#~ msgid "Lava depth"
-#~ msgstr "Lafo-profundeco"
+#~ msgid "Configure"
+#~ msgstr "Agordi"
-#~ msgid "IPv6 support."
-#~ msgstr "Subteno de IPv6."
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "Regas densecon de montecaj fluginsuloj.\n"
+#~ "Temas pri deÅovo de la brua valoro «np_mountain»."
-#~ msgid "Gamma"
-#~ msgstr "HelÄustigo"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Regas larÄecon de tuneloj; pli malgranda valoro kreas pri larÄajn "
+#~ "tunelojn."
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Maltravidebleco de tipara ombro (inter 0 kaj 255)."
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Koloro de celilo (R,V,B)."
-#~ msgid "Floatland mountain height"
-#~ msgstr "Alteco de fluginsulaj montoj"
+#~ msgid "Darkness sharpness"
+#~ msgstr "Akreco de mallumo"
-#~ msgid "Floatland base height noise"
-#~ msgstr "Bruo de baza alteco de fluginsuloj"
+#~ msgid ""
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
+#~ msgstr ""
+#~ "Difinas zonojn de glata tereno sur fluginsuloj.\n"
+#~ "Glataj fluginsuloj okazas kiam bruo superas nulon."
-#~ msgid "Enable VBO"
-#~ msgstr "Åœalti VBO(Vertex Buffer Object)"
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Difinas glatigan paÅon de teksturoj.\n"
+#~ "Pli alta valoro signifas pli glatajn normalmapojn."
#~ msgid ""
#~ "Deprecated, define and locate cave liquids using biome definitions "
@@ -7244,55 +7337,195 @@ msgstr "cURL tempolimo"
#~ "difinoj\n"
#~ "Y de supra limo de lafo en grandaj kavernoj."
-#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
-#~ msgstr ""
-#~ "Difinas zonojn de glata tereno sur fluginsuloj.\n"
-#~ "Glataj fluginsuloj okazas kiam bruo superas nulon."
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "ElÅutante kaj instalante $1, bonvolu atendi…"
-#~ msgid "Darkness sharpness"
-#~ msgstr "Akreco de mallumo"
+#~ msgid "Enable VBO"
+#~ msgstr "Åœalti VBO(Vertex Buffer Object)"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Regas larÄecon de tuneloj; pli malgranda valoro kreas pri larÄajn "
-#~ "tunelojn."
+#~ "Ŝaltas mapadon de elstaraĵoj por teksturoj. Normalmapoj devas veni kun la "
+#~ "teksturaro,\n"
+#~ "aÅ­ estiÄi memage.\n"
+#~ "Bezonas Åaltitajn ombrigilojn."
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Regas densecon de montecaj fluginsuloj.\n"
-#~ "Temas pri deÅovo de la brua valoro «np_mountain»."
+#~ "Åœaltas dumludan estigadon de normalmapoj (Reliefiga efekto).\n"
+#~ "Bezonas Åaltitan mapadon de elstaraĵoj."
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "ÅœanÄas kiel montecaj fluginsuloj maldikiÄas super kaj sub la mezpunkto."
+#~ "Åœaltas mapadon de paralaksa ombrigo.\n"
+#~ "Bezonas Åaltitajn ombrigilojn."
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
#~ msgstr ""
-#~ "AlÄustigi la gamaan kodadon al la lumtabeloj. Pli altaj nombroj estas pli "
-#~ "helaj.\n"
-#~ "Ĉi tiu agordo estas klientflanka, kaj serviloj Äin malatentos."
+#~ "Prova elekteblo; povas estigi videblajn spacojn inter monderoj\n"
+#~ "je nombro super 0."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Dosierindiko por konservi ekrankopiojn."
+#~ msgid "FPS in pause menu"
+#~ msgstr "Kadroj sekunde en paÅ­za menuo"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "Potenco de paralaksa ombrigo"
+#~ msgid "Floatland base height noise"
+#~ msgstr "Bruo de baza alteco de fluginsuloj"
+
+#~ msgid "Floatland mountain height"
+#~ msgstr "Alteco de fluginsulaj montoj"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Maltravidebleco de tipara ombro (inter 0 kaj 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "HelÄustigo"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Estigi Normalmapojn"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Estigi normalmapojn"
+
+#~ msgid "IPv6 support."
+#~ msgstr "Subteno de IPv6."
+
+#~ msgid "Lava depth"
+#~ msgstr "Lafo-profundeco"
+
+#~ msgid "Lightness sharpness"
+#~ msgstr "Akreco de heleco"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "Limo de viceroj enlegotaj de disko"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "ElÅutante kaj instalante $1, bonvolu atendi…"
+#~ msgid "Main"
+#~ msgstr "Ĉefmenuo"
-#~ msgid "Back"
-#~ msgstr "Reeniri"
+#~ msgid "Main menu style"
+#~ msgstr "Stilo de ĉefmenuo"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Mapeto en radara reÄimo, zomo ×2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Mapeto en radara reÄimo, zomo ×4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Mapeto en supraĵa reÄimo, zomo ×2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Mapeto en supraĵa reÄimo, zomo ×4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Nomo/Pasvorto"
+
+#~ msgid "No"
+#~ msgstr "Ne"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Normalmapa specimenado"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Normalmapa potenco"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "Nombro da iteracioj de paralaksa ombrigo."
#~ msgid "Ok"
#~ msgstr "Bone"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "Entuta ekarto de la efiko de paralaksa ombrigo, kutime skalo/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Entuta vasteco de paralaksa ombrigo."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Paralaksa ombrigo"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Paralaksa ombrigo"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Ekarto de paralaksa okludo"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Iteracioj de paralaksa ombrigo"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "ReÄimo de paralaksa ombrigo"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Skalo de paralaksa ombrigo"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "Potenco de paralaksa ombrigo"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "Dosierindiko al tiparo «TrueType» aŭ bitbildo."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Dosierindiko por konservi ekrankopiojn."
+
+#~ msgid "Projecting dungeons"
+#~ msgstr "Planante forgeskelojn"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Rekomenci mondon por unu ludanto"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Elekti pakaĵan dosieron:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "Limo por ombroj"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Komenci ludon por unu"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Forteco de estigitaj normalmapoj."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Tiu ĉi tiparo uziÄos por iuj lingvoj."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Baskuligi glitan vidpunkton"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr ""
+#~ "Ordinara plejalto, super kaj sub la mezpunkto, de fluginsulaj montoj."
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr ""
+#~ "Variaĵo de alteco de montetoj kaj profundeco de lagoj sur glata tereno de "
+#~ "fluginsuloj."
+
+#~ msgid "View"
+#~ msgstr "Vido"
+
+#~ msgid "Waving Water"
+#~ msgstr "Ondanta akvo"
+
+#~ msgid "Waving water"
+#~ msgstr "Ondanta akvo"
+
+#, fuzzy
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Y de supera limo de grandaj kvazaÅ­-hazardaj kavernoj."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Y-nivelo kien etendiÄas ombroj de fluginsuloj."
+
+#~ msgid "Yes"
+#~ msgstr "Jes"
diff --git a/po/es/minetest.po b/po/es/minetest.po
index f0a5e38dd..4d26f2b5c 100644
--- a/po/es/minetest.po
+++ b/po/es/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Spanish (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-07-06 21:41+0000\n"
-"Last-Translator: Agustin Calderon <agustin25901@gmail.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-05 09:40+0000\n"
+"Last-Translator: j45 minetest <j45minetest@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/minetest/"
"minetest/es/>\n"
"Language: es\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -46,10 +46,6 @@ msgstr "Reconectar"
msgid "The server has requested a reconnect:"
msgstr "El servidor ha solicitado una reconexión:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Cargando..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "La versión del protocolo no coincide. "
@@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "El servidor soporta versiones del protocolo entre $1 y $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Intente rehabilitar la lista de servidores públicos y verifique su conexión "
-"a Internet."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Solo se soporta la versión de protocolo $1."
@@ -76,7 +66,8 @@ msgstr "Solo se soporta la versión de protocolo $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Nosotros soportamos versiones de protocolo entre la versión $1 y $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Nosotros soportamos versiones de protocolo entre la versión $1 y $2."
msgid "Cancel"
msgstr "Cancelar"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Dependencias:"
@@ -160,14 +152,54 @@ msgid "enabled"
msgstr "activado"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" ya existe. Quieres remplazarlo?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "Las dependencias $1 y $2 serán instaladas."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 por $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 descargando,\n"
+"$2 en espera"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 descargando..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "$1 dependencias requeridas no se encuentran."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 serán instalados, y $2 dependencias serán ignoradas."
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Todos los paquetes"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Ya está instalado"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Volver al menú principal"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Juego Base:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
"ContentDB no se encuentra disponible cuando Minetest se compiló sin cURL"
@@ -190,6 +222,14 @@ msgid "Install"
msgstr "Instalar"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "Instalar $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "Instalar dependencias faltantes"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mods"
@@ -203,9 +243,24 @@ msgid "No results"
msgstr "Sin resultados"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Buscar"
+msgid "No updates"
+msgstr "No hay actualizaciones"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "No encontrado"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Sobreescribir"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "Por favor verifica que el juego base está bien."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "En cola"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -220,8 +275,12 @@ msgid "Update"
msgstr "Actualizar"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "Ver"
+msgid "Update All [$1]"
+msgstr "Actualizar Todo [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Ver más información en un navegador web"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -522,6 +581,10 @@ msgid "Scale"
msgstr "Escala"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Buscar"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Seleccionar carpeta"
@@ -638,6 +701,21 @@ msgstr "Fallo al instalar un mod como $1"
msgid "Unable to install a modpack as a $1"
msgstr "Fallo al instalar un paquete de mod como $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Cargando..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "El Scripting en el lado del cliente está desactivado"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Intente rehabilitar la lista de servidores públicos y verifique su conexión "
+"a Internet."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Explorar contenido en línea"
@@ -691,6 +769,18 @@ msgid "Credits"
msgstr "Créditos"
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr "Abrir Directorio de Datos de Usuario"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Abre el directorio que contiene los mundos, juegos, mods, y paquetes de\n"
+"textura, del usuario, en un gestor / explorador de archivos."
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Antiguos colaboradores"
@@ -707,32 +797,28 @@ msgid "Bind Address"
msgstr "Asociar dirección"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Configurar"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Modo creativo"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Permitir daños"
#: builtin/mainmenu/tab_local.lua
msgid "Host Game"
-msgstr "Juego anfitrión"
+msgstr "Hospedar juego"
#: builtin/mainmenu/tab_local.lua
msgid "Host Server"
-msgstr "Servidor anfitrión"
+msgstr "Hospedar servidor"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
msgstr "Instalar juegos desde ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Nombre / contraseña"
+msgid "Name"
+msgstr "Nombre"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -743,6 +829,10 @@ msgid "No world created or selected!"
msgstr "¡No se ha dado un nombre al mundo o no se ha seleccionado uno!"
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "Contraseña"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Jugar juego"
@@ -751,6 +841,10 @@ msgid "Port"
msgstr "Puerto"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "Selecciona Mods"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Selecciona un mundo:"
@@ -766,23 +860,23 @@ msgstr "Empezar juego"
msgid "Address / Port"
msgstr "Dirección / puerto"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Conectar"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Modo creativo"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Daño activado"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Borrar Fav."
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Favorito"
@@ -790,16 +884,16 @@ msgstr "Favorito"
msgid "Join Game"
msgstr "Unirse al juego"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Nombre / contraseña"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP activado"
@@ -828,10 +922,6 @@ msgid "Antialiasing:"
msgstr "Suavizado:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "¿Estás seguro de querer reiniciar el mundo de un jugador?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Auto-guardar tamaño de pantalla"
@@ -839,10 +929,6 @@ msgstr "Auto-guardar tamaño de pantalla"
msgid "Bilinear Filter"
msgstr "Filtrado bilineal"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Mapeado de relieve"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Configurar teclas"
@@ -856,10 +942,6 @@ msgid "Fancy Leaves"
msgstr "Hojas elegantes"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Generar mapas normales"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmap"
@@ -868,10 +950,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap + Filtro aniso."
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "No"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Sin filtrado"
@@ -899,19 +977,11 @@ msgstr "Hojas opacas"
msgid "Opaque Water"
msgstr "Agua opaca"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Oclusión de paralaje"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Partículas"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Reiniciar mundo de un jugador"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Pantalla:"
@@ -924,6 +994,10 @@ msgid "Shaders"
msgstr "Sombreadores"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr "Sombreadores (experimental)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Sombreadores (no disponible)"
@@ -967,22 +1041,6 @@ msgstr "Movimiento de líquidos"
msgid "Waving Plants"
msgstr "Movimiento de plantas"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Sí"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Configurar mods"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Principal"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Comenzar un jugador"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Tiempo de espera de la conexión agotado."
@@ -1146,13 +1204,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1162,12 +1220,12 @@ msgstr ""
"- %s: moverse a la izquierda\n"
"- %s: moverse a la derecha\n"
"- %s: saltar/escalar\n"
-"- %s: agacharse/bajar\n"
+"- %s: excavar/golpear\n"
+"- %s: colocar/usar\n"
+"- %s: a hurtadillas/bajar\n"
"- %s: soltar objeto\n"
"- %s: inventario\n"
"- Ratón: girar/mirar\n"
-"- Ratón izq.: cavar/golpear\n"
-"- Ratón der.: colocar/usar\n"
"- Rueda del ratón: elegir objeto\n"
"- %s: chat\n"
@@ -1300,34 +1358,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "El minimapa se encuentra actualmente desactivado por el juego o un mod"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Minimapa oculto"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Minimapa en modo radar, Zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Minimapa en modo radar, Zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Minimapa en modo radar, Zoom x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Minimapa en modo superficie, Zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Minimapa en modo superficie, Zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Minimapa en modo superficie, Zoom x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Modo 'Noclip' desactivado"
@@ -1337,7 +1367,7 @@ msgstr "Modo 'Noclip' activado"
#: src/client/game.cpp
msgid "Noclip mode enabled (note: no 'noclip' privilege)"
-msgstr "Modo \"noclip\" activado (nota: sin privilegio 'noclip')"
+msgstr "Modo 'Noclip' activado (nota: sin privilegio 'noclip')"
#: src/client/game.cpp
msgid "Node definitions..."
@@ -1421,7 +1451,7 @@ msgstr "Volumen cambiado a %d%%"
#: src/client/game.cpp
msgid "Wireframe shown"
-msgstr "Wireframe mostrado"
+msgstr "Líneas 3D mostradas"
#: src/client/game.cpp
msgid "Zoom currently disabled by game or mod"
@@ -1429,7 +1459,7 @@ msgstr "El zoom está actualmente desactivado por el juego o un mod"
#: src/client/game.cpp
msgid "ok"
-msgstr "aceptar"
+msgstr "Aceptar"
#: src/client/gameui.cpp
msgid "Chat hidden"
@@ -1437,7 +1467,7 @@ msgstr "Chat oculto"
#: src/client/gameui.cpp
msgid "Chat shown"
-msgstr "Chat mostrado"
+msgstr "Chat visible"
#: src/client/gameui.cpp
msgid "HUD hidden"
@@ -1719,6 +1749,24 @@ msgstr "X Botón 2"
msgid "Zoom"
msgstr "Zoom"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Minimapa oculto"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Minimapa en modo radar, Zoom x%d"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Minimapa en modo superficie, Zoom x%d"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "Minimapa en modo textura"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "¡Las contraseñas no coinciden!"
@@ -1953,7 +2001,6 @@ msgstr ""
"del círculo principal."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
"Can be used to move a desired point to (0, 0) to create a\n"
@@ -1966,14 +2013,17 @@ msgid ""
msgstr ""
"Desvío (X,Y,Z) del fractal desde el centro del mundo en unidades de "
"'escala'.\n"
-"Puede ser utilizado para mover el punto deseado (0, 0) para crear un\n"
+"Puede ser utilizado para mover el punto deseado al inicio de coordenadas (0, "
+"0) para crear un\n"
"punto de aparición mejor, o permitir 'ampliar' en un punto deseado si\n"
"se incrementa la 'escala'.\n"
-"El valor por defecto está ajustado para un punto de aparición adecuado para\n"
-"los conjuntos Madelbrot con parámetros por defecto, podría ser necesario\n"
-"modificarlo para otras situaciones.\n"
-"El rango de está comprendido entre -2 y 2. Multiplicar por 'escala' para el\n"
-"desvío en nodos."
+"El valor por defecto está ajustado para un punto de aparición adecuado "
+"para \n"
+"los conjuntos Madelbrot\n"
+"Con parámetros por defecto, podría ser necesariomodificarlo para otras \n"
+"situaciones.\n"
+"El rango de está comprendido entre -2 y 2. Multiplicar por la 'escala' para "
+"el desvío en nodos."
#: src/settings_translation_file.cpp
msgid ""
@@ -1991,15 +2041,7 @@ msgstr ""
"limitado en tamaño por el mundo.\n"
"Incrementa estos valores para 'ampliar' el detalle del fractal.\n"
"El valor por defecto es para ajustar verticalmente la forma para\n"
-"una isla, establece los 3 números igual para la forma pura."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = oclusión de paralaje con información de inclinación (más rápido).\n"
-"1 = mapa de relieve (más lento, más preciso)."
+"una isla, establece los 3 números iguales para la forma inicial."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
@@ -2014,28 +2056,22 @@ msgid "2D noise that controls the shape/size of step mountains."
msgstr "Ruido 2D para controlar la forma/tamaño de las montañas inclinadas."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
-msgstr ""
-"Ruido 2D que controla los rangos de tamaño/aparición de las montañas "
-"escarpadas."
+msgstr "Ruido 2D que controla el tamaño/aparición de cordilleras montañosas."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "2D noise that controls the size/occurrence of rolling hills."
-msgstr "Ruido 2D para controlar el tamaño/aparición de las colinas."
+msgstr "Ruido 2D que controla el tamaño/aparición de las colinas ondulantes."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "2D noise that controls the size/occurrence of step mountain ranges."
msgstr ""
-"Ruido 2D para controlar las rangos de tamaño/aparición de las montañas "
+"Ruido 2D que controla el tamaño/aparición de los intervalos de montañas "
"inclinadas."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "2D noise that locates the river valleys and channels."
-msgstr "Ruido 2D para controlar la forma/tamaño de las colinas."
+msgstr "Ruido 2D para ubicar los ríos, valles y canales."
#: src/settings_translation_file.cpp
msgid "3D clouds"
@@ -2046,9 +2082,8 @@ msgid "3D mode"
msgstr "Modo 3D"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "3D mode parallax strength"
-msgstr "Oclusión de paralaje"
+msgstr "Fuerza de paralaje en modo 3D"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
@@ -2069,6 +2104,12 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
+"Ruido 3D que define las estructuras flotantes.\n"
+"Si se altera la escala de ruido por defecto (0,7), puede ser necesario "
+"ajustarla, \n"
+"los valores de ruido que definen la estrechez de islas flotantes funcionan "
+"mejor \n"
+"cuando están en un rango de aproximadamente -2.0 a 2.0."
#: src/settings_translation_file.cpp
msgid "3D noise defining structure of river canyon walls."
@@ -2137,9 +2178,12 @@ msgid "ABM interval"
msgstr "Intervalo ABM"
#: src/settings_translation_file.cpp
-#, fuzzy
+msgid "ABM time budget"
+msgstr "Límite de tiempo para MBA"
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
-msgstr "Limite absoluto de colas emergentes"
+msgstr "Límite absoluto de bloques en proceso"
#: src/settings_translation_file.cpp
msgid "Acceleration in air"
@@ -2196,6 +2240,12 @@ msgid ""
"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
"to be sure) creates a solid floatland layer."
msgstr ""
+"Ajusta la densidad de la isla flotante.\n"
+"Incrementar el valor para incrementar la densidad. Este puede ser negativo o "
+"positivo\n"
+"Valor = 0.0: 50% del volumen está flotando \n"
+"Valor = 2.0 (puede ser mayor dependiendo de 'mgv7_np_floatland',\n"
+"siempre pruébelo para asegurarse) crea una isla flotante compacta."
#: src/settings_translation_file.cpp
msgid "Advanced"
@@ -2397,11 +2447,6 @@ msgid "Builtin"
msgstr "Incorporado"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Mapeado de relieve"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2409,9 +2454,10 @@ msgid ""
"0.1 = Default, 0.25 = Good value for weaker tablets."
msgstr ""
"Distancia de la cámara 'cerca del plano delimitador' en nodos, entre 0 y "
-"0,5.\n"
-"La mayoría de los usuarios no necesitarán cambiar esto.\n"
-"El aumento puede reducir los artefactos en GPU más débiles.\n"
+"0,25.\n"
+"Solo funciona en plataformas GLES. La mayoría de los usuarios no necesitarán "
+"cambiar esto.\n"
+"Aumentarlo puede reducir el artifacting en GPU más débiles.\n"
"0.1 = Predeterminado, 0,25 = Buen valor para comprimidos más débiles."
#: src/settings_translation_file.cpp
@@ -2479,33 +2525,16 @@ msgstr ""
"Cuando 0.0 es el nivel mínimo de luz, 1.0 es el nivel de luz máximo."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Cambia la UI del menú principal:\n"
-"-\tCompleto:\tMúltiples mundos, elección de juegos y texturas, etc.\n"
-"-\tSimple:\tUn solo mundo, sin elección de juegos o texturas.\n"
-"Puede ser necesario en pantallas pequeñas.\n"
-"-\tAutomático:\tSimple en Android, completo en otras plataformas."
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat font size"
-msgstr "Tamaño de la fuente"
+msgstr "Tamaño de la fuente del chat"
#: src/settings_translation_file.cpp
msgid "Chat key"
msgstr "Tecla del Chat"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat log level"
-msgstr "Nivel de registro de depuración"
+msgstr "Nivel de registro del chat"
#: src/settings_translation_file.cpp
msgid "Chat message count limit"
@@ -2601,12 +2630,12 @@ msgid ""
"These flags are independent from Minetest versions,\n"
"so see a full list at https://content.minetest.net/help/content_flags/"
msgstr ""
-"Lista de banderas a ocultar en el repositorio de contenido. La lista usa la "
+"Lista de 'marcas' a ocultar en el repositorio de contenido. La lista usa la "
"coma como separador.\n"
"Se puede usar la etiqueta \"nonfree\" para ocultar paquetes que no tienen "
-"licencia libre (tal como define la Funcación de software libre (FSF).\n"
-"También puedes especificar proporciones de contenido.\n"
-"Estas banderas son independientes de la versión de Minetest.\n"
+"licencia libre (tal como define la Fundación de software libre (FSF)).\n"
+"También puedes especificar clasificaciones de contenido.\n"
+"Estas 'marcas' son independientes de la versión de Minetest.\n"
"Si quieres ver una lista completa visita https://content.minetest.net/help/"
"content_flags/"
@@ -2615,8 +2644,9 @@ msgid ""
"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
"allow them to upload and download data to/from the internet."
msgstr ""
-"Lista separada por comas de mods que son permitidos de acceder a APIs de "
-"HTTP, las cuales les permiten subir y descargar archivos al/desde internet."
+"Lista (separada por comas) de mods a los que se les permite acceder a APIs "
+"de HTTP, las cuales \n"
+"les permiten subir y descargar archivos al/desde internet."
#: src/settings_translation_file.cpp
msgid ""
@@ -2660,6 +2690,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "Lista negra de banderas de ContentDB"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "Descargas máximas simultáneas para ContentDB"
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "Dirección URL de ContentDB"
@@ -2686,8 +2720,9 @@ msgid ""
"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged."
msgstr ""
"Controla la duración del ciclo día/noche.\n"
-"Ejemplos: 72 = 20min, 360 = 4min, 1 = 24hora, 0 = día/noche/lo que sea se "
-"queda inalterado."
+"Ejemplos: \n"
+"72 = 20min, 360 = 4min, 1 = 24hs, 0 = día/noche/lo que sea se queda "
+"inalterado."
#: src/settings_translation_file.cpp
msgid "Controls sinking speed in liquid."
@@ -2726,16 +2761,24 @@ msgid "Crosshair alpha"
msgstr "Opacidad del punto de mira"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr "Alfa del punto de mira (opacidad, entre 0 y 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Alfa del punto de mira (opacidad, entre 0 y 255).\n"
+"También controla el color del objeto punto de mira."
#: src/settings_translation_file.cpp
msgid "Crosshair color"
msgstr "Color de la cruz"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Color de la cruz (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Color del punto de mira (R,G,B).\n"
+"También controla el color del objeto punto de mira"
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2798,9 +2841,8 @@ msgid "Default report format"
msgstr "Formato de Reporte por defecto"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Default stack size"
-msgstr "Juego por defecto"
+msgstr "Tamaño por defecto del stack (Montón)"
#: src/settings_translation_file.cpp
msgid ""
@@ -2841,14 +2883,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Define la localización y terreno de colinas y lagos opcionales."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Define el intervalo de muestreo de las texturas.\n"
-"Un valor más alto causa mapas de relieve más suaves."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Define el nivel base del terreno."
@@ -2909,8 +2943,8 @@ msgid ""
"Description of server, to be displayed when players join and in the "
"serverlist."
msgstr ""
-"Descripción del servidor, que se muestra cuando los jugadores se unen, y en\n"
-"la lista de servidores."
+"Descripción del servidor, que se muestra en la lista de servidores y cuando "
+"los jugadores se unen."
#: src/settings_translation_file.cpp
msgid "Desert noise threshold"
@@ -2929,6 +2963,10 @@ msgid "Desynchronize block animation"
msgstr "Desincronizar la animación de los bloques"
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr "Tecla Excavar"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Partículas de excavación"
@@ -2994,7 +3032,8 @@ msgid "Enable console window"
msgstr "Habilitar la ventana de la consola"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Habilitar el modo creativo para los nuevos mapas creados."
#: src/settings_translation_file.cpp
@@ -3088,7 +3127,6 @@ msgstr ""
"Necesita habilitar enable_ipv6 para ser activado."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Enables Hable's 'Uncharted 2' filmic tone mapping.\n"
"Simulates the tone curve of photographic film and how this approximates the\n"
@@ -3107,18 +3145,6 @@ msgid "Enables animation of inventory items."
msgstr "Habilita la animación de objetos en el inventario."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Habilita mapeado de relieves para las texturas. El mapeado de normales "
-"necesita ser\n"
-"suministrados por el paquete de texturas, o será generado automaticamente.\n"
-"Requiere habilitar sombreadores."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Habilitar cacheado de mallas giradas."
@@ -3128,23 +3154,6 @@ msgstr "Activar mini-mapa."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Habilita la generación de mapas de normales (efecto realzado) en el "
-"momento.\n"
-"Requiere habilitar mapeado de relieve."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Habilita mapeado de oclusión de paralaje.\n"
-"Requiere habilitar sombreadores."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3165,14 +3174,6 @@ msgstr "Métodos de entidad"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Opción experimental, puede causar espacios visibles entre los\n"
-"bloques si se le da un valor mayor a 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3182,8 +3183,9 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS (cuadros/s) en el menú de pausa"
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "FPS máximos cuando el juego está pausado."
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3251,8 +3253,9 @@ msgid ""
"the\n"
"Multiplayer Tab."
msgstr ""
-"Fichero en client/serverlist/ que contiene sus servidores favoritos que se "
-"mostrarán en la página de Multijugador."
+"Archivo en client/serverlist/ que contiene sus servidores favoritos "
+"mostrados en la \n"
+"página de Multijugador."
#: src/settings_translation_file.cpp
msgid "Filler depth"
@@ -3273,9 +3276,10 @@ msgid ""
"light edge to transparent textures. Apply this filter to clean that up\n"
"at texture load time."
msgstr ""
-"Las texturas filtradas pueden mezclar los valores RGB de los vecinos\n"
-"completamete tranparentes, los cuales los optimizadores de ficheros\n"
-"PNG usualmente descartan, lo que a veces resulta en un borde claro u\n"
+"Las texturas filtradas pueden mezclar valores RGB con sus vecinos "
+"completamente transparentes, \n"
+"los cuales los optimizadores de PNG usualmente descartan, lo que a veces "
+"resulta en un borde claro u\n"
"oscuro en las texturas transparentes. Aplica éste filtro para limpiar ésto\n"
"al cargar las texturas."
@@ -3391,6 +3395,9 @@ msgid ""
"Font size of the recent chat text and chat prompt in point (pt).\n"
"Value 0 will use the default font size."
msgstr ""
+"El tamaño de la fuente del texto del chat reciente y el indicador del chat "
+"en punto (pt).\n"
+"El valor 0 utilizará el tamaño de fuente predeterminado."
#: src/settings_translation_file.cpp
msgid ""
@@ -3472,11 +3479,10 @@ msgstr ""
msgid ""
"From how far blocks are sent to clients, stated in mapblocks (16 nodes)."
msgstr ""
-"Desde cuán lejos se envían bloques a los clientes, especificado en\n"
-"bloques de mapa (mapblocks, 16 nodos)."
+"Desde cuán lejos se envían bloques a los clientes, especificado en bloques "
+"de mapa (mapblocks, 16 nodos)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"From how far clients know about objects, stated in mapblocks (16 nodes).\n"
"\n"
@@ -3488,8 +3494,8 @@ msgstr ""
"\n"
"Establecer esto a más de 'active_block_range' tambien causará que\n"
"el servidor mantenga objetos activos hasta ésta distancia en la dirección\n"
-"que el jugador está mirando. (Ésto puede evitar que los\n"
-"enemigos desaparezcan)"
+"que el jugador está mirando. (Ésto puede evitar que los enemigos "
+"desaparezcan)"
#: src/settings_translation_file.cpp
msgid "Full screen"
@@ -3516,15 +3522,10 @@ msgid "GUI scaling filter txr2img"
msgstr "Filtro de escala de IGU \"txr2img\""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Generar mapas normales"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Llamadas globales"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Global map generation attributes.\n"
"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
@@ -3532,13 +3533,9 @@ msgid ""
msgstr ""
"Atributos del generador de mapas globales.\n"
"En el generador de mapas V6 la opción (o marcador) \"decorations\" controla "
-"todos los elementos decorativos excepto los árboles y la hierba de la "
-"jungla, en todos los otros generadores de mapas esta opción controla todas "
-"las decoraciones.\n"
-"Las opciones que no son incluidas en el texto con la cadena de opciones no "
-"serán modificadas y mantendrán su valor por defecto.\n"
-"Las opciones que comienzan con el prefijo \"no\" son utilizadas para "
-"inhabilitar esas opciones."
+"todos los elementos decorativos excepto los árboles \n"
+"y la hierba de la jungla, en todos los otros generadores de mapas esta "
+"opción controla todas las decoraciones."
#: src/settings_translation_file.cpp
msgid ""
@@ -3585,10 +3582,11 @@ msgid "HUD toggle key"
msgstr "Tecla de cambio del HUD"
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Manejo de llamadas a la API de Lua en desuso:\n"
@@ -3600,7 +3598,6 @@ msgstr ""
"desarrolladores de mods)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Have the profiler instrument itself:\n"
"* Instrument an empty function.\n"
@@ -3612,7 +3609,7 @@ msgstr ""
"* Instrumente una función vacía.\n"
"Esto estima la sobrecarga, que la instrumentación está agregando (+1 llamada "
"de función).\n"
-"* Instrumente el muestreador que se utiliza para actualizar las estadísticas."
+"* Instrumente el sampler que se utiliza para actualizar las estadísticas."
#: src/settings_translation_file.cpp
msgid "Heat blend noise"
@@ -3893,7 +3890,6 @@ msgstr ""
"habilitados."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"If enabled the server will perform map block occlusion culling based on\n"
"on the eye position of the player. This can reduce the number of blocks\n"
@@ -3902,11 +3898,11 @@ msgid ""
"so that the utility of noclip mode is reduced."
msgstr ""
"Si está habilitado, el servidor realizará la selección de la oclusión del "
-"bloque del mapa basado en\n"
+"bloque del mapa basado\n"
"en la posición del ojo del jugador. Esto puede reducir el número de bloques\n"
-"enviados al cliente en un 50-80%. El cliente ya no recibirá la mayoría de "
-"las invisibles\n"
-"para que la utilidad del modo nocturno se reduzca."
+"enviados al cliente en un 50-80%. El cliente ya no recibirá lo mas "
+"invisible\n"
+"por lo que la utilidad del modo \"NoClip\" se reduce."
#: src/settings_translation_file.cpp
msgid ""
@@ -3951,7 +3947,6 @@ msgstr ""
"Actívelo sólo si sabe lo que hace."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"If enabled, makes move directions relative to the player's pitch when flying "
"or swimming."
@@ -4139,6 +4134,11 @@ msgid "Joystick button repetition interval"
msgstr "Intervalo de repetición del botón del Joystick"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "Tipo de Joystick"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Sensibilidad del Joystick"
@@ -4241,6 +4241,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tecla para saltar.\n"
+"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4291,7 +4302,6 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for moving the player backward.\n"
"Will also disable autoforward, when active.\n"
@@ -4299,6 +4309,8 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tecla para desplazar el jugador hacia atrás.\n"
+"Cuando esté activa, También desactivará el desplazamiento automático hacia "
+"adelante.\n"
"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4385,6 +4397,17 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tecla para saltar.\n"
+"Véase http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4866,6 +4889,10 @@ msgid ""
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"Tecla para activar/desactivar la actualización de la cámara. Solo usada para "
+"desarrollo\n"
+"Ver http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
#, fuzzy
@@ -4884,8 +4911,8 @@ msgid ""
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Tecla para activar/desactivar la visualización de información de depuración."
-"\n"
+"Tecla para activar/desactivar la visualización de información de "
+"depuración.\n"
"Ver http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4916,6 +4943,9 @@ msgid ""
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"Tecla para activar/desactivar la consola de chat larga.\n"
+"Ver http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
@@ -4950,6 +4980,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Kick players who sent more than X messages per 10 seconds."
msgstr ""
+"Expulsa a los jugadores que enviaron más de X mensajes cada 10 segundos."
#: src/settings_translation_file.cpp
msgid "Lake steepness"
@@ -4965,19 +4996,19 @@ msgstr "Idioma"
#: src/settings_translation_file.cpp
msgid "Large cave depth"
-msgstr ""
+msgstr "Profundidad de la cueva grande"
#: src/settings_translation_file.cpp
msgid "Large cave maximum number"
-msgstr ""
+msgstr "Numero máximo de cuevas grandes"
#: src/settings_translation_file.cpp
msgid "Large cave minimum number"
-msgstr ""
+msgstr "Numero mínimo de cuevas grandes"
#: src/settings_translation_file.cpp
msgid "Large cave proportion flooded"
-msgstr ""
+msgstr "Proporción de cuevas grandes inundadas"
#: src/settings_translation_file.cpp
#, fuzzy
@@ -5010,24 +5041,30 @@ msgid ""
"updated over\n"
"network."
msgstr ""
+"Duración de un tick del servidor y el intervalo en el que los objetos se "
+"actualizan generalmente sobre la\n"
+"red."
#: src/settings_translation_file.cpp
msgid ""
"Length of liquid waves.\n"
"Requires waving liquids to be enabled."
msgstr ""
+"Longitud de las ondas líquidas.\n"
+"Requiere que se habiliten los líquidos ondulados."
#: src/settings_translation_file.cpp
msgid "Length of time between Active Block Modifier (ABM) execution cycles"
msgstr ""
+"Período de tiempo entre ciclos de ejecución de Active Block Modifier (ABM)"
#: src/settings_translation_file.cpp
msgid "Length of time between NodeTimer execution cycles"
-msgstr ""
+msgstr "Cantidad de tiempo entre ciclos de ejecución de NodeTimer"
#: src/settings_translation_file.cpp
msgid "Length of time between active block management cycles"
-msgstr ""
+msgstr "Periodo de tiempo entre ciclos de gestión de bloques activos"
#: src/settings_translation_file.cpp
msgid ""
@@ -5040,6 +5077,14 @@ msgid ""
"- info\n"
"- verbose"
msgstr ""
+"Nivel de registro que se escribirá en debug.txt:\n"
+"- <nada> (sin registro)\n"
+"- ninguno (mensajes sin nivel)\n"
+"- error\n"
+"- advertencia\n"
+"- acción\n"
+"- información\n"
+"- detallado"
#: src/settings_translation_file.cpp
msgid "Light curve boost"
@@ -5066,11 +5111,16 @@ msgid "Light curve low gradient"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n"
"Only mapchunks completely within the mapgen limit are generated.\n"
"Value is stored per-world."
msgstr ""
+"Límite de la generación de mapa, en nodos, en todas las 6 direcciones desde "
+"(0, 0, 0).\n"
+"Solo las porciones de terreno dentro de los límites son generadas.\n"
+"Los valores se guardan por mundo."
#: src/settings_translation_file.cpp
msgid ""
@@ -5083,11 +5133,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Liquid fluidity"
-msgstr ""
+msgstr "Fluidez líquida"
#: src/settings_translation_file.cpp
msgid "Liquid fluidity smoothing"
-msgstr ""
+msgstr "Suavizado de la fluidez líquida"
#: src/settings_translation_file.cpp
msgid "Liquid loop max"
@@ -5128,7 +5178,7 @@ msgstr "Intervalo de modificador de bloques activos"
#: src/settings_translation_file.cpp
msgid "Lower Y limit of dungeons."
-msgstr ""
+msgstr "Límite inferior en Y de mazmorras."
#: src/settings_translation_file.cpp
msgid "Lower Y limit of floatlands."
@@ -5139,62 +5189,51 @@ msgid "Main menu script"
msgstr "Script del menú principal"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Estilo del menú principal"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
+"Hace que la niebla y los colores del cielo dependan de la hora del día "
+"(amanecer / atardecer) y la dirección de vista."
#: src/settings_translation_file.cpp
msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles."
msgstr ""
+"Hace que DirectX funcione con LuaJIT. Desactivar si ocasiona problemas."
#: src/settings_translation_file.cpp
msgid "Makes all liquids opaque"
+msgstr "Vuelve opacos a todos los líquidos"
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Map directory"
+msgid "Map Compression Level for Network Transfer"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map directory"
+msgstr "Directorio de mapas"
+
+#: src/settings_translation_file.cpp
msgid "Map generation attributes specific to Mapgen Carpathian."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen Flat.\n"
"Occasional lakes and hills can be added to the flat world."
msgstr ""
-"Atributos del generador de mapas globales.\n"
-"En el generador de mapas V6 la opción (o marcador) \"decorations\" controla "
-"todos los elementos decorativos excepto los árboles y la hierba de la "
-"jungla, en todos los otros generadores de mapas esta opción controla todas "
-"las decoraciones.\n"
-"Las opciones que no son incluidas en el texto con la cadena de opciones no "
-"serán modificadas y mantendrán su valor por defecto.\n"
-"Las opciones que comienzan con el prefijo \"no\" son utilizadas para "
-"inhabilitar esas opciones."
+"Atributos de generación de mapa específicos para generador de mapas planos.\n"
+"Ocasionalmente pueden agregarse lagos y colinas al mundo plano."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen Fractal.\n"
"'terrain' enables the generation of non-fractal terrain:\n"
"ocean, islands and underground."
msgstr ""
-"Atributos del generador de mapas globales.\n"
-"En el generador de mapas V6 la opción (o marcador) \"decorations\" controla "
-"todos los elementos decorativos excepto los árboles y la hierba de la "
-"jungla, en todos los otros generadores de mapas esta opción controla todas "
-"las decoraciones.\n"
-"Las opciones que no son incluidas en el texto con la cadena de opciones no "
-"serán modificadas y mantendrán su valor por defecto.\n"
-"Las opciones que comienzan con el prefijo \"no\" son utilizadas para "
-"inhabilitar esas opciones."
#: src/settings_translation_file.cpp
msgid ""
@@ -5248,11 +5287,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Map generation limit"
-msgstr ""
+msgstr "Límite de generación de mapa"
#: src/settings_translation_file.cpp
msgid "Map save interval"
-msgstr ""
+msgstr "Intervalo de guardado de mapa"
#: src/settings_translation_file.cpp
msgid "Mapblock limit"
@@ -5284,54 +5323,48 @@ msgid "Mapgen Flat"
msgstr "Generador de mapas plano"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Flat specific flags"
-msgstr "Banderas planas de Mapgen"
+msgstr "Banderas de generador de mapas plano"
#: src/settings_translation_file.cpp
msgid "Mapgen Fractal"
msgstr "Generador de mapas fractal"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Fractal specific flags"
-msgstr "Banderas planas de Mapgen"
+msgstr "Banderas de generador de mapas fractal"
#: src/settings_translation_file.cpp
msgid "Mapgen V5"
msgstr "Generador de mapas V5"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V5 specific flags"
-msgstr "Banderas planas de Mapgen"
+msgstr "Banderas de generador de mapas V5"
#: src/settings_translation_file.cpp
msgid "Mapgen V6"
msgstr "Generador de mapas V6"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V6 specific flags"
-msgstr "Banderas planas de Mapgen"
+msgstr "Banderas de generador de mapas V6"
#: src/settings_translation_file.cpp
msgid "Mapgen V7"
msgstr "Generador de mapas v7"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V7 specific flags"
-msgstr "Banderas planas de Mapgen"
+msgstr "Banderas de generador de mapas V7"
#: src/settings_translation_file.cpp
msgid "Mapgen Valleys"
-msgstr "Valles de Mapgen"
+msgstr "Generador de mapas Valleys"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Valleys specific flags"
-msgstr "Banderas planas de Mapgen"
+msgstr "Banderas de generador de mapas Valleys"
#: src/settings_translation_file.cpp
msgid "Mapgen debug"
@@ -5364,11 +5397,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum FPS"
-msgstr "FPS máximos"
+msgstr "FPS máximo"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
-msgstr "FPS máximos cuando el juego está pausado."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
+msgstr "FPS máximo cuando el juego está pausado."
#: src/settings_translation_file.cpp
msgid "Maximum forceloaded blocks"
@@ -5419,6 +5452,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5475,6 +5515,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
+"Tiempo máximo en ms que puede demorar una descarga (por ejemplo, la descarga "
+"de un mod)."
#: src/settings_translation_file.cpp
msgid "Maximum users"
@@ -5486,7 +5528,7 @@ msgstr "Menús"
#: src/settings_translation_file.cpp
msgid "Mesh cache"
-msgstr ""
+msgstr "Caché de mallas poligonales"
#: src/settings_translation_file.cpp
msgid "Message of the day"
@@ -5502,7 +5544,7 @@ msgstr "Método utilizado para resaltar el objeto seleccionado."
#: src/settings_translation_file.cpp
msgid "Minimal level of logging to be written to chat."
-msgstr ""
+msgstr "Nivel mínimo de logging a ser escrito al chat."
#: src/settings_translation_file.cpp
msgid "Minimap"
@@ -5544,11 +5586,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Monospace font path"
-msgstr ""
+msgstr "Ruta de fuente monoespaciada"
#: src/settings_translation_file.cpp
msgid "Monospace font size"
-msgstr ""
+msgstr "Tamaño de fuente monoespaciada"
#: src/settings_translation_file.cpp
msgid "Mountain height noise"
@@ -5568,11 +5610,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Mouse sensitivity"
-msgstr ""
+msgstr "Sensibilidad del ratón"
#: src/settings_translation_file.cpp
msgid "Mouse sensitivity multiplier."
-msgstr ""
+msgstr "Multiplicador de sensiblidad del ratón."
#: src/settings_translation_file.cpp
msgid "Mud noise"
@@ -5606,6 +5648,10 @@ msgid ""
"When running a server, clients connecting with this name are admins.\n"
"When starting from the main menu, this is overridden."
msgstr ""
+"Nombre del jugador.\n"
+"Cuando se ejecuta un servidor, los clientes que se conecten con este nombre "
+"son administradores.\n"
+"Al comenzar desde el menú principal, esto se anula."
#: src/settings_translation_file.cpp
msgid ""
@@ -5628,7 +5674,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "New users need to input this password."
-msgstr ""
+msgstr "Los usuarios nuevos deben ingresar esta contraseña."
#: src/settings_translation_file.cpp
msgid "Noclip"
@@ -5651,14 +5697,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5684,16 +5722,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Contenido del repositorio en linea"
#: src/settings_translation_file.cpp
msgid "Opaque liquids"
-msgstr ""
+msgstr "Líquidos opacos"
#: src/settings_translation_file.cpp
msgid ""
@@ -5713,39 +5747,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion"
-msgstr "Oclusión de paralaje"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion bias"
-msgstr "Oclusión de paralaje"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion iterations"
-msgstr "Oclusión de paralaje"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion mode"
-msgstr "Oclusión de paralaje"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "Oclusión de paralaje"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5813,6 +5814,16 @@ msgid "Pitch move mode"
msgstr "Modo de movimiento de inclinación activado"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Tecla vuelo"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "Intervalo de repetición del botón del Joystick"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5866,7 +5877,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Profiling"
-msgstr ""
+msgstr "Perfilando"
#: src/settings_translation_file.cpp
msgid "Prometheus listener address"
@@ -5970,10 +5981,6 @@ msgid "Right key"
msgstr "Tecla derecha"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "River channel depth"
msgstr "Profundidad del relleno"
@@ -5992,7 +5999,7 @@ msgstr "Ruido de río"
#: src/settings_translation_file.cpp
msgid "River size"
-msgstr ""
+msgstr "Tamaño del río"
#: src/settings_translation_file.cpp
#, fuzzy
@@ -6261,6 +6268,17 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Fuente en negrita por defecto"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -6391,10 +6409,6 @@ msgid "Strength of 3D mode parallax."
msgstr "La fuerza del paralaje del modo 3D."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Fuerza de los mapas normales generados."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6489,6 +6503,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6547,8 +6565,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6574,15 +6592,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6720,6 +6743,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6930,6 +6964,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -7052,10 +7092,28 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "cURL file download timeout"
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "cURL file download timeout"
+msgstr "Tiempo de espera de descarga por cURL"
+
+#: src/settings_translation_file.cpp
msgid "cURL parallel limit"
msgstr ""
@@ -7063,42 +7121,75 @@ msgstr ""
msgid "cURL timeout"
msgstr "Tiempo de espera de cURL"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Activar cinemático"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = oclusión de paralaje con información de inclinación (más rápido).\n"
+#~ "1 = mapa de relieve (más lento, más preciso)."
-#~ msgid "Select Package File:"
-#~ msgstr "Seleccionar el archivo del paquete:"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "Ajustar la codificación gamma para las tablas de iluminación. Números "
+#~ "mayores son mas brillantes.\n"
+#~ "Este ajuste es solo para cliente y es ignorado por el servidor."
-#~ msgid "Waving Water"
-#~ msgstr "Oleaje"
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgstr ""
+#~ "Modifica cómo las tierras flotantes del tipo montaña aparecen arriba y "
+#~ "abajo del punto medio."
-#~ msgid "Waving water"
-#~ msgstr "Oleaje en el agua"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "¿Estás seguro de querer reiniciar el mundo de un jugador?"
-#, fuzzy
-#~ msgid "Lava depth"
-#~ msgstr "Características de la Lava"
+#~ msgid "Back"
+#~ msgstr "Atrás"
-#~ msgid "IPv6 support."
-#~ msgstr "soporte IPv6."
+#~ msgid "Bump Mapping"
+#~ msgstr "Mapeado de relieve"
-#~ msgid "Gamma"
-#~ msgstr "Gamma"
+#~ msgid "Bumpmapping"
+#~ msgstr "Mapeado de relieve"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Alfa de sombra de fuentes (opacidad, entre 0 y 255)."
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "Cambia la UI del menú principal:\n"
+#~ "- Completo: Múltiples mundos, elección de juegos y texturas, etc.\n"
+#~ "- Simple: Un solo mundo, sin elección de juegos o texturas.\n"
+#~ "Puede ser necesario en pantallas pequeñas."
-#~ msgid "Floatland mountain height"
-#~ msgstr "Altura de las montañas en tierras flotantes"
+#~ msgid "Config mods"
+#~ msgstr "Configurar mods"
-#~ msgid "Floatland base height noise"
-#~ msgstr "Ruido de altura base para tierra flotante"
+#~ msgid "Configure"
+#~ msgstr "Configurar"
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Habilita el mapeado de tonos fílmico"
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "Controla la densidad del terreno montañoso flotante.\n"
+#~ "Se agrega un desplazamiento al valor de ruido 'mgv7_np_mountain'."
-#~ msgid "Enable VBO"
-#~ msgstr "Activar VBO"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Controla el ancho de los túneles, un valor menor crea túneles más anchos."
+
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Color de la cruz (R,G,B)."
+
+#, fuzzy
+#~ msgid "Darkness sharpness"
+#~ msgstr "Agudeza de la obscuridad"
#~ msgid ""
#~ "Defines areas of floatland smooth terrain.\n"
@@ -7107,43 +7198,160 @@ msgstr "Tiempo de espera de cURL"
#~ "Define áreas de terreno liso flotante.\n"
#~ "Las zonas flotantes lisas se producen cuando el ruido > 0."
-#, fuzzy
-#~ msgid "Darkness sharpness"
-#~ msgstr "Agudeza de la obscuridad"
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Define el intervalo de muestreo de las texturas.\n"
+#~ "Un valor más alto causa mapas de relieve más suaves."
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Descargando e instalando $1, por favor espere..."
+
+#~ msgid "Enable VBO"
+#~ msgstr "Activar VBO"
+
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Controla el ancho de los túneles, un valor menor crea túneles más anchos."
+#~ "Habilita mapeado de relieves para las texturas. El mapeado de normales "
+#~ "necesita ser\n"
+#~ "suministrados por el paquete de texturas, o será generado "
+#~ "automaticamente.\n"
+#~ "Requiere habilitar sombreadores."
+
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Habilita el mapeado de tonos fílmico"
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Controla la densidad del terreno montañoso flotante.\n"
-#~ "Se agrega un desplazamiento al valor de ruido 'mgv7_np_mountain'."
+#~ "Habilita la generación de mapas de normales (efecto realzado) en el "
+#~ "momento.\n"
+#~ "Requiere habilitar mapeado de relieve."
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Modifica cómo las tierras flotantes del tipo montaña aparecen arriba y "
-#~ "abajo del punto medio."
+#~ "Habilita mapeado de oclusión de paralaje.\n"
+#~ "Requiere habilitar sombreadores."
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
#~ msgstr ""
-#~ "Ajustar la codificación gamma para las tablas de iluminación. Números "
-#~ "mayores son mas brillantes.\n"
-#~ "Este ajuste es solo para cliente y es ignorado por el servidor."
+#~ "Opción experimental, puede causar espacios visibles entre los\n"
+#~ "bloques si se le da un valor mayor a 0."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Ruta para guardar las capturas de pantalla."
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS (cuadros/s) en el menú de pausa"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Descargando e instalando $1, por favor espere..."
+#~ msgid "Floatland base height noise"
+#~ msgstr "Ruido de altura base para tierra flotante"
-#~ msgid "Back"
-#~ msgstr "Atrás"
+#~ msgid "Floatland mountain height"
+#~ msgstr "Altura de las montañas en tierras flotantes"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Alfa de sombra de fuentes (opacidad, entre 0 y 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "Gamma"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Generar mapas normales"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Generar mapas normales"
+
+#~ msgid "IPv6 support."
+#~ msgstr "soporte IPv6."
+
+#, fuzzy
+#~ msgid "Lava depth"
+#~ msgstr "Características de la Lava"
+
+#~ msgid "Main"
+#~ msgstr "Principal"
+
+#~ msgid "Main menu style"
+#~ msgstr "Estilo del menú principal"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Minimapa en modo radar, Zoom x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Minimapa en modo radar, Zoom x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Minimapa en modo superficie, Zoom x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Minimapa en modo superficie, Zoom x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Nombre / contraseña"
+
+#~ msgid "No"
+#~ msgstr "No"
#~ msgid "Ok"
#~ msgstr "Aceptar"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Oclusión de paralaje"
+
+#, fuzzy
+#~ msgid "Parallax occlusion"
+#~ msgstr "Oclusión de paralaje"
+
+#, fuzzy
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Oclusión de paralaje"
+
+#, fuzzy
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Oclusión de paralaje"
+
+#, fuzzy
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Oclusión de paralaje"
+
+#, fuzzy
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Oclusión de paralaje"
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Ruta para guardar las capturas de pantalla."
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Reiniciar mundo de un jugador"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Seleccionar el archivo del paquete:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Comenzar un jugador"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Fuerza de los mapas normales generados."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Activar cinemático"
+
+#~ msgid "View"
+#~ msgstr "Ver"
+
+#~ msgid "Waving Water"
+#~ msgstr "Oleaje"
+
+#~ msgid "Waving water"
+#~ msgstr "Oleaje en el agua"
+
+#~ msgid "Yes"
+#~ msgstr "Sí"
diff --git a/po/et/minetest.po b/po/et/minetest.po
index 67b8210b3..5feb9be60 100644
--- a/po/et/minetest.po
+++ b/po/et/minetest.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Estonian (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-05-03 19:14+0000\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-12-05 15:29+0000\n"
"Last-Translator: Janar Leas <janar.leas@gmail.com>\n"
"Language-Team: Estonian <https://hosted.weblate.org/projects/minetest/"
"minetest/et/>\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.4-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -24,7 +24,7 @@ msgstr "Said surma"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "Valmis"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -40,16 +40,12 @@ msgstr "Peamenüü"
#: builtin/fstk/ui.lua
msgid "Reconnect"
-msgstr "Taasta ühendus"
+msgstr "Taasühenda"
#: builtin/fstk/ui.lua
msgid "The server has requested a reconnect:"
msgstr "Server taotles taasühendumist:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Laadimine..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Protokolli versioon ei sobi. "
@@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Server toetab protokolli versioone $1 kuni $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Proovi lubada uuesti avalike serverite loend ja kontrolli oma Interneti "
-"ühendust."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Meie toetame ainult protokolli versiooni $1."
@@ -76,7 +66,8 @@ msgstr "Meie toetame ainult protokolli versiooni $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Meie toetame protokolli versioone $1 kuni $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Meie toetame protokolli versioone $1 kuni $2."
msgid "Cancel"
msgstr "Tühista"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Sõltuvused:"
@@ -111,12 +103,12 @@ msgid ""
"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
"characters [a-z0-9_] are allowed."
msgstr ""
-"Tõrge MOD-i \"$1\" lubamisel, kuna sisaldab keelatud sümboleid. Lubatud on "
+"MOD-i \"$1\" kasutamine nurjus, kuna sisaldab keelatud sümboleid. Lubatud on "
"ainult [a-z0-9_] märgid."
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "Leia rohkem MODe"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -160,21 +152,61 @@ msgid "enabled"
msgstr "Sisse lülitatud"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Allalaadimine..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Kõik pakid"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Nupp juba kasutuses"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Tagasi peamenüüsse"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Võõrusta"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
-msgstr "Laadimine..."
+msgstr "Allalaadimine..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
@@ -190,6 +222,16 @@ msgid "Install"
msgstr "Paigalda"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Paigalda"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Valikulised sõltuvused:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "MOD-id"
@@ -203,9 +245,25 @@ msgid "No results"
msgstr "Tulemused puuduvad"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Otsi"
+#, fuzzy
+msgid "No updates"
+msgstr "Uuenda"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -220,7 +278,11 @@ msgid "Update"
msgstr "Uuenda"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -229,42 +291,39 @@ msgstr "Maailm nimega \"$1\" on juba olemas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "Täiendav maastik"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
-msgstr ""
+msgstr "Külmetus kõrgus"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Altitude dry"
-msgstr ""
+msgstr "Põua kõrgus"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biome blending"
-msgstr ""
+msgstr "Loodusvööndi hajumine"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biomes"
-msgstr ""
+msgstr "Loodusvööndid"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caverns"
-msgstr "Koobaste läve"
+msgstr "Koopasaalid"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caves"
-msgstr "Oktaavid"
+msgstr "Koopad"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
msgstr "Loo"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "Teave:"
+msgstr "Ilmestused"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -275,21 +334,20 @@ msgid "Download one from minetest.net"
msgstr "Laadi minetest.net-st üks mäng alla"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Dungeons"
-msgstr "Dungeon noise"
+msgstr "Keldrid"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "Lame maastik"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
-msgstr ""
+msgstr "Taevas hõljuvad saared"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floatlands (experimental)"
-msgstr ""
+msgstr "Lendsaared (katseline)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -297,53 +355,51 @@ msgstr "Mäng"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Mitte-fraktaalse maastiku tekitamine: mered ja süvapinnas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "Künkad"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Humid rivers"
-msgstr ""
+msgstr "Rõsked jõed"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "Suurendab niiskust jõe lähistel"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "Järved"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "Madal niiskus ja suur kuum põhjustavad madala või kuiva jõesängi"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
msgstr "Kaardi generaator"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen flags"
-msgstr "Põlvkonna kaardid"
+msgstr "Kaartiloome lipud"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mapgen-specific flags"
-msgstr "Põlvkonna kaardid"
+msgstr "Kaartiloome-põhised lipud"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mountains"
-msgstr ""
+msgstr "Mäed"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "Muda voog"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "Käikude ja koobaste võrgustik"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
@@ -351,72 +407,72 @@ msgstr "Mäng valimata"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "Ilma jahenemine kõrgemal"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "Ilma kuivenemine kõrgemal"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Rivers"
-msgstr "Parem Windowsi nupp"
+msgstr "Jõed"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "Jõed merekõrgusel"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Seed"
-msgstr "Seed"
+msgstr "Külv"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "Sujuv loodusvööndi vaheldumine"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
+"Rajatised ilmuvad maastikul (v6 tekitatud puudele ja tihniku rohule mõju ei "
+"avaldu)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "Struktuurid ilmuvad maastikul, enamasti puud ja teised taimed"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
-msgstr ""
+msgstr "Rohtla, Lagendik"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgstr "Rohtla, Lagendik, Tihnik"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "Rohtla, Lagendik, Tihnik, Tundra, Laas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Terrain surface erosion"
-msgstr ""
+msgstr "Maapinna kulumine"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "Puud ja tihniku rohi"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Vary river depth"
-msgstr ""
+msgstr "Muutlik jõe sügavus"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "Väga suured koopasaalid maapõue sügavuses"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Warning: The Development Test is meant for developers."
-msgstr "Hoiatus: minimaalne arendustest on mõeldud arendajatele."
+msgstr "Hoiatus: \"Arendustest\" on mõeldud arendajatele."
#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
@@ -454,7 +510,7 @@ msgstr "Nõustu"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid "Rename Modpack:"
-msgstr "Nimetad ümber MOD-i paki:"
+msgstr "Taasnimeta MOD-i pakk:"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid ""
@@ -470,7 +526,7 @@ msgstr "(Kirjeldus seadistusele puudub)"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "2D Noise"
-msgstr "2-mõõtmeline müra"
+msgstr "kahemõõtmeline müra"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "< Back to Settings page"
@@ -494,11 +550,11 @@ msgstr "Lubatud"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Lacunarity"
-msgstr "Lakunaarsus"
+msgstr "Pinna auklikus"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Octaves"
-msgstr "Oktaavid"
+msgstr "Oktavid"
#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
msgid "Offset"
@@ -525,6 +581,10 @@ msgid "Scale"
msgstr "Ulatus"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Otsi"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Vali kataloog"
@@ -550,7 +610,7 @@ msgstr "X"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "X spread"
-msgstr "X levitus"
+msgstr "X levi"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Y"
@@ -558,7 +618,7 @@ msgstr "Y"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Y spread"
-msgstr "Y levitus"
+msgstr "Y levi"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Z"
@@ -566,7 +626,7 @@ msgstr "Z"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Z spread"
-msgstr "Z levitus"
+msgstr "Z levi"
#. ~ "absvalue" is a noise parameter flag.
#. It is short for "absolute value".
@@ -574,14 +634,14 @@ msgstr "Z levitus"
#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "absvalue"
-msgstr "absoluutväärtus"
+msgstr "täisväärtus"
#. ~ "defaults" is a noise parameter flag.
#. It describes the default processing options
#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "defaults"
-msgstr "vaikesätted"
+msgstr "algne"
#. ~ "eased" is a noise parameter flag.
#. It is used to make the map smoother and
@@ -640,6 +700,21 @@ msgstr "Mod nimega $1 paigaldamine nurjus"
msgid "Unable to install a modpack as a $1"
msgstr "Mod-komplekt nimega $1 paigaldamine nurjus"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Laadimine..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Kliendipoolne skriptimine on keelatud"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Proovi lubada uuesti avalike serverite loend ja kontrolli oma Interneti "
+"ühendust."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Sirvi veebist sisu"
@@ -682,59 +757,66 @@ msgstr "Vali tekstuurikomplekt"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
-msgstr "Co-arendaja"
+msgstr "Tegevad panustajad"
#: builtin/mainmenu/tab_credits.lua
msgid "Core Developers"
-msgstr "Põhiline arendaja"
+msgstr "Põhi arendajad"
#: builtin/mainmenu/tab_credits.lua
msgid "Credits"
-msgstr "Tänuavaldused"
+msgstr "Tegijad"
+
+#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Vali kataloog"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
-msgstr "Early arendajad"
+msgstr "Eelnevad panustajad"
#: builtin/mainmenu/tab_credits.lua
msgid "Previous Core Developers"
-msgstr "Eelmised põhilised arendajad"
+msgstr "Eelnevad põhi-arendajad"
#: builtin/mainmenu/tab_local.lua
msgid "Announce Server"
-msgstr "Kuuluta serverist"
+msgstr "Võõrustamise kuulutamine"
#: builtin/mainmenu/tab_local.lua
msgid "Bind Address"
-msgstr "Aadress"
+msgstr "Seo aadress"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Konfigureeri"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
-msgstr "Kujunduslik mängumood"
+msgstr "Looja"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
-msgstr "Lülita valu sisse"
+msgstr "Ellujääja"
#: builtin/mainmenu/tab_local.lua
msgid "Host Game"
-msgstr "Majuta mäng"
+msgstr "Võõrusta"
#: builtin/mainmenu/tab_local.lua
msgid "Host Server"
-msgstr "Majuta server"
+msgstr "Majuta külastajatele"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "Lisa mänge sisuvaramust"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Nimi/Parool"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -742,7 +824,12 @@ msgstr "Uus"
#: builtin/mainmenu/tab_local.lua
msgid "No world created or selected!"
-msgstr "Ühtegi maailma pole loodud ega valitud!"
+msgstr "Pole valitud ega loodud ühtegi maailma!"
+
+#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Uus parool"
#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
@@ -753,57 +840,62 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Vali maailm:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Vali maailm:"
#: builtin/mainmenu/tab_local.lua
msgid "Server Port"
-msgstr "Serveri port"
+msgstr "Võõrustaja kanal"
#: builtin/mainmenu/tab_local.lua
msgid "Start Game"
-msgstr "Alusta mäng"
+msgstr "Alusta mängu"
#: builtin/mainmenu/tab_online.lua
msgid "Address / Port"
-msgstr "Aadress / Port"
+msgstr "Aadress / kanal"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
-msgstr "Liitu"
+msgstr "Ühine"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
-msgstr "Loov režiim"
+msgstr "Looja"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
-msgstr "Kahjustamine lubatud"
+msgstr "Ellujääja"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
-msgstr "Eemalda lemmik"
+msgstr "Pole lemmik"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
-msgstr "Lisa lemmikuks"
+msgstr "On lemmik"
#: builtin/mainmenu/tab_online.lua
msgid "Join Game"
-msgstr "Liitu mänguga"
+msgstr "Ühine"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
-msgstr "Nimi / Salasõna"
+msgstr "Nimi / salasõna"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
-msgstr "Ping"
+msgstr "Viivitus"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
-msgstr "PvP lubatud"
+msgstr "Vaenulikus lubatud"
#: builtin/mainmenu/tab_settings.lua
msgid "2x"
@@ -811,7 +903,7 @@ msgstr "2x"
#: builtin/mainmenu/tab_settings.lua
msgid "3D Clouds"
-msgstr "3D pilved"
+msgstr "Ruumilised pilved"
#: builtin/mainmenu/tab_settings.lua
msgid "4x"
@@ -827,24 +919,16 @@ msgstr "Kõik sätted"
#: builtin/mainmenu/tab_settings.lua
msgid "Antialiasing:"
-msgstr "Antialiasing:"
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Olete kindel, et lähtestate oma üksikmängija maailma?"
+msgstr "Silu servad:"
#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
-msgstr "Salvesta ekraani suurus"
+msgstr "Mäleta ekraani suurust"
#: builtin/mainmenu/tab_settings.lua
msgid "Bilinear Filter"
msgstr "Bi-lineaarne filtreerimine"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Muhkkaardistamine"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Vaheta klahve"
@@ -858,22 +942,14 @@ msgid "Fancy Leaves"
msgstr "Uhked lehed"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Loo normaalkaardistusi"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
-msgstr "Mipmap"
+msgstr "KaugVaatEsemeKaart"
#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Ei"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Filtrita"
@@ -883,11 +959,11 @@ msgstr "Mipmapita"
#: builtin/mainmenu/tab_settings.lua
msgid "Node Highlighting"
-msgstr "Blokkide esiletõstmine"
+msgstr "Valitud klotsi ilme"
#: builtin/mainmenu/tab_settings.lua
msgid "Node Outlining"
-msgstr "Blokkide kontuur"
+msgstr "Klotsi servad"
#: builtin/mainmenu/tab_settings.lua
msgid "None"
@@ -901,19 +977,11 @@ msgstr "Läbipaistmatud lehed"
msgid "Opaque Water"
msgstr "Läbipaistmatu vesi"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Osakesed"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Lähtesta üksikmängija maailm"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Ekraan:"
@@ -926,6 +994,11 @@ msgid "Shaders"
msgstr "Varjutajad"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Lendsaared (katseline)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Varjutajad (pole saadaval)"
@@ -969,22 +1042,6 @@ msgstr "Lainetavad vedelikud"
msgid "Waving Plants"
msgstr "Lehvivad taimed"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Jah"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Seadista mod-e"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Peamine"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Alusta üksikmängu"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Ühendus aegus."
@@ -995,11 +1052,11 @@ msgstr "Valmis!"
#: src/client/client.cpp
msgid "Initializing nodes"
-msgstr "Blokkide häälestamine"
+msgstr "Klotsidega täitmine"
#: src/client/client.cpp
msgid "Initializing nodes..."
-msgstr "Blokkide häälestamine..."
+msgstr "Klotsidega täitmine..."
#: src/client/client.cpp
msgid "Loading textures..."
@@ -1092,7 +1149,7 @@ msgstr "- Avalik: "
#. ~ PvP = Player versus Player
#: src/client/game.cpp
msgid "- PvP: "
-msgstr "- PvP: "
+msgstr "- Üksteise vastu: "
#: src/client/game.cpp
msgid "- Server Name: "
@@ -1139,20 +1196,20 @@ msgid "Continue"
msgstr "Jätka"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1300,34 +1357,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Pisikaardi keelab hetkel mäng või MOD"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Pisikaart peidetud"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Radarkaart, Suurendus ×1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Radarkaart, Suurendus ×2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Radarkaart, Suurendus ×4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Pinnakaart, Suurendus ×1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Pinnakaart, Suurendus ×2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Pinnakaart, Suurendus ×4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Haakumatus keelatud"
@@ -1341,15 +1370,15 @@ msgstr "Haakumatus lubatud (pole 'haakumatus' volitust)"
#: src/client/game.cpp
msgid "Node definitions..."
-msgstr ""
+msgstr "Klotsi määratlused..."
#: src/client/game.cpp
msgid "Off"
-msgstr ""
+msgstr "Väljas"
#: src/client/game.cpp
msgid "On"
-msgstr ""
+msgstr "Sees"
#: src/client/game.cpp
msgid "Pitch move mode disabled"
@@ -1365,15 +1394,15 @@ msgstr ""
#: src/client/game.cpp
msgid "Remote server"
-msgstr ""
+msgstr "Kaug võõrustaja"
#: src/client/game.cpp
msgid "Resolving address..."
-msgstr ""
+msgstr "Aadressi lahendamine..."
#: src/client/game.cpp
msgid "Shutting down..."
-msgstr ""
+msgstr "Sulgemine..."
#: src/client/game.cpp
msgid "Singleplayer"
@@ -1389,11 +1418,11 @@ msgstr "Heli vaigistatud"
#: src/client/game.cpp
msgid "Sound system is disabled"
-msgstr ""
+msgstr "Heli süsteem on keelatud"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "See kooste ei toeta heli süsteemi"
#: src/client/game.cpp
msgid "Sound unmuted"
@@ -1402,17 +1431,17 @@ msgstr "Heli taastatud"
#: src/client/game.cpp
#, c-format
msgid "Viewing range changed to %d"
-msgstr ""
+msgstr "Vaate kaugus on nüüd: %d"
#: src/client/game.cpp
#, c-format
msgid "Viewing range is at maximum: %d"
-msgstr ""
+msgstr "Vaate kaugus on suurim võimalik: %d"
#: src/client/game.cpp
#, c-format
msgid "Viewing range is at minimum: %d"
-msgstr ""
+msgstr "Vaate kaugus on vähim võimalik: %d"
#: src/client/game.cpp
#, c-format
@@ -1461,9 +1490,8 @@ msgid "Apps"
msgstr "Aplikatsioonid"
#: src/client/keycode.cpp
-#, fuzzy
msgid "Backspace"
-msgstr "Tagasi"
+msgstr "Tagasinihe"
#: src/client/keycode.cpp
msgid "Caps Lock"
@@ -1502,29 +1530,24 @@ msgid "Home"
msgstr "Kodu"
#: src/client/keycode.cpp
-#, fuzzy
msgid "IME Accept"
-msgstr "Nõustu"
+msgstr "Sisendviisiga nõustumine"
#: src/client/keycode.cpp
-#, fuzzy
msgid "IME Convert"
-msgstr "Konverteeri"
+msgstr "Sisendviisi teisendamine"
#: src/client/keycode.cpp
-#, fuzzy
msgid "IME Escape"
-msgstr "Põgene"
+msgstr "Sisendviisi paoklahv"
#: src/client/keycode.cpp
-#, fuzzy
msgid "IME Mode Change"
-msgstr "Moodi vahetamine"
+msgstr "Sisendviisi laadi vahetus"
#: src/client/keycode.cpp
-#, fuzzy
msgid "IME Nonconvert"
-msgstr "Konverteerimatta"
+msgstr "Sisendviisi mitte-teisendada"
#: src/client/keycode.cpp
msgid "Insert"
@@ -1725,6 +1748,25 @@ msgstr "X Nupp 2"
msgid "Zoom"
msgstr "Suumi"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Pisikaart peidetud"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Radarkaart, Suurendus ×1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Pinnakaart, Suurendus ×1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Pinnakaart, Suurendus ×1"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Paroolid ei ole samad!"
@@ -1752,9 +1794,8 @@ msgid "\"Special\" = climb down"
msgstr "\"Eriline\" = roni alla"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Autoforward"
-msgstr "Automaatedasiliikumine"
+msgstr "Iseastuja"
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Automatic jumping"
@@ -1972,12 +2013,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2084,6 +2119,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2093,7 +2132,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Acceleration of gravity, in nodes per second per second."
-msgstr ""
+msgstr "Raskuskiirendus, (klotsi sekundis) sekundi kohta."
#: src/settings_translation_file.cpp
msgid "Active Block Modifiers"
@@ -2120,7 +2159,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Adds particles when digging a node."
-msgstr ""
+msgstr "Lendlevad osakesed klotsi kaevandamisel."
#: src/settings_translation_file.cpp
msgid ""
@@ -2226,7 +2265,7 @@ msgstr "Automaatse edasiliikumise klahv"
#: src/settings_translation_file.cpp
msgid "Automatically jump up single-node obstacles."
-msgstr ""
+msgstr "Iseseisvalt hüppab üle ühe klotsi kordse tõkke."
#: src/settings_translation_file.cpp
msgid "Automatically report to the serverlist."
@@ -2317,10 +2356,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Muhkkaardistamine"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2391,16 +2426,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2409,9 +2434,8 @@ msgid "Chat key"
msgstr "Vestlusklahv"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat log level"
-msgstr "Vestluse lülitusklahv"
+msgstr "Vestlus päeviku täpsus"
#: src/settings_translation_file.cpp
msgid "Chat message count limit"
@@ -2422,9 +2446,8 @@ msgid "Chat message format"
msgstr "Vestluse sõnumi formaat"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat message kick threshold"
-msgstr "Vestlussõnumi kick läve"
+msgstr "Vestlus sõnumi väljaviskamis lävi"
#: src/settings_translation_file.cpp
msgid "Chat message max length"
@@ -2535,7 +2558,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Connects glass if supported by node."
-msgstr ""
+msgstr "Ühendab klaasi, kui klots võimaldab."
#: src/settings_translation_file.cpp
msgid "Console alpha"
@@ -2554,8 +2577,12 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
-msgstr "ContentDB URL"
+msgstr "ContentDB aadress"
#: src/settings_translation_file.cpp
msgid "Continuous forward"
@@ -2610,7 +2637,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2618,7 +2647,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2626,9 +2657,8 @@ msgid "DPI"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Damage"
-msgstr "Damage"
+msgstr "Vigastused"
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
@@ -2681,9 +2711,8 @@ msgid "Default report format"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Default stack size"
-msgstr "Vaikemäng"
+msgstr "Vaike lasu hulk"
#: src/settings_translation_file.cpp
msgid ""
@@ -2720,12 +2749,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2783,19 +2806,26 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Desert noise threshold"
-msgstr ""
+msgstr "Müra künnis lagendikule"
#: src/settings_translation_file.cpp
msgid ""
"Deserts occur when np_biome exceeds this value.\n"
"When the 'snowbiomes' flag is enabled, this is ignored."
msgstr ""
+"Lagendikud ilmuvad kui np_biome ületab selle väärtuse.\n"
+"Seda eiratakse, kui lipp 'lumistud' on lubatud."
#: src/settings_translation_file.cpp
msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Parem klahv"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Kaevamisel tekkivad osakesed"
@@ -2836,9 +2866,8 @@ msgid "Dungeon minimum Y"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Dungeon noise"
-msgstr "Dungeon noise"
+msgstr "Müra keldritele"
#: src/settings_translation_file.cpp
msgid ""
@@ -2857,7 +2886,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2945,14 +2974,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2962,18 +2983,6 @@ msgstr "Lubab minikaarti."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2990,12 +2999,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3005,7 +3008,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3094,9 +3097,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Filtering"
-msgstr "Anisotroopne Filtreerimine"
+msgstr "Filtreerimine"
#: src/settings_translation_file.cpp
msgid "First of 4 2D noises that together define hill/mountain range height."
@@ -3127,9 +3129,8 @@ msgid "Floatland minimum Y"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland noise"
-msgstr "Põlvkonna kaardid"
+msgstr "Müra lendsaartele"
#: src/settings_translation_file.cpp
msgid "Floatland taper exponent"
@@ -3245,9 +3246,8 @@ msgid "Formspec full-screen background opacity (between 0 and 255)."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Forward key"
-msgstr "Edasi"
+msgstr "Edasi klahv"
#: src/settings_translation_file.cpp
msgid "Fourth of 4 2D noises that together define hill/mountain range height."
@@ -3310,10 +3310,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3323,6 +3319,10 @@ msgid ""
"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
"and junglegrass, in all other mapgens this flag controls all decorations."
msgstr ""
+"Üldised maailma-loome omadused.\n"
+"Maailma loome v6 puhul lipp 'Ilmestused' ei avalda mõju puudele ja \n"
+"tihniku rohule, kõigi teiste versioonide puhul mõjutab see lipp \n"
+"kõiki ilmestusi (nt: lilled, seened, vetikad, korallid, jne)."
#: src/settings_translation_file.cpp
msgid ""
@@ -3345,14 +3345,12 @@ msgid "Gravity"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Ground level"
-msgstr "Põlvkonna kaardid"
+msgstr "Pinna tase"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Ground noise"
-msgstr "Põlvkonna kaardid"
+msgstr "Müra pinnasele"
#: src/settings_translation_file.cpp
msgid "HTTP mods"
@@ -3369,8 +3367,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3396,9 +3394,8 @@ msgid "Height component of the initial window size."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Height noise"
-msgstr "Parem Windowsi nupp"
+msgstr "Müra kõrgusele"
#: src/settings_translation_file.cpp
msgid "Height select noise"
@@ -3409,14 +3406,12 @@ msgid "High-precision FPU"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hill steepness"
-msgstr "Põlvkonna kaardid"
+msgstr "Küngaste järskus"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hill threshold"
-msgstr "Põlvkonna kaardid"
+msgstr "Küngaste lävi"
#: src/settings_translation_file.cpp
msgid "Hilliness1 noise"
@@ -3726,9 +3721,8 @@ msgid "Ignore world errors"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "In-Game"
-msgstr "Mäng"
+msgstr "Mängu-sisene"
#: src/settings_translation_file.cpp
msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
@@ -3743,9 +3737,8 @@ msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Inc. volume key"
-msgstr "Konsool"
+msgstr "Heli valjemaks"
#: src/settings_translation_file.cpp
msgid "Initial vertical speed when jumping, in nodes per second."
@@ -3798,9 +3791,8 @@ msgid "Inventory items animations"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Inventory key"
-msgstr "Seljakott"
+msgstr "Varustuse klahv"
#: src/settings_translation_file.cpp
msgid "Invert mouse"
@@ -3843,6 +3835,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3900,9 +3896,8 @@ msgid "Julia z"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Jump key"
-msgstr "Hüppamine"
+msgstr "Hüppa"
#: src/settings_translation_file.cpp
msgid "Jumping speed"
@@ -3924,6 +3919,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4023,6 +4025,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4399,14 +4408,12 @@ msgid "Kick players who sent more than X messages per 10 seconds."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Lake steepness"
-msgstr "Põlvkonna kaardid"
+msgstr "Sügavus järvedele"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Lake threshold"
-msgstr "Põlvkonna kaardid"
+msgstr "Järvede lävi"
#: src/settings_translation_file.cpp
msgid "Language"
@@ -4429,9 +4436,8 @@ msgid "Large cave proportion flooded"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Large chat console key"
-msgstr "Konsool"
+msgstr "Suure vestlus-viiba klahv"
#: src/settings_translation_file.cpp
msgid "Leaves style"
@@ -4446,9 +4452,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Left key"
-msgstr "Vasak Menüü"
+msgstr "Vasak klahv"
#: src/settings_translation_file.cpp
msgid ""
@@ -4579,14 +4584,8 @@ msgid "Lower Y limit of floatlands."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Main menu script"
-msgstr "Menüü"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Menüü"
+msgstr "Peamenüü skript"
#: src/settings_translation_file.cpp
msgid ""
@@ -4602,6 +4601,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4643,6 +4650,11 @@ msgid ""
"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n"
"the 'jungles' flag is ignored."
msgstr ""
+"Maailma-loome v6 spetsiifilised omadused. \n"
+"Lipp 'lumistud' võimaldab uudse 5-e loodusvööndi süsteemi.\n"
+"Kui lipp 'lumistud' on lubatud, siis võimaldatakse ka tihnikud ning "
+"eiratakse \n"
+"lippu 'tihnikud'."
#: src/settings_translation_file.cpp
msgid ""
@@ -4677,84 +4689,68 @@ msgid "Mapblock unload timeout"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Carpathian"
-msgstr "Põlvkonna kaardid"
+msgstr "Maailmaloome: Mäestik"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Carpathian specific flags"
-msgstr "Põlvkonna kaardid"
+msgstr "Mäestiku spetsiifilised omadused"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Flat"
-msgstr "Põlvkonna kaardid"
+msgstr "Maailmaloome: Lamemaa"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Flat specific flags"
-msgstr "Põlvkonna kaardid"
+msgstr "Lamemaa spetsiifilised omadused"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Fractal"
-msgstr "Põlvkonna kaardid"
+msgstr "Maailmaloome: Fraktaalne"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Fractal specific flags"
-msgstr "Põlvkonna kaardid"
+msgstr "Fraktaalse maailma spetsiifilised lipud"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V5"
-msgstr "Põlvkonna kaardid"
+msgstr "Maailmaloome: V5"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V5 specific flags"
-msgstr "Põlvkonna kaardid"
+msgstr "V5 spetsiifilised lipud"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V6"
-msgstr "Põlvkonna kaardid"
+msgstr "Maailmaloome: V6"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V6 specific flags"
-msgstr "Põlvkonna kaardid"
+msgstr "V6 spetsiifilised lipud"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V7"
-msgstr "Põlvkonna kaardid"
+msgstr "Maailmaloome: V7"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V7 specific flags"
-msgstr "Põlvkonna kaardid"
+msgstr "V7 spetsiifilised lipud"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Valleys"
-msgstr "Põlvkonna kaardid"
+msgstr "Maailmaloome: Vooremaa"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Valleys specific flags"
-msgstr "Põlvkonna kaardid"
+msgstr "Vooremaa spetsiifilised lipud"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen debug"
-msgstr "Põlvkonna kaardid"
+msgstr "Maailmaloome: veaproov"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen name"
-msgstr "Põlvkonna kaardid"
+msgstr "Maailma tekitus-valemi nimi"
#: src/settings_translation_file.cpp
msgid "Max block generate distance"
@@ -4781,7 +4777,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4830,6 +4826,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -4891,9 +4894,8 @@ msgid "Maximum users"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Menus"
-msgstr "Menüü"
+msgstr "Menüüd"
#: src/settings_translation_file.cpp
msgid "Mesh cache"
@@ -4940,9 +4942,8 @@ msgid "Minimum texture size"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mipmapping"
-msgstr "Väga hea kvaliteet"
+msgstr "Astmik-tapeetimine"
#: src/settings_translation_file.cpp
msgid "Mod channels"
@@ -4995,9 +4996,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mute key"
-msgstr "Vajuta nuppu"
+msgstr "Vaigista"
#: src/settings_translation_file.cpp
msgid "Mute sound"
@@ -5062,14 +5062,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5095,10 +5087,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5124,34 +5112,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5209,15 +5169,23 @@ msgid "Physics"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Pitch move key"
-msgstr "Kujunduslik mängumood"
+msgstr "Kõrvale astumise klahv"
#: src/settings_translation_file.cpp
msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Kõrvale astumise klahv"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5305,18 +5273,16 @@ msgid "Random input"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Range select key"
-msgstr "Kauguse valik"
+msgstr "Valiku ulatuse klahv"
#: src/settings_translation_file.cpp
msgid "Recent Chat Messages"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Regular font path"
-msgstr "Vali"
+msgstr "Tavafondi asukoht"
#: src/settings_translation_file.cpp
msgid "Remote media"
@@ -5337,9 +5303,8 @@ msgid "Replaces the default main menu with a custom one."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Report path"
-msgstr "Vali"
+msgstr "Aruande asukoht"
#: src/settings_translation_file.cpp
msgid ""
@@ -5372,13 +5337,8 @@ msgid "Ridged mountain size noise"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Right key"
-msgstr "Parem Menüü"
-
-#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
+msgstr "Parem klahv"
#: src/settings_translation_file.cpp
msgid "River channel depth"
@@ -5393,9 +5353,8 @@ msgid "River depth"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River noise"
-msgstr "Parem Windowsi nupp"
+msgstr "Jõe müra"
#: src/settings_translation_file.cpp
msgid "River size"
@@ -5463,14 +5422,12 @@ msgid "Screenshot folder"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Screenshot format"
-msgstr "Mängupilt"
+msgstr "Kuvapildi vorming"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Screenshot quality"
-msgstr "Mängupilt"
+msgstr "Kuvapildi tase"
#: src/settings_translation_file.cpp
msgid ""
@@ -5535,9 +5492,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Server / Singleplayer"
-msgstr "Üksikmäng"
+msgstr "Võõrusta / Üksi"
#: src/settings_translation_file.cpp
msgid "Server URL"
@@ -5564,14 +5520,12 @@ msgid "Server side occlusion culling"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Serverlist URL"
-msgstr "Avatud serverite nimekiri:"
+msgstr "Võõrustaja-loendi aadress"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Serverlist file"
-msgstr "Avatud serverite nimekiri:"
+msgstr "Võõrustaja-loendi fail"
#: src/settings_translation_file.cpp
msgid ""
@@ -5602,9 +5556,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Shader path"
-msgstr "Varjutajad"
+msgstr "Varjutaja asukoht"
#: src/settings_translation_file.cpp
msgid ""
@@ -5639,6 +5592,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5684,9 +5647,8 @@ msgid "Small-scale temperature variation for blending biomes on borders."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Smooth lighting"
-msgstr "Ilus valgustus"
+msgstr "Hajus valgus"
#: src/settings_translation_file.cpp
msgid ""
@@ -5703,14 +5665,12 @@ msgid "Smooths rotation of camera. 0 to disable."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Sneak key"
-msgstr "Hiilimine"
+msgstr "Hiilimis klahv"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Sneaking speed"
-msgstr "Hiilimine"
+msgstr "Hiilimis kiirus"
#: src/settings_translation_file.cpp
msgid "Sneaking speed, in nodes per second."
@@ -5721,9 +5681,8 @@ msgid "Sound"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Special key"
-msgstr "Hiilimine"
+msgstr "Eri klahv"
#: src/settings_translation_file.cpp
msgid "Special key for climbing/descending"
@@ -5772,10 +5731,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5851,9 +5806,8 @@ msgid "Terrain persistence noise"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Texture path"
-msgstr "Vali graafika:"
+msgstr "Tapeedi kaust"
#: src/settings_translation_file.cpp
msgid ""
@@ -5870,6 +5824,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5928,8 +5886,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5955,15 +5913,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6020,18 +5983,16 @@ msgid "Tooltip delay"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Touch screen threshold"
-msgstr "Põlvkonna kaardid"
+msgstr "Puuteekraani lävi"
#: src/settings_translation_file.cpp
msgid "Trees noise"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Trilinear filtering"
-msgstr "Tri-Linear Filtreerimine"
+msgstr "kolmik-lineaar filtreerimine"
#: src/settings_translation_file.cpp
msgid ""
@@ -6101,6 +6062,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6178,7 +6150,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "View distance in nodes."
-msgstr ""
+msgstr "Vaate kaugus klotsides."
#: src/settings_translation_file.cpp
msgid "View range decrease key"
@@ -6201,9 +6173,8 @@ msgid "Virtual joystick triggers aux button"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Volume"
-msgstr "Hääle volüüm"
+msgstr "Valjus"
#: src/settings_translation_file.cpp
msgid ""
@@ -6238,40 +6209,35 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Water surface level of the world."
-msgstr ""
+msgstr "Merepinna kõrgus maailmas."
#: src/settings_translation_file.cpp
msgid "Waving Nodes"
-msgstr ""
+msgstr "Lainetavad klotsid"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving leaves"
-msgstr "Uhked puud"
+msgstr "Lehvivad lehed"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids"
msgstr "Lainetavad vedelikud"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave height"
-msgstr "Uhked puud"
+msgstr "Vedeliku laine kõrgus"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave speed"
-msgstr "Uhked puud"
+msgstr "Vedeliku laine kiirus"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wavelength"
-msgstr "Uhked puud"
+msgstr "Vedeliku laine pikkus"
#: src/settings_translation_file.cpp
msgid "Waving plants"
-msgstr ""
+msgstr "Õõtsuvad taimed"
#: src/settings_translation_file.cpp
msgid ""
@@ -6309,6 +6275,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6320,7 +6292,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Whether to allow players to damage and kill each other."
-msgstr ""
+msgstr "Kas mängjail on võimalus teineteist tappa."
#: src/settings_translation_file.cpp
msgid ""
@@ -6330,7 +6302,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Whether to fog out the end of the visible area."
-msgstr ""
+msgstr "Kas nähtava ala lõpp udutada."
#: src/settings_translation_file.cpp
msgid ""
@@ -6367,9 +6339,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "World start time"
-msgstr "Maailma nimi"
+msgstr "Aeg alustatavas maailmas"
#: src/settings_translation_file.cpp
msgid ""
@@ -6432,6 +6403,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "cURL faili allalaadimine aegus"
@@ -6441,22 +6430,25 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "cURL timeout"
-msgstr ""
+msgstr "cURL aegus"
-#, fuzzy
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Lülita kiirus sisse"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Kindlasti lähtestad oma üksikmängija maailma algseks?"
-#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "Vali modifikatsiooni fail:"
+#~ msgid "Back"
+#~ msgstr "Tagasi"
-#, fuzzy
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Lubab filmic tone mapping"
+#~ msgid "Bump Mapping"
+#~ msgstr "Konarlik tapeet"
-#~ msgid "Enable VBO"
-#~ msgstr "Luba VBO"
+#~ msgid "Bumpmapping"
+#~ msgstr "Muhkkaardistamine"
+
+#~ msgid "Config mods"
+#~ msgstr "Seadista mod-e"
+
+#~ msgid "Configure"
+#~ msgstr "Kohanda"
#~ msgid "Darkness sharpness"
#~ msgstr "Pimeduse teravus"
@@ -6464,8 +6456,59 @@ msgstr ""
#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr "Palun oota $1 allalaadimist ja paigaldamist…"
-#~ msgid "Back"
-#~ msgstr "Tagasi"
+#~ msgid "Enable VBO"
+#~ msgstr "Luba VBO"
+
+#, fuzzy
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Lubab filmic tone mapping"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Loo normaalkaardistusi"
+
+#~ msgid "Main"
+#~ msgstr "Peamine"
+
+#~ msgid "Main menu style"
+#~ msgstr "Peamenüü ilme"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Radarkaart, Suurendus ×2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Radarkaart, Suurendus ×4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Pinnakaart, Suurendus ×2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Pinnakaart, Suurendus ×4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Nimi/Salasõna"
+
+#~ msgid "No"
+#~ msgstr "Ei"
#~ msgid "Ok"
#~ msgstr "Olgu."
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Lähtesta üksikmängija maailm"
+
+#, fuzzy
+#~ msgid "Select Package File:"
+#~ msgstr "Vali modifikatsiooni fail:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Alusta üksikmängu"
+
+#, fuzzy
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Lülita kiirus sisse"
+
+#~ msgid "View"
+#~ msgstr "Vaade"
+
+#~ msgid "Yes"
+#~ msgstr "Jah"
diff --git a/po/eu/minetest.po b/po/eu/minetest.po
index 17c4325df..d639a79ed 100644
--- a/po/eu/minetest.po
+++ b/po/eu/minetest.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-07-08 20:47+0000\n"
-"Last-Translator: sfan5 <sfan5@live.de>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-23 15:50+0000\n"
+"Last-Translator: Osoitz <oelkoro@gmail.com>\n"
"Language-Team: Basque <https://hosted.weblate.org/projects/minetest/minetest/"
"eu/>\n"
"Language: eu\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.5\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -29,7 +29,7 @@ msgstr "Hil zara"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "Ados"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -51,10 +51,6 @@ msgstr "Birkonektatu"
msgid "The server has requested a reconnect:"
msgstr "Zerbitzariak birkonexioa eskatu du:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Kargatzen..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Protokoloaren bertsioen desadostasuna. "
@@ -68,12 +64,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Zerbitzariak $1 eta $2 arteko protokolo bertsioak onartzen ditu. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Saia zaitez zerbitzari publikoen zerrenda birgaitzen eta egiazta ezazu zure "
-"internet konexioa."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "$1 bertsioa soilik onartzen dugu."
@@ -81,7 +71,8 @@ msgstr "$1 bertsioa soilik onartzen dugu."
msgid "We support protocol versions between version $1 and $2."
msgstr "$1 eta $2 arteko protokolo bertsioak onartzen ditugu."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -91,7 +82,8 @@ msgstr "$1 eta $2 arteko protokolo bertsioak onartzen ditugu."
msgid "Cancel"
msgstr "Utzi"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Mendekotasunak:"
@@ -121,7 +113,7 @@ msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "Mod gehiago aurkitu"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -165,21 +157,61 @@ msgid "enabled"
msgstr "gaituta"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" existitzen da. Gainidatzi egin nahi al duzu?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "$1 et $2 mendekotasunak instalatuko dira."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 deskargatzen,\n"
+"$2 ilaran"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 deskargatzen..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "$1-ek behar dituen mendekotasunak ezin dira aurkitu."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+"$1 instalatua izango da, eta $2-ren mendekotasunak baztertu egingo dira."
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Pakete guztiak"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Instalaturik jada"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Itzuli menu nagusira"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Oinarri jokoa:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "ContentDB ez dago erabilgarri Minetest cURL gabe konpilatzean"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
-msgstr "Kargatzen..."
+msgstr "Deskargatzen..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
@@ -195,6 +227,14 @@ msgid "Install"
msgstr "Instalatu"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "$1 Instalatu"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "Falta diren mendekotasunak instalatu"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mod-ak"
@@ -208,13 +248,28 @@ msgid "No results"
msgstr "Emaitzarik ez"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Bilatu"
+msgid "No updates"
+msgstr "Eguneraketarik ez"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "Ez da aurkitu"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Gainidatzi"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "Mesedez, egiaztatu oinarri jokoa zuzena dela."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "Ilaran"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
-msgstr ""
+msgstr "testura paketeak"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Uninstall"
@@ -225,8 +280,12 @@ msgid "Update"
msgstr "Eguneratu"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr ""
+msgid "Update All [$1]"
+msgstr "Guztia eguneratu [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Ikusi informazio gehiago web nabigatzailean"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -234,40 +293,39 @@ msgstr "Badago \"$1\" izeneko mundu bat"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "Lurrazal gehigarria"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
-msgstr ""
+msgstr "Garaierako hotza"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Altitude dry"
-msgstr ""
+msgstr "Garaierako lehortasuna"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biome blending"
-msgstr ""
+msgstr "Bioma nahasketa"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biomes"
-msgstr ""
+msgstr "Biomak"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caverns"
-msgstr ""
+msgstr "Leizeak"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caves"
-msgstr ""
+msgstr "Leizeak"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
msgstr "Sortu"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "Informazioa:"
+msgstr "Apaingarriak"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -280,11 +338,11 @@ msgstr "Deskargatu minetest.net zerbitzaritik"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Dungeons"
-msgstr ""
+msgstr "Leotzak"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "Lurrazal laua"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
@@ -300,27 +358,29 @@ msgstr "Jolasa"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Lurrazal ez fraktalak sortu: Ozeanoak eta lurpekoak"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "Mendiak"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Humid rivers"
-msgstr ""
+msgstr "Erreka hezeak"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "Hezetasuna areagotu erreka inguruetan"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "Lakuak"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
msgstr ""
+"Hezetasun baxuak eta bero handiak sakonera gutxikoak edo lehorrak diren "
+"ibaiak sortzen dituzte"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -328,7 +388,7 @@ msgstr "Mapa sortzailea"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen flags"
-msgstr ""
+msgstr "Mapgen banderatxoak"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mapgen-specific flags"
@@ -525,6 +585,10 @@ msgid "Scale"
msgstr "Eskala"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Bilatu"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Hautatu direktorioa"
@@ -642,6 +706,20 @@ msgstr "Ezinezkoa mod bat $1 moduan instalatzea"
msgid "Unable to install a modpack as a $1"
msgstr "Ezinezkoa mod pakete bat $1 moduan instalatzea"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Kargatzen..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Saia zaitez zerbitzari publikoen zerrenda birgaitzen eta egiazta ezazu zure "
+"internet konexioa."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Lineako edukiak esploratu"
@@ -664,7 +742,7 @@ msgstr "Instalaturiko paketeak:"
#: builtin/mainmenu/tab_content.lua
msgid "No dependencies."
-msgstr "Menpekotasunik gabe."
+msgstr "Mendekotasunik gabe."
#: builtin/mainmenu/tab_content.lua
msgid "No package description available"
@@ -695,6 +773,17 @@ msgid "Credits"
msgstr "Kredituak"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Hautatu direktorioa"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Lehenagoko laguntzaileak"
@@ -711,14 +800,10 @@ msgid "Bind Address"
msgstr "Helbidea lotu"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Konfiguratu"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Sormen modua"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Kalteak baimendu"
@@ -732,10 +817,10 @@ msgstr "Zerbitzari ostalaria"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "Instalatu ContentDB-ko jolasak"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
+msgid "Name"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -747,6 +832,10 @@ msgid "No world created or selected!"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr ""
@@ -755,6 +844,11 @@ msgid "Port"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Hautatu"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr ""
@@ -764,46 +858,46 @@ msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "Start Game"
-msgstr ""
+msgstr "Hasi partida"
#: builtin/mainmenu/tab_online.lua
msgid "Address / Port"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
-msgstr ""
+msgstr "Sormen modua"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr ""
#: builtin/mainmenu/tab_online.lua
msgid "Join Game"
-msgstr ""
+msgstr "Elkartu partidara"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr ""
@@ -825,17 +919,13 @@ msgstr ""
#: builtin/mainmenu/tab_settings.lua
msgid "All Settings"
-msgstr ""
+msgstr "Ezarpen guztiak"
#: builtin/mainmenu/tab_settings.lua
msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
@@ -843,10 +933,6 @@ msgstr ""
msgid "Bilinear Filter"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr ""
@@ -860,10 +946,6 @@ msgid "Fancy Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr ""
@@ -872,10 +954,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr ""
@@ -897,37 +975,33 @@ msgstr ""
#: builtin/mainmenu/tab_settings.lua
msgid "Opaque Leaves"
-msgstr ""
+msgstr "Hosto opakoak"
#: builtin/mainmenu/tab_settings.lua
msgid "Opaque Water"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
+msgstr "Ur opakoa"
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
msgid "Settings"
-msgstr ""
+msgstr "Ezarpenak"
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
msgid "Shaders"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr ""
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -971,22 +1045,6 @@ msgstr ""
msgid "Waving Plants"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr ""
@@ -1071,11 +1129,11 @@ msgstr ""
#: src/client/game.cpp
msgid "- Creative Mode: "
-msgstr ""
+msgstr "- Sormen modua: "
#: src/client/game.cpp
msgid "- Damage: "
-msgstr ""
+msgstr "- Kaltea: "
#: src/client/game.cpp
msgid "- Mode: "
@@ -1146,24 +1204,24 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
#: src/client/game.cpp
msgid "Creating client..."
-msgstr ""
+msgstr "Bezeroa sortzen..."
#: src/client/game.cpp
msgid "Creating server..."
-msgstr ""
+msgstr "Zerbitzaria sortzen..."
#: src/client/game.cpp
msgid "Debug info and profiler graph hidden"
@@ -1274,34 +1332,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1693,6 +1723,24 @@ msgstr "2. X botoia"
msgid "Zoom"
msgstr ""
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Pasahitzak ez datoz bat!"
@@ -1937,12 +1985,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2049,6 +2091,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2282,10 +2328,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2356,16 +2398,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2517,6 +2549,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2566,14 +2602,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Creative"
-msgstr ""
+msgstr "Sormena"
#: src/settings_translation_file.cpp
msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2581,7 +2619,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2590,7 +2630,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Damage"
-msgstr ""
+msgstr "Kaltea"
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
@@ -2681,12 +2721,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2759,6 +2793,11 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Eskuinera tekla"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2819,8 +2858,9 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
-msgstr ""
+#, fuzzy
+msgid "Enable creative mode for all players"
+msgstr "Gaitu sormen modua mapa sortu berrietan."
#: src/settings_translation_file.cpp
msgid "Enable joysticks"
@@ -2836,7 +2876,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable players getting damage and dying."
-msgstr ""
+msgstr "Ahalbidetu jokalariek kaltea jasotzea eta hiltzea."
#: src/settings_translation_file.cpp
msgid "Enable random user input (only used for testing)."
@@ -2911,14 +2951,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2928,18 +2960,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2956,12 +2976,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -2971,7 +2985,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3280,10 +3294,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3337,8 +3347,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3805,6 +3815,11 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "Joystick mota"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3887,6 +3902,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Ikusmen barrutia txikitzeko tekla.\n"
+"Ikusi http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -3992,6 +4018,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Ikusmen barrutia txikitzeko tekla.\n"
+"Ikusi http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4564,10 +4601,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4581,6 +4614,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4744,7 +4785,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4793,6 +4834,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5022,14 +5070,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5055,12 +5095,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
-msgstr ""
+msgstr "Sareko eduki biltegia"
#: src/settings_translation_file.cpp
msgid "Opaque liquids"
@@ -5084,34 +5120,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5177,6 +5185,15 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Hegaz egin tekla"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5332,10 +5349,6 @@ msgid "Right key"
msgstr "Eskuinera tekla"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5587,6 +5600,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5716,10 +5739,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5810,7 +5829,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "The URL for the content repository"
-msgstr ""
+msgstr "Eduki biltegiaren URL helbidea"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "The deadzone of the joystick"
+msgstr "Joystick mota"
#: src/settings_translation_file.cpp
msgid ""
@@ -5873,8 +5897,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5900,15 +5924,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6047,6 +6076,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6249,6 +6289,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6262,7 +6308,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Whether to allow players to damage and kill each other."
-msgstr ""
+msgstr "Jokalariak elkarren artean hil daitezkeen ala ez."
#: src/settings_translation_file.cpp
msgid ""
@@ -6373,6 +6419,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6384,11 +6448,14 @@ msgstr ""
msgid "cURL timeout"
msgstr "cURL-en denbora muga"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "$1 deskargatu eta instalatzen, itxaron mesedez..."
-
#~ msgid "Back"
#~ msgstr "Atzera"
+#~ msgid "Configure"
+#~ msgstr "Konfiguratu"
+
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "$1 deskargatu eta instalatzen, itxaron mesedez..."
+
#~ msgid "Ok"
#~ msgstr "Ados"
diff --git a/po/my/minetest.po b/po/fi/minetest.po
index 549653ac5..57682ebba 100644
--- a/po/my/minetest.po
+++ b/po/fi/minetest.po
@@ -1,30 +1,35 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the minetest package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
msgid ""
msgstr ""
-"Project-Id-Version: Burmese (Minetest)\n"
+"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-01-11 18:26+0000\n"
-"Last-Translator: rubenwardy <rubenwardy@gmail.com>\n"
-"Language-Team: Burmese <https://hosted.weblate.org/projects/minetest/"
-"minetest/my/>\n"
-"Language: my\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-01 05:52+0000\n"
+"Last-Translator: Tviljan <virallinen@gmail.com>\n"
+"Language-Team: Finnish <https://hosted.weblate.org/projects/minetest/"
+"minetest/fi/>\n"
+"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.10.1\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
-msgstr ""
+msgstr "Synny uudelleen"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "You died"
-msgstr ""
+msgstr "Kuolit"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -32,7 +37,7 @@ msgstr ""
#: builtin/fstk/ui.lua
msgid "An error occurred:"
-msgstr ""
+msgstr "Tapahtui virhe:"
#: builtin/fstk/ui.lua
msgid "Main menu"
@@ -40,16 +45,12 @@ msgstr ""
#: builtin/fstk/ui.lua
msgid "Reconnect"
-msgstr ""
+msgstr "Yhdistä uudelleen"
#: builtin/fstk/ui.lua
msgid "The server has requested a reconnect:"
msgstr ""
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr ""
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr ""
@@ -63,10 +64,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr ""
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr ""
@@ -74,7 +71,8 @@ msgstr ""
msgid "We support protocol versions between version $1 and $2."
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -84,7 +82,8 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr ""
@@ -145,25 +144,64 @@ msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
msgid "Save"
-msgstr ""
+msgstr "Tallenna"
#: builtin/mainmenu/dlg_config_world.lua
msgid "World:"
-msgstr ""
+msgstr "Maailma:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "enabled"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Ladataan..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -185,6 +223,14 @@ msgid "Install"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr ""
@@ -198,8 +244,23 @@ msgid "No results"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
+msgid "No updates"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
@@ -215,7 +276,11 @@ msgid "Update"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -510,6 +575,10 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr ""
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr ""
@@ -624,6 +693,18 @@ msgstr ""
msgid "Unable to install a modpack as a $1"
msgstr ""
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Ladataan..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -677,6 +758,16 @@ msgid "Credits"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr ""
@@ -693,14 +784,10 @@ msgid "Bind Address"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr ""
@@ -717,7 +804,7 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
+msgid "Name"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -729,6 +816,10 @@ msgid "No world created or selected!"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr ""
@@ -737,6 +828,10 @@ msgid "Port"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr ""
@@ -752,23 +847,23 @@ msgstr ""
msgid "Address / Port"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr ""
@@ -776,16 +871,16 @@ msgstr ""
msgid "Join Game"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr ""
@@ -814,10 +909,6 @@ msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
@@ -825,10 +916,6 @@ msgstr ""
msgid "Bilinear Filter"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr ""
@@ -842,10 +929,6 @@ msgid "Fancy Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr ""
@@ -854,10 +937,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr ""
@@ -885,19 +964,11 @@ msgstr ""
msgid "Opaque Water"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr ""
@@ -910,6 +981,10 @@ msgid "Shaders"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr ""
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -953,22 +1028,6 @@ msgstr ""
msgid "Waving Plants"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr ""
@@ -1039,7 +1098,7 @@ msgstr ""
#. When in doubt, test your translation.
#: src/client/fontengine.cpp
msgid "needs_fallback_font"
-msgstr "yes"
+msgstr "no"
#: src/client/game.cpp
msgid ""
@@ -1128,13 +1187,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1256,34 +1315,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1675,6 +1706,24 @@ msgstr ""
msgid "Zoom"
msgstr ""
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr ""
@@ -1880,7 +1929,7 @@ msgstr ""
#. language code (e.g. "de" for German).
#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp
msgid "LANG_CODE"
-msgstr "my"
+msgstr "fi"
#: src/settings_translation_file.cpp
msgid ""
@@ -1919,12 +1968,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2031,6 +2074,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2264,10 +2311,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2338,16 +2381,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2499,6 +2532,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2555,7 +2592,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2563,7 +2602,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2663,12 +2704,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2739,6 +2774,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2799,7 +2838,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2887,14 +2926,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2904,18 +2935,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2932,12 +2951,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -2947,7 +2960,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3249,10 +3262,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3306,8 +3315,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3774,6 +3783,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3854,6 +3867,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -3953,6 +3973,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4509,10 +4536,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4526,6 +4549,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4689,7 +4720,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4738,6 +4769,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -4967,14 +5005,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5000,10 +5030,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5029,34 +5055,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5122,6 +5120,14 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5277,10 +5283,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5532,6 +5534,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5661,10 +5673,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5758,6 +5766,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5816,8 +5828,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5843,15 +5855,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -5987,6 +6004,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6189,6 +6217,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6311,6 +6345,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
diff --git a/po/fr/minetest.po b/po/fr/minetest.po
index 34fcda843..98478e035 100644
--- a/po/fr/minetest.po
+++ b/po/fr/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: French (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-07-06 21:41+0000\n"
-"Last-Translator: Estébastien Robespi <estebastien@mailbox.org>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-01 05:52+0000\n"
+"Last-Translator: cafou <weblate@ptitux.org>\n"
"Language-Team: French <https://hosted.weblate.org/projects/minetest/minetest/"
"fr/>\n"
"Language: fr\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -46,10 +46,6 @@ msgstr "Se reconnecter"
msgid "The server has requested a reconnect:"
msgstr "Le serveur souhaite rétablir une connexion :"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Chargement..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "La version du protocole ne correspond pas. "
@@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Le serveur supporte les versions de protocole entre $1 et $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Essayez de rechargez la liste des serveurs publics et vérifiez votre "
-"connexion Internet."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Nous supportons seulement la version du protocole $1."
@@ -76,7 +66,8 @@ msgstr "Nous supportons seulement la version du protocole $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Nous supportons seulement les versions du protocole entre $1 et $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Nous supportons seulement les versions du protocole entre $1 et $2."
msgid "Cancel"
msgstr "Annuler"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Dépend de :"
@@ -161,14 +153,55 @@ msgid "enabled"
msgstr "activé"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Chargement..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "Les dépendances nécessaires à 1 $ n'ont pas pu être trouvées."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 sera installé, et les dépendances de $2 seront ignorées."
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Tous les paquets"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Touche déjà utilisée"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Retour au menu principal"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Héberger une partie"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr "ContentDB n'est pas disponible quand Minetest est compilé sans cURL"
@@ -190,6 +223,16 @@ msgid "Install"
msgstr "Installer"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Installer"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Dépendances optionnelles :"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mods"
@@ -203,9 +246,26 @@ msgid "No results"
msgstr "Aucun résultat"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Rechercher"
+#, fuzzy
+msgid "No updates"
+msgstr "Mise à jour"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Not found"
+msgstr "Couper le son"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Écraser"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "En file d'attente"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -220,8 +280,12 @@ msgid "Update"
msgstr "Mise à jour"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "Affichage"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Voir plus d'informations dans un navigateur web"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -521,6 +585,10 @@ msgid "Scale"
msgstr "Echelle"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Rechercher"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Choisissez un répertoire"
@@ -577,7 +645,7 @@ msgstr "Valeur absolue"
#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "defaults"
-msgstr "par défaut"
+msgstr "Paramètres par défaut"
#. ~ "eased" is a noise parameter flag.
#. It is used to make the map smoother and
@@ -640,6 +708,21 @@ msgstr "Impossible d'installer un mod comme un $1"
msgid "Unable to install a modpack as a $1"
msgstr "Impossible d'installer un pack de mods comme un $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Chargement..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Les scripts côté client sont désactivés"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Essayez de rechargez la liste des serveurs publics et vérifiez votre "
+"connexion Internet."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Parcourir le contenu en ligne"
@@ -693,6 +776,20 @@ msgid "Credits"
msgstr "Crédits"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Choisissez un répertoire"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Ouvre le répertoire qui contient les mondes fournis par les utilisateurs, "
+"les jeux, les mods,\n"
+"et des paquets de textures dans un gestionnaire de fichiers."
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Anciens contributeurs"
@@ -709,14 +806,10 @@ msgid "Bind Address"
msgstr "Adresse à assigner"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Configurer"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Mode créatif"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Activer les dégâts"
@@ -733,8 +826,8 @@ msgid "Install games from ContentDB"
msgstr "Installer à partir de ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Nom / Mot de passe"
+msgid "Name"
+msgstr "Nom"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -745,6 +838,11 @@ msgid "No world created or selected!"
msgstr "Aucun monde créé ou sélectionné !"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Nouveau mot de passe"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Jouer"
@@ -753,6 +851,11 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Sélectionner un monde :"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Sélectionner un monde :"
@@ -766,25 +869,25 @@ msgstr "Démarrer"
#: builtin/mainmenu/tab_online.lua
msgid "Address / Port"
-msgstr "Adresse / Port :"
+msgstr "Adresse / Port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Rejoindre"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Mode créatif"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Dégâts activés"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
-msgstr "Supprimer favori :"
+msgstr "Supprimer favori"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Favori"
@@ -792,16 +895,16 @@ msgstr "Favori"
msgid "Join Game"
msgstr "Rejoindre une partie"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Nom / Mot de passe"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "JcJ activé"
@@ -830,10 +933,6 @@ msgid "Antialiasing:"
msgstr "Anti-crénelage :"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Êtes-vous sûr de vouloir réinitialiser votre monde ?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Sauvegarder automatiquement la taille d'écran"
@@ -841,10 +940,6 @@ msgstr "Sauvegarder automatiquement la taille d'écran"
msgid "Bilinear Filter"
msgstr "Filtrage bilinéaire"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Placage de relief"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Changer les touches"
@@ -858,10 +953,6 @@ msgid "Fancy Leaves"
msgstr "Arbres détaillés"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Génération de Normal Maps"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "MIP mapping"
@@ -870,10 +961,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "MIP map + anisotropie"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Non"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Aucun filtre"
@@ -901,19 +988,11 @@ msgstr "Arbres minimaux"
msgid "Opaque Water"
msgstr "Eau opaque"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Occlusion parallaxe"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Activer les particules"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Réinitialiser le monde"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Écran :"
@@ -926,6 +1005,11 @@ msgid "Shaders"
msgstr "Shaders"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Îles volantes (expérimental)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Shaders (indisponible)"
@@ -970,22 +1054,6 @@ msgstr "Liquides ondulants"
msgid "Waving Plants"
msgstr "Plantes ondulantes"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Oui"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Configurer les mods"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Principal"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Démarrer une partie solo"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Connexion perdue."
@@ -1140,24 +1208,24 @@ msgid "Continue"
msgstr "Continuer"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
-"Contrôles:\n"
+"Contrôles :\n"
"- %s : avancer\n"
"- %s : reculer\n"
"- %s : à gauche\n"
@@ -1243,7 +1311,7 @@ msgstr "Vitesse en mode rapide activée"
#: src/client/game.cpp
msgid "Fast mode enabled (note: no 'fast' privilege)"
-msgstr "Vitesse en mode rapide activée (note: pas de privilège 'fast')"
+msgstr "Vitesse en mode rapide activée (note : pas de privilège 'fast')"
#: src/client/game.cpp
msgid "Fly mode disabled"
@@ -1255,7 +1323,7 @@ msgstr "Mode vol activé"
#: src/client/game.cpp
msgid "Fly mode enabled (note: no 'fly' privilege)"
-msgstr "Mode vol activé (note: pas de privilège 'fly')"
+msgstr "Mode vol activé (note : pas de privilège 'fly')"
#: src/client/game.cpp
msgid "Fog disabled"
@@ -1298,34 +1366,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "La minimap est actuellement désactivée par un jeu ou un mod"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Mini-carte cachée"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Mini-carte en mode radar, zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Mini-carte en mode radar, zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Mini-carte en mode radar, zoom x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Mini-carte en mode surface, zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Mini-carte en mode surface, zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Mini-carte en mode surface, zoom x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Collisions activées"
@@ -1335,7 +1375,7 @@ msgstr "Collisions désactivées"
#: src/client/game.cpp
msgid "Noclip mode enabled (note: no 'noclip' privilege)"
-msgstr "Collisions activées (note: pas de privilège 'noclip')"
+msgstr "Collisions activées (note : pas de privilège 'noclip')"
#: src/client/game.cpp
msgid "Node definitions..."
@@ -1400,7 +1440,7 @@ msgstr "Son rétabli"
#: src/client/game.cpp
#, c-format
msgid "Viewing range changed to %d"
-msgstr "Distance de vue réglée sur %d%1"
+msgstr "Distance de vue réglée sur %d"
#: src/client/game.cpp
#, c-format
@@ -1717,6 +1757,25 @@ msgstr "Bouton X 2"
msgid "Zoom"
msgstr "Zoomer"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Mini-carte cachée"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Mini-carte en mode radar, zoom x1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Mini-carte en mode surface, zoom x1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Taille minimum des textures"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Les mots de passe ne correspondent pas !"
@@ -1780,7 +1839,7 @@ msgstr "Console"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Dec. range"
-msgstr "Plage de visualisation"
+msgstr "Reduire champ vision"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Dec. volume"
@@ -1888,7 +1947,7 @@ msgstr "Activer/désactiver vol vertical"
#: src/gui/guiKeyChangeMenu.cpp
msgid "press key"
-msgstr "appuyez sur une touche"
+msgstr "Appuyez sur une touche"
#: src/gui/guiPasswordChange.cpp
msgid "Change"
@@ -1961,17 +2020,18 @@ msgid ""
"situations.\n"
"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
msgstr ""
-"(X ; Y ; Z) de décalage fractal à partir du centre du monde en \n"
-"unités « échelle ». Peut être utilisé pour déplacer un point\n"
-"désiré en (0 ; 0) pour créer un point d'apparition convenable,\n"
-"ou pour « zoomer » sur un point désiré en augmentant\n"
-"« l'échelle ».\n"
-"La valeur par défaut est réglée pour créer une zone\n"
-"d'apparition convenable pour les ensembles de Mandelbrot\n"
-"avec les paramètres par défaut, elle peut nécessité une \n"
-"modification dans d'autres situations.\n"
-"Interval environ de -2 à 2. Multiplier par « échelle » convertir\n"
-"le décalage en nœuds."
+"(X,Y,Z) de décalage du fractal à partir du centre du monde en unités "
+"« échelle ».\n"
+"Peut être utilisé pour déplacer un point désiré à (0, 0) pour créer une\n"
+"zone d'apparition convenable, ou pour autoriser à « zoomer » sur un\n"
+"point désiré en augmentant l'« échelle ».\n"
+"La valeur par défaut est adaptée pour créer une zone d'apparition convenable "
+"pour les ensembles\n"
+"de Mandelbrot crées avec des paramètres par défaut. Elle peut nécessiter une "
+"modification dans\n"
+"d'autres situations.\n"
+"La gamme est d'environ -2 à 2. Multiplier par « échelle » pour le décalage "
+"en nœuds."
#: src/settings_translation_file.cpp
msgid ""
@@ -1993,14 +2053,6 @@ msgstr ""
"un île, rendez les 3 nombres égaux pour la forme de base."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = occlusion parallaxe avec des informations de pente (plus rapide).\n"
-"1 = cartographie en relief (plus lent, plus précis)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "Bruit 2D controllant la forme et taille des montagnes crantées."
@@ -2026,7 +2078,7 @@ msgstr "Bruit 2D contrôlant la taille et la fréquence des plateaux montagneux.
#: src/settings_translation_file.cpp
msgid "2D noise that locates the river valleys and channels."
-msgstr "Bruit 2D qui localise les vallées fluviales et les canaux"
+msgstr "Bruit 2D qui localise les vallées et les chenaux des rivières."
#: src/settings_translation_file.cpp
msgid "3D clouds"
@@ -2060,8 +2112,8 @@ msgid ""
"a value range of approximately -2.0 to 2.0."
msgstr ""
"Bruit 3D pour la structures des îles volantes.\n"
-"Si la valeur par défaut est changée, le bruit « d'échelle » (0,7 par défaut)"
-"\n"
+"Si la valeur par défaut est changée, le bruit « d'échelle » (0,7 par "
+"défaut)\n"
"doit peut-être être ajustée, parce que l'effilage des îles volantes\n"
"fonctionne le mieux quand ce bruit est environ entre -2 et 2."
@@ -2130,6 +2182,10 @@ msgid "ABM interval"
msgstr "Intervalle des ABM"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr "Limite stricte de la file de blocs émergents"
@@ -2375,15 +2431,15 @@ msgstr "Chemin de la police en gras et en italique"
#: src/settings_translation_file.cpp
msgid "Bold and italic monospace font path"
-msgstr "Chemin de la police Monospace"
+msgstr "Chemin de la police Monospace en gras et en italique"
#: src/settings_translation_file.cpp
msgid "Bold font path"
-msgstr "Chemin de police audacieux"
+msgstr "Chemin du fichier de police en gras"
#: src/settings_translation_file.cpp
msgid "Bold monospace font path"
-msgstr "Chemin de police monospace audacieux"
+msgstr "Chemin de la police Monospace en gras"
#: src/settings_translation_file.cpp
msgid "Build inside player"
@@ -2394,21 +2450,19 @@ msgid "Builtin"
msgstr "Intégré"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Bump mapping"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
"Increasing can reduce artifacting on weaker GPUs.\n"
"0.1 = Default, 0.25 = Good value for weaker tablets."
msgstr ""
-"Caméra « près de la coupure de distance » dans les nœuds, entre 0 et 0,25.\n"
-"Fonctionne uniquement sur plateformes GLES.\n"
+"Distance en nœuds du plan de coupure rapproché de la caméra, entre 0 et "
+"0,25.\n"
+"Ne fonctionne uniquement que sur les plateformes GLES.\n"
"La plupart des utilisateurs n’auront pas besoin de changer cela.\n"
-"L’augmentation peut réduire les anomalies sur des petites cartes graphique.\n"
-"0,1 par défaut, 0,25 bonne valeur pour des composants faibles."
+"L’augmentation peut réduire les anomalies sur des cartes graphique plus "
+"faibles.\n"
+"0,1 par défaut, 0,25 est une bonne valeur pour des composants faibles."
#: src/settings_translation_file.cpp
msgid "Camera smoothing"
@@ -2476,23 +2530,6 @@ msgstr ""
"lumière maximum."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Change l’interface du menu principal :\n"
-"- Complet : Mondes solo, choix du jeu, sélecteur du pack de textures, "
-"etc.\n"
-"- Simple : un monde solo, pas de sélecteurs de jeu ou de pack de textures. "
-"Peut être\n"
-"nécessaire pour les plus petits écrans.\n"
-"- Auto : Simple sur Android, complet pour le reste."
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr "Taille de police du chat"
@@ -2659,6 +2696,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "Drapeaux ContentDB en liste noire"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "Maximum de téléchargement en parallèle pour ContentDB"
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "Adresse de la ContentDB"
@@ -2710,8 +2751,8 @@ msgid ""
msgstr ""
"Contrôle la largeur des tunnels, une valeur plus faible crée des tunnels "
"plus large.\n"
-"Valeur >= 10,0 désactive complètement la génération de tunnel et évite le "
-"calcul intensif de bruit."
+"Valeur >= 10,0 désactive complètement la génération de tunnel et évite\n"
+"le calcul intensif de bruit."
#: src/settings_translation_file.cpp
msgid "Crash message"
@@ -2726,7 +2767,10 @@ msgid "Crosshair alpha"
msgstr "Opacité du réticule"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "Opacité du réticule (entre 0 et 255)."
#: src/settings_translation_file.cpp
@@ -2734,8 +2778,10 @@ msgid "Crosshair color"
msgstr "Couleur du réticule"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Couleur du réticule (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2841,14 +2887,6 @@ msgstr ""
"Définit l'emplacement et le terrain des collines facultatives et des lacs."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Niveau de lissage des normal maps.\n"
-"Une valeur plus grande lisse davantage les normal maps."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Définit le niveau du sol de base."
@@ -2928,6 +2966,11 @@ msgid "Desynchronize block animation"
msgstr "Désynchroniser les textures animées par mapblock"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Droite"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Particules au minage"
@@ -2992,7 +3035,8 @@ msgid "Enable console window"
msgstr "Activer la console"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Activer le mode créatif pour les cartes nouvellement créées."
#: src/settings_translation_file.cpp
@@ -3061,7 +3105,7 @@ msgstr ""
"Activer l'usage d'un serveur de média distant (si pourvu par le serveur).\n"
"Les serveurs de média distants offrent un moyen significativement plus "
"rapide de télécharger\n"
-"des données média (ex.: textures) lors de la connexion au serveur."
+"des données média (ex. : textures) lors de la connexion au serveur."
#: src/settings_translation_file.cpp
msgid ""
@@ -3107,19 +3151,6 @@ msgid "Enables animation of inventory items."
msgstr "Active la rotation des items d'inventaire."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Active le bumpmapping pour les textures.\n"
-"Les normalmaps peuvent être fournies par un pack de textures pour un "
-"meilleur effet de relief,\n"
-"ou bien celui-ci est auto-généré.\n"
-"Nécessite les shaders pour être activé."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Active la mise en cache des meshnodes."
@@ -3129,22 +3160,6 @@ msgstr "Active la mini-carte."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Active la génération à la volée des normalmaps.\n"
-"Nécessite le bumpmapping pour être activé."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Active l'occlusion parallaxe.\n"
-"Nécessite les shaders pour être activé."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3166,14 +3181,6 @@ msgstr "Systèmes d'entité"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Option expérimentale, peut causer un espace vide visible entre les blocs\n"
-"quand paramétré avec un nombre supérieur à 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3189,8 +3196,9 @@ msgstr ""
"définie en bas, plus pour une couche solide de massif volant."
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS maximum sur le menu pause"
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "FPS maximum quand le jeu est en pause."
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3521,10 +3529,6 @@ msgid "GUI scaling filter txr2img"
msgstr "Filtrage txr2img du GUI"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Normal mapping"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Rappels globaux"
@@ -3585,18 +3589,19 @@ msgid "HUD toggle key"
msgstr "HUD"
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Traitement des appels d'API Lua obsolètes :\n"
-"- legacy : imite l'ancien comportement (par défaut en mode release).\n"
-"- log : imite et enregistre les appels obsolètes (par défaut en mode debug)."
-"\n"
-"- error : interruption à l'usage d'un appel obsolète (recommandé pour les "
-"développeurs de mods)."
+"- legacy : imite l'ancien comportement (par défaut en mode release).\n"
+"- log : imite et enregistre la trace des appels obsolètes (par défaut en "
+"mode debug).\n"
+"- error : (=erreur) interruption à l'usage d'un appel obsolète "
+"(recommandé pour les développeurs de mods)."
#: src/settings_translation_file.cpp
msgid ""
@@ -3606,7 +3611,7 @@ msgid ""
"call).\n"
"* Instrument the sampler being used to update the statistics."
msgstr ""
-"Auto-instrumentaliser le profileur:\n"
+"Auto-instrumentaliser le profileur :\n"
"* Instrumentalise une fonction vide.\n"
"La surcharge sera évaluée. (l'auto-instrumentalisation ajoute 1 appel de "
"fonction à chaque fois).\n"
@@ -3651,11 +3656,11 @@ msgstr "Bruit de collines1"
#: src/settings_translation_file.cpp
msgid "Hilliness2 noise"
-msgstr "Bruit de colline2"
+msgstr "Bruit de collines2"
#: src/settings_translation_file.cpp
msgid "Hilliness3 noise"
-msgstr "Bruit de colline3"
+msgstr "Bruit de collines3"
#: src/settings_translation_file.cpp
msgid "Hilliness4 noise"
@@ -3888,7 +3893,7 @@ msgid ""
"are\n"
"enabled."
msgstr ""
-"Si désactivé, la touche \"special\" est utilisée si le vole et le mode "
+"Si désactivé, la touche \"special\" est utilisée si le vole et le mode "
"rapide sont tous les deux activés."
#: src/settings_translation_file.cpp
@@ -4130,6 +4135,11 @@ msgid "Joystick button repetition interval"
msgstr "Intervalle de répétition du bouton du Joystick"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "Type de manette"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Sensibilité tronconique du joystick"
@@ -4147,9 +4157,9 @@ msgid ""
msgstr ""
"Réglage Julia uniquement.\n"
"La composante W de la constante hypercomplexe.\n"
-"Transforme la forme de la fractale.\n"
+"Modifie la forme de la fractale.\n"
"N'a aucun effet sur les fractales 3D.\n"
-"Portée environ -2 à 2."
+"Gamme d'environ -2 à 2."
#: src/settings_translation_file.cpp
msgid ""
@@ -4232,6 +4242,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Touche pour sauter.\n"
+"Voir http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4374,6 +4395,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Touche pour sauter.\n"
+"Voir http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4981,8 +5013,8 @@ msgid ""
"Length of liquid waves.\n"
"Requires waving liquids to be enabled."
msgstr ""
-"Longueur des vagues.\n"
-"Nécessite que l'ondulation des liquides soit active."
+"Longueur des vagues de liquides.\n"
+"Nécessite que les liquides ondulatoires soit activé."
#: src/settings_translation_file.cpp
msgid "Length of time between Active Block Modifier (ABM) execution cycles"
@@ -5062,7 +5094,7 @@ msgstr ""
"Nombre limite de requête HTTP en parallèle. Affecte :\n"
"- L'obtention de média si le serveur utilise l'option remote_media.\n"
"- Le téléchargement de la liste des serveurs et l'annonce du serveur.\n"
-"- Les téléchargements effectués par le menu (ex.: gestionnaire de mods).\n"
+"- Les téléchargements effectués par le menu (ex. : gestionnaire de mods).\n"
"Prend seulement effet si Minetest est compilé avec cURL."
#: src/settings_translation_file.cpp
@@ -5124,10 +5156,6 @@ msgid "Main menu script"
msgstr "Script du menu principal"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Style du menu principal"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5145,6 +5173,14 @@ msgid "Makes all liquids opaque"
msgstr "Rendre toutes les liquides opaques"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Répertoire de la carte du monde"
@@ -5158,7 +5194,8 @@ msgid ""
"Occasional lakes and hills can be added to the flat world."
msgstr ""
"Attributs de terrain spécifiques au générateur de monde plat.\n"
-"Des lacs et des collines occasionnels peuvent être ajoutés au monde plat."
+"Des lacs et des collines peuvent être occasionnellement ajoutés au monde "
+"plat."
#: src/settings_translation_file.cpp
msgid ""
@@ -5233,7 +5270,7 @@ msgstr "Délai de génération des maillages de MapBlocks"
#: src/settings_translation_file.cpp
msgid "Mapblock mesh generator's MapBlock cache size in MB"
-msgstr "Taille du cache du générateur de maillage pour les MapBloc en Mio"
+msgstr "Taille du cache du générateur de maillage pour les MapBloc en Mo"
#: src/settings_translation_file.cpp
msgid "Mapblock unload timeout"
@@ -5328,7 +5365,8 @@ msgid "Maximum FPS"
msgstr "FPS maximum"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "FPS maximum quand le jeu est en pause."
#: src/settings_translation_file.cpp
@@ -5389,6 +5427,13 @@ msgstr ""
"Laisser ce champ vide pour un montant approprié défini automatiquement."
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr "Nombre maximum de mapblocks chargés de force."
@@ -5455,7 +5500,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
-"Délais maximaux de téléchargement d'un fichier (ex.: un mod), établi en "
+"Délais maximaux de téléchargement d'un fichier (ex. : un mod), établi en "
"millisecondes."
#: src/settings_translation_file.cpp
@@ -5645,14 +5690,6 @@ msgid "Noises"
msgstr "Bruits"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Échantillonnage de normalmaps"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Force des normalmaps"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "Nombre de tâches en cours"
@@ -5694,10 +5731,6 @@ msgstr ""
"(4096 = 100 Mo, comme règle fondamentale)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "Nombre d'itérations sur l'occlusion parallaxe."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Dépôt de contenu en ligne"
@@ -5727,34 +5760,6 @@ msgstr ""
"en pause si un formspec est ouvert."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "Bias général de l'occlusion parallaxe, habituellement échelle/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Echelle générale de l'effet de l'occlusion parallaxe."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Occlusion parallaxe"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Bias de l'occlusion parallaxe"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Nombre d'itérations sur l'occlusion parallaxe"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Mode occlusion parallaxe"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "Echelle de l'occlusion parallaxe"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5843,6 +5848,16 @@ msgid "Pitch move mode"
msgstr "Mode de mouvement libre"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Voler"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "Intervalle de répétition du clic droit"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -6031,10 +6046,6 @@ msgid "Right key"
msgstr "Droite"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Intervalle de répétition du clic droit"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "Profondeur des rivières"
@@ -6139,7 +6150,7 @@ msgid ""
"Use 0 for default quality."
msgstr ""
"Qualité de capture d'écran. Utilisé uniquement pour le format JPEG.\n"
-"1 signifie mauvaise qualité; 100 signifie la meilleure qualité.\n"
+"1 signifie mauvaise qualité ; 100 signifie la meilleure qualité.\n"
"Utilisez 0 pour la qualité par défaut."
#: src/settings_translation_file.cpp
@@ -6338,6 +6349,20 @@ msgid "Show entity selection boxes"
msgstr "Afficher les boîtes de sélection de l'entité"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Détermine la langue. Laisser vide pour utiliser celui de votre système.\n"
+"Un redémarrage du jeu est nécessaire pour prendre effet."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "La police est en gras par défaut"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Message d'arrêt du serveur"
@@ -6352,12 +6377,12 @@ msgid ""
msgstr ""
"Taille des mapchunks générés par mapgen, indiquée dans les mapblocks (16 "
"nœuds).\n"
-"ATTENTION !: Il n’ya aucun avantage, et il y a plusieurs dangers, dans\n"
+"ATTENTION ! : Il n’y a aucun avantage, et plusieurs dangers, à\n"
"augmenter cette valeur au-dessus de 5.\n"
"Réduire cette valeur augmente la densité de cavernes et de donjons.\n"
-"La modification de cette valeur est réservée à un usage spécial, elle reste "
-"inchangée.\n"
-"conseillé."
+"La modification de cette valeur est réservée à un usage spécial. Il est "
+"conseillé\n"
+"de la laisser inchangée."
#: src/settings_translation_file.cpp
msgid ""
@@ -6498,10 +6523,6 @@ msgid "Strength of 3D mode parallax."
msgstr "Intensité de parallaxe en mode 3D."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Force des normalmaps autogénérés."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6532,6 +6553,19 @@ msgid ""
"server-intensive extreme water flow and to avoid vast flooding of the\n"
"world surface below."
msgstr ""
+"Niveau de la surface de l'eau (facultative) placée sur une couche solide de "
+"terre suspendue.\n"
+"L'eau est désactivée par défaut et ne sera placée que si cette valeur est\n"
+"fixée à plus de 'mgv7_floatland_ymax' - 'mgv7_floatland_taper'\n"
+"(début de l’effilage du haut)\n"
+"***ATTENTION, DANGER POTENTIEL AU MONDES ET AUX PERFORMANCES DES "
+"SERVEURS*** :\n"
+"Lorsque le placement de l'eau est activé, les île volantes doivent être\n"
+"configurées avec une couche solide en mettant 'mgv7_floatland_density' à "
+"2.0\n"
+"(ou autre valeur dépendante de 'mgv7_np_floatland'), pour éviter\n"
+"les chutes d'eaux énormes qui surchargent les serveurs et pourraient\n"
+"inonder les terres en dessous."
#: src/settings_translation_file.cpp
msgid "Synchronous SQLite"
@@ -6611,6 +6645,11 @@ msgid "The URL for the content repository"
msgstr "L'URL du dépôt de contenu en ligne"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "The deadzone of the joystick"
+msgstr "L'identifiant de la manette à utiliser"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6668,7 +6707,6 @@ msgstr ""
"Entrer /privs dans le jeu pour voir une liste complète des privilèges."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"The radius of the volume of blocks around every player that is subject to "
"the\n"
@@ -6679,21 +6717,21 @@ msgid ""
"This should be configured together with active_object_send_range_blocks."
msgstr ""
"Le rayon du volume de blocs autour de chaque joueur soumis à la\n"
-"truc de bloc actif, indiqué dans mapblocks (16 noeuds).\n"
-"Dans les blocs actifs, les objets sont chargés et les guichets automatiques "
-"sont exécutés.\n"
-"C'est également la plage minimale dans laquelle les objets actifs (mobs) "
+"matière de bloc actif, indiqué dans mapblocks (16 nœuds).\n"
+"Les objets sont chargés et les ABMs sont exécutés dans les blocs actifs.\n"
+"C'est également la distance minimale pour laquelle les objets actifs (mobs) "
"sont conservés.\n"
-"Ceci devrait être configuré avec active_object_range."
+"Ceci devrait être configuré avec 'active_object_send_range_blocks'."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"The rendering back-end for Irrlicht.\n"
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
"Le moteur de rendu utilisé par Irrlicht.\n"
"Un redémarrage est nécessaire après avoir changé cette option.\n"
@@ -6738,6 +6776,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6745,10 +6789,10 @@ msgstr ""
"le bouton droit de la souris."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
"L'intervalle en secondes entre des clics droits répétés lors de l'appui sur "
"le bouton droit de la souris."
@@ -6836,7 +6880,6 @@ msgid "Trilinear filtering"
msgstr "Filtrage trilinéaire"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"True = 256\n"
"False = 128\n"
@@ -6860,7 +6903,6 @@ msgid "Undersampling"
msgstr "Sous-échantillonage"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Undersampling is similar to using a lower screen resolution, but it applies\n"
"to the game world only, keeping the GUI intact.\n"
@@ -6868,11 +6910,12 @@ msgid ""
"image.\n"
"Higher values result in a less detailed image."
msgstr ""
-"Le sous-échantillonage ressemble à l'utilisation d'une définition d'écran\n"
-"plus faible, mais il ne s'applique qu'au rendu 3D, gardant l'interface "
-"intacte.\n"
+"Le sous-échantillonage ressemble à l'utilisation d'une résolution d'écran "
+"inférieure,\n"
+"mais il ne s'applique qu'au rendu 3D, gardant l'interface usager intacte.\n"
"Cela peut donner lieu à un bonus de performance conséquent, au détriment de "
-"la qualité d'image."
+"la qualité d'image.\n"
+"Les valeurs plus élevées réduisent la qualité du détail des images."
#: src/settings_translation_file.cpp
msgid "Unlimited player transfer distance"
@@ -6887,9 +6930,8 @@ msgid "Upper Y limit of dungeons."
msgstr "Limite haute Y des donjons."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Upper Y limit of floatlands."
-msgstr "Limite haute Y des donjons."
+msgstr "Limite en Y des îles volantes."
#: src/settings_translation_file.cpp
msgid "Use 3D cloud look instead of flat."
@@ -6922,6 +6964,17 @@ msgstr ""
"La réduction d'échelle gamma correcte n'est pas prise en charge."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "Utilisation du filtrage trilinéaire."
@@ -7031,13 +7084,12 @@ msgid "Volume"
msgstr "Volume du son"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Volume of all sounds.\n"
"Requires the sound system to be enabled."
msgstr ""
-"Active l'occlusion parallaxe.\n"
-"Nécessite les shaders pour être activé."
+"Volume de tous les sons.\n"
+"Exige que le son du système soit activé."
#: src/settings_translation_file.cpp
msgid ""
@@ -7083,24 +7135,20 @@ msgid "Waving leaves"
msgstr "Feuilles d'arbres mouvantes"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids"
msgstr "Liquides ondulants"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave height"
msgstr "Hauteur des vagues"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave speed"
msgstr "Vitesse de mouvement des liquides"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wavelength"
-msgstr "Durée du mouvement des liquides"
+msgstr "Espacement des vagues de liquides"
#: src/settings_translation_file.cpp
msgid "Waving plants"
@@ -7114,7 +7162,7 @@ msgid ""
msgstr ""
"Quand gui_scaling_filter est activé, tous les images du GUI sont\n"
"filtrées dans Minetest, mais quelques images sont générées directement\n"
-"par le matériel (ex.: textures des blocs dans l'inventaire)."
+"par le matériel (ex. : textures des blocs dans l'inventaire)."
#: src/settings_translation_file.cpp
msgid ""
@@ -7130,7 +7178,6 @@ msgstr ""
"qui ne supportent pas le chargement des textures depuis le matériel."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
"can be blurred, so automatically upscale them with nearest-neighbor\n"
@@ -7144,28 +7191,35 @@ msgid ""
msgstr ""
"En utilisant le filtrage bilinéaire/trilinéaire/anisotrope, les textures de "
"basse résolution\n"
-"peuvent être floutées, agrandissez-les donc automatiquement avec "
-"l'interpolation du plus proche voisin\n"
-"pour garder des pixels nets. Ceci détermine la taille de la texture "
-"minimale\n"
-"pour les textures agrandies ; les valeurs plus hautes rendent les textures "
-"plus détaillées, mais nécessitent\n"
+"peuvent être brouillées. Elles seront donc automatiquement agrandies avec "
+"l'interpolation\n"
+"du plus proche voisin pour garder des pixels moins floues. Ceci détermine la "
+"taille de la texture minimale\n"
+"pour les textures agrandies ; les valeurs plus hautes rendent plus "
+"détaillées, mais nécessitent\n"
"plus de mémoire. Les puissances de 2 sont recommandées. Définir une valeur "
"supérieure à 1 peut ne pas\n"
"avoir d'effet visible sauf si le filtrage bilinéaire / trilinéaire / "
"anisotrope est activé.\n"
-"ceci est également utilisée comme taille de texture de nœud par défaut pour\n"
+"Ceci est également utilisée comme taille de texture de nœud par défaut pour\n"
"l'agrandissement des textures basé sur le monde."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Whether FreeType fonts are used, requires FreeType support to be compiled "
"in.\n"
"If disabled, bitmap and XML vectors fonts are used instead."
msgstr ""
"Détermine l'utilisation des polices Freetype. Nécessite une compilation avec "
-"le support Freetype."
+"le support Freetype.\n"
+"Si désactivée, des polices bitmap et en vecteurs XML seront utilisé en "
+"remplacement."
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
@@ -7196,7 +7250,6 @@ msgid "Whether to fog out the end of the visible area."
msgstr "Détermine la visibilité de la brume au bout de l'aire visible."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Whether to mute sounds. You can unmute sounds at any time, unless the\n"
"sound system is disabled (enable_sound=false).\n"
@@ -7204,10 +7257,10 @@ msgid ""
"pause menu."
msgstr ""
"S'il faut mettre les sons en sourdine. Vous pouvez désactiver les sons à "
-"tout moment, sauf si le\n"
+"tout moment, sauf si\n"
"le système de sonorisation est désactivé (enable_sound=false).\n"
"Dans le jeu, vous pouvez passer en mode silencieux avec la touche de mise en "
-"sourdine ou en utilisant la\n"
+"sourdine ou en utilisant le\n"
"menu pause."
#: src/settings_translation_file.cpp
@@ -7299,6 +7352,11 @@ msgid ""
"For a solid floatland layer, this controls the height of hills/mountains.\n"
"Must be less than or equal to half the distance between the Y limits."
msgstr ""
+"Hauteur-Y à laquelle les îles volantes commence à rétrécir.\n"
+"L'effilage comment à cette distance de la limite en Y.\n"
+"Pour une courche solide de terre suspendue, ceci contrôle la hauteur des "
+"montagnes.\n"
+"Doit être égale ou moindre à la moitié de la distance entre les limites Y."
#: src/settings_translation_file.cpp
msgid "Y-level of average terrain surface."
@@ -7321,6 +7379,24 @@ msgid "Y-level of seabed."
msgstr "Hauteur (Y) du fond marin."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "Délais d'interruption de cURL lors d'un téléchargement de fichier"
@@ -7332,137 +7408,298 @@ msgstr "Limite parallèle de cURL"
msgid "cURL timeout"
msgstr "Délais d'interruption de cURL"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Mode cinématique"
-
-#~ msgid "Select Package File:"
-#~ msgstr "Sélectionner le fichier du mod :"
-
-#~ msgid "Y of upper limit of lava in large caves."
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
#~ msgstr ""
-#~ "Coordonnée Y de la limite supérieure des grandes grottes pseudo-"
-#~ "aléatoires."
+#~ "0 = occlusion parallaxe avec des informations de pente (plus rapide).\n"
+#~ "1 = cartographie en relief (plus lent, plus précis)."
-#~ msgid "Waving Water"
-#~ msgstr "Eau ondulante"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "Ajuster la correction gamma. Les valeurs plus basses sont plus claires.\n"
+#~ "Ce paramètre s'applique au client seulement et est ignoré par le serveur."
-#~ msgid "Whether dungeons occasionally project from the terrain."
-#~ msgstr "Si les donjons font parfois saillie du terrain."
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgstr ""
+#~ "Modifie la façon dont les terres flottantes montagneuses s’effilent au-"
+#~ "dessus et au-dessous du point médian."
-#~ msgid "Projecting dungeons"
-#~ msgstr "Projection des donjons"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Êtes-vous sûr de vouloir réinitialiser votre monde ?"
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Hauteur (Y) auquel les ombres portées s’étendent."
+#~ msgid "Back"
+#~ msgstr "Retour"
-#~ msgid "Y-level of floatland midpoint and lake surface."
-#~ msgstr "Hauteur (Y) du point de flottaison et de la surface des lacs."
+#~ msgid "Bump Mapping"
+#~ msgstr "Placage de relief"
-#~ msgid "Waving water"
-#~ msgstr "Vagues"
+#~ msgid "Bumpmapping"
+#~ msgstr "Bump mapping"
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
-#~ msgstr ""
-#~ "Variation de la hauteur des collines et de la profondeur des lacs sur les "
-#~ "terrains plats flottants."
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "Milieu de la courbe de lumière mi-boost."
#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
#~ msgstr ""
-#~ "Hauteur maximum typique, au-dessus et au-dessous du point médian, du "
-#~ "terrain de montagne flottantes."
+#~ "Change l’interface du menu principal :\n"
+#~ "- Complet : Mondes solo, choix du jeu, sélecteur du pack de textures, "
+#~ "etc.\n"
+#~ "- Simple : un monde solo, pas de sélecteurs de jeu ou de pack de "
+#~ "textures. Peut être\n"
+#~ "nécessaire pour les plus petits écrans."
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Cette police sera utilisée pour certaines langues."
+#~ msgid "Config mods"
+#~ msgstr "Configurer les mods"
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "Force de la courbe de lumière mi-boost."
+#~ msgid "Configure"
+#~ msgstr "Configurer"
-#~ msgid "Shadow limit"
-#~ msgstr "Limite des ombres"
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "Contrôle la densité des terrains montagneux sur les terres flottantes.\n"
+#~ "C'est un décalage ajouté à la valeur du bruit 'mgv7_np_mountain'."
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "Chemin vers police TrueType ou Bitmap."
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Contrôle la largeur des tunnels, une valeur plus petite crée des tunnels "
+#~ "plus larges."
-#~ msgid "Lightness sharpness"
-#~ msgstr "Démarcation de la luminosité"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Couleur du réticule (R,G,B)."
-#~ msgid "Lava depth"
-#~ msgstr "Profondeur de lave"
+#~ msgid "Darkness sharpness"
+#~ msgstr "Démarcation de l'obscurité"
-#~ msgid "IPv6 support."
-#~ msgstr "Support IPv6."
+#~ msgid ""
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
+#~ msgstr ""
+#~ "Défini les zones de terrain plat flottant.\n"
+#~ "Des terrains plats flottants apparaissent lorsque le bruit > 0."
-#~ msgid "Gamma"
-#~ msgstr "Gamma"
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Niveau de lissage des normal maps.\n"
+#~ "Une valeur plus grande lisse davantage les normal maps."
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Niveau d'opacité de l'ombre de la police (entre 0 et 255)."
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Téléchargement et installation de $1, veuillez patienter..."
-#~ msgid "Floatland mountain height"
-#~ msgstr "Hauteur des montagnes flottantes"
+#~ msgid "Enable VBO"
+#~ msgstr "Activer Vertex Buffer Object: objet tampon de vertex"
-#~ msgid "Floatland base height noise"
-#~ msgstr "Le bruit de hauteur de base des terres flottantes"
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "Active le bumpmapping pour les textures.\n"
+#~ "Les normalmaps peuvent être fournies par un pack de textures pour un "
+#~ "meilleur effet de relief,\n"
+#~ "ou bien celui-ci est auto-généré.\n"
+#~ "Nécessite les shaders pour être activé."
#~ msgid "Enables filmic tone mapping"
#~ msgstr "Autorise le mappage tonal cinématographique"
-#~ msgid "Enable VBO"
-#~ msgstr "Activer Vertex Buffer Object: objet tampon de vertex"
-
#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Défini les zones de terrain plat flottant.\n"
-#~ "Des terrains plats flottants apparaissent lorsque le bruit > 0."
+#~ "Active la génération à la volée des normalmaps.\n"
+#~ "Nécessite le bumpmapping pour être activé."
-#~ msgid "Darkness sharpness"
-#~ msgstr "Démarcation de l'obscurité"
-
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Contrôle la largeur des tunnels, une valeur plus petite crée des tunnels "
-#~ "plus larges."
+#~ "Active l'occlusion parallaxe.\n"
+#~ "Nécessite les shaders pour être activé."
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
#~ msgstr ""
-#~ "Contrôle la densité des terrains montagneux sur les terres flottantes.\n"
-#~ "C'est un décalage ajouté à la valeur du bruit 'mgv7_np_mountain'."
+#~ "Option expérimentale, peut causer un espace vide visible entre les blocs\n"
+#~ "quand paramétré avec un nombre supérieur à 0."
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "Milieu de la courbe de lumière mi-boost."
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS maximum sur le menu pause"
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
-#~ msgstr ""
-#~ "Modifie la façon dont les terres flottantes montagneuses s’effilent au-"
-#~ "dessus et au-dessous du point médian."
+#~ msgid "Floatland base height noise"
+#~ msgstr "Le bruit de hauteur de base des terres flottantes"
-#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
-#~ msgstr ""
-#~ "Ajuster la correction gamma. Les valeurs plus basses sont plus claires.\n"
-#~ "Ce paramètre s'applique au client seulement et est ignoré par le serveur."
+#~ msgid "Floatland mountain height"
+#~ msgstr "Hauteur des montagnes flottantes"
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Chemin où les captures d'écran sont sauvegardées."
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Niveau d'opacité de l'ombre de la police (entre 0 et 255)."
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "Force de l'occlusion parallaxe"
+#~ msgid "Gamma"
+#~ msgstr "Gamma"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Génération de Normal Maps"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Normal mapping"
+
+#~ msgid "IPv6 support."
+#~ msgstr "Support IPv6."
+
+#~ msgid "Lava depth"
+#~ msgstr "Profondeur de lave"
+
+#~ msgid "Lightness sharpness"
+#~ msgstr "Démarcation de la luminosité"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "Limite des files émergentes sur le disque"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Téléchargement et installation de $1, veuillez patienter..."
+#~ msgid "Main"
+#~ msgstr "Principal"
-#~ msgid "Back"
-#~ msgstr "Retour"
+#~ msgid "Main menu style"
+#~ msgstr "Style du menu principal"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Mini-carte en mode radar, zoom x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Mini-carte en mode radar, zoom x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Mini-carte en mode surface, zoom x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Mini-carte en mode surface, zoom x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Nom / Mot de passe"
+
+#~ msgid "No"
+#~ msgstr "Non"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Échantillonnage de normalmaps"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Force des normalmaps"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "Nombre d'itérations sur l'occlusion parallaxe."
#~ msgid "Ok"
#~ msgstr "Ok"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "Bias général de l'occlusion parallaxe, habituellement échelle/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Echelle générale de l'effet de l'occlusion parallaxe."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Occlusion parallaxe"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Occlusion parallaxe"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Bias de l'occlusion parallaxe"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Nombre d'itérations sur l'occlusion parallaxe"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Mode occlusion parallaxe"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Echelle de l'occlusion parallaxe"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "Force de l'occlusion parallaxe"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "Chemin vers police TrueType ou Bitmap."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Chemin où les captures d'écran sont sauvegardées."
+
+#~ msgid "Projecting dungeons"
+#~ msgstr "Projection des donjons"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Réinitialiser le monde"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Sélectionner le fichier du mod :"
+
+#~ msgid "Shadow limit"
+#~ msgstr "Limite des ombres"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Démarrer une partie solo"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Force des normalmaps autogénérés."
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "Force de la courbe de lumière mi-boost."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Cette police sera utilisée pour certaines langues."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Mode cinématique"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr ""
+#~ "Hauteur maximum typique, au-dessus et au-dessous du point médian, du "
+#~ "terrain de montagne flottantes."
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr ""
+#~ "Variation de la hauteur des collines et de la profondeur des lacs sur les "
+#~ "terrains plats flottants."
+
+#~ msgid "View"
+#~ msgstr "Voir"
+
+#~ msgid "Waving Water"
+#~ msgstr "Eau ondulante"
+
+#~ msgid "Waving water"
+#~ msgstr "Vagues"
+
+#~ msgid "Whether dungeons occasionally project from the terrain."
+#~ msgstr "Si les donjons font parfois saillie du terrain."
+
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr ""
+#~ "Coordonnée Y de la limite supérieure des grandes grottes pseudo-"
+#~ "aléatoires."
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr "Hauteur (Y) du point de flottaison et de la surface des lacs."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Hauteur (Y) auquel les ombres portées s’étendent."
+
+#~ msgid "Yes"
+#~ msgstr "Oui"
diff --git a/po/gd/minetest.po b/po/gd/minetest.po
index c3347ecda..e7147d3b5 100644
--- a/po/gd/minetest.po
+++ b/po/gd/minetest.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: 2020-06-22 17:56+0000\n"
"Last-Translator: GunChleoc <fios@foramnagaidhlig.net>\n"
"Language-Team: Gaelic <https://hosted.weblate.org/projects/minetest/minetest/"
@@ -21,11 +21,11 @@ msgstr ""
"X-Generator: Weblate 4.2-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
-msgid "You died"
+msgid "Respawn"
msgstr ""
#: builtin/client/death_formspec.lua src/client/game.cpp
-msgid "Respawn"
+msgid "You died"
msgstr ""
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
@@ -33,11 +33,11 @@ msgid "OK"
msgstr ""
#: builtin/fstk/ui.lua
-msgid "The server has requested a reconnect:"
+msgid "An error occurred in a Lua script:"
msgstr ""
#: builtin/fstk/ui.lua
-msgid "Reconnect"
+msgid "An error occurred:"
msgstr ""
#: builtin/fstk/ui.lua
@@ -45,24 +45,16 @@ msgid "Main menu"
msgstr "Prìomh chlàr-taice"
#: builtin/fstk/ui.lua
-msgid "An error occurred in a Lua script:"
+msgid "Reconnect"
msgstr ""
#: builtin/fstk/ui.lua
-msgid "An error occurred:"
-msgstr ""
-
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr ""
-
-#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
+msgid "The server has requested a reconnect:"
msgstr ""
#: builtin/mainmenu/common.lua
#, fuzzy
-msgid "Server supports protocol versions between $1 and $2. "
+msgid "Protocol version mismatch. "
msgstr " "
#: builtin/mainmenu/common.lua
@@ -71,28 +63,58 @@ msgid "Server enforces protocol version $1. "
msgstr " "
#: builtin/mainmenu/common.lua
-msgid "We support protocol versions between version $1 and $2."
-msgstr ""
+#, fuzzy
+msgid "Server supports protocol versions between $1 and $2. "
+msgstr " "
#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr ""
#: builtin/mainmenu/common.lua
-#, fuzzy
-msgid "Protocol version mismatch. "
-msgstr " "
+msgid "We support protocol versions between version $1 and $2."
+msgstr ""
+
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_delete_content.lua
+#: builtin/mainmenu/dlg_delete_world.lua
+#: builtin/mainmenu/dlg_rename_modpack.lua
+#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp
+#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
+#: src/gui/guiPasswordChange.cpp
+msgid "Cancel"
+msgstr ""
+
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
+msgid "Dependencies:"
+msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "World:"
+msgid "Disable all"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "No modpack description provided."
+msgid "Disable modpack"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "No game description provided."
+msgid "Enable all"
+msgstr ""
+
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "Enable modpack"
+msgstr ""
+
+#: builtin/mainmenu/dlg_config_world.lua
+msgid ""
+"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
+"characters [a-z0-9_] are allowed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "Find More Mods"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
@@ -104,68 +126,66 @@ msgid "No (optional) dependencies"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
+msgid "No game description provided."
+msgstr ""
+
+#: builtin/mainmenu/dlg_config_world.lua
msgid "No hard dependencies"
msgstr "Gun eisimeileachd chruaidh"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
-msgid "Optional dependencies:"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
-msgid "Dependencies:"
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "No modpack description provided."
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
msgid "No optional dependencies"
msgstr ""
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+msgid "Optional dependencies:"
+msgstr ""
+
#: builtin/mainmenu/dlg_config_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
msgid "Save"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
-#: builtin/mainmenu/dlg_delete_content.lua
-#: builtin/mainmenu/dlg_delete_world.lua
-#: builtin/mainmenu/dlg_rename_modpack.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp
-#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
-#: src/gui/guiPasswordChange.cpp
-msgid "Cancel"
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "World:"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "Find More Mods"
+msgid "enabled"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Disable modpack"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Enable modpack"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "enabled"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Disable all"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Enable all"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua
-msgid ""
-"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
-"characters [a-z0-9_] are allowed."
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "ContentDB is not available when Minetest was compiled without cURL"
+msgid "$1 will be installed, and $2 dependencies will be skipped."
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
@@ -173,46 +193,85 @@ msgid "All packages"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Back to Main Menu"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "ContentDB is not available when Minetest was compiled without cURL"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Downloading..."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Failed to download $1"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Texture packs"
+msgid "No packages could be retrieved"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Failed to download $1"
+msgid "No results"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
+msgid "No updates"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Back to Main Menu"
+msgid "Not found"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "No results"
+msgid "Overwrite"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "No packages could be retrieved"
+msgid "Please check that the base game is correct."
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Downloading..."
+msgid "Queued"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Install"
+msgid "Texture packs"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Uninstall"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
@@ -220,83 +279,79 @@ msgid "Update"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Uninstall"
+msgid "Update All [$1]"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Caverns"
+msgid "A world named \"$1\" already exists"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Very large caverns deep in the underground"
+msgid "Additional terrain"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Sea level rivers"
-msgstr "Aibhnean air àirde na mara"
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Altitude chill"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Rivers"
-msgstr "Aibhnean"
+msgid "Altitude dry"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mountains"
+msgid "Biome blending"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Floatlands (experimental)"
+msgid "Biomes"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Floating landmasses in the sky"
-msgstr "Tìr air fhleòd san speur"
-
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Altitude chill"
+msgid "Caverns"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Reduces heat with altitude"
+msgid "Caves"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Altitude dry"
+msgid "Create"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Reduces humidity with altitude"
+msgid "Decorations"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Humid rivers"
-msgstr "Aibhnean boga"
+msgid "Download a game, such as Minetest Game, from minetest.net"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Increases humidity around rivers"
-msgstr "Nì seo an tìr nas buige faisg air aibhnean"
+msgid "Download one from minetest.net"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Vary river depth"
-msgstr "Caochail doimhne nan aibhnean"
+msgid "Dungeons"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr "Adhbharaichidh saoghal tioram is teth aibhnean tana no tioram"
+msgid "Flat terrain"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Hills"
-msgstr ""
+msgid "Floating landmasses in the sky"
+msgstr "Tìr air fhleòd san speur"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Lakes"
+msgid "Floatlands (experimental)"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Additional terrain"
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Game"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -304,122 +359,126 @@ msgid "Generate non-fractal terrain: Oceans and underground"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Trees and jungle grass"
+msgid "Hills"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Flat terrain"
-msgstr ""
+msgid "Humid rivers"
+msgstr "Aibhnean boga"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mud flow"
-msgstr ""
+msgid "Increases humidity around rivers"
+msgstr "Nì seo an tìr nas buige faisg air aibhnean"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Terrain surface erosion"
+msgid "Lakes"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgid "Low humidity and high heat causes shallow or dry rivers"
+msgstr "Adhbharaichidh saoghal tioram is teth aibhnean tana no tioram"
+
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Mapgen"
+msgstr "Gineadair nam mapa"
+
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Mapgen flags"
+msgstr "Brataich gineadair nam mapa"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgid "Mapgen-specific flags"
+msgstr "Brataich shònraichte do ghineadair nam mapa"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert"
+msgid "Mountains"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "You have no games installed."
+msgid "Mud flow"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Download one from minetest.net"
+msgid "Network of tunnels and caves"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Caves"
+msgid "No game selected"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Dungeons"
+msgid "Reduces heat with altitude"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Decorations"
+msgid "Reduces humidity with altitude"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid ""
-"Structures appearing on the terrain (no effect on trees and jungle grass "
-"created by v6)"
-msgstr ""
+msgid "Rivers"
+msgstr "Aibhnean"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgid "Sea level rivers"
+msgstr "Aibhnean air àirde na mara"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Network of tunnels and caves"
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Seed"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Biomes"
+msgid "Smooth transition between biomes"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Biome blending"
+msgid ""
+"Structures appearing on the terrain (no effect on trees and jungle grass "
+"created by v6)"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Smooth transition between biomes"
+msgid "Structures appearing on the terrain, typically trees and plants"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Mapgen flags"
-msgstr "Brataich gineadair nam mapa"
-
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mapgen-specific flags"
-msgstr "Brataich shònraichte do ghineadair nam mapa"
+msgid "Temperate, Desert"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Warning: The Development Test is meant for developers."
+msgid "Temperate, Desert, Jungle"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Download a game, such as Minetest Game, from minetest.net"
+msgid "Temperate, Desert, Jungle, Tundra, Taiga"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "World name"
+msgid "Terrain surface erosion"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Seed"
+msgid "Trees and jungle grass"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Mapgen"
-msgstr "Gineadair nam mapa"
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Vary river depth"
+msgstr "Caochail doimhne nan aibhnean"
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Game"
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Very large caverns deep in the underground"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Create"
+msgid "Warning: The Development Test is meant for developers."
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "A world named \"$1\" already exists"
+msgid "World name"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "No game selected"
+msgid "You have no games installed."
msgstr ""
#: builtin/mainmenu/dlg_delete_content.lua
@@ -449,140 +508,144 @@ msgid "Accept"
msgstr ""
#: builtin/mainmenu/dlg_rename_modpack.lua
+msgid "Rename Modpack:"
+msgstr ""
+
+#: builtin/mainmenu/dlg_rename_modpack.lua
msgid ""
"This modpack has an explicit name given in its modpack.conf which will "
"override any renaming here."
msgstr ""
-#: builtin/mainmenu/dlg_rename_modpack.lua
-msgid "Rename Modpack:"
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "(No description of setting given)"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Disabled"
+msgid "2D Noise"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Enabled"
+msgid "< Back to Settings page"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr ""
-#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
-msgid "Offset"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
-msgid "Scale"
-msgstr ""
-
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "X spread"
+msgid "Disabled"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Y spread"
+msgid "Edit"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "2D Noise"
+msgid "Enabled"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Z spread"
+msgid "Lacunarity"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Octaves"
msgstr ""
+#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
+msgid "Offset"
+msgstr ""
+
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Persistance"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Lacunarity"
+msgid "Please enter a valid integer."
msgstr ""
-#. ~ "defaults" is a noise parameter flag.
-#. It describes the default processing options
-#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "defaults"
+msgid "Please enter a valid number."
msgstr ""
-#. ~ "eased" is a noise parameter flag.
-#. It is used to make the map smoother and
-#. can be enabled in noise settings in
-#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "eased"
+msgid "Restore Default"
+msgstr ""
+
+#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
+msgid "Scale"
msgstr ""
-#. ~ "absvalue" is a noise parameter flag.
-#. It is short for "absolute value".
-#. It can be enabled in noise settings in
-#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "absvalue"
+msgid "Search"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "X"
+msgid "Select directory"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Y"
+msgid "Select file"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Z"
+msgid "Show technical names"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "(No description of setting given)"
+msgid "The value must be at least $1."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Please enter a valid integer."
+msgid "The value must not be larger than $1."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "The value must be at least $1."
+msgid "X"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "The value must not be larger than $1."
+msgid "X spread"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Please enter a valid number."
+msgid "Y"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Select directory"
+msgid "Y spread"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Select file"
+msgid "Z"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "< Back to Settings page"
+msgid "Z spread"
msgstr ""
+#. ~ "absvalue" is a noise parameter flag.
+#. It is short for "absolute value".
+#. It can be enabled in noise settings in
+#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Edit"
+msgid "absvalue"
msgstr ""
+#. ~ "defaults" is a noise parameter flag.
+#. It describes the default processing options
+#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Restore Default"
+msgid "defaults"
msgstr ""
+#. ~ "eased" is a noise parameter flag.
+#. It is used to make the map smoother and
+#. can be enabled in noise settings in
+#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Show technical names"
+msgid "eased"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
@@ -590,7 +653,7 @@ msgid "$1 (Enabled)"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a $1 as a texture pack"
+msgid "$1 mods"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
@@ -598,72 +661,84 @@ msgid "Failed to install $1 to $2"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to find a valid mod or modpack"
+msgid "Install Mod: Unable to find real mod name for: $1"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a modpack as a $1"
+msgid "Install Mod: Unable to find suitable folder name for modpack $1"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install Mod: Unable to find suitable folder name for modpack $1"
+msgid "Install: Unsupported file type \"$1\" or broken archive"
msgstr ""
+"Stàladh: Faidhle dhen t-seòrsa “$1†ris nach eil taic no tasglann bhriste"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a mod as a $1"
+msgid "Install: file: \"$1\""
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install Mod: Unable to find real mod name for: $1"
+msgid "Unable to find a valid mod or modpack"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a game as a $1"
+msgid "Unable to install a $1 as a texture pack"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install: file: \"$1\""
+msgid "Unable to install a game as a $1"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install: Unsupported file type \"$1\" or broken archive"
+msgid "Unable to install a mod as a $1"
msgstr ""
-"Stàladh: Faidhle dhen t-seòrsa “$1†ris nach eil taic no tasglann bhriste"
#: builtin/mainmenu/pkgmgr.lua
-msgid "$1 mods"
+msgid "Unable to install a modpack as a $1"
msgstr ""
-#: builtin/mainmenu/tab_content.lua
-msgid "Installed Packages:"
-msgstr "Pacaidean air an stàladh:"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "No package description available"
+msgid "Content"
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "Rename"
+msgid "Disable Texture Pack"
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "No dependencies."
+msgid "Information:"
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "Disable Texture Pack"
+msgid "Installed Packages:"
+msgstr "Pacaidean air an stàladh:"
+
+#: builtin/mainmenu/tab_content.lua
+msgid "No dependencies."
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "Use Texture Pack"
+msgid "No package description available"
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "Information:"
+msgid "Rename"
msgstr ""
#: builtin/mainmenu/tab_content.lua
@@ -671,11 +746,11 @@ msgid "Uninstall Package"
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "Content"
+msgid "Use Texture Pack"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
-msgid "Credits"
+msgid "Active Contributors"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
@@ -683,59 +758,73 @@ msgid "Core Developers"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
-msgid "Active Contributors"
+msgid "Credits"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
-msgid "Previous Core Developers"
+msgid "Open User Data Directory"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
-msgid "Previous Contributors"
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
msgstr ""
-#: builtin/mainmenu/tab_local.lua
-msgid "Install games from ContentDB"
-msgstr "Stàlaich geamannan o ContentDB"
+#: builtin/mainmenu/tab_credits.lua
+msgid "Previous Contributors"
+msgstr ""
-#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
+#: builtin/mainmenu/tab_credits.lua
+msgid "Previous Core Developers"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "New"
+msgid "Announce Server"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Select World:"
+msgid "Bind Address"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Creative Mode"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Host Game"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Host Server"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Host Game"
+msgid "Install games from ContentDB"
+msgstr "Stàlaich geamannan o ContentDB"
+
+#: builtin/mainmenu/tab_local.lua
+msgid "Name"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Announce Server"
+msgid "New"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
+msgid "No world created or selected!"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Bind Address"
+msgid "Password"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
+msgid "Play Game"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -743,15 +832,15 @@ msgid "Port"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Server Port"
+msgid "Select Mods"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Play Game"
+msgid "Select World:"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "No world created or selected!"
+msgid "Server Port"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -762,141 +851,125 @@ msgstr ""
msgid "Address / Port"
msgstr "Seòladh / Port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Name / Password"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Del. Favorite"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Favorite"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Ping"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr ""
-#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "PvP enabled"
+#: builtin/mainmenu/tab_online.lua
+msgid "Del. Favorite"
msgstr ""
#: builtin/mainmenu/tab_online.lua
-msgid "Join Game"
+msgid "Favorite"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Opaque Leaves"
+#: builtin/mainmenu/tab_online.lua
+msgid "Join Game"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Simple Leaves"
+#: builtin/mainmenu/tab_online.lua
+msgid "Name / Password"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Fancy Leaves"
+#: builtin/mainmenu/tab_online.lua
+msgid "Ping"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Node Outlining"
+#. ~ PvP = Player versus Player
+#: builtin/mainmenu/tab_online.lua
+msgid "PvP enabled"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Node Highlighting"
+msgid "2x"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "None"
+msgid "3D Clouds"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No Filter"
+msgid "4x"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Bilinear Filter"
+msgid "8x"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Trilinear Filter"
+msgid "All Settings"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No Mipmap"
+msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Mipmap"
+msgid "Autosave Screen Size"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Mipmap + Aniso. Filter"
+msgid "Bilinear Filter"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "2x"
+#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
+msgid "Change Keys"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "4x"
+msgid "Connected Glass"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "8x"
+msgid "Fancy Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
+msgid "Mipmap"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
+msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
+msgid "No Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Smooth Lighting"
+msgid "No Mipmap"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Particles"
+msgid "Node Highlighting"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "3D Clouds"
+msgid "Node Outlining"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Opaque Water"
+msgid "None"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Connected Glass"
+msgid "Opaque Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Texturing:"
+msgid "Opaque Water"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Antialiasing:"
+msgid "Particles"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
@@ -904,7 +977,7 @@ msgid "Screen:"
msgstr "Sgrìn:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Autosave Screen Size"
+msgid "Settings"
msgstr ""
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
@@ -912,43 +985,41 @@ msgid "Shaders"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Shaders (unavailable)"
+msgid "Shaders (experimental)"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
+msgid "Shaders (unavailable)"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
-msgid "Change Keys"
+#: builtin/mainmenu/tab_settings.lua
+msgid "Simple Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "All Settings"
+msgid "Smooth Lighting"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Touchthreshold: (px)"
+msgid "Texturing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
+msgid "To enable shaders the OpenGL driver needs to be used."
msgstr ""
+"Airson sgàileadairean a chur an comas, feumaidh tu draibhear OpenGL a "
+"chleachdadh."
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
msgid "Tone Mapping"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
+msgid "Touchthreshold: (px)"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Waving Liquids"
+msgid "Trilinear Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
@@ -956,33 +1027,27 @@ msgid "Waving Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Waving Plants"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "To enable shaders the OpenGL driver needs to be used."
+msgid "Waving Liquids"
msgstr ""
-"Airson sgàileadairean a chur an comas, feumaidh tu draibhear OpenGL a "
-"chleachdadh."
#: builtin/mainmenu/tab_settings.lua
-msgid "Settings"
+msgid "Waving Plants"
msgstr ""
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
+#: src/client/client.cpp
+msgid "Connection timed out."
msgstr ""
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
+#: src/client/client.cpp
+msgid "Done!"
msgstr ""
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
+#: src/client/client.cpp
+msgid "Initializing nodes"
msgstr ""
#: src/client/client.cpp
-msgid "Connection timed out."
+msgid "Initializing nodes..."
msgstr ""
#: src/client/client.cpp
@@ -993,16 +1058,16 @@ msgstr ""
msgid "Rebuilding shaders..."
msgstr ""
-#: src/client/client.cpp
-msgid "Initializing nodes..."
+#: src/client/clientlauncher.cpp
+msgid "Connection error (timed out?)"
msgstr ""
-#: src/client/client.cpp
-msgid "Initializing nodes"
+#: src/client/clientlauncher.cpp
+msgid "Could not find or load game \""
msgstr ""
-#: src/client/client.cpp
-msgid "Done!"
+#: src/client/clientlauncher.cpp
+msgid "Invalid gamespec."
msgstr ""
#: src/client/clientlauncher.cpp
@@ -1010,39 +1075,27 @@ msgid "Main Menu"
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "Player name too long."
+msgid "No world selected and no address provided. Nothing to do."
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "Connection error (timed out?)"
+msgid "Player name too long."
msgstr ""
#: src/client/clientlauncher.cpp
-#, fuzzy
-msgid "Provided password file failed to open: "
-msgstr " "
-
-#: src/client/clientlauncher.cpp
msgid "Please choose a name!"
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "No world selected and no address provided. Nothing to do."
-msgstr ""
+#, fuzzy
+msgid "Provided password file failed to open: "
+msgstr " "
#: src/client/clientlauncher.cpp
#, fuzzy
msgid "Provided world path doesn't exist: "
msgstr " "
-#: src/client/clientlauncher.cpp
-msgid "Could not find or load game \""
-msgstr ""
-
-#: src/client/clientlauncher.cpp
-msgid "Invalid gamespec."
-msgstr ""
-
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string. Put either "no" or "yes"
#. into the translation field (literally).
@@ -1056,165 +1109,199 @@ msgid "needs_fallback_font"
msgstr "no"
#: src/client/game.cpp
-msgid "Shutting down..."
+msgid ""
+"\n"
+"Check debug.txt for details."
msgstr ""
#: src/client/game.cpp
-msgid "Creating server..."
-msgstr ""
+#, fuzzy
+msgid "- Address: "
+msgstr " "
#: src/client/game.cpp
-msgid "Creating client..."
-msgstr ""
+#, fuzzy
+msgid "- Creative Mode: "
+msgstr " "
#: src/client/game.cpp
-msgid "Resolving address..."
-msgstr ""
+msgid "- Damage: "
+msgstr "– Dochann: "
#: src/client/game.cpp
-msgid "Connecting to server..."
-msgstr ""
+#, fuzzy
+msgid "- Mode: "
+msgstr " "
#: src/client/game.cpp
-msgid "Item definitions..."
-msgstr ""
+#, fuzzy
+msgid "- Port: "
+msgstr " "
#: src/client/game.cpp
-msgid "Node definitions..."
-msgstr ""
+#, fuzzy
+msgid "- Public: "
+msgstr " "
+#. ~ PvP = Player versus Player
#: src/client/game.cpp
-msgid "Media..."
-msgstr ""
+#, fuzzy
+msgid "- PvP: "
+msgstr " "
#: src/client/game.cpp
-msgid "KiB/s"
-msgstr ""
+#, fuzzy
+msgid "- Server Name: "
+msgstr " "
#: src/client/game.cpp
-msgid "MiB/s"
+msgid "Automatic forward disabled"
msgstr ""
#: src/client/game.cpp
-msgid "Client side scripting is disabled"
+msgid "Automatic forward enabled"
msgstr ""
#: src/client/game.cpp
-msgid "Sound muted"
+msgid "Camera update disabled"
msgstr ""
#: src/client/game.cpp
-msgid "Sound unmuted"
+msgid "Camera update enabled"
msgstr ""
#: src/client/game.cpp
-msgid "Sound system is disabled"
+msgid "Change Password"
msgstr ""
#: src/client/game.cpp
-#, c-format
-msgid "Volume changed to %d%%"
+msgid "Cinematic mode disabled"
msgstr ""
#: src/client/game.cpp
-msgid "Sound system is not supported on this build"
-msgstr ""
+msgid "Cinematic mode enabled"
+msgstr "Tha am modh film an comas"
#: src/client/game.cpp
-msgid "ok"
+msgid "Client side scripting is disabled"
msgstr ""
#: src/client/game.cpp
-msgid "Fly mode enabled"
-msgstr "Tha am modh sgiathaidh an comas"
-
-#: src/client/game.cpp
-msgid "Fly mode enabled (note: no 'fly' privilege)"
-msgstr "Tha am modh sgiathaidh an comas (an aire: gun sochair “flyâ€)"
-
-#: src/client/game.cpp
-msgid "Fly mode disabled"
-msgstr "Tha am modh sgiathaidh à comas"
-
-#: src/client/game.cpp
-msgid "Pitch move mode enabled"
+msgid "Connecting to server..."
msgstr ""
#: src/client/game.cpp
-msgid "Pitch move mode disabled"
+msgid "Continue"
msgstr ""
#: src/client/game.cpp
-msgid "Fast mode enabled"
+#, fuzzy, c-format
+msgid ""
+"Controls:\n"
+"- %s: move forwards\n"
+"- %s: move backwards\n"
+"- %s: move left\n"
+"- %s: move right\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
+"- %s: drop item\n"
+"- %s: inventory\n"
+"- Mouse: turn/look\n"
+"- Mouse wheel: select item\n"
+"- %s: chat\n"
msgstr ""
+"Stiùireadh:\n"
+"- %s: gluais an comhair a’ bheòil\n"
+"- %s: gluais an comhair a’ chùil\n"
+"- %s: gluais dhan taobh clì\n"
+"- %s: gluais dhan taobh deas\n"
+"- %s: leum/sreap\n"
+"- %s: tàislich/dìrich\n"
+"- %s: leig às nì\n"
+"- %s: an tasgadh\n"
+"- Luchag: tionndaidh/coimhead\n"
+"- Putan clì na luchaige: geàrr/buail\n"
+"- Putan deas na luchaige: cuir ann/cleachd\n"
+"- Cuibhle na luchaige: tagh nì\n"
+"- %s: cabadaich\n"
#: src/client/game.cpp
-msgid "Fast mode enabled (note: no 'fast' privilege)"
-msgstr "Tha am modh luath an comas (an aire: gun sochair “fastâ€)"
-
-#: src/client/game.cpp
-msgid "Fast mode disabled"
+msgid "Creating client..."
msgstr ""
#: src/client/game.cpp
-msgid "Noclip mode enabled"
-msgstr "Tha am modh gun bhearradh an comas"
+msgid "Creating server..."
+msgstr ""
#: src/client/game.cpp
-msgid "Noclip mode enabled (note: no 'noclip' privilege)"
-msgstr "Tha am modh gun bhearradh an comas (an aire: gun sochair “noclipâ€)"
+msgid "Debug info and profiler graph hidden"
+msgstr ""
#: src/client/game.cpp
-msgid "Noclip mode disabled"
-msgstr "Tha am modh gun bhearradh à comas"
+msgid "Debug info shown"
+msgstr ""
#: src/client/game.cpp
-msgid "Cinematic mode enabled"
-msgstr "Tha am modh film an comas"
+msgid "Debug info, profiler graph, and wireframe hidden"
+msgstr ""
#: src/client/game.cpp
-msgid "Cinematic mode disabled"
+msgid ""
+"Default Controls:\n"
+"No menu visible:\n"
+"- single tap: button activate\n"
+"- double tap: place/use\n"
+"- slide finger: look around\n"
+"Menu/Inventory visible:\n"
+"- double tap (outside):\n"
+" -->close\n"
+"- touch stack, touch slot:\n"
+" --> move stack\n"
+"- touch&drag, tap 2nd finger\n"
+" --> place single item to slot\n"
msgstr ""
#: src/client/game.cpp
-msgid "Automatic forward enabled"
+msgid "Disabled unlimited viewing range"
msgstr ""
#: src/client/game.cpp
-msgid "Automatic forward disabled"
+msgid "Enabled unlimited viewing range"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
+msgid "Exit to Menu"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
+msgid "Exit to OS"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
+msgid "Fast mode disabled"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
+msgid "Fast mode enabled"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
+msgid "Fast mode enabled (note: no 'fast' privilege)"
+msgstr "Tha am modh luath an comas (an aire: gun sochair “fastâ€)"
#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
+msgid "Fly mode disabled"
+msgstr "Tha am modh sgiathaidh à comas"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
+msgid "Fly mode enabled"
+msgstr "Tha am modh sgiathaidh an comas"
#: src/client/game.cpp
-msgid "Minimap currently disabled by game or mod"
-msgstr ""
+msgid "Fly mode enabled (note: no 'fly' privilege)"
+msgstr "Tha am modh sgiathaidh an comas (an aire: gun sochair “flyâ€)"
#: src/client/game.cpp
msgid "Fog disabled"
@@ -1225,201 +1312,143 @@ msgid "Fog enabled"
msgstr ""
#: src/client/game.cpp
-msgid "Debug info shown"
+msgid "Game info:"
+msgstr "Fiosrachadh mun gheama:"
+
+#: src/client/game.cpp
+msgid "Game paused"
msgstr ""
#: src/client/game.cpp
-msgid "Profiler graph shown"
+msgid "Hosting server"
msgstr ""
#: src/client/game.cpp
-msgid "Wireframe shown"
+msgid "Item definitions..."
msgstr ""
#: src/client/game.cpp
-msgid "Debug info, profiler graph, and wireframe hidden"
+msgid "KiB/s"
msgstr ""
#: src/client/game.cpp
-msgid "Debug info and profiler graph hidden"
+msgid "Media..."
msgstr ""
#: src/client/game.cpp
-msgid "Camera update disabled"
+msgid "MiB/s"
msgstr ""
#: src/client/game.cpp
-msgid "Camera update enabled"
+msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-#, c-format
-msgid "Viewing range is at maximum: %d"
-msgstr "Tha astar na faicsinn cho mòr sa ghabhas: %d"
+msgid "Noclip mode disabled"
+msgstr "Tha am modh gun bhearradh à comas"
#: src/client/game.cpp
-#, c-format
-msgid "Viewing range changed to %d"
-msgstr ""
+msgid "Noclip mode enabled"
+msgstr "Tha am modh gun bhearradh an comas"
#: src/client/game.cpp
-#, c-format
-msgid "Viewing range is at minimum: %d"
-msgstr ""
+msgid "Noclip mode enabled (note: no 'noclip' privilege)"
+msgstr "Tha am modh gun bhearradh an comas (an aire: gun sochair “noclipâ€)"
#: src/client/game.cpp
-msgid "Enabled unlimited viewing range"
+msgid "Node definitions..."
msgstr ""
#: src/client/game.cpp
-msgid "Disabled unlimited viewing range"
+msgid "Off"
msgstr ""
#: src/client/game.cpp
-msgid "Zoom currently disabled by game or mod"
+msgid "On"
msgstr ""
#: src/client/game.cpp
-msgid ""
-"Default Controls:\n"
-"No menu visible:\n"
-"- single tap: button activate\n"
-"- double tap: place/use\n"
-"- slide finger: look around\n"
-"Menu/Inventory visible:\n"
-"- double tap (outside):\n"
-" -->close\n"
-"- touch stack, touch slot:\n"
-" --> move stack\n"
-"- touch&drag, tap 2nd finger\n"
-" --> place single item to slot\n"
+msgid "Pitch move mode disabled"
msgstr ""
#: src/client/game.cpp
-#, c-format
-msgid ""
-"Controls:\n"
-"- %s: move forwards\n"
-"- %s: move backwards\n"
-"- %s: move left\n"
-"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
-"- %s: drop item\n"
-"- %s: inventory\n"
-"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
-"- Mouse wheel: select item\n"
-"- %s: chat\n"
+msgid "Pitch move mode enabled"
msgstr ""
-"Stiùireadh:\n"
-"- %s: gluais an comhair a’ bheòil\n"
-"- %s: gluais an comhair a’ chùil\n"
-"- %s: gluais dhan taobh clì\n"
-"- %s: gluais dhan taobh deas\n"
-"- %s: leum/sreap\n"
-"- %s: tàislich/dìrich\n"
-"- %s: leig às nì\n"
-"- %s: an tasgadh\n"
-"- Luchag: tionndaidh/coimhead\n"
-"- Putan clì na luchaige: geàrr/buail\n"
-"- Putan deas na luchaige: cuir ann/cleachd\n"
-"- Cuibhle na luchaige: tagh nì\n"
-"- %s: cabadaich\n"
#: src/client/game.cpp
-msgid "Continue"
+msgid "Profiler graph shown"
msgstr ""
#: src/client/game.cpp
-msgid "Change Password"
+msgid "Remote server"
msgstr ""
#: src/client/game.cpp
-msgid "Game paused"
+msgid "Resolving address..."
msgstr ""
#: src/client/game.cpp
-msgid "Sound Volume"
+msgid "Shutting down..."
msgstr ""
#: src/client/game.cpp
-msgid "Exit to Menu"
+msgid "Singleplayer"
msgstr ""
#: src/client/game.cpp
-msgid "Exit to OS"
+msgid "Sound Volume"
msgstr ""
#: src/client/game.cpp
-msgid "Game info:"
-msgstr "Fiosrachadh mun gheama:"
+msgid "Sound muted"
+msgstr ""
#: src/client/game.cpp
-#, fuzzy
-msgid "- Mode: "
-msgstr " "
+msgid "Sound system is disabled"
+msgstr ""
#: src/client/game.cpp
-msgid "Remote server"
+msgid "Sound system is not supported on this build"
msgstr ""
#: src/client/game.cpp
-#, fuzzy
-msgid "- Address: "
-msgstr " "
+msgid "Sound unmuted"
+msgstr ""
#: src/client/game.cpp
-msgid "Hosting server"
+#, c-format
+msgid "Viewing range changed to %d"
msgstr ""
#: src/client/game.cpp
-#, fuzzy
-msgid "- Port: "
-msgstr " "
+#, c-format
+msgid "Viewing range is at maximum: %d"
+msgstr "Tha astar na faicsinn cho mòr sa ghabhas: %d"
#: src/client/game.cpp
-msgid "Singleplayer"
+#, c-format
+msgid "Viewing range is at minimum: %d"
msgstr ""
#: src/client/game.cpp
-msgid "On"
+#, c-format
+msgid "Volume changed to %d%%"
msgstr ""
#: src/client/game.cpp
-msgid "Off"
+msgid "Wireframe shown"
msgstr ""
#: src/client/game.cpp
-msgid "- Damage: "
-msgstr "– Dochann: "
-
-#: src/client/game.cpp
-#, fuzzy
-msgid "- Creative Mode: "
-msgstr " "
-
-#. ~ PvP = Player versus Player
-#: src/client/game.cpp
-#, fuzzy
-msgid "- PvP: "
-msgstr " "
-
-#: src/client/game.cpp
-#, fuzzy
-msgid "- Public: "
-msgstr " "
+msgid "Zoom currently disabled by game or mod"
+msgstr ""
#: src/client/game.cpp
-#, fuzzy
-msgid "- Server Name: "
-msgstr " "
+msgid "ok"
+msgstr ""
-#: src/client/game.cpp
-msgid ""
-"\n"
-"Check debug.txt for details."
+#: src/client/gameui.cpp
+msgid "Chat hidden"
msgstr ""
#: src/client/gameui.cpp
@@ -1427,7 +1456,7 @@ msgid "Chat shown"
msgstr "Tha a’ chabadaich ’ga shealltainn"
#: src/client/gameui.cpp
-msgid "Chat hidden"
+msgid "HUD hidden"
msgstr ""
#: src/client/gameui.cpp
@@ -1435,7 +1464,7 @@ msgid "HUD shown"
msgstr ""
#: src/client/gameui.cpp
-msgid "HUD hidden"
+msgid "Profiler hidden"
msgstr ""
#: src/client/gameui.cpp
@@ -1443,135 +1472,129 @@ msgstr ""
msgid "Profiler shown (page %d of %d)"
msgstr ""
-#: src/client/gameui.cpp
-msgid "Profiler hidden"
-msgstr ""
-
#: src/client/keycode.cpp
-msgid "Left Button"
+msgid "Apps"
msgstr ""
#: src/client/keycode.cpp
-msgid "Right Button"
-msgstr ""
+msgid "Backspace"
+msgstr "Backspace"
#: src/client/keycode.cpp
-msgid "Middle Button"
+msgid "Caps Lock"
msgstr ""
#: src/client/keycode.cpp
-msgid "X Button 1"
+msgid "Clear"
msgstr ""
#: src/client/keycode.cpp
-msgid "X Button 2"
+msgid "Control"
msgstr ""
#: src/client/keycode.cpp
-msgid "Backspace"
-msgstr "Backspace"
+msgid "Down"
+msgstr ""
#: src/client/keycode.cpp
-msgid "Tab"
+msgid "End"
msgstr ""
#: src/client/keycode.cpp
-msgid "Clear"
+msgid "Erase EOF"
msgstr ""
#: src/client/keycode.cpp
-msgid "Return"
+msgid "Execute"
msgstr ""
#: src/client/keycode.cpp
-msgid "Shift"
+msgid "Help"
msgstr ""
#: src/client/keycode.cpp
-msgid "Control"
+msgid "Home"
msgstr ""
-#. ~ Key name, common on Windows keyboards
#: src/client/keycode.cpp
-msgid "Menu"
+msgid "IME Accept"
msgstr ""
#: src/client/keycode.cpp
-msgid "Pause"
+msgid "IME Convert"
msgstr ""
#: src/client/keycode.cpp
-msgid "Caps Lock"
+msgid "IME Escape"
msgstr ""
#: src/client/keycode.cpp
-msgid "Space"
+msgid "IME Mode Change"
msgstr ""
#: src/client/keycode.cpp
-msgid "Page up"
+msgid "IME Nonconvert"
msgstr ""
#: src/client/keycode.cpp
-msgid "Page down"
+msgid "Insert"
msgstr ""
-#: src/client/keycode.cpp
-msgid "End"
+#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
+msgid "Left"
msgstr ""
#: src/client/keycode.cpp
-msgid "Home"
+msgid "Left Button"
msgstr ""
-#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
-msgid "Left"
-msgstr ""
+#: src/client/keycode.cpp
+msgid "Left Control"
+msgstr "Control clì"
#: src/client/keycode.cpp
-msgid "Up"
+msgid "Left Menu"
msgstr ""
-#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
-msgid "Right"
+#: src/client/keycode.cpp
+msgid "Left Shift"
msgstr ""
#: src/client/keycode.cpp
-msgid "Down"
+msgid "Left Windows"
msgstr ""
-#. ~ Key name
+#. ~ Key name, common on Windows keyboards
#: src/client/keycode.cpp
-msgid "Select"
+msgid "Menu"
msgstr ""
-#. ~ "Print screen" key
#: src/client/keycode.cpp
-msgid "Print"
+msgid "Middle Button"
msgstr ""
#: src/client/keycode.cpp
-msgid "Execute"
+msgid "Num Lock"
msgstr ""
#: src/client/keycode.cpp
-msgid "Snapshot"
+msgid "Numpad *"
msgstr ""
#: src/client/keycode.cpp
-msgid "Insert"
+msgid "Numpad +"
msgstr ""
#: src/client/keycode.cpp
-msgid "Help"
+msgid "Numpad -"
msgstr ""
#: src/client/keycode.cpp
-msgid "Left Windows"
+msgid "Numpad ."
msgstr ""
#: src/client/keycode.cpp
-msgid "Right Windows"
+msgid "Numpad /"
msgstr ""
#: src/client/keycode.cpp
@@ -1615,99 +1638,127 @@ msgid "Numpad 9"
msgstr ""
#: src/client/keycode.cpp
-msgid "Numpad *"
+msgid "OEM Clear"
msgstr ""
#: src/client/keycode.cpp
-msgid "Numpad +"
+msgid "Page down"
msgstr ""
#: src/client/keycode.cpp
-msgid "Numpad ."
+msgid "Page up"
msgstr ""
#: src/client/keycode.cpp
-msgid "Numpad -"
+msgid "Pause"
msgstr ""
#: src/client/keycode.cpp
-msgid "Numpad /"
+msgid "Play"
msgstr ""
+#. ~ "Print screen" key
#: src/client/keycode.cpp
-msgid "Num Lock"
+msgid "Print"
msgstr ""
#: src/client/keycode.cpp
-msgid "Scroll Lock"
+msgid "Return"
+msgstr ""
+
+#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
+msgid "Right"
msgstr ""
#: src/client/keycode.cpp
-msgid "Left Shift"
+msgid "Right Button"
msgstr ""
#: src/client/keycode.cpp
-msgid "Right Shift"
+msgid "Right Control"
msgstr ""
#: src/client/keycode.cpp
-msgid "Left Control"
-msgstr "Control clì"
+msgid "Right Menu"
+msgstr ""
#: src/client/keycode.cpp
-msgid "Right Control"
+msgid "Right Shift"
msgstr ""
#: src/client/keycode.cpp
-msgid "Left Menu"
+msgid "Right Windows"
msgstr ""
#: src/client/keycode.cpp
-msgid "Right Menu"
+msgid "Scroll Lock"
msgstr ""
+#. ~ Key name
#: src/client/keycode.cpp
-msgid "IME Escape"
+msgid "Select"
msgstr ""
#: src/client/keycode.cpp
-msgid "IME Convert"
+msgid "Shift"
msgstr ""
#: src/client/keycode.cpp
-msgid "IME Nonconvert"
+msgid "Sleep"
msgstr ""
#: src/client/keycode.cpp
-msgid "IME Accept"
+msgid "Snapshot"
msgstr ""
#: src/client/keycode.cpp
-msgid "IME Mode Change"
+msgid "Space"
msgstr ""
#: src/client/keycode.cpp
-msgid "Apps"
+msgid "Tab"
msgstr ""
#: src/client/keycode.cpp
-msgid "Sleep"
+msgid "Up"
msgstr ""
#: src/client/keycode.cpp
-msgid "Erase EOF"
+msgid "X Button 1"
msgstr ""
#: src/client/keycode.cpp
-msgid "Play"
+msgid "X Button 2"
msgstr ""
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
msgid "Zoom"
msgstr ""
-#: src/client/keycode.cpp
-msgid "OEM Clear"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
+#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
+msgid "Passwords do not match!"
+msgstr ""
+
+#: src/gui/guiConfirmRegistration.cpp
+msgid "Register and Join"
msgstr ""
#: src/gui/guiConfirmRegistration.cpp
@@ -1720,120 +1771,104 @@ msgid ""
"creation, or click 'Cancel' to abort."
msgstr ""
-#: src/gui/guiConfirmRegistration.cpp
-msgid "Register and Join"
-msgstr ""
-
-#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
-msgid "Passwords do not match!"
-msgstr ""
-
#: src/gui/guiFormSpecMenu.cpp
msgid "Proceed"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
msgid "\"Special\" = climb down"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Double tap \"jump\" to toggle fly"
-msgstr "Thoir gnogag dhùbailte air “leum†airson sgiathadh a thoglachadh"
+msgid "Autoforward"
+msgstr ""
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Automatic jumping"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Key already in use"
+msgid "Backward"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "press key"
-msgstr "brùth air iuchair"
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Forward"
+msgid "Change camera"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Backward"
+msgid "Chat"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Special"
+msgid "Command"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Jump"
+msgid "Console"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Sneak"
-msgstr "Tàislich"
+msgid "Dec. range"
+msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Drop"
+msgid "Dec. volume"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inventory"
-msgstr ""
+msgid "Double tap \"jump\" to toggle fly"
+msgstr "Thoir gnogag dhùbailte air “leum†airson sgiathadh a thoglachadh"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Prev. item"
+msgid "Drop"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Next item"
+msgid "Forward"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Change camera"
-msgstr ""
+msgid "Inc. range"
+msgstr "Meudaich an t-astar"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle minimap"
+msgid "Inc. volume"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fly"
-msgstr "Toglaich sgiathadh"
+msgid "Inventory"
+msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle pitchmove"
+msgid "Jump"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fast"
+msgid "Key already in use"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle noclip"
-msgstr "Toglaich am modh gun bhearradh"
+msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
+msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Mute"
+msgid "Local command"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Dec. volume"
+msgid "Mute"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inc. volume"
+msgid "Next item"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Autoforward"
+msgid "Prev. item"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Chat"
+msgid "Range select"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
@@ -1841,47 +1876,51 @@ msgid "Screenshot"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Range select"
-msgstr ""
+msgid "Sneak"
+msgstr "Tàislich"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Dec. range"
+msgid "Special"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inc. range"
-msgstr "Meudaich an t-astar"
+msgid "Toggle HUD"
+msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Console"
+msgid "Toggle chat log"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Command"
+msgid "Toggle fast"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Local command"
-msgstr ""
+msgid "Toggle fly"
+msgstr "Toglaich sgiathadh"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle HUD"
+msgid "Toggle fog"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle chat log"
+msgid "Toggle minimap"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fog"
-msgstr ""
+msgid "Toggle noclip"
+msgstr "Toglaich am modh gun bhearradh"
-#: src/gui/guiPasswordChange.cpp
-msgid "Old Password"
+#: src/gui/guiKeyChangeMenu.cpp
+msgid "Toggle pitchmove"
msgstr ""
+#: src/gui/guiKeyChangeMenu.cpp
+msgid "press key"
+msgstr "brùth air iuchair"
+
#: src/gui/guiPasswordChange.cpp
-msgid "New Password"
+msgid "Change"
msgstr ""
#: src/gui/guiPasswordChange.cpp
@@ -1889,13 +1928,12 @@ msgid "Confirm Password"
msgstr ""
#: src/gui/guiPasswordChange.cpp
-msgid "Change"
+msgid "New Password"
msgstr ""
-#: src/gui/guiVolumeChange.cpp
-#, fuzzy
-msgid "Sound Volume: "
-msgstr " "
+#: src/gui/guiPasswordChange.cpp
+msgid "Old Password"
+msgstr ""
#: src/gui/guiVolumeChange.cpp
msgid "Exit"
@@ -1905,6 +1943,11 @@ msgstr ""
msgid "Muted"
msgstr ""
+#: src/gui/guiVolumeChange.cpp
+#, fuzzy
+msgid "Sound Volume: "
+msgstr " "
+
#. ~ Imperative, as in "Enter/type in text".
#. Don't forget the space.
#: src/gui/modalMenu.cpp
@@ -1919,3040 +1962,3035 @@ msgid "LANG_CODE"
msgstr "gd"
#: src/settings_translation_file.cpp
-msgid "Controls"
+msgid ""
+"(Android) Fixes the position of virtual joystick.\n"
+"If disabled, virtual joystick will center to first-touch's position."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Build inside player"
+msgid ""
+"(Android) Use virtual joystick to trigger \"aux\" button.\n"
+"If enabled, virtual joystick will also tap \"aux\" button when out of main "
+"circle."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"If enabled, you can place blocks at the position (feet + eye level) where "
-"you stand.\n"
-"This is helpful when working with nodeboxes in small areas."
+"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
+"Can be used to move a desired point to (0, 0) to create a\n"
+"suitable spawn point, or to allow 'zooming in' on a desired\n"
+"point by increasing 'scale'.\n"
+"The default is tuned for a suitable spawn point for Mandelbrot\n"
+"sets with default parameters, it may need altering in other\n"
+"situations.\n"
+"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
msgstr ""
-"Ma tha seo an comas, ’s urrainn dhut blocaichean a chur ann far a bheil thu ’"
-"nad sheasamh (co chois + àirde do shùil).\n"
-"Bidh seo feumail nuair a bhios tu ag obair le bogsaichean nòd ann an "
-"raointean beaga."
-
-#: src/settings_translation_file.cpp
-msgid "Flying"
-msgstr "Sgiathadh"
#: src/settings_translation_file.cpp
msgid ""
-"Player is able to fly without being affected by gravity.\n"
-"This requires the \"fly\" privilege on the server."
+"(X,Y,Z) scale of fractal in nodes.\n"
+"Actual fractal size will be 2 to 3 times larger.\n"
+"These numbers can be made very large, the fractal does\n"
+"not have to fit inside the world.\n"
+"Increase these to 'zoom' into the detail of the fractal.\n"
+"Default is for a vertically-squashed shape suitable for\n"
+"an island, set all 3 numbers equal for the raw shape."
msgstr ""
-"’S urrainn dhan chluicheadair sgiathadh gun bhuaidh na iom-tharraing air.\n"
-"Bidh feum air sochair “fly†air an fhrithealaiche."
#: src/settings_translation_file.cpp
-msgid "Pitch move mode"
+msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled, makes move directions relative to the player's pitch when flying "
-"or swimming."
-msgstr ""
-"Ma tha seo an comas, bidh an gluasad a-rèir pids a’ chluicheadair rè "
-"sgiathaidh no snàimh."
+msgid "2D noise that controls the shape/size of rolling hills."
+msgstr "Riasladh 2D a stiùiricheas cruth/meud nan cnoc."
#: src/settings_translation_file.cpp
-msgid "Fast movement"
+msgid "2D noise that controls the shape/size of step mountains."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Fast movement (via the \"special\" key).\n"
-"This requires the \"fast\" privilege on the server."
+msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
msgstr ""
-"Gluasad luath (leis an iuchair “shònraichteâ€).\n"
-"Bidh feum air sochair “fast†air an fhrithealaiche."
#: src/settings_translation_file.cpp
-msgid "Noclip"
-msgstr "Gun bhearradh"
+msgid "2D noise that controls the size/occurrence of rolling hills."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled together with fly mode, player is able to fly through solid "
-"nodes.\n"
-"This requires the \"noclip\" privilege on the server."
+msgid "2D noise that controls the size/occurrence of step mountain ranges."
msgstr ""
-"Ma tha seo an comas còmhla ris a’ mhodh sgiathaidh, ’s urrainn dhan "
-"chluicheadair sgiathadh tro nòdan soladach.\n"
-"Bidh feum air sochair “noclip†on fhrithealaiche."
#: src/settings_translation_file.cpp
-msgid "Cinematic mode"
-msgstr ""
+msgid "2D noise that locates the river valleys and channels."
+msgstr "Riasladh 2D a shuidhicheas glinn is sruthan nan aibhnean."
#: src/settings_translation_file.cpp
-msgid ""
-"Smooths camera when looking around. Also called look or mouse smoothing.\n"
-"Useful for recording videos."
+msgid "3D clouds"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Camera smoothing"
+msgid "3D mode"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Smooths rotation of camera. 0 to disable."
+msgid "3D mode parallax strength"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Camera smoothing in cinematic mode"
+msgid "3D noise defining giant caverns."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Smooths rotation of camera in cinematic mode. 0 to disable."
+msgid ""
+"3D noise defining mountain structure and height.\n"
+"Also defines structure of floatland mountain terrain."
msgstr ""
+"Riasladh 3D a mhìnicheas structar is àirde nam beanntan.\n"
+"Mìnichidh e cruth-tìre nam beanntan air tìr air fhleòd cuideachd."
#: src/settings_translation_file.cpp
-msgid "Invert mouse"
+msgid ""
+"3D noise defining structure of floatlands.\n"
+"If altered from the default, the noise 'scale' (0.7 by default) may need\n"
+"to be adjusted, as floatland tapering functions best when this noise has\n"
+"a value range of approximately -2.0 to 2.0."
msgstr ""
+"Riasladh 3D a mhìnicheas structar na tìre air fhleòd.\n"
+"Mura cleachd thu an luach tùsail, dh’fhaoidte gum fheàirrde thu gleus a chur "
+"air “scale†an riaslaidh (0.7 o thùs)\n"
+", on a dh’obraicheas foincseanan cinn-chaoil as fheàrr\n"
+"nuair a bhios an riasladh seo eadar mu -2.0 agus 2.0."
#: src/settings_translation_file.cpp
-msgid "Invert vertical mouse movement."
-msgstr ""
+msgid "3D noise defining structure of river canyon walls."
+msgstr "Riasladh 3D a mhìnicheas structar ballachan sgoltaidhean-aibhne."
#: src/settings_translation_file.cpp
-msgid "Mouse sensitivity"
+msgid "3D noise defining terrain."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mouse sensitivity multiplier."
+msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Special key for climbing/descending"
+msgid "3D noise that determines number of dungeons per mapchunk."
msgstr ""
+"Riasladh 3D a mhìnicheas an àireamh dhe thuill-dhubha anns gach cnap mapa."
#: src/settings_translation_file.cpp
msgid ""
-"If enabled, \"special\" key instead of \"sneak\" key is used for climbing "
-"down and\n"
-"descending."
+"3D support.\n"
+"Currently supported:\n"
+"- none: no 3d output.\n"
+"- anaglyph: cyan/magenta color 3d.\n"
+"- interlaced: odd/even line based polarisation screen support.\n"
+"- topbottom: split screen top/bottom.\n"
+"- sidebyside: split screen side by side.\n"
+"- crossview: Cross-eyed 3d\n"
+"- pageflip: quadbuffer based 3d.\n"
+"Note that the interlaced mode requires shaders to be enabled."
msgstr ""
-"Ma tha seo an comas, thèid iuchair “shònraichte†seach “tàisleachaidh†a "
-"chleachdadh\n"
-"airson dìreadh."
#: src/settings_translation_file.cpp
-msgid "Double tap jump for fly"
-msgstr "Thoir gnogag dhùbailte airson leum no sgiathadh"
-
-#: src/settings_translation_file.cpp
-msgid "Double-tapping the jump key toggles fly mode."
-msgstr "Toglaichidh gnogag dhùbailte air iuchair an leuma am modh sgiathaidh."
+msgid ""
+"A chosen map seed for a new map, leave empty for random.\n"
+"Will be overridden when creating a new world in the main menu."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Always fly and fast"
-msgstr "Sgiathaich an-còmhnaidh ’s gu luath"
+msgid "A message to be displayed to all clients when the server crashes."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If disabled, \"special\" key is used to fly fast if both fly and fast mode "
-"are\n"
-"enabled."
+msgid "A message to be displayed to all clients when the server shuts down."
msgstr ""
-"Ma tha seo à comas, thèid iuchair “shònraichte†a chleachdadh airson "
-"sgiathadh\n"
-"ma tha an dà chuid am modh sgiathaidh ’s am modh luadh an comas."
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
+msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+msgid "ABM time budget"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Automatically jump up single-node obstacles."
+msgid "Absolute limit of queued blocks to emerge"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Safe digging and placing"
+msgid "Acceleration in air"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Prevent digging and placing from repeating when holding the mouse buttons.\n"
-"Enable this when you dig or place too often by accident."
+msgid "Acceleration of gravity, in nodes per second per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Random input"
+msgid "Active Block Modifiers"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable random user input (only used for testing)."
+msgid "Active block management interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Continuous forward"
+msgid "Active block range"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Continuous forward movement, toggled by autoforward key.\n"
-"Press the autoforward key again or the backwards movement to disable."
+msgid "Active object send range"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Touch screen threshold"
+msgid ""
+"Address to connect to.\n"
+"Leave this blank to start a local server.\n"
+"Note that the address field in the main menu overrides this setting."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "The length in pixels it takes for touch screen interaction to start."
+msgid "Adds particles when digging a node."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fixed virtual joystick"
+msgid ""
+"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
+"screens."
msgstr ""
#: src/settings_translation_file.cpp
+#, c-format
msgid ""
-"(Android) Fixes the position of virtual joystick.\n"
-"If disabled, virtual joystick will center to first-touch's position."
+"Adjusts the density of the floatland layer.\n"
+"Increase value to increase density. Can be positive or negative.\n"
+"Value = 0.0: 50% of volume is floatland.\n"
+"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
+"to be sure) creates a solid floatland layer."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Virtual joystick triggers aux button"
+msgid "Advanced"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"(Android) Use virtual joystick to trigger \"aux\" button.\n"
-"If enabled, virtual joystick will also tap \"aux\" button when out of main "
-"circle."
+"Alters the light curve by applying 'gamma correction' to it.\n"
+"Higher values make middle and lower light levels brighter.\n"
+"Value '1.0' leaves the light curve unaltered.\n"
+"This only has significant effect on daylight and artificial\n"
+"light, it has very little effect on natural night light."
msgstr ""
+"Atharraichidh seo lùb an t-solais a’ cur “gamma correction†air.\n"
+"Nì luachan nas àirde an solas meadhanach no fann nas soilleire.\n"
+"Fàgaidh luach “1.0†lùb an t-solais mar a tha i.\n"
+"Chan eil buaidh mhòr aige ach air solas an latha is na h-oidhche fuadaine,\n"
+"agus cha mhòr nach bi buaidh air solas oidhche nàdarra idir."
#: src/settings_translation_file.cpp
-msgid "Enable joysticks"
-msgstr ""
+msgid "Always fly and fast"
+msgstr "Sgiathaich an-còmhnaidh ’s gu luath"
#: src/settings_translation_file.cpp
-msgid "Joystick ID"
+msgid "Ambient occlusion gamma"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "The identifier of the joystick to use"
+msgid "Amount of messages a player may send per 10 seconds."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Joystick type"
-msgstr ""
+msgid "Amplifies the valleys."
+msgstr "Meudaichidh seo na glinn."
#: src/settings_translation_file.cpp
-msgid "The type of joystick"
+msgid "Anisotropic filtering"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Joystick button repetition interval"
+msgid "Announce server"
+msgstr "Ainmich am frithealaiche"
+
+#: src/settings_translation_file.cpp
+msgid "Announce to this serverlist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The time in seconds it takes between repeated events\n"
-"when holding down a joystick button combination."
+msgid "Append item name"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Joystick frustum sensitivity"
+msgid "Append item name to tooltip."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The sensitivity of the joystick axes for moving the\n"
-"ingame view frustum around."
+msgid "Apple trees noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Forward key"
+msgid "Arm inertia"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for moving the player forward.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Arm inertia, gives a more realistic movement of\n"
+"the arm when the camera moves."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Backward key"
+msgid "Ask to reconnect after crash"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for moving the player backward.\n"
-"Will also disable autoforward, when active.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"At this distance the server will aggressively optimize which blocks are sent "
+"to\n"
+"clients.\n"
+"Small values potentially improve performance a lot, at the expense of "
+"visible\n"
+"rendering glitches (some blocks will not be rendered under water and in "
+"caves,\n"
+"as well as sometimes on land).\n"
+"Setting this to a value greater than max_block_send_distance disables this\n"
+"optimization.\n"
+"Stated in mapblocks (16 nodes)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Left key"
+msgid "Automatic forward key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving the player left.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Automatically jump up single-node obstacles."
msgstr ""
-"An iuchair a ghluaiseas an cluicheadair dhan taobh chlì.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Right key"
+msgid "Automatically report to the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving the player right.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Autosave screen size"
msgstr ""
-"An iuchair a ghluaiseas an cluicheadair dhan taobh deas.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Jump key"
+msgid "Autoscaling mode"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for jumping.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Backward key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Sneak key"
-msgstr "Iuchair an tàisleachaidh"
+msgid "Base ground level"
+msgstr "Àirde bhunasach a’ ghrunnda"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for sneaking.\n"
-"Also used for climbing down and descending in water if aux1_descends is "
-"disabled.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Base terrain height."
msgstr ""
-"An iuchair airson tàisleachadh.\n"
-"Tha i ‘ga cleachdadh airson dìreadh agus dìreadh san uisge ma bhios "
-"aux1_descends à comas.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Inventory key"
+msgid "Basic"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the inventory.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Basic privileges"
+msgstr "Sochairean bunasach"
#: src/settings_translation_file.cpp
-msgid "Special key"
+msgid "Beach noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving fast in fast mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Beach noise threshold"
msgstr ""
-"An iuchair a ghluaiseas gu luath sa mhodh luath.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Chat key"
+msgid "Bilinear filtering"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Bind address"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Command key"
+msgid "Biome API temperature and humidity noise parameters"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window to type commands.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Biome noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window to type local commands.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Bits per pixel (aka color depth) in fullscreen mode."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Range select key"
+msgid "Block send optimize distance"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling unlimited view range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Bold and italic font path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fly key"
-msgstr "Iuchair an sgiathaidh"
+msgid "Bold and italic monospace font path"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling flying.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Bold font path"
msgstr ""
-"An iuchair a thoglaicheas an sgiathadh.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Pitch move key"
+msgid "Bold monospace font path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling pitch move mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Build inside player"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fast key"
+msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for toggling fast mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
+"Only works on GLES platforms. Most users will not need to change this.\n"
+"Increasing can reduce artifacting on weaker GPUs.\n"
+"0.1 = Default, 0.25 = Good value for weaker tablets."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Noclip key"
-msgstr "Iuchair modha gun bhearradh"
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling noclip mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Camera smoothing"
msgstr ""
-"An iuchair a thoglaicheas am modh gun bhearradh.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar next key"
-msgstr "Iuchair air adhart a’ ghrad-bhàr"
+msgid "Camera smoothing in cinematic mode"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the next item in the hotbar.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Camera update toggle key"
msgstr ""
-"An iuchair a thaghas an ath-nì air a’ ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar previous key"
-msgstr "Iuchair air ais a’ ghrad-bhàr"
+msgid "Cave noise"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the previous item in the hotbar.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cave noise #1"
msgstr ""
-"An iuchair a thaghas an nì roimhe air a’ ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Mute key"
+msgid "Cave noise #2"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for muting the game.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cave width"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Inc. volume key"
+msgid "Cave1 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for increasing the volume.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cave2 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Dec. volume key"
+msgid "Cavern limit"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for decreasing the volume.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cavern noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Automatic forward key"
+msgid "Cavern taper"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling autoforward.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cavern threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cinematic mode key"
+msgid "Cavern upper limit"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for toggling cinematic mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Center of light curve boost range.\n"
+"Where 0.0 is minimum light level, 1.0 is maximum light level."
msgstr ""
+"Meadhan rainse meudachadh lùb an t-solais.\n"
+"Is 0.0 an ìre as fhainne agus 1.0 an ìre as soilleire air an solas."
#: src/settings_translation_file.cpp
-msgid "Minimap key"
+msgid "Chat font size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling display of minimap.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chat key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for taking screenshots.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Chat log level"
+msgstr "ÃŒre loga na cabadaich"
#: src/settings_translation_file.cpp
-msgid "Drop item key"
+msgid "Chat message count limit"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for dropping the currently selected item.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chat message format"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "View zoom key"
+msgid "Chat message kick threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key to use view zoom when possible.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chat message max length"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 1 key"
-msgstr "Iuchair air slot 1 a’ ghrad-bhàr"
+msgid "Chat toggle key"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the first hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chatcommands"
msgstr ""
-"An iuchair a thaghas a’ chiad slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 2 key"
-msgstr "Iuchair air slot 2 a’ ghrad-bhàr"
+msgid "Chunk size"
+msgstr "Meud nan cnapan"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the second hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cinematic mode"
msgstr ""
-"An iuchair a thaghas an dàrna slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 3 key"
-msgstr "Iuchair air slot 3 a’ ghrad-bhàr"
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the third hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cinematic mode key"
msgstr ""
-"An iuchair a thaghas an treas slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 4 key"
-msgstr "Iuchair air slot 4 a’ ghrad-bhàr"
+msgid "Clean transparent textures"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the fourth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Client"
msgstr ""
-"An iuchair a thaghas an ceathramh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 5 key"
-msgstr "Iuchair air slot 5 a’ ghrad-bhàr"
+msgid "Client and Server"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the fifth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Client modding"
msgstr ""
-"An iuchair a thaghas an còigeamh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 6 key"
-msgstr "Iuchair air slot 6 a’ ghrad-bhàr"
+msgid "Client side modding restrictions"
+msgstr "Cuingeachadh tuilleadain air a’ chliant"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the sixth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Client side node lookup range restriction"
msgstr ""
-"An iuchair a thaghas an siathamh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 7 key"
-msgstr "Iuchair air slot 7 a’ ghrad-bhàr"
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the seventh hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Climbing speed"
msgstr ""
-"An iuchair a thaghas an seachdamh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 8 key"
-msgstr "Iuchair air slot 8 a’ ghrad-bhàr"
+msgid "Cloud radius"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the eighth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Clouds"
msgstr ""
-"An iuchair a thaghas an t-ochdamh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 9 key"
-msgstr "Iuchair air slot 9 a’ ghrad-bhàr"
+msgid "Clouds are a client side effect."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the ninth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Clouds in menu"
msgstr ""
-"An iuchair a thaghas an naoidheamh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 10 key"
-msgstr "Iuchair air slot 10 a’ ghrad-bhàr"
+msgid "Colored fog"
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the tenth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Comma-separated list of flags to hide in the content repository.\n"
+"\"nonfree\" can be used to hide packages which do not qualify as 'free "
+"software',\n"
+"as defined by the Free Software Foundation.\n"
+"You can also specify content ratings.\n"
+"These flags are independent from Minetest versions,\n"
+"so see a full list at https://content.minetest.net/help/content_flags/"
msgstr ""
-"An iuchair a thaghas an deicheamh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 11 key"
-msgstr "Iuchair air slot 11 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 11th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
+"allow them to upload and download data to/from the internet."
msgstr ""
-"An iuchair a thaghas an 11mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 12 key"
-msgstr "Iuchair air slot 12 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 12th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Comma-separated list of trusted mods that are allowed to access insecure\n"
+"functions even when mod security is on (via request_insecure_environment())."
msgstr ""
-"An iuchair a thaghas an 12mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 13 key"
-msgstr "Iuchair air slot 13 a’ ghrad-bhàr"
+msgid "Command key"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 13th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Connect glass"
msgstr ""
-"An iuchair a thaghas an 13mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 14 key"
-msgstr "Iuchair air slot 14 a’ ghrad-bhàr"
+msgid "Connect to external media server"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 14th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Connects glass if supported by node."
msgstr ""
-"An iuchair a thaghas an 14mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 15 key"
-msgstr "Iuchair air slot 15 a’ ghrad-bhàr"
+msgid "Console alpha"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 15th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Console color"
msgstr ""
-"An iuchair a thaghas an 15mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 16 key"
-msgstr "Iuchair air slot 16 a’ ghrad-bhàr"
+msgid "Console height"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 16th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "ContentDB Flag Blacklist"
msgstr ""
-"An iuchair a thaghas an 16mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 17 key"
-msgstr "Iuchair air slot 17 a’ ghrad-bhàr"
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 17th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "ContentDB URL"
msgstr ""
-"An iuchair a thaghas an 17mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 18 key"
-msgstr "Iuchair air slot 18 a’ ghrad-bhàr"
+msgid "Continuous forward"
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 18th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Continuous forward movement, toggled by autoforward key.\n"
+"Press the autoforward key again or the backwards movement to disable."
msgstr ""
-"An iuchair a thaghas an 18mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 19 key"
-msgstr "Iuchair air slot 19 a’ ghrad-bhàr"
+msgid "Controls"
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 19th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Controls length of day/night cycle.\n"
+"Examples:\n"
+"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged."
msgstr ""
-"An iuchair a thaghas an 19mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 20 key"
-msgstr "Iuchair air slot 20 a’ ghrad-bhàr"
+msgid "Controls sinking speed in liquid."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 20th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Controls steepness/depth of lake depressions."
msgstr ""
-"An iuchair a thaghas am 20mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 21 key"
-msgstr "Iuchair air slot 21 a’ ghrad-bhàr"
+msgid "Controls steepness/height of hills."
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 21st hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Controls width of tunnels, a smaller value creates wider tunnels.\n"
+"Value >= 10.0 completely disables generation of tunnels and avoids the\n"
+"intensive noise calculations."
msgstr ""
-"An iuchair a thaghas am 21mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 22 key"
-msgstr "Iuchair air slot 22 a’ ghrad-bhàr"
+msgid "Crash message"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 22nd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Creative"
msgstr ""
-"An iuchair a thaghas am 22mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 23 key"
-msgstr "Iuchair air slot 23 a’ ghrad-bhàr"
+msgid "Crosshair alpha"
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 23rd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
-"An iuchair a thaghas am 23mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 24 key"
-msgstr "Iuchair air slot 24 a’ ghrad-bhàr"
+msgid "Crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 24th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
-"An iuchair a thaghas am 24mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 25 key"
-msgstr "Iuchair air slot 25 a’ ghrad-bhàr"
+msgid "DPI"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 25th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Damage"
msgstr ""
-"An iuchair a thaghas am 25mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 26 key"
-msgstr "Iuchair air slot 26 a’ ghrad-bhàr"
+msgid "Debug info toggle key"
+msgstr "Iuchair toglachadh an fhiosrachaidh dì-bhugachaidh"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 26th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Debug log file size threshold"
msgstr ""
-"An iuchair a thaghas am 26mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 27 key"
-msgstr "Iuchair air slot 27 a’ ghrad-bhàr"
+msgid "Debug log level"
+msgstr "Ìre an loga dì-bhugachaidh"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 27th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Dec. volume key"
msgstr ""
-"An iuchair a thaghas am 27mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 28 key"
-msgstr "Iuchair air slot 28 a’ ghrad-bhàr"
+msgid "Decrease this to increase liquid resistance to movement."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 28th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Dedicated server step"
msgstr ""
-"An iuchair a thaghas am 28mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 29 key"
-msgstr "Iuchair air slot 29 a’ ghrad-bhàr"
+msgid "Default acceleration"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 29th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Default game"
msgstr ""
-"An iuchair a thaghas am 29mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 30 key"
-msgstr "Iuchair air slot 30 a’ ghrad-bhàr"
+msgid ""
+"Default game when creating a new world.\n"
+"This will be overridden when creating a world from the main menu."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 30th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Default password"
msgstr ""
-"An iuchair a thaghas am 30mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 31 key"
-msgstr "Iuchair air slot 31 a’ ghrad-bhàr"
+msgid "Default privileges"
+msgstr "Sochairean tùsail"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 31st hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Default report format"
msgstr ""
-"An iuchair a thaghas am 31mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 32 key"
-msgstr "Iuchair air slot 32 a’ ghrad-bhàr"
+msgid "Default stack size"
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 32nd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Default timeout for cURL, stated in milliseconds.\n"
+"Only has an effect if compiled with cURL."
msgstr ""
-"An iuchair a thaghas am 32mh slot dhen ghrad-bhàr.\n"
-"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "HUD toggle key"
+msgid "Defines areas where trees have apples."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the HUD.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines areas with sandy beaches."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat toggle key"
+msgid "Defines distribution of higher terrain and steepness of cliffs."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of chat.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines distribution of higher terrain."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Large chat console key"
+msgid "Defines full size of caverns, smaller values create larger caverns."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the large chat console.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Defines large-scale river channel structure."
+msgstr "Mìnichidh seo structar sruth nan aibhnean mòra."
#: src/settings_translation_file.cpp
-msgid "Fog toggle key"
+msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of fog.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Defines the base ground level."
+msgstr "Mìnichidh seo àirde bhunasach a’ ghrunnda."
#: src/settings_translation_file.cpp
-msgid "Camera update toggle key"
-msgstr ""
+msgid "Defines the depth of the river channel."
+msgstr "Mìnichidh seo doimhne sruth nan aibhnean."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the camera update. Only used for development\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
msgstr ""
+"Mìnichidh seo an t-astar as motha airson tar-chur chluicheadairean ann am "
+"bloca (0 = gun chuingeachadh)."
#: src/settings_translation_file.cpp
-msgid "Debug info toggle key"
-msgstr "Iuchair toglachadh an fhiosrachaidh dì-bhugachaidh"
+msgid "Defines the width of the river channel."
+msgstr "Mìnichidh seo leud sruth nan aibhnean."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of debug info.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Defines the width of the river valley."
+msgstr "Mìnichidh seo leud gleanntan nan aibhnean."
#: src/settings_translation_file.cpp
-msgid "Profiler toggle key"
+msgid "Defines tree areas and tree density."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for toggling the display of the profiler. Used for development.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Delay between mesh updates on the client in ms. Increasing this will slow\n"
+"down the rate of mesh updates, thus reducing jitter on slower clients."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Toggle camera mode key"
+msgid "Delay in sending blocks after building"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for switching between first- and third-person camera.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Delay showing tooltips, stated in milliseconds."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "View range increase key"
+msgid "Deprecated Lua API handling"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for increasing the viewing range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Depth below which you'll find giant caverns."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "View range decrease key"
+msgid "Depth below which you'll find large caves."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for decreasing the viewing range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Description of server, to be displayed when players join and in the "
+"serverlist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Graphics"
+msgid "Desert noise threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "In-Game"
+msgid ""
+"Deserts occur when np_biome exceeds this value.\n"
+"When the 'snowbiomes' flag is enabled, this is ignored."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Basic"
+msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "VBO"
+msgid "Dig key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enable vertex buffer objects.\n"
-"This should greatly improve graphics performance."
+msgid "Digging particles"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fog"
+msgid "Disable anticheat"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Whether to fog out the end of the visible area."
+msgid "Disallow empty passwords"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Leaves style"
+msgid "Domain name of server, to be displayed in the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Leaves style:\n"
-"- Fancy: all faces visible\n"
-"- Simple: only outer faces, if defined special_tiles are used\n"
-"- Opaque: disable transparency"
-msgstr ""
+msgid "Double tap jump for fly"
+msgstr "Thoir gnogag dhùbailte airson leum no sgiathadh"
#: src/settings_translation_file.cpp
-msgid "Connect glass"
-msgstr ""
+msgid "Double-tapping the jump key toggles fly mode."
+msgstr "Toglaichidh gnogag dhùbailte air iuchair an leuma am modh sgiathaidh."
#: src/settings_translation_file.cpp
-msgid "Connects glass if supported by node."
+msgid "Drop item key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Smooth lighting"
+msgid "Dump the mapgen debug information."
+msgstr "Dumpaich fiosrachadh dì-bhugachaidh aig gineadair nam mapa."
+
+#: src/settings_translation_file.cpp
+msgid "Dungeon maximum Y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enable smooth lighting with simple ambient occlusion.\n"
-"Disable for speed or for different looks."
+msgid "Dungeon minimum Y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Clouds"
+msgid "Dungeon noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Clouds are a client side effect."
+msgid ""
+"Enable IPv6 support (for both client and server).\n"
+"Required for IPv6 connections to work at all."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D clouds"
+msgid ""
+"Enable Lua modding support on client.\n"
+"This support is experimental and API can change."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use 3D cloud look instead of flat."
+msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Node highlighting"
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Method used to highlight selected object."
+msgid "Enable joysticks"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Digging particles"
+msgid "Enable mod channels support."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Adds particles when digging a node."
+msgid "Enable mod security"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Filtering"
+msgid "Enable players getting damage and dying."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mipmapping"
+msgid "Enable random user input (only used for testing)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Use mip mapping to scale textures. May slightly increase performance,\n"
-"especially when using a high resolution texture pack.\n"
-"Gamma correct downscaling is not supported."
+msgid "Enable register confirmation"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Anisotropic filtering"
+msgid ""
+"Enable register confirmation when connecting to server.\n"
+"If disabled, new account will be registered automatically."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use anisotropic filtering when viewing at textures from an angle."
+msgid ""
+"Enable smooth lighting with simple ambient occlusion.\n"
+"Disable for speed or for different looks."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bilinear filtering"
+msgid ""
+"Enable to disallow old clients from connecting.\n"
+"Older clients are compatible in the sense that they will not crash when "
+"connecting\n"
+"to new servers, but they may not support all new features that you are "
+"expecting."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use bilinear filtering when scaling textures."
+msgid ""
+"Enable usage of remote media server (if provided by server).\n"
+"Remote servers offer a significantly faster way to download media (e.g. "
+"textures)\n"
+"when connecting to the server."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Trilinear filtering"
+msgid ""
+"Enable vertex buffer objects.\n"
+"This should greatly improve graphics performance."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use trilinear filtering when scaling textures."
+msgid ""
+"Enable view bobbing and amount of view bobbing.\n"
+"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Clean transparent textures"
+msgid ""
+"Enable/disable running an IPv6 server.\n"
+"Ignored if bind_address is set.\n"
+"Needs enable_ipv6 to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Filtered textures can blend RGB values with fully-transparent neighbors,\n"
-"which PNG optimizers usually discard, sometimes resulting in a dark or\n"
-"light edge to transparent textures. Apply this filter to clean that up\n"
-"at texture load time."
+"Enables Hable's 'Uncharted 2' filmic tone mapping.\n"
+"Simulates the tone curve of photographic film and how this approximates the\n"
+"appearance of high dynamic range images. Mid-range contrast is slightly\n"
+"enhanced, highlights and shadows are gradually compressed."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimum texture size"
+msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
-"can be blurred, so automatically upscale them with nearest-neighbor\n"
-"interpolation to preserve crisp pixels. This sets the minimum texture size\n"
-"for the upscaled textures; higher values look sharper, but require more\n"
-"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n"
-"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n"
-"enabled.\n"
-"This is also used as the base node texture size for world-aligned\n"
-"texture autoscaling."
+msgid "Enables caching of facedir rotated meshes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FSAA"
+msgid "Enables minimap."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
+"Enables the sound system.\n"
+"If disabled, this completely disables all sounds everywhere and the in-game\n"
+"sound controls will be non-functional.\n"
+"Changing this setting requires a restart."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Undersampling"
+msgid "Engine profiling data print interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Undersampling is similar to using a lower screen resolution, but it applies\n"
-"to the game world only, keeping the GUI intact.\n"
-"It should give a significant performance boost at the cost of less detailed "
-"image.\n"
-"Higher values result in a less detailed image."
+msgid "Entity methods"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Shaders allow advanced visual effects and may increase performance on some "
-"video\n"
-"cards.\n"
-"This only works with the OpenGL video backend."
+"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
+"Value = 1.0 creates a uniform, linear tapering.\n"
+"Values > 1.0 create a smooth tapering suitable for the default separated\n"
+"floatlands.\n"
+"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
+"flatter lowlands, suitable for a solid floatland layer."
msgstr ""
+"An t-easponant aig cinn-chaoil na tìre air fhleòd. Atharraichidh seo giùlnan "
+"nan ceann-caol.\n"
+"Cruthaichidh luach = 1.0 cinn-chaoil aon-fhillte loidhneach.\n"
+"Cruthaichidh luachan > 1.0 cinn-chaoil rèidhe\n"
+"a bhios freagarrach dha na cinn-chaoill sgaraichte thùsail.\n"
+"Cruthaichidh luachan < 1.0 (can 0.25) uachdar nas mionaidiche le tìr-ìosal "
+"nas rèidhe a bhios freagarrach\n"
+"do bhreath tìre air fhleòd sholadach."
#: src/settings_translation_file.cpp
-msgid "Shader path"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Path to shader directory. If no path is defined, default location will be "
-"used."
+msgid "FSAA"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Filmic tone mapping"
-msgstr "Mapadh tòna film"
+msgid "Factor noise"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables Hable's 'Uncharted 2' filmic tone mapping.\n"
-"Simulates the tone curve of photographic film and how this approximates the\n"
-"appearance of high dynamic range images. Mid-range contrast is slightly\n"
-"enhanced, highlights and shadows are gradually compressed."
-msgstr ""
+msgid "Fall bobbing factor"
+msgstr "Factar bogadaich an tuiteim"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
+msgid "Fallback font path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
+msgid "Fallback font shadow"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
+msgid "Fallback font shadow alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
+msgid "Fallback font size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
+msgid "Fast key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
+msgid "Fast mode acceleration"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
+msgid "Fast mode speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
+msgid "Fast movement"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
+msgid ""
+"Fast movement (via the \"special\" key).\n"
+"This requires the \"fast\" privilege on the server."
msgstr ""
+"Gluasad luath (leis an iuchair “shònraichteâ€).\n"
+"Bidh feum air sochair “fast†air an fhrithealaiche."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
+msgid "Field of view"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
+msgid "Field of view in degrees."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
+"File in client/serverlist/ that contains your favorite servers displayed in "
+"the\n"
+"Multiplayer Tab."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
+msgid "Filler depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
+msgid "Filler depth noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
+msgid "Filmic tone mapping"
+msgstr "Mapadh tòna film"
#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
+msgid ""
+"Filtered textures can blend RGB values with fully-transparent neighbors,\n"
+"which PNG optimizers usually discard, sometimes resulting in a dark or\n"
+"light edge to transparent textures. Apply this filter to clean that up\n"
+"at texture load time."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
+msgid "Filtering"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
+msgid "First of 4 2D noises that together define hill/mountain range height."
msgstr ""
-"Claonadh na h-èifeachd occlusion na paraileig air fheadh, seo sgèile/2 mar "
-"as àbhaist."
#: src/settings_translation_file.cpp
-msgid "Waving Nodes"
+msgid "First of two 3D noises that together define tunnels."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving liquids"
+msgid "Fixed map seed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving liquids (like water).\n"
-"Requires shaders to be enabled."
+msgid "Fixed virtual joystick"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving liquids wave height"
-msgstr ""
+msgid "Floatland density"
+msgstr "Dùmhlachd na tìre air fhleòd"
#: src/settings_translation_file.cpp
-msgid ""
-"The maximum height of the surface of waving liquids.\n"
-"4.0 = Wave height is two nodes.\n"
-"0.0 = Wave doesn't move at all.\n"
-"Default is 1.0 (1/2 node).\n"
-"Requires waving liquids to be enabled."
+msgid "Floatland maximum Y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving liquids wavelength"
+msgid "Floatland minimum Y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Length of liquid waves.\n"
-"Requires waving liquids to be enabled."
-msgstr ""
+msgid "Floatland noise"
+msgstr "Riasladh na tìre air fhleòd"
#: src/settings_translation_file.cpp
-msgid "Waving liquids wave speed"
-msgstr ""
+msgid "Floatland taper exponent"
+msgstr "Easponant cinn-chaoil air tìr air fhleòd"
#: src/settings_translation_file.cpp
-msgid ""
-"How fast liquid waves will move. Higher = faster.\n"
-"If negative, liquid waves will move backwards.\n"
-"Requires waving liquids to be enabled."
-msgstr ""
+msgid "Floatland tapering distance"
+msgstr "Astar cinn-chaoil air tìr air fhleòd"
#: src/settings_translation_file.cpp
-msgid "Waving leaves"
-msgstr "Crathadh duillich"
+msgid "Floatland water level"
+msgstr "Àirde an uisge air tìr air fhleòd"
#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving leaves.\n"
-"Requires shaders to be enabled."
-msgstr ""
+msgid "Fly key"
+msgstr "Iuchair an sgiathaidh"
#: src/settings_translation_file.cpp
-msgid "Waving plants"
-msgstr ""
+msgid "Flying"
+msgstr "Sgiathadh"
#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving plants.\n"
-"Requires shaders to be enabled."
+msgid "Fog"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Advanced"
+msgid "Fog start"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Arm inertia"
+msgid "Fog toggle key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Arm inertia, gives a more realistic movement of\n"
-"the arm when the camera moves."
+msgid "Font bold by default"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS"
+msgid "Font italic by default"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If FPS would go higher than this, limit it by sleeping\n"
-"to not waste CPU power for no benefit."
+msgid "Font shadow"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "Font shadow alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Font size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Pause on lost window focus"
+msgid "Font size of the default font in point (pt)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Open the pause menu when the window's focus is lost. Does not pause if a "
-"formspec is\n"
-"open."
+msgid "Font size of the fallback font in point (pt)."
msgstr ""
-"Fosgail clàr-taice a’ chuir ’na stad nuair a chailleas an uinneag am fòcas.\n"
-"Cha dèid a chur ’na stad nuair a bhios formspec fosgailte."
#: src/settings_translation_file.cpp
-msgid "Viewing range"
+msgid "Font size of the monospace font in point (pt)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "View distance in nodes."
+msgid ""
+"Font size of the recent chat text and chat prompt in point (pt).\n"
+"Value 0 will use the default font size."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Near plane"
+msgid ""
+"Format of player chat messages. The following strings are valid "
+"placeholders:\n"
+"@name, @message, @timestamp (optional)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
-"Only works on GLES platforms. Most users will not need to change this.\n"
-"Increasing can reduce artifacting on weaker GPUs.\n"
-"0.1 = Default, 0.25 = Good value for weaker tablets."
+msgid "Format of screenshots."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Screen width"
+msgid "Formspec Default Background Color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Width component of the initial window size."
+msgid "Formspec Default Background Opacity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Screen height"
+msgid "Formspec Full-Screen Background Color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Height component of the initial window size."
+msgid "Formspec Full-Screen Background Opacity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Autosave screen size"
+msgid "Formspec default background color (R,G,B)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Save window size automatically when modified."
+msgid "Formspec default background opacity (between 0 and 255)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Full screen"
+msgid "Formspec full-screen background color (R,G,B)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fullscreen mode."
+msgid "Formspec full-screen background opacity (between 0 and 255)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Full screen BPP"
+msgid "Forward key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bits per pixel (aka color depth) in fullscreen mode."
+msgid "Fourth of 4 2D noises that together define hill/mountain range height."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "VSync"
+msgid "Fractal type"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Vertical screen synchronization."
+msgid "Fraction of the visible distance at which fog starts to be rendered"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Field of view"
+msgid "FreeType fonts"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Field of view in degrees."
+msgid ""
+"From how far blocks are generated for clients, stated in mapblocks (16 "
+"nodes)."
msgstr ""
+"An t-astar on a thèid blocaichean a ghintinn dha na cliantan, ann am bloca "
+"mapa (16 nòdan)."
#: src/settings_translation_file.cpp
-msgid "Light curve gamma"
+msgid ""
+"From how far blocks are sent to clients, stated in mapblocks (16 nodes)."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Alters the light curve by applying 'gamma correction' to it.\n"
-"Higher values make middle and lower light levels brighter.\n"
-"Value '1.0' leaves the light curve unaltered.\n"
-"This only has significant effect on daylight and artificial\n"
-"light, it has very little effect on natural night light."
+"From how far clients know about objects, stated in mapblocks (16 nodes).\n"
+"\n"
+"Setting this larger than active_block_range will also cause the server\n"
+"to maintain active objects up to this distance in the direction the\n"
+"player is looking. (This can avoid mobs suddenly disappearing from view)"
msgstr ""
-"Atharraichidh seo lùb an t-solais a’ cur “gamma correction†air.\n"
-"Nì luachan nas àirde an solas meadhanach no fann nas soilleire.\n"
-"Fàgaidh luach “1.0†lùb an t-solais mar a tha i.\n"
-"Chan eil buaidh mhòr aige ach air solas an latha is na h-oidhche fuadaine,\n"
-"agus cha mhòr nach bi buaidh air solas oidhche nàdarra idir."
#: src/settings_translation_file.cpp
-msgid "Light curve low gradient"
+msgid "Full screen"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Gradient of light curve at minimum light level.\n"
-"Controls the contrast of the lowest light levels."
+msgid "Full screen BPP"
msgstr ""
-"Caisead lùb an t-solais aig an ìre as fainne.\n"
-"Stiùirichidh seo iomsgaradh an t-solais fhainn."
#: src/settings_translation_file.cpp
-msgid "Light curve high gradient"
+msgid "Fullscreen mode."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Gradient of light curve at maximum light level.\n"
-"Controls the contrast of the highest light levels."
+msgid "GUI scaling"
msgstr ""
-"Caisead lùb an t-solais aig an ìre as soilleire.\n"
-"Stiùirichidh seo iomsgaradh an t-solais shoilleir."
#: src/settings_translation_file.cpp
-msgid "Light curve boost"
+msgid "GUI scaling filter"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Strength of light curve boost.\n"
-"The 3 'boost' parameters define a range of the light\n"
-"curve that is boosted in brightness."
+msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Light curve boost center"
+msgid "Global callbacks"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Center of light curve boost range.\n"
-"Where 0.0 is minimum light level, 1.0 is maximum light level."
+"Global map generation attributes.\n"
+"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
+"and junglegrass, in all other mapgens this flag controls all decorations."
msgstr ""
-"Meadhan rainse meudachadh lùb an t-solais.\n"
-"Is 0.0 an ìre as fhainne agus 1.0 an ìre as soilleire air an solas."
+"Buadhan gintinn mapa uile-choitcheann.\n"
+"Ann an gineadair nam mapa v6, stiùirichidh bratach “decorations†sgeadachadh "
+"seach craobhan is feur dlùth-choille\n"
+"agus ann an gineadairean nam mapa eile, stiùirichidh a’ bhratach seo a h-"
+"uile sgeadachadh."
#: src/settings_translation_file.cpp
-msgid "Light curve boost spread"
+msgid ""
+"Gradient of light curve at maximum light level.\n"
+"Controls the contrast of the highest light levels."
msgstr ""
+"Caisead lùb an t-solais aig an ìre as soilleire.\n"
+"Stiùirichidh seo iomsgaradh an t-solais shoilleir."
#: src/settings_translation_file.cpp
msgid ""
-"Spread of light curve boost range.\n"
-"Controls the width of the range to be boosted.\n"
-"Standard deviation of the light curve boost Gaussian."
+"Gradient of light curve at minimum light level.\n"
+"Controls the contrast of the lowest light levels."
msgstr ""
+"Caisead lùb an t-solais aig an ìre as fainne.\n"
+"Stiùirichidh seo iomsgaradh an t-solais fhainn."
#: src/settings_translation_file.cpp
-msgid "Texture path"
+msgid "Graphics"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Path to texture directory. All textures are first searched from here."
+msgid "Gravity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Video driver"
-msgstr "Dràibhear video"
+msgid "Ground level"
+msgstr "Àirde a’ ghrunnda"
#: src/settings_translation_file.cpp
-msgid ""
-"The rendering back-end for Irrlicht.\n"
-"A restart is required after changing this.\n"
-"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
-"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+msgid "Ground noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cloud radius"
+msgid "HTTP mods"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Radius of cloud area stated in number of 64 node cloud squares.\n"
-"Values larger than 26 will start to produce sharp cutoffs at cloud area "
-"corners."
+msgid "HUD scale factor"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "View bobbing factor"
+msgid "HUD toggle key"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable view bobbing and amount of view bobbing.\n"
-"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
+"Handling for deprecated Lua API calls:\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
+"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fall bobbing factor"
-msgstr "Factar bogadaich an tuiteim"
-
-#: src/settings_translation_file.cpp
msgid ""
-"Multiplier for fall bobbing.\n"
-"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
+"Have the profiler instrument itself:\n"
+"* Instrument an empty function.\n"
+"This estimates the overhead, that instrumentation is adding (+1 function "
+"call).\n"
+"* Instrument the sampler being used to update the statistics."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D mode"
+msgid "Heat blend noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"3D support.\n"
-"Currently supported:\n"
-"- none: no 3d output.\n"
-"- anaglyph: cyan/magenta color 3d.\n"
-"- interlaced: odd/even line based polarisation screen support.\n"
-"- topbottom: split screen top/bottom.\n"
-"- sidebyside: split screen side by side.\n"
-"- crossview: Cross-eyed 3d\n"
-"- pageflip: quadbuffer based 3d.\n"
-"Note that the interlaced mode requires shaders to be enabled."
+msgid "Heat noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D mode parallax strength"
+msgid "Height component of the initial window size."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of 3D mode parallax."
+msgid "Height noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Console height"
+msgid "Height select noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
+msgid "High-precision FPU"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Console color"
+msgid "Hill steepness"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "In-game chat console background color (R,G,B)."
+msgid "Hill threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Console alpha"
+msgid "Hilliness1 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
+msgid "Hilliness2 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec Full-Screen Background Opacity"
+msgid "Hilliness3 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec full-screen background opacity (between 0 and 255)."
+msgid "Hilliness4 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec Full-Screen Background Color"
+msgid "Homepage of server, to be displayed in the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec full-screen background color (R,G,B)."
+msgid ""
+"Horizontal acceleration in air when jumping or falling,\n"
+"in nodes per second per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec Default Background Opacity"
+msgid ""
+"Horizontal and vertical acceleration in fast mode,\n"
+"in nodes per second per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec default background opacity (between 0 and 255)."
+msgid ""
+"Horizontal and vertical acceleration on ground or when climbing,\n"
+"in nodes per second per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec Default Background Color"
-msgstr ""
+msgid "Hotbar next key"
+msgstr "Iuchair air adhart a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Formspec default background color (R,G,B)."
-msgstr ""
+msgid "Hotbar previous key"
+msgstr "Iuchair air ais a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Selection box color"
-msgstr ""
+msgid "Hotbar slot 1 key"
+msgstr "Iuchair air slot 1 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Selection box border color (R,G,B)."
-msgstr ""
+msgid "Hotbar slot 10 key"
+msgstr "Iuchair air slot 10 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Selection box width"
-msgstr ""
+msgid "Hotbar slot 11 key"
+msgstr "Iuchair air slot 11 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Width of the selection box lines around nodes."
-msgstr ""
+msgid "Hotbar slot 12 key"
+msgstr "Iuchair air slot 12 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Crosshair color"
-msgstr ""
+msgid "Hotbar slot 13 key"
+msgstr "Iuchair air slot 13 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr ""
+msgid "Hotbar slot 14 key"
+msgstr "Iuchair air slot 14 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha"
-msgstr ""
+msgid "Hotbar slot 15 key"
+msgstr "Iuchair air slot 15 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr ""
+msgid "Hotbar slot 16 key"
+msgstr "Iuchair air slot 16 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Recent Chat Messages"
-msgstr ""
+msgid "Hotbar slot 17 key"
+msgstr "Iuchair air slot 17 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Maximum number of recent chat messages to show"
-msgstr ""
+msgid "Hotbar slot 18 key"
+msgstr "Iuchair air slot 18 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Desynchronize block animation"
-msgstr ""
+msgid "Hotbar slot 19 key"
+msgstr "Iuchair air slot 19 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Whether node texture animations should be desynchronized per mapblock."
-msgstr ""
+msgid "Hotbar slot 2 key"
+msgstr "Iuchair air slot 2 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Maximum hotbar width"
-msgstr "Leud as motha a’ ghrad-bhàr"
+msgid "Hotbar slot 20 key"
+msgstr "Iuchair air slot 20 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid ""
-"Maximum proportion of current window to be used for hotbar.\n"
-"Useful if there's something to be displayed right or left of hotbar."
-msgstr ""
-"A’ chuid as motha dhen uinneag làithreach a thèid a chleachdadh airson a’ "
-"ghrad-bhàr.\n"
-"Tha seo feumail ma dh’fheumas tu rudeigin a shealltainn taobh deas no clì "
-"air a’ ghrad-bhàr."
+msgid "Hotbar slot 21 key"
+msgstr "Iuchair air slot 21 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "HUD scale factor"
-msgstr ""
+msgid "Hotbar slot 22 key"
+msgstr "Iuchair air slot 22 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Modifies the size of the hudbar elements."
-msgstr ""
+msgid "Hotbar slot 23 key"
+msgstr "Iuchair air slot 23 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Mesh cache"
-msgstr ""
+msgid "Hotbar slot 24 key"
+msgstr "Iuchair air slot 24 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Enables caching of facedir rotated meshes."
-msgstr ""
+msgid "Hotbar slot 25 key"
+msgstr "Iuchair air slot 25 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Mapblock mesh generation delay"
-msgstr ""
+msgid "Hotbar slot 26 key"
+msgstr "Iuchair air slot 26 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid ""
-"Delay between mesh updates on the client in ms. Increasing this will slow\n"
-"down the rate of mesh updates, thus reducing jitter on slower clients."
-msgstr ""
+msgid "Hotbar slot 27 key"
+msgstr "Iuchair air slot 27 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Mapblock mesh generator's MapBlock cache size in MB"
-msgstr ""
+msgid "Hotbar slot 28 key"
+msgstr "Iuchair air slot 28 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid ""
-"Size of the MapBlock cache of the mesh generator. Increasing this will\n"
-"increase the cache hit %, reducing the data being copied from the main\n"
-"thread, thus reducing jitter."
-msgstr ""
+msgid "Hotbar slot 29 key"
+msgstr "Iuchair air slot 29 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Minimap"
-msgstr ""
+msgid "Hotbar slot 3 key"
+msgstr "Iuchair air slot 3 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Enables minimap."
-msgstr ""
+msgid "Hotbar slot 30 key"
+msgstr "Iuchair air slot 30 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Round minimap"
-msgstr ""
+msgid "Hotbar slot 31 key"
+msgstr "Iuchair air slot 31 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Shape of the minimap. Enabled = round, disabled = square."
-msgstr ""
+msgid "Hotbar slot 32 key"
+msgstr "Iuchair air slot 32 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Minimap scan height"
-msgstr ""
+msgid "Hotbar slot 4 key"
+msgstr "Iuchair air slot 4 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid ""
-"True = 256\n"
-"False = 128\n"
-"Usable to make minimap smoother on slower machines."
-msgstr ""
-"True = 256\n"
-"False = 128\n"
-"Gabhaidh a chleachdadh airson am meanbh-mhapa a dhèanamh nas rèidhe air "
-"uidheaman slaodach."
+msgid "Hotbar slot 5 key"
+msgstr "Iuchair air slot 5 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Colored fog"
-msgstr ""
+msgid "Hotbar slot 6 key"
+msgstr "Iuchair air slot 6 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid ""
-"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
-msgstr ""
+msgid "Hotbar slot 7 key"
+msgstr "Iuchair air slot 7 a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Ambient occlusion gamma"
-msgstr ""
+msgid "Hotbar slot 8 key"
+msgstr "Iuchair air slot 8 a’ ghrad-bhàr"
+
+#: src/settings_translation_file.cpp
+msgid "Hotbar slot 9 key"
+msgstr "Iuchair air slot 9 a’ ghrad-bhàr"
+
+#: src/settings_translation_file.cpp
+msgid "How deep to make rivers."
+msgstr "Dè cho domhainn ’s a bhios aibhnean."
#: src/settings_translation_file.cpp
msgid ""
-"The strength (darkness) of node ambient-occlusion shading.\n"
-"Lower is darker, Higher is lighter. The valid range of values for this\n"
-"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n"
-"set to the nearest valid value."
+"How fast liquid waves will move. Higher = faster.\n"
+"If negative, liquid waves will move backwards.\n"
+"Requires waving liquids to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Inventory items animations"
+msgid ""
+"How much the server will wait before unloading unused mapblocks.\n"
+"Higher value is smoother, but will use more RAM."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enables animation of inventory items."
-msgstr ""
+msgid "How wide to make rivers."
+msgstr "Dè cho leathann ’s a bhios aibhnean."
#: src/settings_translation_file.cpp
-msgid "Fog start"
+msgid "Humidity blend noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fraction of the visible distance at which fog starts to be rendered"
+msgid "Humidity noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Opaque liquids"
+msgid "Humidity variation for biomes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Makes all liquids opaque"
-msgstr "Dèan gach lionn trìd-dhoilleir"
+msgid "IPv6"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "World-aligned textures mode"
+msgid "IPv6 server"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Textures on a node may be aligned either to the node or to the world.\n"
-"The former mode suits better things like machines, furniture, etc., while\n"
-"the latter makes stairs and microblocks fit surroundings better.\n"
-"However, as this possibility is new, thus may not be used by older servers,\n"
-"this option allows enforcing it for certain node types. Note though that\n"
-"that is considered EXPERIMENTAL and may not work properly."
+"If FPS would go higher than this, limit it by sleeping\n"
+"to not waste CPU power for no benefit."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Autoscaling mode"
+msgid ""
+"If disabled, \"special\" key is used to fly fast if both fly and fast mode "
+"are\n"
+"enabled."
msgstr ""
+"Ma tha seo à comas, thèid iuchair “shònraichte†a chleachdadh airson "
+"sgiathadh\n"
+"ma tha an dà chuid am modh sgiathaidh ’s am modh luadh an comas."
#: src/settings_translation_file.cpp
msgid ""
-"World-aligned textures may be scaled to span several nodes. However,\n"
-"the server may not send the scale you want, especially if you use\n"
-"a specially-designed texture pack; with this option, the client tries\n"
-"to determine the scale automatically basing on the texture size.\n"
-"See also texture_min_size.\n"
-"Warning: This option is EXPERIMENTAL!"
+"If enabled the server will perform map block occlusion culling based on\n"
+"on the eye position of the player. This can reduce the number of blocks\n"
+"sent to the client 50-80%. The client will not longer receive most "
+"invisible\n"
+"so that the utility of noclip mode is reduced."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Show entity selection boxes"
+msgid ""
+"If enabled together with fly mode, player is able to fly through solid "
+"nodes.\n"
+"This requires the \"noclip\" privilege on the server."
msgstr ""
+"Ma tha seo an comas còmhla ris a’ mhodh sgiathaidh, ’s urrainn dhan "
+"chluicheadair sgiathadh tro nòdan soladach.\n"
+"Bidh feum air sochair “noclip†on fhrithealaiche."
#: src/settings_translation_file.cpp
-msgid "Menus"
+msgid ""
+"If enabled, \"special\" key instead of \"sneak\" key is used for climbing "
+"down and\n"
+"descending."
msgstr ""
+"Ma tha seo an comas, thèid iuchair “shònraichte†seach “tàisleachaidh†a "
+"chleachdadh\n"
+"airson dìreadh."
#: src/settings_translation_file.cpp
-msgid "Clouds in menu"
+msgid ""
+"If enabled, actions are recorded for rollback.\n"
+"This option is only read when server starts."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use a cloud animation for the main menu background."
+msgid "If enabled, disable cheat prevention in multiplayer."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "GUI scaling"
+msgid ""
+"If enabled, invalid world data won't cause the server to shut down.\n"
+"Only enable this if you know what you are doing."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Scale GUI by a user specified value.\n"
-"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n"
-"This will smooth over some of the rough edges, and blend\n"
-"pixels when scaling down, at the cost of blurring some\n"
-"edge pixels when images are scaled by non-integer sizes."
+"If enabled, makes move directions relative to the player's pitch when flying "
+"or swimming."
msgstr ""
+"Ma tha seo an comas, bidh an gluasad a-rèir pids a’ chluicheadair rè "
+"sgiathaidh no snàimh."
#: src/settings_translation_file.cpp
-msgid "GUI scaling filter"
+msgid "If enabled, new players cannot join with an empty password."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"When gui_scaling_filter is true, all GUI images need to be\n"
-"filtered in software, but some images are generated directly\n"
-"to hardware (e.g. render-to-texture for nodes in inventory)."
+"If enabled, you can place blocks at the position (feet + eye level) where "
+"you stand.\n"
+"This is helpful when working with nodeboxes in small areas."
msgstr ""
+"Ma tha seo an comas, ’s urrainn dhut blocaichean a chur ann far a bheil thu "
+"’nad sheasamh (co chois + àirde do shùil).\n"
+"Bidh seo feumail nuair a bhios tu ag obair le bogsaichean nòd ann an "
+"raointean beaga."
#: src/settings_translation_file.cpp
-msgid "GUI scaling filter txr2img"
+msgid ""
+"If the CSM restriction for node range is enabled, get_node calls are "
+"limited\n"
+"to this distance from the player to the node."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"When gui_scaling_filter_txr2img is true, copy those images\n"
-"from hardware to software for scaling. When false, fall back\n"
-"to the old scaling method, for video drivers that don't\n"
-"properly support downloading textures back from hardware."
+"If the file size of debug.txt exceeds the number of megabytes specified in\n"
+"this setting when it is opened, the file is moved to debug.txt.1,\n"
+"deleting an older debug.txt.1 if it exists.\n"
+"debug.txt is only moved if this setting is positive."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Tooltip delay"
+msgid "If this is set, players will always (re)spawn at the given position."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Delay showing tooltips, stated in milliseconds."
-msgstr ""
+msgid "Ignore world errors"
+msgstr "Leig seachad mearachdan an t-saoghail"
#: src/settings_translation_file.cpp
-msgid "Append item name"
+msgid "In-Game"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Append item name to tooltip."
+msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FreeType fonts"
+msgid "In-game chat console background color (R,G,B)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Whether FreeType fonts are used, requires FreeType support to be compiled "
-"in.\n"
-"If disabled, bitmap and XML vectors fonts are used instead."
+msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font bold by default"
+msgid "Inc. volume key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font italic by default"
+msgid "Initial vertical speed when jumping, in nodes per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font shadow"
+msgid ""
+"Instrument builtin.\n"
+"This is usually only needed by core/builtin contributors"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
-"drawn."
+msgid "Instrument chatcommands on registration."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font shadow alpha"
+msgid ""
+"Instrument global callback functions on registration.\n"
+"(anything you pass to a minetest.register_*() function)"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255."
+"Instrument the action function of Active Block Modifiers on registration."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font size"
+msgid ""
+"Instrument the action function of Loading Block Modifiers on registration."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font size of the default font in point (pt)."
+msgid "Instrument the methods of entities on registration."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Regular font path"
+msgid "Instrumentation"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Path to the default font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"The fallback font will be used if the font cannot be loaded."
+msgid "Interval of saving important changes in the world, stated in seconds."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bold font path"
+msgid "Interval of sending time of day to clients."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Italic font path"
+msgid "Inventory items animations"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bold and italic font path"
+msgid "Inventory key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Monospace font size"
+msgid "Invert mouse"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font size of the monospace font in point (pt)."
+msgid "Invert vertical mouse movement."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Monospace font path"
-msgstr "Slighe dhan chlò aon-leud"
+msgid "Italic font path"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Path to the monospace font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"This font is used for e.g. the console and profiler screen."
+msgid "Italic monospace font path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bold monospace font path"
+msgid "Item entity TTL"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Italic monospace font path"
+msgid "Iterations"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bold and italic monospace font path"
+msgid ""
+"Iterations of the recursive function.\n"
+"Increasing this increases the amount of fine detail, but also\n"
+"increases processing load.\n"
+"At iterations = 20 this mapgen has a similar load to mapgen V7."
msgstr ""
+"Ath-thriall an fhoincsein ath-chùrsaiche.\n"
+"Ma mheudaicheas tu seo, bidh barrachd mion-chruthan air\n"
+"ach bi barrachd eallaich air a’ phròiseasadh cuideachd.\n"
+"Ma tha ath-thriall = 20, bidh an t-eallach aig gineadair nam mapa seo "
+"coltach ri eallach gineadair nam mapa V7."
#: src/settings_translation_file.cpp
-msgid "Fallback font size"
+msgid "Joystick ID"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font size of the fallback font in point (pt)."
+msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fallback font shadow"
+msgid "Joystick deadzone"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
-"be drawn."
+msgid "Joystick frustum sensitivity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fallback font shadow alpha"
+msgid "Joystick type"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255."
+"Julia set only.\n"
+"W component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Has no effect on 3D fractals.\n"
+"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fallback font path"
+msgid ""
+"Julia set only.\n"
+"X component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Path of the fallback font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"This font will be used for certain languages or if the default font is "
-"unavailable."
+"Julia set only.\n"
+"Y component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat font size"
+msgid ""
+"Julia set only.\n"
+"Z component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Font size of the recent chat text and chat prompt in point (pt).\n"
-"Value 0 will use the default font size."
+msgid "Julia w"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Screenshot folder"
+msgid "Julia x"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Path to save screenshots at. Can be an absolute or relative path.\n"
-"The folder will be created if it doesn't already exist."
+msgid "Julia y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Screenshot format"
+msgid "Julia z"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Format of screenshots."
+msgid "Jump key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Screenshot quality"
+msgid "Jumping speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Screenshot quality. Only used for JPEG format.\n"
-"1 means worst quality; 100 means best quality.\n"
-"Use 0 for default quality."
+"Key for decreasing the viewing range.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "DPI"
+msgid ""
+"Key for decreasing the volume.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
-"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
-"screens."
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thoglaicheas an sgiathadh.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Enable console window"
+msgid ""
+"Key for dropping the currently selected item.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Windows systems only: Start Minetest with the command line window in the "
-"background.\n"
-"Contains the same information as the file debug.txt (default name)."
+"Key for increasing the viewing range.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Sound"
+msgid ""
+"Key for increasing the volume.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables the sound system.\n"
-"If disabled, this completely disables all sounds everywhere and the in-game\n"
-"sound controls will be non-functional.\n"
-"Changing this setting requires a restart."
+"Key for jumping.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Volume"
+msgid ""
+"Key for moving fast in fast mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a ghluaiseas gu luath sa mhodh luath.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Volume of all sounds.\n"
-"Requires the sound system to be enabled."
+"Key for moving the player backward.\n"
+"Will also disable autoforward, when active.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mute sound"
+msgid ""
+"Key for moving the player forward.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Whether to mute sounds. You can unmute sounds at any time, unless the\n"
-"sound system is disabled (enable_sound=false).\n"
-"In-game, you can toggle the mute state with the mute key or by using the\n"
-"pause menu."
+"Key for moving the player left.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a ghluaiseas an cluicheadair dhan taobh chlì.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Client"
+msgid ""
+"Key for moving the player right.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a ghluaiseas an cluicheadair dhan taobh deas.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Network"
+msgid ""
+"Key for muting the game.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Server address"
+msgid ""
+"Key for opening the chat window to type commands.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Address to connect to.\n"
-"Leave this blank to start a local server.\n"
-"Note that the address field in the main menu overrides this setting."
+"Key for opening the chat window to type local commands.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Remote port"
+msgid ""
+"Key for opening the chat window.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Port to connect to (UDP).\n"
-"Note that the port field in the main menu overrides this setting."
+"Key for opening the inventory.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Prometheus listener address"
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thoglaicheas an sgiathadh.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Prometheus listener address.\n"
-"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n"
-"enable metrics listener for Prometheus on that address.\n"
-"Metrics can be fetch on http://127.0.0.1:30000/metrics"
+"Key for selecting the 11th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an 11mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Saving map received from server"
+msgid ""
+"Key for selecting the 12th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an 12mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Save the map received by the client on disk."
+msgid ""
+"Key for selecting the 13th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an 13mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Connect to external media server"
+msgid ""
+"Key for selecting the 14th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an 14mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable usage of remote media server (if provided by server).\n"
-"Remote servers offer a significantly faster way to download media (e.g. "
-"textures)\n"
-"when connecting to the server."
+"Key for selecting the 15th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an 15mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Client modding"
+msgid ""
+"Key for selecting the 16th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an 16mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable Lua modding support on client.\n"
-"This support is experimental and API can change."
+"Key for selecting the 17th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an 17mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Serverlist URL"
+msgid ""
+"Key for selecting the 18th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an 18mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "URL to the server list displayed in the Multiplayer Tab."
+msgid ""
+"Key for selecting the 19th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an 19mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Serverlist file"
+msgid ""
+"Key for selecting the 20th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 20mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"File in client/serverlist/ that contains your favorite servers displayed in "
-"the\n"
-"Multiplayer Tab."
+"Key for selecting the 21st hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 21mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Maximum size of the out chat queue"
+msgid ""
+"Key for selecting the 22nd hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 22mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Maximum size of the out chat queue.\n"
-"0 to disable queueing and -1 to make the queue size unlimited."
+"Key for selecting the 23rd hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 23mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Enable register confirmation"
+msgid ""
+"Key for selecting the 24th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 24mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable register confirmation when connecting to server.\n"
-"If disabled, new account will be registered automatically."
+"Key for selecting the 25th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 25mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Mapblock unload timeout"
+msgid ""
+"Key for selecting the 26th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 26mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Timeout for client to remove unused map data from memory."
+msgid ""
+"Key for selecting the 27th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 27mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Mapblock limit"
+msgid ""
+"Key for selecting the 28th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 28mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of mapblocks for client to be kept in memory.\n"
-"Set to -1 for unlimited amount."
+"Key for selecting the 29th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 29mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Show debug info"
+msgid ""
+"Key for selecting the 30th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 30mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Whether to show the client debug info (has the same effect as hitting F5)."
+"Key for selecting the 31st hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 31mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server / Singleplayer"
+msgid ""
+"Key for selecting the 32nd hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas am 32mh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server name"
+msgid ""
+"Key for selecting the eighth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an t-ochdamh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Name of the server, to be displayed when players join and in the serverlist."
+"Key for selecting the fifth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an còigeamh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server description"
+msgid ""
+"Key for selecting the first hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas a’ chiad slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Description of server, to be displayed when players join and in the "
-"serverlist."
+"Key for selecting the fourth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an ceathramh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Domain name of server, to be displayed in the serverlist."
+msgid ""
+"Key for selecting the next item in the hotbar.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an ath-nì air a’ ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server URL"
+msgid ""
+"Key for selecting the ninth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an naoidheamh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Homepage of server, to be displayed in the serverlist."
+msgid ""
+"Key for selecting the previous item in the hotbar.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an nì roimhe air a’ ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Announce server"
-msgstr "Ainmich am frithealaiche"
-
-#: src/settings_translation_file.cpp
-msgid "Automatically report to the serverlist."
+msgid ""
+"Key for selecting the second hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an dàrna slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Announce to this serverlist."
+msgid ""
+"Key for selecting the seventh hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an seachdamh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Strip color codes"
+msgid ""
+"Key for selecting the sixth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an siathamh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Remove color codes from incoming chat messages\n"
-"Use this to stop players from being able to use color in their messages"
+"Key for selecting the tenth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an deicheamh slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server port"
+msgid ""
+"Key for selecting the third hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thaghas an treas slot dhen ghrad-bhàr.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Network port to listen (UDP).\n"
-"This value will be overridden when starting from the main menu."
+"Key for sneaking.\n"
+"Also used for climbing down and descending in water if aux1_descends is "
+"disabled.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair airson tàisleachadh.\n"
+"Tha i ‘ga cleachdadh airson dìreadh agus dìreadh san uisge ma bhios "
+"aux1_descends à comas.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Bind address"
+msgid ""
+"Key for switching between first- and third-person camera.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "The network interface that the server listens on."
+msgid ""
+"Key for taking screenshots.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strict protocol checking"
+msgid ""
+"Key for toggling autoforward.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable to disallow old clients from connecting.\n"
-"Older clients are compatible in the sense that they will not crash when "
-"connecting\n"
-"to new servers, but they may not support all new features that you are "
-"expecting."
+"Key for toggling cinematic mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Remote media"
+msgid ""
+"Key for toggling display of minimap.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Specifies URL from which client fetches media instead of using UDP.\n"
-"$filename should be accessible from $remote_media$filename via cURL\n"
-"(obviously, remote_media should end with a slash).\n"
-"Files that are not present will be fetched the usual way."
+"Key for toggling fast mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "IPv6 server"
+msgid ""
+"Key for toggling flying.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thoglaicheas an sgiathadh.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable/disable running an IPv6 server.\n"
-"Ignored if bind_address is set.\n"
-"Needs enable_ipv6 to be enabled."
+"Key for toggling noclip mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"An iuchair a thoglaicheas am modh gun bhearradh.\n"
+"Faic http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Maximum simultaneous block sends per client"
+msgid ""
+"Key for toggling pitch move mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of blocks that are simultaneously sent per client.\n"
-"The maximum total count is calculated dynamically:\n"
-"max_total = ceil((#clients + max_users) * per_client / 4)"
+"Key for toggling the camera update. Only used for development\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Delay in sending blocks after building"
+msgid ""
+"Key for toggling the display of chat.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"To reduce lag, block transfers are slowed down when a player is building "
-"something.\n"
-"This determines how long they are slowed down after placing or removing a "
-"node."
+"Key for toggling the display of debug info.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Max. packets per iteration"
+msgid ""
+"Key for toggling the display of fog.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of packets sent per send step, if you have a slow connection\n"
-"try reducing it, but don't reduce it to a number below double of targeted\n"
-"client number."
+"Key for toggling the display of the HUD.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default game"
+msgid ""
+"Key for toggling the display of the large chat console.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Default game when creating a new world.\n"
-"This will be overridden when creating a world from the main menu."
+"Key for toggling the display of the profiler. Used for development.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Message of the day"
+msgid ""
+"Key for toggling unlimited view range.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Message of the day displayed to players connecting."
+msgid ""
+"Key to use view zoom when possible.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum users"
+msgid "Kick players who sent more than X messages per 10 seconds."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum number of players that can be connected simultaneously."
+msgid "Lake steepness"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Map directory"
+msgid "Lake threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"World directory (everything in the world is stored here).\n"
-"Not needed if starting from the main menu."
+msgid "Language"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Item entity TTL"
+msgid "Large cave depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Time in seconds for item entity (dropped items) to live.\n"
-"Setting it to -1 disables the feature."
+msgid "Large cave maximum number"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default stack size"
+msgid "Large cave minimum number"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Specifies the default stack size of nodes, items and tools.\n"
-"Note that mods or games may explicitly set a stack for certain (or all) "
-"items."
+msgid "Large cave proportion flooded"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Damage"
+msgid "Large chat console key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable players getting damage and dying."
+msgid "Leaves style"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Creative"
+msgid ""
+"Leaves style:\n"
+"- Fancy: all faces visible\n"
+"- Simple: only outer faces, if defined special_tiles are used\n"
+"- Opaque: disable transparency"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Left key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fixed map seed"
+msgid ""
+"Length of a server tick and the interval at which objects are generally "
+"updated over\n"
+"network."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"A chosen map seed for a new map, leave empty for random.\n"
-"Will be overridden when creating a new world in the main menu."
+"Length of liquid waves.\n"
+"Requires waving liquids to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default password"
+msgid "Length of time between Active Block Modifier (ABM) execution cycles"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "New users need to input this password."
+msgid "Length of time between NodeTimer execution cycles"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default privileges"
-msgstr "Sochairean tùsail"
+msgid "Length of time between active block management cycles"
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The privileges that new users automatically get.\n"
-"See /privs in game for a full list on your server and mod configuration."
+"Level of logging to be written to debug.txt:\n"
+"- <nothing> (no logging)\n"
+"- none (messages with no level)\n"
+"- error\n"
+"- warning\n"
+"- action\n"
+"- info\n"
+"- verbose"
msgstr ""
-"Na sochairean a gheibh cleachdaichean ùra gu fèin-obrachail.\n"
-"Faic /privs sa gheama airson liosta slàn air rèiteachadh an fhrithealaiche ’"
-"s nan tuilleadan agad."
-
-#: src/settings_translation_file.cpp
-msgid "Basic privileges"
-msgstr "Sochairean bunasach"
+"Ìre an loga a thèid a sgrìobhadh gu debug.txt:\n"
+"- <bàn> (gun logadh)\n"
+"- none (teachdaireachdan gun ìre)\n"
+"- error\n"
+"- warning\n"
+"- action\n"
+"- info\n"
+"- verbose"
#: src/settings_translation_file.cpp
-msgid "Privileges that players with basic_privs can grant"
-msgstr "Sochairean as urrainn do chluicheadairean le basic_privs a cheadachadh"
+msgid "Light curve boost"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Unlimited player transfer distance"
-msgstr "Astar tar-chur nan cluicheadairean gun chuingeachadh"
+msgid "Light curve boost center"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Whether players are shown to clients without any range limit.\n"
-"Deprecated, use the setting player_transfer_distance instead."
+msgid "Light curve boost spread"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Player transfer distance"
+msgid "Light curve gamma"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
+msgid "Light curve high gradient"
msgstr ""
-"Mìnichidh seo an t-astar as motha airson tar-chur chluicheadairean ann am "
-"bloca (0 = gun chuingeachadh)."
#: src/settings_translation_file.cpp
-msgid "Player versus player"
+msgid "Light curve low gradient"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Whether to allow players to damage and kill each other."
+msgid ""
+"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n"
+"Only mapchunks completely within the mapgen limit are generated.\n"
+"Value is stored per-world."
msgstr ""
-"Co-dhiù am faod cluicheadairean càch a chèile a leòn ’s a mharbhadh gus nach "
-"fhaod."
+"Cuingeachadh gintinn mapa, ann an nòd, sa h-uile 6 comhair o (0, 0, 0).\n"
+"Cha dèid ach cnapan mapa a tha am broinn cuingeachadh gineadair nam mapa a "
+"ghintinn.\n"
+"Thèid luach fa leth a stòradh air gach saoghal."
#: src/settings_translation_file.cpp
-msgid "Mod channels"
+msgid ""
+"Limits number of parallel HTTP requests. Affects:\n"
+"- Media fetch if server uses remote_media setting.\n"
+"- Serverlist download and server announcement.\n"
+"- Downloads performed by main menu (e.g. mod manager).\n"
+"Only has an effect if compiled with cURL."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable mod channels support."
+msgid "Liquid fluidity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Static spawnpoint"
+msgid "Liquid fluidity smoothing"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "If this is set, players will always (re)spawn at the given position."
+msgid "Liquid loop max"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Disallow empty passwords"
+msgid "Liquid queue purge time"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "If enabled, new players cannot join with an empty password."
+msgid "Liquid sinking"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Disable anticheat"
-msgstr ""
+msgid "Liquid update interval in seconds."
+msgstr "Eadaramh nan ùrachaidhean air an lionn ann an diog."
#: src/settings_translation_file.cpp
-msgid "If enabled, disable cheat prevention in multiplayer."
+msgid "Liquid update tick"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rollback recording"
+msgid "Load the game profiler"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"If enabled, actions are recorded for rollback.\n"
-"This option is only read when server starts."
+"Load the game profiler to collect game profiling data.\n"
+"Provides a /profiler command to access the compiled profile.\n"
+"Useful for mod developers and server operators."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat message format"
+msgid "Loading Block Modifiers"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Format of player chat messages. The following strings are valid "
-"placeholders:\n"
-"@name, @message, @timestamp (optional)"
+msgid "Lower Y limit of dungeons."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Shutdown message"
+msgid "Lower Y limit of floatlands."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "A message to be displayed to all clients when the server shuts down."
+msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crash message"
+msgid ""
+"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "A message to be displayed to all clients when the server crashes."
+msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ask to reconnect after crash"
-msgstr ""
+msgid "Makes all liquids opaque"
+msgstr "Dèan gach lionn trìd-dhoilleir"
#: src/settings_translation_file.cpp
-msgid ""
-"Whether to ask clients to reconnect after a (Lua) crash.\n"
-"Set this to true if your server is set up to restart automatically."
+msgid "Map Compression Level for Disk Storage"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Active object send range"
+msgid "Map Compression Level for Network Transfer"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"From how far clients know about objects, stated in mapblocks (16 nodes).\n"
-"\n"
-"Setting this larger than active_block_range will also cause the server\n"
-"to maintain active objects up to this distance in the direction the\n"
-"player is looking. (This can avoid mobs suddenly disappearing from view)"
+msgid "Map directory"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Active block range"
+msgid "Map generation attributes specific to Mapgen Carpathian."
msgstr ""
+"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Carpathian."
#: src/settings_translation_file.cpp
msgid ""
-"The radius of the volume of blocks around every player that is subject to "
-"the\n"
-"active block stuff, stated in mapblocks (16 nodes).\n"
-"In active blocks objects are loaded and ABMs run.\n"
-"This is also the minimum range in which active objects (mobs) are "
-"maintained.\n"
-"This should be configured together with active_object_send_range_blocks."
+"Map generation attributes specific to Mapgen Flat.\n"
+"Occasional lakes and hills can be added to the flat world."
msgstr ""
+"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Flat.\n"
+"’S urrainn dhut lochan is cnuic ghanna a chur ris an t-saoghal rèidh."
#: src/settings_translation_file.cpp
-msgid "Max block send distance"
+msgid ""
+"Map generation attributes specific to Mapgen Fractal.\n"
+"'terrain' enables the generation of non-fractal terrain:\n"
+"ocean, islands and underground."
msgstr ""
+"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Fractal.\n"
+"Cuiridh “terrain†gintinn crutha-tìre nach eil fractalach an comas:\n"
+"cuan, eileanan is fon talamh."
#: src/settings_translation_file.cpp
msgid ""
-"From how far blocks are sent to clients, stated in mapblocks (16 nodes)."
+"Map generation attributes specific to Mapgen Valleys.\n"
+"'altitude_chill': Reduces heat with altitude.\n"
+"'humid_rivers': Increases humidity around rivers.\n"
+"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n"
+"to become shallower and occasionally dry.\n"
+"'altitude_dry': Reduces humidity with altitude."
msgstr ""
+"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Valleys.\n"
+"“altitude_chillâ€: Bidh tìr àrd nas fhuaire.\n"
+"“humid_riversâ€: Bidh an tìr nas buige faisg air aibhnean.\n"
+"“vary_river_depthâ€: Ma tha seo an comas, bidh aibhnean nas tana agus tioram "
+"aig amannan ma tha an saoghal tioram no teth.\n"
+"’“altitude_dryâ€: Bidh tìr àrd nas tiorma."
#: src/settings_translation_file.cpp
-msgid "Maximum forceloaded blocks"
-msgstr ""
+msgid "Map generation attributes specific to Mapgen v5."
+msgstr "Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v5."
#: src/settings_translation_file.cpp
-msgid "Maximum number of forceloaded mapblocks."
+msgid ""
+"Map generation attributes specific to Mapgen v6.\n"
+"The 'snowbiomes' flag enables the new 5 biome system.\n"
+"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n"
+"the 'jungles' flag is ignored."
msgstr ""
+"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v6.\n"
+"Cuiridh a’ bhratach “snowbiomes†siostam 5 ùr nam bitheom an comas.\n"
+"Nuair a bhios a’ bhratach “snowbiomes†an comas, thèid dlùth-choilltean a "
+"chur an comas gu fèin-obrachail \n"
+"agus a’ bhratach “jungles†a leigeil seachad."
#: src/settings_translation_file.cpp
-msgid "Time send interval"
+msgid ""
+"Map generation attributes specific to Mapgen v7.\n"
+"'ridges': Rivers.\n"
+"'floatlands': Floating land masses in the atmosphere.\n"
+"'caverns': Giant caves deep underground."
msgstr ""
+"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v7.\n"
+"“ridgesâ€: Aibhnean.\n"
+"“floatlandsâ€: Tìr air fhleòd san àile.\n"
+"“cavernsâ€: Uamhan mòra domhainn fon talamh."
#: src/settings_translation_file.cpp
-msgid "Interval of sending time of day to clients."
-msgstr ""
+msgid "Map generation limit"
+msgstr "Cuingeachadh gintinn mapa"
#: src/settings_translation_file.cpp
-msgid "Time speed"
+msgid "Map save interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Controls length of day/night cycle.\n"
-"Examples:\n"
-"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged."
+msgid "Mapblock limit"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "World start time"
+msgid "Mapblock mesh generation delay"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Time of day when a new world is started, in millihours (0-23999)."
+msgid "Mapblock mesh generator's MapBlock cache size in MB"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Map save interval"
+msgid "Mapblock unload timeout"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Interval of saving important changes in the world, stated in seconds."
-msgstr ""
+msgid "Mapgen Carpathian"
+msgstr "Gineadair nam mapa Carpathian"
#: src/settings_translation_file.cpp
-msgid "Chat message max length"
-msgstr ""
+msgid "Mapgen Carpathian specific flags"
+msgstr "Brataich shònraichte do ghineadair nam mapa Carpathian"
#: src/settings_translation_file.cpp
-msgid "Set the maximum character length of a chat message sent by clients."
-msgstr ""
+msgid "Mapgen Flat"
+msgstr "Gineadair nam mapa Flat"
#: src/settings_translation_file.cpp
-msgid "Chat message count limit"
-msgstr ""
+msgid "Mapgen Flat specific flags"
+msgstr "Brataich shònraichte do ghineadair nam mapa Flat"
#: src/settings_translation_file.cpp
-msgid "Amount of messages a player may send per 10 seconds."
-msgstr ""
+msgid "Mapgen Fractal"
+msgstr "Gineadair nam mapa Fractal"
#: src/settings_translation_file.cpp
-msgid "Chat message kick threshold"
-msgstr ""
+msgid "Mapgen Fractal specific flags"
+msgstr "Brataich shònraichte do ghineadair nam mapa Fractal"
#: src/settings_translation_file.cpp
-msgid "Kick players who sent more than X messages per 10 seconds."
-msgstr ""
+msgid "Mapgen V5"
+msgstr "Gineadair nam mapa V5"
#: src/settings_translation_file.cpp
-msgid "Physics"
-msgstr ""
+msgid "Mapgen V5 specific flags"
+msgstr "Brataich shònraichte do ghineadair nam mapa V5"
#: src/settings_translation_file.cpp
-msgid "Default acceleration"
-msgstr ""
+msgid "Mapgen V6"
+msgstr "Gineadair nam mapa V6"
#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal and vertical acceleration on ground or when climbing,\n"
-"in nodes per second per second."
-msgstr ""
+msgid "Mapgen V6 specific flags"
+msgstr "Brataich shònraichte do ghineadair nam mapa V6"
#: src/settings_translation_file.cpp
-msgid "Acceleration in air"
-msgstr ""
+msgid "Mapgen V7"
+msgstr "Gineadair nam mapa V7"
#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal acceleration in air when jumping or falling,\n"
-"in nodes per second per second."
-msgstr ""
+msgid "Mapgen V7 specific flags"
+msgstr "Brataich shònraichte do ghineadair nam mapa V7"
#: src/settings_translation_file.cpp
-msgid "Fast mode acceleration"
-msgstr ""
+msgid "Mapgen Valleys"
+msgstr "Gineadair nam mapa Valleys"
#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal and vertical acceleration in fast mode,\n"
-"in nodes per second per second."
-msgstr ""
+msgid "Mapgen Valleys specific flags"
+msgstr "Brataich shònraichte do ghineadair nam mapa Valleys"
#: src/settings_translation_file.cpp
-msgid "Walking speed"
-msgstr ""
+msgid "Mapgen debug"
+msgstr "Dì-bhugachadh gineadair nam mapa"
#: src/settings_translation_file.cpp
-msgid "Walking and flying speed, in nodes per second."
-msgstr "Luaths na coiseachd is sgiathaidh, ann an nòd gach diog."
+msgid "Mapgen name"
+msgstr "Ainm gineadair nam mapa"
#: src/settings_translation_file.cpp
-msgid "Sneaking speed"
-msgstr "Luaths an tàisleachaidh"
+msgid "Max block generate distance"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Sneaking speed, in nodes per second."
-msgstr "Luaths an tàisleachaidh ann an nòd gach diog."
+msgid "Max block send distance"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fast mode speed"
+msgid "Max liquids processed per step."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
+msgid "Max. clearobjects extra blocks"
msgstr ""
-"Luaths na coiseachd, sgiathaidh is sreap sa mhodh luath, ann an nòd gach "
-"diog."
#: src/settings_translation_file.cpp
-msgid "Climbing speed"
+msgid "Max. packets per iteration"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Vertical climbing speed, in nodes per second."
+msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Jumping speed"
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Initial vertical speed when jumping, in nodes per second."
+msgid "Maximum forceloaded blocks"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid fluidity"
-msgstr ""
+msgid "Maximum hotbar width"
+msgstr "Leud as motha a’ ghrad-bhàr"
#: src/settings_translation_file.cpp
-msgid "Decrease this to increase liquid resistance to movement."
+msgid "Maximum limit of random number of large caves per mapchunk."
msgstr ""
+"An àireamh as motha de dh’uamhan mòra air thuaiream anns gach cnap mapa."
#: src/settings_translation_file.cpp
-msgid "Liquid fluidity smoothing"
+msgid "Maximum limit of random number of small caves per mapchunk."
msgstr ""
+"An àireamh as motha de dh’uamhan beaga air thuaiream anns gach cnap mapa."
#: src/settings_translation_file.cpp
msgid ""
@@ -4961,56 +4999,58 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid sinking"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Controls sinking speed in liquid."
+msgid ""
+"Maximum number of blocks that are simultaneously sent per client.\n"
+"The maximum total count is calculated dynamically:\n"
+"max_total = ceil((#clients + max_users) * per_client / 4)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Gravity"
+msgid "Maximum number of blocks that can be queued for loading."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Acceleration of gravity, in nodes per second per second."
+msgid ""
+"Maximum number of blocks to be queued that are to be generated.\n"
+"This limit is enforced per player."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Deprecated Lua API handling"
+msgid ""
+"Maximum number of blocks to be queued that are to be loaded from file.\n"
+"This limit is enforced per player."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
-"- error: abort on usage of deprecated call (suggested for mod developers)."
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Max. clearobjects extra blocks"
+msgid "Maximum number of forceloaded mapblocks."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Number of extra blocks that can be loaded by /clearobjects at once.\n"
-"This is a trade-off between sqlite transaction overhead and\n"
-"memory consumption (4096=100MB, as a rule of thumb)."
+"Maximum number of mapblocks for client to be kept in memory.\n"
+"Set to -1 for unlimited amount."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Unload unused server data"
+msgid ""
+"Maximum number of packets sent per send step, if you have a slow connection\n"
+"try reducing it, but don't reduce it to a number below double of targeted\n"
+"client number."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"How much the server will wait before unloading unused mapblocks.\n"
-"Higher value is smoother, but will use more RAM."
+msgid "Maximum number of players that can be connected simultaneously."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum objects per block"
+msgid "Maximum number of recent chat messages to show"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5018,940 +5058,912 @@ msgid "Maximum number of statically stored objects in a block."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Synchronous SQLite"
+msgid "Maximum objects per block"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
+msgid ""
+"Maximum proportion of current window to be used for hotbar.\n"
+"Useful if there's something to be displayed right or left of hotbar."
msgstr ""
+"A’ chuid as motha dhen uinneag làithreach a thèid a chleachdadh airson a’ "
+"ghrad-bhàr.\n"
+"Tha seo feumail ma dh’fheumas tu rudeigin a shealltainn taobh deas no clì "
+"air a’ ghrad-bhàr."
#: src/settings_translation_file.cpp
-msgid "Dedicated server step"
+msgid "Maximum simultaneous block sends per client"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Length of a server tick and the interval at which objects are generally "
-"updated over\n"
-"network."
+msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Active block management interval"
+msgid ""
+"Maximum size of the out chat queue.\n"
+"0 to disable queueing and -1 to make the queue size unlimited."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Length of time between active block management cycles"
+msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "ABM interval"
+msgid "Maximum users"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Length of time between Active Block Modifier (ABM) execution cycles"
+msgid "Menus"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "NodeTimer interval"
+msgid "Mesh cache"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Length of time between NodeTimer execution cycles"
+msgid "Message of the day"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ignore world errors"
-msgstr "Leig seachad mearachdan an t-saoghail"
+msgid "Message of the day displayed to players connecting."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled, invalid world data won't cause the server to shut down.\n"
-"Only enable this if you know what you are doing."
+msgid "Method used to highlight selected object."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid loop max"
-msgstr ""
+msgid "Minimal level of logging to be written to chat."
+msgstr "An ìre as lugha dhen loga a thèid a sgrìobhadh dhan chabadaich."
#: src/settings_translation_file.cpp
-msgid "Max liquids processed per step."
+msgid "Minimap"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid queue purge time"
+msgid "Minimap key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The time (in seconds) that the liquids queue may grow beyond processing\n"
-"capacity until an attempt is made to decrease its size by dumping old queue\n"
-"items. A value of 0 disables the functionality."
+msgid "Minimap scan height"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid update tick"
+msgid "Minimum limit of random number of large caves per mapchunk."
msgstr ""
+"An àireamh as lugha de dh’uamhan mòra air thuaiream anns gach cnap mapa."
#: src/settings_translation_file.cpp
-msgid "Liquid update interval in seconds."
-msgstr "Eadaramh nan ùrachaidhean air an lionn ann an diog."
+msgid "Minimum limit of random number of small caves per mapchunk."
+msgstr ""
+"An àireamh as lugha de dh’uamhan beaga air thuaiream anns gach cnap mapa."
#: src/settings_translation_file.cpp
-msgid "Block send optimize distance"
+msgid "Minimum texture size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"At this distance the server will aggressively optimize which blocks are sent "
-"to\n"
-"clients.\n"
-"Small values potentially improve performance a lot, at the expense of "
-"visible\n"
-"rendering glitches (some blocks will not be rendered under water and in "
-"caves,\n"
-"as well as sometimes on land).\n"
-"Setting this to a value greater than max_block_send_distance disables this\n"
-"optimization.\n"
-"Stated in mapblocks (16 nodes)."
+msgid "Mipmapping"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Server side occlusion culling"
+msgid "Mod channels"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled the server will perform map block occlusion culling based on\n"
-"on the eye position of the player. This can reduce the number of blocks\n"
-"sent to the client 50-80%. The client will not longer receive most "
-"invisible\n"
-"so that the utility of noclip mode is reduced."
+msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Client side modding restrictions"
-msgstr "Cuingeachadh tuilleadain air a’ chliant"
+msgid "Monospace font path"
+msgstr "Slighe dhan chlò aon-leud"
#: src/settings_translation_file.cpp
-msgid ""
-"Restricts the access of certain client-side functions on servers.\n"
-"Combine the byteflags below to restrict client-side features, or set to 0\n"
-"for no restrictions:\n"
-"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n"
-"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n"
-"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n"
-"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n"
-"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n"
-"csm_restriction_noderange)\n"
-"READ_PLAYERINFO: 32 (disable get_player_names call client-side)"
+msgid "Monospace font size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Client side node lookup range restriction"
+msgid "Mountain height noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If the CSM restriction for node range is enabled, get_node calls are "
-"limited\n"
-"to this distance from the player to the node."
+msgid "Mountain noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Security"
+msgid "Mountain variation noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable mod security"
-msgstr ""
+msgid "Mountain zero level"
+msgstr "Àirde neoini nam beanntan"
#: src/settings_translation_file.cpp
-msgid "Prevent mods from doing insecure things like running shell commands."
+msgid "Mouse sensitivity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Trusted mods"
+msgid "Mouse sensitivity multiplier."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Comma-separated list of trusted mods that are allowed to access insecure\n"
-"functions even when mod security is on (via request_insecure_environment())."
+msgid "Mud noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "HTTP mods"
+msgid ""
+"Multiplier for fall bobbing.\n"
+"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
-"allow them to upload and download data to/from the internet."
+msgid "Mute key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Profiling"
+msgid "Mute sound"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Load the game profiler"
+msgid ""
+"Name of map generator to be used when creating a new world.\n"
+"Creating a world in the main menu will override this.\n"
+"Current mapgens in a highly unstable state:\n"
+"- The optional floatlands of v7 (disabled by default)."
msgstr ""
+"Ainm air gineadair nam mapa a thèid a chleachdadh airson saoghal ùr a "
+"chruthachadh.\n"
+"Tar-aithnidh cruthachadh saoghail ùir sa phrìomh chlàr-taice seo.\n"
+"Seo gineadairean nam mapa a tha glè neo-sheasmhach aig an àm seo:\n"
+"- floatlands roghainneil aig v7 (à comas o thùs)."
#: src/settings_translation_file.cpp
msgid ""
-"Load the game profiler to collect game profiling data.\n"
-"Provides a /profiler command to access the compiled profile.\n"
-"Useful for mod developers and server operators."
+"Name of the player.\n"
+"When running a server, clients connecting with this name are admins.\n"
+"When starting from the main menu, this is overridden."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default report format"
+msgid ""
+"Name of the server, to be displayed when players join and in the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The default format in which profiles are being saved,\n"
-"when calling `/profiler save [format]` without format."
+msgid "Near plane"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Report path"
+msgid "Network"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The file path relative to your worldpath in which profiles will be saved to."
+"Network port to listen (UDP).\n"
+"This value will be overridden when starting from the main menu."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Instrumentation"
+msgid "New users need to input this password."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Entity methods"
-msgstr ""
+msgid "Noclip"
+msgstr "Gun bhearradh"
#: src/settings_translation_file.cpp
-msgid "Instrument the methods of entities on registration."
+msgid "Noclip key"
+msgstr "Iuchair modha gun bhearradh"
+
+#: src/settings_translation_file.cpp
+msgid "Node highlighting"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Active Block Modifiers"
+msgid "NodeTimer interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Instrument the action function of Active Block Modifiers on registration."
+msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Loading Block Modifiers"
+msgid "Number of emerge threads"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Instrument the action function of Loading Block Modifiers on registration."
+"Number of emerge threads to use.\n"
+"Value 0:\n"
+"- Automatic selection. The number of emerge threads will be\n"
+"- 'number of processors - 2', with a lower limit of 1.\n"
+"Any other value:\n"
+"- Specifies the number of emerge threads, with a lower limit of 1.\n"
+"WARNING: Increasing the number of emerge threads increases engine mapgen\n"
+"speed, but this may harm game performance by interfering with other\n"
+"processes, especially in singleplayer and/or when running Lua code in\n"
+"'on_generated'. For many users the optimum setting may be '1'."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chatcommands"
+msgid ""
+"Number of extra blocks that can be loaded by /clearobjects at once.\n"
+"This is a trade-off between sqlite transaction overhead and\n"
+"memory consumption (4096=100MB, as a rule of thumb)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Instrument chatcommands on registration."
-msgstr ""
+msgid "Online Content Repository"
+msgstr "Ionad-tasgaidh susbaint air loidhne"
#: src/settings_translation_file.cpp
-msgid "Global callbacks"
+msgid "Opaque liquids"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Instrument global callback functions on registration.\n"
-"(anything you pass to a minetest.register_*() function)"
+"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Builtin"
+msgid ""
+"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Instrument builtin.\n"
-"This is usually only needed by core/builtin contributors"
+"Open the pause menu when the window's focus is lost. Does not pause if a "
+"formspec is\n"
+"open."
msgstr ""
+"Fosgail clàr-taice a’ chuir ’na stad nuair a chailleas an uinneag am fòcas.\n"
+"Cha dèid a chur ’na stad nuair a bhios formspec fosgailte."
#: src/settings_translation_file.cpp
-msgid "Profiler"
+msgid ""
+"Path of the fallback font.\n"
+"If “freetype†setting is enabled: Must be a TrueType font.\n"
+"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
+"This font will be used for certain languages or if the default font is "
+"unavailable."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Have the profiler instrument itself:\n"
-"* Instrument an empty function.\n"
-"This estimates the overhead, that instrumentation is adding (+1 function "
-"call).\n"
-"* Instrument the sampler being used to update the statistics."
+"Path to save screenshots at. Can be an absolute or relative path.\n"
+"The folder will be created if it doesn't already exist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Client and Server"
+msgid ""
+"Path to shader directory. If no path is defined, default location will be "
+"used."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Player name"
+msgid "Path to texture directory. All textures are first searched from here."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Name of the player.\n"
-"When running a server, clients connecting with this name are admins.\n"
-"When starting from the main menu, this is overridden."
+"Path to the default font.\n"
+"If “freetype†setting is enabled: Must be a TrueType font.\n"
+"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
+"The fallback font will be used if the font cannot be loaded."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Language"
+msgid ""
+"Path to the monospace font.\n"
+"If “freetype†setting is enabled: Must be a TrueType font.\n"
+"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
+"This font is used for e.g. the console and profiler screen."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Set the language. Leave empty to use the system language.\n"
-"A restart is required after changing this."
+msgid "Pause on lost window focus"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Debug log level"
-msgstr "Ìre an loga dì-bhugachaidh"
+msgid "Per-player limit of queued blocks load from disk"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Level of logging to be written to debug.txt:\n"
-"- <nothing> (no logging)\n"
-"- none (messages with no level)\n"
-"- error\n"
-"- warning\n"
-"- action\n"
-"- info\n"
-"- verbose"
+msgid "Per-player limit of queued blocks to generate"
msgstr ""
-"Ìre an loga a thèid a sgrìobhadh gu debug.txt:\n"
-"- <bàn> (gun logadh)\n"
-"- none (teachdaireachdan gun ìre)\n"
-"- error\n"
-"- warning\n"
-"- action\n"
-"- info\n"
-"- verbose"
#: src/settings_translation_file.cpp
-msgid "Debug log file size threshold"
+msgid "Physics"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If the file size of debug.txt exceeds the number of megabytes specified in\n"
-"this setting when it is opened, the file is moved to debug.txt.1,\n"
-"deleting an older debug.txt.1 if it exists.\n"
-"debug.txt is only moved if this setting is positive."
+msgid "Pitch move key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat log level"
-msgstr "ÃŒre loga na cabadaich"
+msgid "Pitch move mode"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimal level of logging to be written to chat."
-msgstr "An ìre as lugha dhen loga a thèid a sgrìobhadh dhan chabadaich."
+#, fuzzy
+msgid "Place key"
+msgstr "Iuchair an sgiathaidh"
#: src/settings_translation_file.cpp
-msgid "IPv6"
+msgid "Place repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable IPv6 support (for both client and server).\n"
-"Required for IPv6 connections to work at all."
+"Player is able to fly without being affected by gravity.\n"
+"This requires the \"fly\" privilege on the server."
msgstr ""
+"’S urrainn dhan chluicheadair sgiathadh gun bhuaidh na iom-tharraing air.\n"
+"Bidh feum air sochair “fly†air an fhrithealaiche."
#: src/settings_translation_file.cpp
-msgid "cURL timeout"
+msgid "Player name"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Default timeout for cURL, stated in milliseconds.\n"
-"Only has an effect if compiled with cURL."
+msgid "Player transfer distance"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "cURL parallel limit"
+msgid "Player versus player"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Limits number of parallel HTTP requests. Affects:\n"
-"- Media fetch if server uses remote_media setting.\n"
-"- Serverlist download and server announcement.\n"
-"- Downloads performed by main menu (e.g. mod manager).\n"
-"Only has an effect if compiled with cURL."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "cURL file download timeout"
+"Port to connect to (UDP).\n"
+"Note that the port field in the main menu overrides this setting."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum time in ms a file download (e.g. a mod download) may take."
+msgid ""
+"Prevent digging and placing from repeating when holding the mouse buttons.\n"
+"Enable this when you dig or place too often by accident."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "High-precision FPU"
+msgid "Prevent mods from doing insecure things like running shell commands."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles."
+msgid ""
+"Print the engine's profiling data in regular intervals (in seconds).\n"
+"0 = disable. Useful for developers."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
+msgid "Privileges that players with basic_privs can grant"
+msgstr "Sochairean as urrainn do chluicheadairean le basic_privs a cheadachadh"
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
+msgid "Profiler"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu script"
+msgid "Profiler toggle key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Replaces the default main menu with a custom one."
+msgid "Profiling"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Engine profiling data print interval"
+msgid "Prometheus listener address"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Print the engine's profiling data in regular intervals (in seconds).\n"
-"0 = disable. Useful for developers."
+"Prometheus listener address.\n"
+"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n"
+"enable metrics listener for Prometheus on that address.\n"
+"Metrics can be fetch on http://127.0.0.1:30000/metrics"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen name"
-msgstr "Ainm gineadair nam mapa"
+msgid "Proportion of large caves that contain liquid."
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Name of map generator to be used when creating a new world.\n"
-"Creating a world in the main menu will override this.\n"
-"Current mapgens in a highly unstable state:\n"
-"- The optional floatlands of v7 (disabled by default)."
+"Radius of cloud area stated in number of 64 node cloud squares.\n"
+"Values larger than 26 will start to produce sharp cutoffs at cloud area "
+"corners."
msgstr ""
-"Ainm air gineadair nam mapa a thèid a chleachdadh airson saoghal ùr a "
-"chruthachadh.\n"
-"Tar-aithnidh cruthachadh saoghail ùir sa phrìomh chlàr-taice seo.\n"
-"Seo gineadairean nam mapa a tha glè neo-sheasmhach aig an àm seo:\n"
-"- floatlands roghainneil aig v7 (à comas o thùs)."
#: src/settings_translation_file.cpp
-msgid "Water level"
-msgstr "Àirde an uisge"
+msgid "Raises terrain to make valleys around the rivers."
+msgstr ""
+"Àrdaichidh seo an cruth-tìre airson glinn a chruthachadh timcheall air na h-"
+"aibhnean."
#: src/settings_translation_file.cpp
-msgid "Water surface level of the world."
-msgstr "Àirde uachdar an uisge air an t-saoghal."
+msgid "Random input"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Max block generate distance"
+msgid "Range select key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"From how far blocks are generated for clients, stated in mapblocks (16 "
-"nodes)."
+msgid "Recent Chat Messages"
msgstr ""
-"An t-astar on a thèid blocaichean a ghintinn dha na cliantan, ann am bloca "
-"mapa (16 nòdan)."
#: src/settings_translation_file.cpp
-msgid "Map generation limit"
-msgstr "Cuingeachadh gintinn mapa"
+msgid "Regular font path"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n"
-"Only mapchunks completely within the mapgen limit are generated.\n"
-"Value is stored per-world."
+msgid "Remote media"
msgstr ""
-"Cuingeachadh gintinn mapa, ann an nòd, sa h-uile 6 comhair o (0, 0, 0).\n"
-"Cha dèid ach cnapan mapa a tha am broinn cuingeachadh gineadair nam mapa a "
-"ghintinn.\n"
-"Thèid luach fa leth a stòradh air gach saoghal."
#: src/settings_translation_file.cpp
-msgid ""
-"Global map generation attributes.\n"
-"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
-"and junglegrass, in all other mapgens this flag controls all decorations."
+msgid "Remote port"
msgstr ""
-"Buadhan gintinn mapa uile-choitcheann.\n"
-"Ann an gineadair nam mapa v6, stiùirichidh bratach “decorations†sgeadachadh "
-"seach craobhan is feur dlùth-choille\n"
-"agus ann an gineadairean nam mapa eile, stiùirichidh a’ bhratach seo a h-"
-"uile sgeadachadh."
#: src/settings_translation_file.cpp
-msgid "Biome API temperature and humidity noise parameters"
+msgid ""
+"Remove color codes from incoming chat messages\n"
+"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Heat noise"
+msgid "Replaces the default main menu with a custom one."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Temperature variation for biomes."
+msgid "Report path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Heat blend noise"
+msgid ""
+"Restricts the access of certain client-side functions on servers.\n"
+"Combine the byteflags below to restrict client-side features, or set to 0\n"
+"for no restrictions:\n"
+"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n"
+"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n"
+"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n"
+"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n"
+"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n"
+"csm_restriction_noderange)\n"
+"READ_PLAYERINFO: 32 (disable get_player_names call client-side)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Small-scale temperature variation for blending biomes on borders."
+msgid "Ridge mountain spread noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Humidity noise"
+msgid "Ridge noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Humidity variation for biomes."
+msgid "Ridge underwater noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Humidity blend noise"
+msgid "Ridged mountain size noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Small-scale humidity variation for blending biomes on borders."
+msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen V5"
-msgstr "Gineadair nam mapa V5"
+msgid "River channel depth"
+msgstr "Doimhne sruth nan aibhnean"
#: src/settings_translation_file.cpp
-msgid "Mapgen V5 specific flags"
-msgstr "Brataich shònraichte do ghineadair nam mapa V5"
+msgid "River channel width"
+msgstr "Leud sruth nan aibhnean"
#: src/settings_translation_file.cpp
-msgid "Map generation attributes specific to Mapgen v5."
-msgstr "Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v5."
+msgid "River depth"
+msgstr "Doimhne nan aibhnean"
#: src/settings_translation_file.cpp
-msgid "Cave width"
-msgstr ""
+msgid "River noise"
+msgstr "Riasladh aibhnean"
#: src/settings_translation_file.cpp
-msgid ""
-"Controls width of tunnels, a smaller value creates wider tunnels.\n"
-"Value >= 10.0 completely disables generation of tunnels and avoids the\n"
-"intensive noise calculations."
-msgstr ""
+msgid "River size"
+msgstr "Meud nan aibhnean"
#: src/settings_translation_file.cpp
-msgid "Large cave depth"
-msgstr ""
+msgid "River valley width"
+msgstr "Leud gleanntan aibhne"
#: src/settings_translation_file.cpp
-msgid "Y of upper limit of large caves."
+msgid "Rollback recording"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Small cave minimum number"
+msgid "Rolling hill size noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimum limit of random number of small caves per mapchunk."
+msgid "Rolling hills spread noise"
msgstr ""
-"An àireamh as lugha de dh’uamhan beaga air thuaiream anns gach cnap mapa."
#: src/settings_translation_file.cpp
-msgid "Small cave maximum number"
+msgid "Round minimap"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum limit of random number of small caves per mapchunk."
+msgid "Safe digging and placing"
msgstr ""
-"An àireamh as motha de dh’uamhan beaga air thuaiream anns gach cnap mapa."
#: src/settings_translation_file.cpp
-msgid "Large cave minimum number"
+msgid "Sandy beaches occur when np_beach exceeds this value."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimum limit of random number of large caves per mapchunk."
+msgid "Save the map received by the client on disk."
msgstr ""
-"An àireamh as lugha de dh’uamhan mòra air thuaiream anns gach cnap mapa."
#: src/settings_translation_file.cpp
-msgid "Large cave maximum number"
+msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum limit of random number of large caves per mapchunk."
+msgid "Saving map received from server"
msgstr ""
-"An àireamh as motha de dh’uamhan mòra air thuaiream anns gach cnap mapa."
#: src/settings_translation_file.cpp
-msgid "Large cave proportion flooded"
+msgid ""
+"Scale GUI by a user specified value.\n"
+"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n"
+"This will smooth over some of the rough edges, and blend\n"
+"pixels when scaling down, at the cost of blurring some\n"
+"edge pixels when images are scaled by non-integer sizes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Proportion of large caves that contain liquid."
+msgid "Screen height"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cavern limit"
+msgid "Screen width"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of cavern upper limit."
-msgstr "Àirde-Y aig crìoch àrd nan uamhan."
-
-#: src/settings_translation_file.cpp
-msgid "Cavern taper"
+msgid "Screenshot folder"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-distance over which caverns expand to full size."
+msgid "Screenshot format"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cavern threshold"
+msgid "Screenshot quality"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines full size of caverns, smaller values create larger caverns."
+msgid ""
+"Screenshot quality. Only used for JPEG format.\n"
+"1 means worst quality; 100 means best quality.\n"
+"Use 0 for default quality."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Dungeon minimum Y"
+msgid "Seabed noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Lower Y limit of dungeons."
+msgid "Second of 4 2D noises that together define hill/mountain range height."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Dungeon maximum Y"
+msgid "Second of two 3D noises that together define tunnels."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Upper Y limit of dungeons."
+msgid "Security"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Noises"
+msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Filler depth noise"
+msgid "Selection box border color (R,G,B)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Variation of biome filler depth."
+msgid "Selection box color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Factor noise"
+msgid "Selection box width"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Variation of terrain vertical scale.\n"
-"When noise is < -0.55 terrain is near-flat."
+"Selects one of 18 fractal types.\n"
+"1 = 4D \"Roundy\" Mandelbrot set.\n"
+"2 = 4D \"Roundy\" Julia set.\n"
+"3 = 4D \"Squarry\" Mandelbrot set.\n"
+"4 = 4D \"Squarry\" Julia set.\n"
+"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n"
+"6 = 4D \"Mandy Cousin\" Julia set.\n"
+"7 = 4D \"Variation\" Mandelbrot set.\n"
+"8 = 4D \"Variation\" Julia set.\n"
+"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n"
+"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n"
+"11 = 3D \"Christmas Tree\" Mandelbrot set.\n"
+"12 = 3D \"Christmas Tree\" Julia set.\n"
+"13 = 3D \"Mandelbulb\" Mandelbrot set.\n"
+"14 = 3D \"Mandelbulb\" Julia set.\n"
+"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n"
+"16 = 3D \"Cosine Mandelbulb\" Julia set.\n"
+"17 = 4D \"Mandelbulb\" Mandelbrot set.\n"
+"18 = 4D \"Mandelbulb\" Julia set."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Height noise"
+msgid "Server / Singleplayer"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of average terrain surface."
-msgstr "Àirde-Y aig uachdar cuibheasach a’ chrutha-thìre."
-
-#: src/settings_translation_file.cpp
-msgid "Cave1 noise"
+msgid "Server URL"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "First of two 3D noises that together define tunnels."
+msgid "Server address"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cave2 noise"
+msgid "Server description"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Second of two 3D noises that together define tunnels."
+msgid "Server name"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cavern noise"
+msgid "Server port"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D noise defining giant caverns."
+msgid "Server side occlusion culling"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ground noise"
+msgid "Serverlist URL"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D noise defining terrain."
+msgid "Serverlist file"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Dungeon noise"
+msgid ""
+"Set the language. Leave empty to use the system language.\n"
+"A restart is required after changing this."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D noise that determines number of dungeons per mapchunk."
+msgid "Set the maximum character length of a chat message sent by clients."
msgstr ""
-"Riasladh 3D a mhìnicheas an àireamh dhe thuill-dhubha anns gach cnap mapa."
#: src/settings_translation_file.cpp
-msgid "Mapgen V6"
-msgstr "Gineadair nam mapa V6"
+msgid ""
+"Set to true to enable waving leaves.\n"
+"Requires shaders to be enabled."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen V6 specific flags"
-msgstr "Brataich shònraichte do ghineadair nam mapa V6"
+msgid ""
+"Set to true to enable waving liquids (like water).\n"
+"Requires shaders to be enabled."
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Map generation attributes specific to Mapgen v6.\n"
-"The 'snowbiomes' flag enables the new 5 biome system.\n"
-"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n"
-"the 'jungles' flag is ignored."
+"Set to true to enable waving plants.\n"
+"Requires shaders to be enabled."
msgstr ""
-"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v6.\n"
-"Cuiridh a’ bhratach “snowbiomes†siostam 5 ùr nam bitheom an comas.\n"
-"Nuair a bhios a’ bhratach “snowbiomes†an comas, thèid dlùth-choilltean a "
-"chur an comas gu fèin-obrachail \n"
-"agus a’ bhratach “jungles†a leigeil seachad."
#: src/settings_translation_file.cpp
-msgid "Desert noise threshold"
+msgid "Shader path"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Deserts occur when np_biome exceeds this value.\n"
-"When the 'snowbiomes' flag is enabled, this is ignored."
+"Shaders allow advanced visual effects and may increase performance on some "
+"video\n"
+"cards.\n"
+"This only works with the OpenGL video backend."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Beach noise threshold"
+msgid ""
+"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
+"drawn."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Sandy beaches occur when np_beach exceeds this value."
+msgid ""
+"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
+"be drawn."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain base noise"
+msgid "Shape of the minimap. Enabled = round, disabled = square."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of lower terrain and seabed."
-msgstr "Àirde-Y a’ chrutha-thìre ìosal agus grunnd na mara."
+msgid "Show debug info"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain higher noise"
+msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of higher terrain that creates cliffs."
-msgstr "Àirde-Y a’ chrutha-thìre nas àirde a chruthaicheas creagan."
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Steepness noise"
+msgid "Show nametag backgrounds by default"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Varies steepness of cliffs."
+msgid "Shutdown message"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Height select noise"
+msgid ""
+"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n"
+"WARNING!: There is no benefit, and there are several dangers, in\n"
+"increasing this value above 5.\n"
+"Reducing this value increases cave and dungeon density.\n"
+"Altering this value is for special usage, leaving it unchanged is\n"
+"recommended."
msgstr ""
+"Meud nan cnapan mapa a thèid a ghintinn le gineadair nam mapa, ann am bloca "
+"mapa (16 nòd).\n"
+"RABHADH: Chan fhaigh thu buannachd ach cunnartan à luach nas àirde na 5.\n"
+"Le luach nas lugha, gheibh thu barrachd uamhan is thuill-dubha.\n"
+"Chan fhiach atharrachadh an luach seo ach air adhbhar sònraichte ’s "
+"mholamaid\n"
+"nach atharraich thu e."
#: src/settings_translation_file.cpp
-msgid "Defines distribution of higher terrain."
+msgid ""
+"Size of the MapBlock cache of the mesh generator. Increasing this will\n"
+"increase the cache hit %, reducing the data being copied from the main\n"
+"thread, thus reducing jitter."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mud noise"
+msgid "Slice w"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Varies depth of biome surface nodes."
+msgid "Slope and fill work together to modify the heights."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Beach noise"
+msgid "Small cave maximum number"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines areas with sandy beaches."
+msgid "Small cave minimum number"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Biome noise"
+msgid "Small-scale humidity variation for blending biomes on borders."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cave noise"
+msgid "Small-scale temperature variation for blending biomes on borders."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Variation of number of caves."
+msgid "Smooth lighting"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Trees noise"
+msgid ""
+"Smooths camera when looking around. Also called look or mouse smoothing.\n"
+"Useful for recording videos."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines tree areas and tree density."
+msgid "Smooths rotation of camera in cinematic mode. 0 to disable."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Apple trees noise"
+msgid "Smooths rotation of camera. 0 to disable."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines areas where trees have apples."
-msgstr ""
+msgid "Sneak key"
+msgstr "Iuchair an tàisleachaidh"
#: src/settings_translation_file.cpp
-msgid "Mapgen V7"
-msgstr "Gineadair nam mapa V7"
+msgid "Sneaking speed"
+msgstr "Luaths an tàisleachaidh"
#: src/settings_translation_file.cpp
-msgid "Mapgen V7 specific flags"
-msgstr "Brataich shònraichte do ghineadair nam mapa V7"
+msgid "Sneaking speed, in nodes per second."
+msgstr "Luaths an tàisleachaidh ann an nòd gach diog."
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen v7.\n"
-"'ridges': Rivers.\n"
-"'floatlands': Floating land masses in the atmosphere.\n"
-"'caverns': Giant caves deep underground."
+msgid "Sound"
msgstr ""
-"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa v7.\n"
-"“ridgesâ€: Aibhnean.\n"
-"“floatlandsâ€: Tìr air fhleòd san àile.\n"
-"“cavernsâ€: Uamhan mòra domhainn fon talamh."
#: src/settings_translation_file.cpp
-msgid "Mountain zero level"
-msgstr "Àirde neoini nam beanntan"
+msgid "Special key"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Y of mountain density gradient zero level. Used to shift mountains "
-"vertically."
+msgid "Special key for climbing/descending"
msgstr ""
-"Y air àirde neoini air caisead dùmhlachd nam beanntan. Thèid seo a "
-"chleachdadh airson beanntan a thogail gu h-inghearach."
#: src/settings_translation_file.cpp
-msgid "Floatland minimum Y"
+msgid ""
+"Specifies URL from which client fetches media instead of using UDP.\n"
+"$filename should be accessible from $remote_media$filename via cURL\n"
+"(obviously, remote_media should end with a slash).\n"
+"Files that are not present will be fetched the usual way."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Lower Y limit of floatlands."
+msgid ""
+"Specifies the default stack size of nodes, items and tools.\n"
+"Note that mods or games may explicitly set a stack for certain (or all) "
+"items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Floatland maximum Y"
+msgid ""
+"Spread of light curve boost range.\n"
+"Controls the width of the range to be boosted.\n"
+"Standard deviation of the light curve boost Gaussian."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Upper Y limit of floatlands."
+msgid "Static spawnpoint"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Floatland tapering distance"
-msgstr "Astar cinn-chaoil air tìr air fhleòd"
+msgid "Steepness noise"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Y-distance over which floatlands taper from full density to nothing.\n"
-"Tapering starts at this distance from the Y limit.\n"
-"For a solid floatland layer, this controls the height of hills/mountains.\n"
-"Must be less than or equal to half the distance between the Y limits."
+msgid "Step mountain size noise"
msgstr ""
-"Seo an t-astar-Y eadar an dùbhlachd làn ’s an òir air cinn-chaoil na tìre "
-"air fhleòd.\n"
-"Tòsichidh na cinn-chaoil aig an astar seo on chrìoch Y.\n"
-"Airson breath tìre air fhleòd sholadach, stiùirichidh seo àirde nan cnoc/nam "
-"beanntan.\n"
-"Feumaidh e a bhith nas lugha na no co-ionnann ris an dàrna leth dhen astar "
-"eadar na crìochan Y."
#: src/settings_translation_file.cpp
-msgid "Floatland taper exponent"
-msgstr "Easponant cinn-chaoil air tìr air fhleòd"
+msgid "Step mountain spread noise"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
-"Value = 1.0 creates a uniform, linear tapering.\n"
-"Values > 1.0 create a smooth tapering suitable for the default separated\n"
-"floatlands.\n"
-"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
-"flatter lowlands, suitable for a solid floatland layer."
+msgid "Strength of 3D mode parallax."
msgstr ""
-"An t-easponant aig cinn-chaoil na tìre air fhleòd. Atharraichidh seo giùlnan "
-"nan ceann-caol.\n"
-"Cruthaichidh luach = 1.0 cinn-chaoil aon-fhillte loidhneach.\n"
-"Cruthaichidh luachan > 1.0 cinn-chaoil rèidhe\n"
-"a bhios freagarrach dha na cinn-chaoill sgaraichte thùsail.\n"
-"Cruthaichidh luachan < 1.0 (can 0.25) uachdar nas mionaidiche le tìr-ìosal "
-"nas rèidhe a bhios freagarrach\n"
-"do bhreath tìre air fhleòd sholadach."
#: src/settings_translation_file.cpp
-msgid "Floatland density"
-msgstr "Dùmhlachd na tìre air fhleòd"
+msgid ""
+"Strength of light curve boost.\n"
+"The 3 'boost' parameters define a range of the light\n"
+"curve that is boosted in brightness."
+msgstr ""
#: src/settings_translation_file.cpp
-#, c-format
-msgid ""
-"Adjusts the density of the floatland layer.\n"
-"Increase value to increase density. Can be positive or negative.\n"
-"Value = 0.0: 50% of volume is floatland.\n"
-"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
-"to be sure) creates a solid floatland layer."
+msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Floatland water level"
-msgstr "Àirde an uisge air tìr air fhleòd"
+msgid "Strip color codes"
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
@@ -5983,139 +5995,187 @@ msgstr ""
"foidhpe."
#: src/settings_translation_file.cpp
+msgid "Synchronous SQLite"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Temperature variation for biomes."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Terrain alternative noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain persistence noise"
+msgid "Terrain base noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Varies roughness of terrain.\n"
-"Defines the 'persistence' value for terrain_base and terrain_alt noises."
+msgid "Terrain height"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines distribution of higher terrain and steepness of cliffs."
+msgid "Terrain higher noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mountain height noise"
+msgid "Terrain noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Variation of maximum mountain height (in nodes)."
+msgid ""
+"Terrain noise threshold for hills.\n"
+"Controls proportion of world area covered by hills.\n"
+"Adjust towards 0.0 for a larger proportion."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ridge underwater noise"
+msgid ""
+"Terrain noise threshold for lakes.\n"
+"Controls proportion of world area covered by lakes.\n"
+"Adjust towards 0.0 for a larger proportion."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines large-scale river channel structure."
-msgstr "Mìnichidh seo structar sruth nan aibhnean mòra."
+msgid "Terrain persistence noise"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mountain noise"
+msgid "Texture path"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"3D noise defining mountain structure and height.\n"
-"Also defines structure of floatland mountain terrain."
+"Textures on a node may be aligned either to the node or to the world.\n"
+"The former mode suits better things like machines, furniture, etc., while\n"
+"the latter makes stairs and microblocks fit surroundings better.\n"
+"However, as this possibility is new, thus may not be used by older servers,\n"
+"this option allows enforcing it for certain node types. Note though that\n"
+"that is considered EXPERIMENTAL and may not work properly."
msgstr ""
-"Riasladh 3D a mhìnicheas structar is àirde nam beanntan.\n"
-"Mìnichidh e cruth-tìre nam beanntan air tìr air fhleòd cuideachd."
#: src/settings_translation_file.cpp
-msgid "Ridge noise"
+msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D noise defining structure of river canyon walls."
-msgstr "Riasladh 3D a mhìnicheas structar ballachan sgoltaidhean-aibhne."
+msgid "The deadzone of the joystick"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Floatland noise"
-msgstr "Riasladh na tìre air fhleòd"
+msgid ""
+"The default format in which profiles are being saved,\n"
+"when calling `/profiler save [format]` without format."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"3D noise defining structure of floatlands.\n"
-"If altered from the default, the noise 'scale' (0.7 by default) may need\n"
-"to be adjusted, as floatland tapering functions best when this noise has\n"
-"a value range of approximately -2.0 to 2.0."
+msgid "The depth of dirt or other biome filler node."
msgstr ""
-"Riasladh 3D a mhìnicheas structar na tìre air fhleòd.\n"
-"Mura cleachd thu an luach tùsail, dh’fhaoidte gum fheàirrde thu gleus a chur "
-"air “scale†an riaslaidh (0.7 o thùs)\n"
-", on a dh’obraicheas foincseanan cinn-chaoil as fheàrr\n"
-"nuair a bhios an riasladh seo eadar mu -2.0 agus 2.0."
#: src/settings_translation_file.cpp
-msgid "Mapgen Carpathian"
-msgstr "Gineadair nam mapa Carpathian"
+msgid ""
+"The file path relative to your worldpath in which profiles will be saved to."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Carpathian specific flags"
-msgstr "Brataich shònraichte do ghineadair nam mapa Carpathian"
+msgid "The identifier of the joystick to use"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Map generation attributes specific to Mapgen Carpathian."
+msgid "The length in pixels it takes for touch screen interaction to start."
msgstr ""
-"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Carpathian."
#: src/settings_translation_file.cpp
-msgid "Base ground level"
-msgstr "Àirde bhunasach a’ ghrunnda"
+msgid ""
+"The maximum height of the surface of waving liquids.\n"
+"4.0 = Wave height is two nodes.\n"
+"0.0 = Wave doesn't move at all.\n"
+"Default is 1.0 (1/2 node).\n"
+"Requires waving liquids to be enabled."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines the base ground level."
-msgstr "Mìnichidh seo àirde bhunasach a’ ghrunnda."
+msgid "The network interface that the server listens on."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "River channel width"
-msgstr "Leud sruth nan aibhnean"
+msgid ""
+"The privileges that new users automatically get.\n"
+"See /privs in game for a full list on your server and mod configuration."
+msgstr ""
+"Na sochairean a gheibh cleachdaichean ùra gu fèin-obrachail.\n"
+"Faic /privs sa gheama airson liosta slàn air rèiteachadh an fhrithealaiche "
+"’s nan tuilleadan agad."
#: src/settings_translation_file.cpp
-msgid "Defines the width of the river channel."
-msgstr "Mìnichidh seo leud sruth nan aibhnean."
+msgid ""
+"The radius of the volume of blocks around every player that is subject to "
+"the\n"
+"active block stuff, stated in mapblocks (16 nodes).\n"
+"In active blocks objects are loaded and ABMs run.\n"
+"This is also the minimum range in which active objects (mobs) are "
+"maintained.\n"
+"This should be configured together with active_object_send_range_blocks."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "River channel depth"
-msgstr "Doimhne sruth nan aibhnean"
+msgid ""
+"The rendering back-end for Irrlicht.\n"
+"A restart is required after changing this.\n"
+"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
+"otherwise.\n"
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines the depth of the river channel."
-msgstr "Mìnichidh seo doimhne sruth nan aibhnean."
+msgid ""
+"The sensitivity of the joystick axes for moving the\n"
+"ingame view frustum around."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "River valley width"
-msgstr "Leud gleanntan aibhne"
+msgid ""
+"The strength (darkness) of node ambient-occlusion shading.\n"
+"Lower is darker, Higher is lighter. The valid range of values for this\n"
+"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n"
+"set to the nearest valid value."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines the width of the river valley."
-msgstr "Mìnichidh seo leud gleanntan nan aibhnean."
+msgid ""
+"The time (in seconds) that the liquids queue may grow beyond processing\n"
+"capacity until an attempt is made to decrease its size by dumping old queue\n"
+"items. A value of 0 disables the functionality."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hilliness1 noise"
+msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "First of 4 2D noises that together define hill/mountain range height."
+msgid ""
+"The time in seconds it takes between repeated events\n"
+"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hilliness2 noise"
+msgid ""
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Second of 4 2D noises that together define hill/mountain range height."
+msgid "The type of joystick"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hilliness3 noise"
+msgid ""
+"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n"
+"enabled. Also the vertical distance over which humidity drops by 10 if\n"
+"'altitude_dry' is enabled."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6123,513 +6183,511 @@ msgid "Third of 4 2D noises that together define hill/mountain range height."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hilliness4 noise"
+msgid ""
+"Time in seconds for item entity (dropped items) to live.\n"
+"Setting it to -1 disables the feature."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fourth of 4 2D noises that together define hill/mountain range height."
+msgid "Time of day when a new world is started, in millihours (0-23999)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rolling hills spread noise"
+msgid "Time send interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of rolling hills."
+msgid "Time speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ridge mountain spread noise"
+msgid "Timeout for client to remove unused map data from memory."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
+msgid ""
+"To reduce lag, block transfers are slowed down when a player is building "
+"something.\n"
+"This determines how long they are slowed down after placing or removing a "
+"node."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Step mountain spread noise"
+msgid "Toggle camera mode key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of step mountain ranges."
+msgid "Tooltip delay"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rolling hill size noise"
+msgid "Touch screen threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of rolling hills."
-msgstr "Riasladh 2D a stiùiricheas cruth/meud nan cnoc."
+msgid "Trees noise"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ridged mountain size noise"
+msgid "Trilinear filtering"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of ridged mountains."
+msgid ""
+"True = 256\n"
+"False = 128\n"
+"Usable to make minimap smoother on slower machines."
msgstr ""
+"True = 256\n"
+"False = 128\n"
+"Gabhaidh a chleachdadh airson am meanbh-mhapa a dhèanamh nas rèidhe air "
+"uidheaman slaodach."
#: src/settings_translation_file.cpp
-msgid "Step mountain size noise"
+msgid "Trusted mods"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of step mountains."
+msgid "URL to the server list displayed in the Multiplayer Tab."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "River noise"
-msgstr "Riasladh aibhnean"
+msgid "Undersampling"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that locates the river valleys and channels."
-msgstr "Riasladh 2D a shuidhicheas glinn is sruthan nan aibhnean."
+msgid ""
+"Undersampling is similar to using a lower screen resolution, but it applies\n"
+"to the game world only, keeping the GUI intact.\n"
+"It should give a significant performance boost at the cost of less detailed "
+"image.\n"
+"Higher values result in a less detailed image."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mountain variation noise"
+msgid "Unlimited player transfer distance"
+msgstr "Astar tar-chur nan cluicheadairean gun chuingeachadh"
+
+#: src/settings_translation_file.cpp
+msgid "Unload unused server data"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
+msgid "Upper Y limit of dungeons."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Flat"
-msgstr "Gineadair nam mapa Flat"
+msgid "Upper Y limit of floatlands."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Flat specific flags"
-msgstr "Brataich shònraichte do ghineadair nam mapa Flat"
+msgid "Use 3D cloud look instead of flat."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen Flat.\n"
-"Occasional lakes and hills can be added to the flat world."
+msgid "Use a cloud animation for the main menu background."
msgstr ""
-"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Flat.\n"
-"’S urrainn dhut lochan is cnuic ghanna a chur ris an t-saoghal rèidh."
#: src/settings_translation_file.cpp
-msgid "Ground level"
-msgstr "Àirde a’ ghrunnda"
+msgid "Use anisotropic filtering when viewing at textures from an angle."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y of flat ground."
+msgid "Use bilinear filtering when scaling textures."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Lake threshold"
+msgid ""
+"Use mip mapping to scale textures. May slightly increase performance,\n"
+"especially when using a high resolution texture pack.\n"
+"Gamma correct downscaling is not supported."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Terrain noise threshold for lakes.\n"
-"Controls proportion of world area covered by lakes.\n"
-"Adjust towards 0.0 for a larger proportion."
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Lake steepness"
+msgid "Use trilinear filtering when scaling textures."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Controls steepness/depth of lake depressions."
+msgid "VBO"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hill threshold"
+msgid "VSync"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Terrain noise threshold for hills.\n"
-"Controls proportion of world area covered by hills.\n"
-"Adjust towards 0.0 for a larger proportion."
+msgid "Valley depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hill steepness"
+msgid "Valley fill"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Controls steepness/height of hills."
+msgid "Valley profile"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain noise"
+msgid "Valley slope"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines location and terrain of optional hills and lakes."
+msgid "Variation of biome filler depth."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Fractal"
-msgstr "Gineadair nam mapa Fractal"
+msgid "Variation of maximum mountain height (in nodes)."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Fractal specific flags"
-msgstr "Brataich shònraichte do ghineadair nam mapa Fractal"
+msgid "Variation of number of caves."
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Map generation attributes specific to Mapgen Fractal.\n"
-"'terrain' enables the generation of non-fractal terrain:\n"
-"ocean, islands and underground."
+"Variation of terrain vertical scale.\n"
+"When noise is < -0.55 terrain is near-flat."
msgstr ""
-"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Fractal.\n"
-"Cuiridh “terrain†gintinn crutha-tìre nach eil fractalach an comas:\n"
-"cuan, eileanan is fon talamh."
#: src/settings_translation_file.cpp
-msgid "Fractal type"
+msgid "Varies depth of biome surface nodes."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Selects one of 18 fractal types.\n"
-"1 = 4D \"Roundy\" Mandelbrot set.\n"
-"2 = 4D \"Roundy\" Julia set.\n"
-"3 = 4D \"Squarry\" Mandelbrot set.\n"
-"4 = 4D \"Squarry\" Julia set.\n"
-"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n"
-"6 = 4D \"Mandy Cousin\" Julia set.\n"
-"7 = 4D \"Variation\" Mandelbrot set.\n"
-"8 = 4D \"Variation\" Julia set.\n"
-"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n"
-"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n"
-"11 = 3D \"Christmas Tree\" Mandelbrot set.\n"
-"12 = 3D \"Christmas Tree\" Julia set.\n"
-"13 = 3D \"Mandelbulb\" Mandelbrot set.\n"
-"14 = 3D \"Mandelbulb\" Julia set.\n"
-"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n"
-"16 = 3D \"Cosine Mandelbulb\" Julia set.\n"
-"17 = 4D \"Mandelbulb\" Mandelbrot set.\n"
-"18 = 4D \"Mandelbulb\" Julia set."
+"Varies roughness of terrain.\n"
+"Defines the 'persistence' value for terrain_base and terrain_alt noises."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Iterations"
+msgid "Varies steepness of cliffs."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Iterations of the recursive function.\n"
-"Increasing this increases the amount of fine detail, but also\n"
-"increases processing load.\n"
-"At iterations = 20 this mapgen has a similar load to mapgen V7."
+msgid "Vertical climbing speed, in nodes per second."
msgstr ""
-"Ath-thriall an fhoincsein ath-chùrsaiche.\n"
-"Ma mheudaicheas tu seo, bidh barrachd mion-chruthan air\n"
-"ach bi barrachd eallaich air a’ phròiseasadh cuideachd.\n"
-"Ma tha ath-thriall = 20, bidh an t-eallach aig gineadair nam mapa seo "
-"coltach ri eallach gineadair nam mapa V7."
#: src/settings_translation_file.cpp
-msgid ""
-"(X,Y,Z) scale of fractal in nodes.\n"
-"Actual fractal size will be 2 to 3 times larger.\n"
-"These numbers can be made very large, the fractal does\n"
-"not have to fit inside the world.\n"
-"Increase these to 'zoom' into the detail of the fractal.\n"
-"Default is for a vertically-squashed shape suitable for\n"
-"an island, set all 3 numbers equal for the raw shape."
+msgid "Vertical screen synchronization."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
-"Can be used to move a desired point to (0, 0) to create a\n"
-"suitable spawn point, or to allow 'zooming in' on a desired\n"
-"point by increasing 'scale'.\n"
-"The default is tuned for a suitable spawn point for Mandelbrot\n"
-"sets with default parameters, it may need altering in other\n"
-"situations.\n"
-"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
-msgstr ""
+msgid "Video driver"
+msgstr "Dràibhear video"
#: src/settings_translation_file.cpp
-msgid "Slice w"
+msgid "View bobbing factor"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"W coordinate of the generated 3D slice of a 4D fractal.\n"
-"Determines which 3D slice of the 4D shape is generated.\n"
-"Alters the shape of the fractal.\n"
-"Has no effect on 3D fractals.\n"
-"Range roughly -2 to 2."
+msgid "View distance in nodes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Julia x"
+msgid "View range decrease key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"X component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
+msgid "View range increase key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Julia y"
+msgid "View zoom key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"Y component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
+msgid "Viewing range"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Julia z"
+msgid "Virtual joystick triggers aux button"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"Z component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
+msgid "Volume"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Julia w"
+msgid ""
+"Volume of all sounds.\n"
+"Requires the sound system to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Julia set only.\n"
-"W component of hypercomplex constant.\n"
+"W coordinate of the generated 3D slice of a 4D fractal.\n"
+"Determines which 3D slice of the 4D shape is generated.\n"
"Alters the shape of the fractal.\n"
"Has no effect on 3D fractals.\n"
"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Seabed noise"
+msgid "Walking and flying speed, in nodes per second."
+msgstr "Luaths na coiseachd is sgiathaidh, ann an nòd gach diog."
+
+#: src/settings_translation_file.cpp
+msgid "Walking speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of seabed."
-msgstr "Àirde-Y aig grunnd na mara."
+msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
+msgstr ""
+"Luaths na coiseachd, sgiathaidh is sreap sa mhodh luath, ann an nòd gach "
+"diog."
#: src/settings_translation_file.cpp
-msgid "Mapgen Valleys"
-msgstr "Gineadair nam mapa Valleys"
+msgid "Water level"
+msgstr "Àirde an uisge"
#: src/settings_translation_file.cpp
-msgid "Mapgen Valleys specific flags"
-msgstr "Brataich shònraichte do ghineadair nam mapa Valleys"
+msgid "Water surface level of the world."
+msgstr "Àirde uachdar an uisge air an t-saoghal."
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen Valleys.\n"
-"'altitude_chill': Reduces heat with altitude.\n"
-"'humid_rivers': Increases humidity around rivers.\n"
-"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n"
-"to become shallower and occasionally dry.\n"
-"'altitude_dry': Reduces humidity with altitude."
+msgid "Waving Nodes"
msgstr ""
-"Buadhan gintinn mapa a tha sònraichte do ghineadair nam mapa Valleys.\n"
-"“altitude_chillâ€: Bidh tìr àrd nas fhuaire.\n"
-"“humid_riversâ€: Bidh an tìr nas buige faisg air aibhnean.\n"
-"“vary_river_depthâ€: Ma tha seo an comas, bidh aibhnean nas tana agus tioram "
-"aig amannan ma tha an saoghal tioram no teth.\n"
-"’“altitude_dryâ€: Bidh tìr àrd nas tiorma."
#: src/settings_translation_file.cpp
-msgid ""
-"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n"
-"enabled. Also the vertical distance over which humidity drops by 10 if\n"
-"'altitude_dry' is enabled."
+msgid "Waving leaves"
+msgstr "Crathadh duillich"
+
+#: src/settings_translation_file.cpp
+msgid "Waving liquids"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Depth below which you'll find large caves."
+msgid "Waving liquids wave height"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cavern upper limit"
+msgid "Waving liquids wave speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Depth below which you'll find giant caverns."
+msgid "Waving liquids wavelength"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "River depth"
-msgstr "Doimhne nan aibhnean"
+msgid "Waving plants"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "How deep to make rivers."
-msgstr "Dè cho domhainn ’s a bhios aibhnean."
+msgid ""
+"When gui_scaling_filter is true, all GUI images need to be\n"
+"filtered in software, but some images are generated directly\n"
+"to hardware (e.g. render-to-texture for nodes in inventory)."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "River size"
-msgstr "Meud nan aibhnean"
+msgid ""
+"When gui_scaling_filter_txr2img is true, copy those images\n"
+"from hardware to software for scaling. When false, fall back\n"
+"to the old scaling method, for video drivers that don't\n"
+"properly support downloading textures back from hardware."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "How wide to make rivers."
-msgstr "Dè cho leathann ’s a bhios aibhnean."
+msgid ""
+"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
+"can be blurred, so automatically upscale them with nearest-neighbor\n"
+"interpolation to preserve crisp pixels. This sets the minimum texture size\n"
+"for the upscaled textures; higher values look sharper, but require more\n"
+"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n"
+"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n"
+"enabled.\n"
+"This is also used as the base node texture size for world-aligned\n"
+"texture autoscaling."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cave noise #1"
+msgid ""
+"Whether FreeType fonts are used, requires FreeType support to be compiled "
+"in.\n"
+"If disabled, bitmap and XML vectors fonts are used instead."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cave noise #2"
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Filler depth"
+msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "The depth of dirt or other biome filler node."
+msgid ""
+"Whether players are shown to clients without any range limit.\n"
+"Deprecated, use the setting player_transfer_distance instead."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain height"
+msgid "Whether to allow players to damage and kill each other."
msgstr ""
+"Co-dhiù am faod cluicheadairean càch a chèile a leòn ’s a mharbhadh gus nach "
+"fhaod."
#: src/settings_translation_file.cpp
-msgid "Base terrain height."
+msgid ""
+"Whether to ask clients to reconnect after a (Lua) crash.\n"
+"Set this to true if your server is set up to restart automatically."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Valley depth"
+msgid "Whether to fog out the end of the visible area."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Raises terrain to make valleys around the rivers."
+msgid ""
+"Whether to mute sounds. You can unmute sounds at any time, unless the\n"
+"sound system is disabled (enable_sound=false).\n"
+"In-game, you can toggle the mute state with the mute key or by using the\n"
+"pause menu."
msgstr ""
-"Àrdaichidh seo an cruth-tìre airson glinn a chruthachadh timcheall air na "
-"h-aibhnean."
#: src/settings_translation_file.cpp
-msgid "Valley fill"
+msgid ""
+"Whether to show the client debug info (has the same effect as hitting F5)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Slope and fill work together to modify the heights."
+msgid "Width component of the initial window size."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Valley profile"
+msgid "Width of the selection box lines around nodes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Amplifies the valleys."
-msgstr "Meudaichidh seo na glinn."
+msgid ""
+"Windows systems only: Start Minetest with the command line window in the "
+"background.\n"
+"Contains the same information as the file debug.txt (default name)."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Valley slope"
+msgid ""
+"World directory (everything in the world is stored here).\n"
+"Not needed if starting from the main menu."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chunk size"
-msgstr "Meud nan cnapan"
+msgid "World start time"
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n"
-"WARNING!: There is no benefit, and there are several dangers, in\n"
-"increasing this value above 5.\n"
-"Reducing this value increases cave and dungeon density.\n"
-"Altering this value is for special usage, leaving it unchanged is\n"
-"recommended."
+"World-aligned textures may be scaled to span several nodes. However,\n"
+"the server may not send the scale you want, especially if you use\n"
+"a specially-designed texture pack; with this option, the client tries\n"
+"to determine the scale automatically basing on the texture size.\n"
+"See also texture_min_size.\n"
+"Warning: This option is EXPERIMENTAL!"
msgstr ""
-"Meud nan cnapan mapa a thèid a ghintinn le gineadair nam mapa, ann am bloca "
-"mapa (16 nòd).\n"
-"RABHADH: Chan fhaigh thu buannachd ach cunnartan à luach nas àirde na 5.\n"
-"Le luach nas lugha, gheibh thu barrachd uamhan is thuill-dubha.\n"
-"Chan fhiach atharrachadh an luach seo ach air adhbhar sònraichte ’s "
-"mholamaid\n"
-"nach atharraich thu e."
#: src/settings_translation_file.cpp
-msgid "Mapgen debug"
-msgstr "Dì-bhugachadh gineadair nam mapa"
+msgid "World-aligned textures mode"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Dump the mapgen debug information."
-msgstr "Dumpaich fiosrachadh dì-bhugachaidh aig gineadair nam mapa."
+msgid "Y of flat ground."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Absolute limit of queued blocks to emerge"
+msgid ""
+"Y of mountain density gradient zero level. Used to shift mountains "
+"vertically."
msgstr ""
+"Y air àirde neoini air caisead dùmhlachd nam beanntan. Thèid seo a "
+"chleachdadh airson beanntan a thogail gu h-inghearach."
#: src/settings_translation_file.cpp
-msgid "Maximum number of blocks that can be queued for loading."
+msgid "Y of upper limit of large caves."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Per-player limit of queued blocks load from disk"
+msgid "Y-distance over which caverns expand to full size."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of blocks to be queued that are to be loaded from file.\n"
-"This limit is enforced per player."
+"Y-distance over which floatlands taper from full density to nothing.\n"
+"Tapering starts at this distance from the Y limit.\n"
+"For a solid floatland layer, this controls the height of hills/mountains.\n"
+"Must be less than or equal to half the distance between the Y limits."
msgstr ""
+"Seo an t-astar-Y eadar an dùbhlachd làn ’s an òir air cinn-chaoil na tìre "
+"air fhleòd.\n"
+"Tòsichidh na cinn-chaoil aig an astar seo on chrìoch Y.\n"
+"Airson breath tìre air fhleòd sholadach, stiùirichidh seo àirde nan cnoc/nam "
+"beanntan.\n"
+"Feumaidh e a bhith nas lugha na no co-ionnann ris an dàrna leth dhen astar "
+"eadar na crìochan Y."
#: src/settings_translation_file.cpp
-msgid "Per-player limit of queued blocks to generate"
-msgstr ""
+msgid "Y-level of average terrain surface."
+msgstr "Àirde-Y aig uachdar cuibheasach a’ chrutha-thìre."
#: src/settings_translation_file.cpp
-msgid ""
-"Maximum number of blocks to be queued that are to be generated.\n"
-"This limit is enforced per player."
-msgstr ""
+msgid "Y-level of cavern upper limit."
+msgstr "Àirde-Y aig crìoch àrd nan uamhan."
#: src/settings_translation_file.cpp
-msgid "Number of emerge threads"
-msgstr ""
+msgid "Y-level of higher terrain that creates cliffs."
+msgstr "Àirde-Y a’ chrutha-thìre nas àirde a chruthaicheas creagan."
#: src/settings_translation_file.cpp
-msgid ""
-"Number of emerge threads to use.\n"
-"Value 0:\n"
-"- Automatic selection. The number of emerge threads will be\n"
-"- 'number of processors - 2', with a lower limit of 1.\n"
-"Any other value:\n"
-"- Specifies the number of emerge threads, with a lower limit of 1.\n"
-"WARNING: Increasing the number of emerge threads increases engine mapgen\n"
-"speed, but this may harm game performance by interfering with other\n"
-"processes, especially in singleplayer and/or when running Lua code in\n"
-"'on_generated'. For many users the optimum setting may be '1'."
-msgstr ""
+msgid "Y-level of lower terrain and seabed."
+msgstr "Àirde-Y a’ chrutha-thìre ìosal agus grunnd na mara."
#: src/settings_translation_file.cpp
-msgid "Online Content Repository"
-msgstr "Ionad-tasgaidh susbaint air loidhne"
+msgid "Y-level of seabed."
+msgstr "Àirde-Y aig grunnd na mara."
#: src/settings_translation_file.cpp
-msgid "ContentDB URL"
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "The URL for the content repository"
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "ContentDB Flag Blacklist"
+msgid "cURL file download timeout"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Comma-separated list of flags to hide in the content repository.\n"
-"\"nonfree\" can be used to hide packages which do not qualify as 'free "
-"software',\n"
-"as defined by the Free Software Foundation.\n"
-"You can also specify content ratings.\n"
-"These flags are independent from Minetest versions,\n"
-"so see a full list at https://content.minetest.net/help/content_flags/"
+msgid "cURL parallel limit"
msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "cURL timeout"
+msgstr ""
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr ""
+#~ "Claonadh na h-èifeachd occlusion na paraileig air fheadh, seo sgèile/2 "
+#~ "mar as àbhaist."
diff --git a/po/gl/minetest.po b/po/gl/minetest.po
index 115597bf8..6f5b479bc 100644
--- a/po/gl/minetest.po
+++ b/po/gl/minetest.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: 2020-07-08 20:47+0000\n"
"Last-Translator: sfan5 <sfan5@live.de>\n"
"Language-Team: Galician <https://hosted.weblate.org/projects/minetest/"
@@ -20,43 +20,43 @@ msgstr ""
"X-Generator: Weblate 4.2-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
-msgid "You died"
-msgstr "Morreches"
-
-#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
msgstr "Reaparecer"
+#: builtin/client/death_formspec.lua src/client/game.cpp
+msgid "You died"
+msgstr "Morreches"
+
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
msgstr "Vale"
#: builtin/fstk/ui.lua
-msgid "The server has requested a reconnect:"
-msgstr "O servidor solicitou que reconectes:"
+msgid "An error occurred in a Lua script:"
+msgstr ""
#: builtin/fstk/ui.lua
-msgid "Reconnect"
-msgstr "Reconectar"
+msgid "An error occurred:"
+msgstr ""
#: builtin/fstk/ui.lua
msgid "Main menu"
msgstr "Menu principal"
#: builtin/fstk/ui.lua
-msgid "An error occurred in a Lua script:"
-msgstr ""
+msgid "Reconnect"
+msgstr "Reconectar"
#: builtin/fstk/ui.lua
-msgid "An error occurred:"
-msgstr ""
+msgid "The server has requested a reconnect:"
+msgstr "O servidor solicitou que reconectes:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
+#: builtin/mainmenu/common.lua
+msgid "Protocol version mismatch. "
msgstr ""
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
+msgid "Server enforces protocol version $1. "
msgstr ""
#: builtin/mainmenu/common.lua
@@ -64,104 +64,124 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr ""
#: builtin/mainmenu/common.lua
-msgid "Server enforces protocol version $1. "
+msgid "We only support protocol version $1."
msgstr ""
#: builtin/mainmenu/common.lua
msgid "We support protocol versions between version $1 and $2."
msgstr ""
-#: builtin/mainmenu/common.lua
-msgid "We only support protocol version $1."
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_delete_content.lua
+#: builtin/mainmenu/dlg_delete_world.lua
+#: builtin/mainmenu/dlg_rename_modpack.lua
+#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp
+#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
+#: src/gui/guiPasswordChange.cpp
+msgid "Cancel"
msgstr ""
-#: builtin/mainmenu/common.lua
-msgid "Protocol version mismatch. "
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
+msgid "Dependencies:"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "World:"
+msgid "Disable all"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "No modpack description provided."
+msgid "Disable modpack"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "No game description provided."
+msgid "Enable all"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "Mod:"
+msgid "Enable modpack"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "No (optional) dependencies"
+msgid ""
+"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
+"characters [a-z0-9_] are allowed."
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "No hard dependencies"
+msgid "Find More Mods"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
-msgid "Optional dependencies:"
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "Mod:"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
-msgid "Dependencies:"
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "No (optional) dependencies"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "No optional dependencies"
+msgid "No game description provided."
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
-msgid "Save"
+msgid "No hard dependencies"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
-#: builtin/mainmenu/dlg_delete_content.lua
-#: builtin/mainmenu/dlg_delete_world.lua
-#: builtin/mainmenu/dlg_rename_modpack.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp
-#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
-#: src/gui/guiPasswordChange.cpp
-msgid "Cancel"
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "No modpack description provided."
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "Find More Mods"
+msgid "No optional dependencies"
+msgstr ""
+
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+msgid "Optional dependencies:"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "Disable modpack"
+#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
+msgid "Save"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-msgid "Enable modpack"
+msgid "World:"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
msgid "enabled"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Disable all"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Enable all"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid ""
-"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
-"characters [a-z0-9_] are allowed."
+"$1 downloading,\n"
+"$2 queued"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "ContentDB is not available when Minetest was compiled without cURL"
+msgid "$1 downloading..."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
@@ -169,30 +189,53 @@ msgid "All packages"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Back to Main Menu"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "ContentDB is not available when Minetest was compiled without cURL"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Downloading..."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Failed to download $1"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Mods"
+msgid "Install"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Texture packs"
+msgid "Install $1"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Failed to download $1"
+msgid "Install missing dependencies"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Mods"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Back to Main Menu"
+msgid "No packages could be retrieved"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
@@ -200,19 +243,27 @@ msgid "No results"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "No packages could be retrieved"
+msgid "No updates"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Downloading..."
+msgid "Not found"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Install"
+msgid "Overwrite"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Update"
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Texture packs"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
@@ -220,79 +271,83 @@ msgid "Uninstall"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Caverns"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Update All [$1]"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Very large caverns deep in the underground"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Sea level rivers"
+msgid "A world named \"$1\" already exists"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Rivers"
+msgid "Additional terrain"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mountains"
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Altitude chill"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Floatlands (experimental)"
+msgid "Altitude dry"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Floating landmasses in the sky"
+msgid "Biome blending"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Altitude chill"
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Biomes"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Reduces heat with altitude"
+msgid "Caverns"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Altitude dry"
+msgid "Caves"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Reduces humidity with altitude"
+msgid "Create"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Humid rivers"
+msgid "Decorations"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Increases humidity around rivers"
+msgid "Download a game, such as Minetest Game, from minetest.net"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Vary river depth"
+msgid "Download one from minetest.net"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Low humidity and high heat causes shallow or dry rivers"
+msgid "Dungeons"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Hills"
+msgid "Flat terrain"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Lakes"
+msgid "Floating landmasses in the sky"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Additional terrain"
+msgid "Floatlands (experimental)"
+msgstr ""
+
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Game"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -300,122 +355,126 @@ msgid "Generate non-fractal terrain: Oceans and underground"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Trees and jungle grass"
+msgid "Hills"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Flat terrain"
+msgid "Humid rivers"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mud flow"
+msgid "Increases humidity around rivers"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Terrain surface erosion"
+msgid "Lakes"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert, Jungle, Tundra, Taiga"
+msgid "Low humidity and high heat causes shallow or dry rivers"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert, Jungle"
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Mapgen"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert"
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Mapgen flags"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "You have no games installed."
+msgid "Mapgen-specific flags"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Download one from minetest.net"
+msgid "Mountains"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Caves"
+msgid "Mud flow"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Dungeons"
+msgid "Network of tunnels and caves"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Decorations"
+msgid "No game selected"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid ""
-"Structures appearing on the terrain (no effect on trees and jungle grass "
-"created by v6)"
+msgid "Reduces heat with altitude"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Structures appearing on the terrain, typically trees and plants"
+msgid "Reduces humidity with altitude"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Network of tunnels and caves"
+msgid "Rivers"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Biomes"
+msgid "Sea level rivers"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Biome blending"
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Seed"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Mapgen flags"
+#: builtin/mainmenu/dlg_create_world.lua
+msgid ""
+"Structures appearing on the terrain (no effect on trees and jungle grass "
+"created by v6)"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mapgen-specific flags"
+msgid "Structures appearing on the terrain, typically trees and plants"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Warning: The Development Test is meant for developers."
+msgid "Temperate, Desert"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Download a game, such as Minetest Game, from minetest.net"
+msgid "Temperate, Desert, Jungle"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "World name"
+msgid "Temperate, Desert, Jungle, Tundra, Taiga"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Seed"
+msgid "Terrain surface erosion"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Mapgen"
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Trees and jungle grass"
msgstr ""
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Game"
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Vary river depth"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Create"
+msgid "Very large caverns deep in the underground"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "A world named \"$1\" already exists"
+msgid "Warning: The Development Test is meant for developers."
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "No game selected"
+msgid "World name"
+msgstr ""
+
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "You have no games installed."
msgstr ""
#: builtin/mainmenu/dlg_delete_content.lua
@@ -445,140 +504,144 @@ msgid "Accept"
msgstr ""
#: builtin/mainmenu/dlg_rename_modpack.lua
+msgid "Rename Modpack:"
+msgstr ""
+
+#: builtin/mainmenu/dlg_rename_modpack.lua
msgid ""
"This modpack has an explicit name given in its modpack.conf which will "
"override any renaming here."
msgstr ""
-#: builtin/mainmenu/dlg_rename_modpack.lua
-msgid "Rename Modpack:"
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "(No description of setting given)"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Disabled"
+msgid "2D Noise"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Enabled"
+msgid "< Back to Settings page"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr ""
-#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
-msgid "Offset"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
-msgid "Scale"
-msgstr ""
-
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "X spread"
+msgid "Disabled"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Y spread"
+msgid "Edit"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "2D Noise"
+msgid "Enabled"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Z spread"
+msgid "Lacunarity"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Octaves"
msgstr ""
+#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
+msgid "Offset"
+msgstr ""
+
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Persistance"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Lacunarity"
+msgid "Please enter a valid integer."
msgstr ""
-#. ~ "defaults" is a noise parameter flag.
-#. It describes the default processing options
-#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "defaults"
+msgid "Please enter a valid number."
msgstr ""
-#. ~ "eased" is a noise parameter flag.
-#. It is used to make the map smoother and
-#. can be enabled in noise settings in
-#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "eased"
+msgid "Restore Default"
+msgstr ""
+
+#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
+msgid "Scale"
msgstr ""
-#. ~ "absvalue" is a noise parameter flag.
-#. It is short for "absolute value".
-#. It can be enabled in noise settings in
-#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "absvalue"
+msgid "Search"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "X"
+msgid "Select directory"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Y"
+msgid "Select file"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Z"
+msgid "Show technical names"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "(No description of setting given)"
+msgid "The value must be at least $1."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Please enter a valid integer."
+msgid "The value must not be larger than $1."
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "The value must be at least $1."
+msgid "X"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "The value must not be larger than $1."
+msgid "X spread"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Please enter a valid number."
+msgid "Y"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Select directory"
+msgid "Y spread"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Select file"
+msgid "Z"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "< Back to Settings page"
+msgid "Z spread"
msgstr ""
+#. ~ "absvalue" is a noise parameter flag.
+#. It is short for "absolute value".
+#. It can be enabled in noise settings in
+#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Edit"
+msgid "absvalue"
msgstr ""
+#. ~ "defaults" is a noise parameter flag.
+#. It describes the default processing options
+#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Restore Default"
+msgid "defaults"
msgstr ""
+#. ~ "eased" is a noise parameter flag.
+#. It is used to make the map smoother and
+#. can be enabled in noise settings in
+#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Show technical names"
+msgid "eased"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
@@ -586,7 +649,7 @@ msgid "$1 (Enabled)"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a $1 as a texture pack"
+msgid "$1 mods"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
@@ -594,43 +657,51 @@ msgid "Failed to install $1 to $2"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to find a valid mod or modpack"
+msgid "Install Mod: Unable to find real mod name for: $1"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a modpack as a $1"
+msgid "Install Mod: Unable to find suitable folder name for modpack $1"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install Mod: Unable to find suitable folder name for modpack $1"
+msgid "Install: Unsupported file type \"$1\" or broken archive"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a mod as a $1"
+msgid "Install: file: \"$1\""
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install Mod: Unable to find real mod name for: $1"
+msgid "Unable to find a valid mod or modpack"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a game as a $1"
+msgid "Unable to install a $1 as a texture pack"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install: file: \"$1\""
+msgid "Unable to install a game as a $1"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install: Unsupported file type \"$1\" or broken archive"
+msgid "Unable to install a mod as a $1"
msgstr ""
#: builtin/mainmenu/pkgmgr.lua
-msgid "$1 mods"
+msgid "Unable to install a modpack as a $1"
msgstr ""
-#: builtin/mainmenu/tab_content.lua
-msgid "Installed Packages:"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
msgstr ""
#: builtin/mainmenu/tab_content.lua
@@ -638,27 +709,31 @@ msgid "Browse online content"
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "No package description available"
+msgid "Content"
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "Rename"
+msgid "Disable Texture Pack"
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "No dependencies."
+msgid "Information:"
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "Disable Texture Pack"
+msgid "Installed Packages:"
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "Use Texture Pack"
+msgid "No dependencies."
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "Information:"
+msgid "No package description available"
+msgstr ""
+
+#: builtin/mainmenu/tab_content.lua
+msgid "Rename"
msgstr ""
#: builtin/mainmenu/tab_content.lua
@@ -666,11 +741,11 @@ msgid "Uninstall Package"
msgstr ""
#: builtin/mainmenu/tab_content.lua
-msgid "Content"
+msgid "Use Texture Pack"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
-msgid "Credits"
+msgid "Active Contributors"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
@@ -678,67 +753,69 @@ msgid "Core Developers"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
-msgid "Active Contributors"
+msgid "Credits"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
-msgid "Previous Core Developers"
+msgid "Open User Data Directory"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
-msgid "Previous Contributors"
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
msgstr ""
-#: builtin/mainmenu/tab_local.lua
-msgid "Install games from ContentDB"
+#: builtin/mainmenu/tab_credits.lua
+msgid "Previous Contributors"
msgstr ""
-#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
+#: builtin/mainmenu/tab_credits.lua
+msgid "Previous Core Developers"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "New"
+msgid "Announce Server"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Select World:"
+msgid "Bind Address"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Creative Mode"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Host Server"
+msgid "Host Game"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Host Game"
+msgid "Host Server"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Announce Server"
+msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
+msgid "Name"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Bind Address"
+msgid "New"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Port"
+msgid "No world created or selected!"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Server Port"
+msgid "Password"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -746,152 +823,148 @@ msgid "Play Game"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "No world created or selected!"
+msgid "Port"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Start Game"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua
-msgid "Address / Port"
+msgid "Select Mods"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Name / Password"
+#: builtin/mainmenu/tab_local.lua
+msgid "Select World:"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Connect"
+#: builtin/mainmenu/tab_local.lua
+msgid "Server Port"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Del. Favorite"
+#: builtin/mainmenu/tab_local.lua
+msgid "Start Game"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Favorite"
+#: builtin/mainmenu/tab_online.lua
+msgid "Address / Port"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Ping"
+#: builtin/mainmenu/tab_online.lua
+msgid "Connect"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr ""
-#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "PvP enabled"
+#: builtin/mainmenu/tab_online.lua
+msgid "Del. Favorite"
msgstr ""
#: builtin/mainmenu/tab_online.lua
-msgid "Join Game"
+msgid "Favorite"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Opaque Leaves"
+#: builtin/mainmenu/tab_online.lua
+msgid "Join Game"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Simple Leaves"
+#: builtin/mainmenu/tab_online.lua
+msgid "Name / Password"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Fancy Leaves"
+#: builtin/mainmenu/tab_online.lua
+msgid "Ping"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Node Outlining"
+#. ~ PvP = Player versus Player
+#: builtin/mainmenu/tab_online.lua
+msgid "PvP enabled"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Node Highlighting"
+msgid "2x"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "None"
+msgid "3D Clouds"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No Filter"
+msgid "4x"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Bilinear Filter"
+msgid "8x"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Trilinear Filter"
+msgid "All Settings"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No Mipmap"
+msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Mipmap"
+msgid "Autosave Screen Size"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Mipmap + Aniso. Filter"
+msgid "Bilinear Filter"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "2x"
+#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
+msgid "Change Keys"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "4x"
+msgid "Connected Glass"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "8x"
+msgid "Fancy Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
+msgid "Mipmap"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
+msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
+msgid "No Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Smooth Lighting"
+msgid "No Mipmap"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Particles"
+msgid "Node Highlighting"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "3D Clouds"
+msgid "Node Outlining"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Opaque Water"
+msgid "None"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Connected Glass"
+msgid "Opaque Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Texturing:"
+msgid "Opaque Water"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Antialiasing:"
+msgid "Particles"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
@@ -899,7 +972,7 @@ msgid "Screen:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Autosave Screen Size"
+msgid "Settings"
msgstr ""
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
@@ -907,27 +980,27 @@ msgid "Shaders"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Shaders (unavailable)"
+msgid "Shaders (experimental)"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
+msgid "Shaders (unavailable)"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
-msgid "Change Keys"
+#: builtin/mainmenu/tab_settings.lua
+msgid "Simple Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "All Settings"
+msgid "Smooth Lighting"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Touchthreshold: (px)"
+msgid "Texturing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
+msgid "To enable shaders the OpenGL driver needs to be used."
msgstr ""
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
@@ -935,15 +1008,11 @@ msgid "Tone Mapping"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
+msgid "Touchthreshold: (px)"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Waving Liquids"
+msgid "Trilinear Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
@@ -951,27 +1020,11 @@ msgid "Waving Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Waving Plants"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "To enable shaders the OpenGL driver needs to be used."
+msgid "Waving Liquids"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Settings"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
+msgid "Waving Plants"
msgstr ""
#: src/client/client.cpp
@@ -979,11 +1032,11 @@ msgid "Connection timed out."
msgstr ""
#: src/client/client.cpp
-msgid "Loading textures..."
+msgid "Done!"
msgstr ""
#: src/client/client.cpp
-msgid "Rebuilding shaders..."
+msgid "Initializing nodes"
msgstr ""
#: src/client/client.cpp
@@ -991,47 +1044,47 @@ msgid "Initializing nodes..."
msgstr ""
#: src/client/client.cpp
-msgid "Initializing nodes"
+msgid "Loading textures..."
msgstr ""
#: src/client/client.cpp
-msgid "Done!"
+msgid "Rebuilding shaders..."
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "Main Menu"
+msgid "Connection error (timed out?)"
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "Player name too long."
+msgid "Could not find or load game \""
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "Connection error (timed out?)"
+msgid "Invalid gamespec."
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "Provided password file failed to open: "
+msgid "Main Menu"
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "Please choose a name!"
+msgid "No world selected and no address provided. Nothing to do."
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "No world selected and no address provided. Nothing to do."
+msgid "Player name too long."
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "Provided world path doesn't exist: "
+msgid "Please choose a name!"
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "Could not find or load game \""
+msgid "Provided password file failed to open: "
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "Invalid gamespec."
+msgid "Provided world path doesn't exist: "
msgstr ""
#. ~ DO NOT TRANSLATE THIS LITERALLY!
@@ -1047,164 +1100,177 @@ msgid "needs_fallback_font"
msgstr "no"
#: src/client/game.cpp
-msgid "Shutting down..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Creating server..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Creating client..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Resolving address..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Connecting to server..."
+msgid ""
+"\n"
+"Check debug.txt for details."
msgstr ""
#: src/client/game.cpp
-msgid "Item definitions..."
+msgid "- Address: "
msgstr ""
#: src/client/game.cpp
-msgid "Node definitions..."
+msgid "- Creative Mode: "
msgstr ""
#: src/client/game.cpp
-msgid "Media..."
+msgid "- Damage: "
msgstr ""
#: src/client/game.cpp
-msgid "KiB/s"
+msgid "- Mode: "
msgstr ""
#: src/client/game.cpp
-msgid "MiB/s"
+msgid "- Port: "
msgstr ""
#: src/client/game.cpp
-msgid "Client side scripting is disabled"
+msgid "- Public: "
msgstr ""
+#. ~ PvP = Player versus Player
#: src/client/game.cpp
-msgid "Sound muted"
+msgid "- PvP: "
msgstr ""
#: src/client/game.cpp
-msgid "Sound unmuted"
+msgid "- Server Name: "
msgstr ""
#: src/client/game.cpp
-msgid "Sound system is disabled"
+msgid "Automatic forward disabled"
msgstr ""
#: src/client/game.cpp
-#, c-format
-msgid "Volume changed to %d%%"
+msgid "Automatic forward enabled"
msgstr ""
#: src/client/game.cpp
-msgid "Sound system is not supported on this build"
+msgid "Camera update disabled"
msgstr ""
#: src/client/game.cpp
-msgid "ok"
+msgid "Camera update enabled"
msgstr ""
#: src/client/game.cpp
-msgid "Fly mode enabled"
+msgid "Change Password"
msgstr ""
#: src/client/game.cpp
-msgid "Fly mode enabled (note: no 'fly' privilege)"
+msgid "Cinematic mode disabled"
msgstr ""
#: src/client/game.cpp
-msgid "Fly mode disabled"
+msgid "Cinematic mode enabled"
msgstr ""
#: src/client/game.cpp
-msgid "Pitch move mode enabled"
+msgid "Client side scripting is disabled"
msgstr ""
#: src/client/game.cpp
-msgid "Pitch move mode disabled"
+msgid "Connecting to server..."
msgstr ""
#: src/client/game.cpp
-msgid "Fast mode enabled"
+msgid "Continue"
msgstr ""
#: src/client/game.cpp
-msgid "Fast mode enabled (note: no 'fast' privilege)"
+#, c-format
+msgid ""
+"Controls:\n"
+"- %s: move forwards\n"
+"- %s: move backwards\n"
+"- %s: move left\n"
+"- %s: move right\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
+"- %s: drop item\n"
+"- %s: inventory\n"
+"- Mouse: turn/look\n"
+"- Mouse wheel: select item\n"
+"- %s: chat\n"
msgstr ""
#: src/client/game.cpp
-msgid "Fast mode disabled"
+msgid "Creating client..."
msgstr ""
#: src/client/game.cpp
-msgid "Noclip mode enabled"
+msgid "Creating server..."
msgstr ""
#: src/client/game.cpp
-msgid "Noclip mode enabled (note: no 'noclip' privilege)"
+msgid "Debug info and profiler graph hidden"
msgstr ""
#: src/client/game.cpp
-msgid "Noclip mode disabled"
+msgid "Debug info shown"
msgstr ""
#: src/client/game.cpp
-msgid "Cinematic mode enabled"
+msgid "Debug info, profiler graph, and wireframe hidden"
msgstr ""
#: src/client/game.cpp
-msgid "Cinematic mode disabled"
+msgid ""
+"Default Controls:\n"
+"No menu visible:\n"
+"- single tap: button activate\n"
+"- double tap: place/use\n"
+"- slide finger: look around\n"
+"Menu/Inventory visible:\n"
+"- double tap (outside):\n"
+" -->close\n"
+"- touch stack, touch slot:\n"
+" --> move stack\n"
+"- touch&drag, tap 2nd finger\n"
+" --> place single item to slot\n"
msgstr ""
#: src/client/game.cpp
-msgid "Automatic forward enabled"
+msgid "Disabled unlimited viewing range"
msgstr ""
#: src/client/game.cpp
-msgid "Automatic forward disabled"
+msgid "Enabled unlimited viewing range"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
+msgid "Exit to Menu"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
+msgid "Exit to OS"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
+msgid "Fast mode disabled"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
+msgid "Fast mode enabled"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
+msgid "Fast mode enabled (note: no 'fast' privilege)"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
+msgid "Fly mode disabled"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
+msgid "Fly mode enabled"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap currently disabled by game or mod"
+msgid "Fly mode enabled (note: no 'fly' privilege)"
msgstr ""
#: src/client/game.cpp
@@ -1216,180 +1282,143 @@ msgid "Fog enabled"
msgstr ""
#: src/client/game.cpp
-msgid "Debug info shown"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Profiler graph shown"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Wireframe shown"
+msgid "Game info:"
msgstr ""
#: src/client/game.cpp
-msgid "Debug info, profiler graph, and wireframe hidden"
+msgid "Game paused"
msgstr ""
#: src/client/game.cpp
-msgid "Debug info and profiler graph hidden"
+msgid "Hosting server"
msgstr ""
#: src/client/game.cpp
-msgid "Camera update disabled"
+msgid "Item definitions..."
msgstr ""
#: src/client/game.cpp
-msgid "Camera update enabled"
+msgid "KiB/s"
msgstr ""
#: src/client/game.cpp
-#, c-format
-msgid "Viewing range is at maximum: %d"
+msgid "Media..."
msgstr ""
#: src/client/game.cpp
-#, c-format
-msgid "Viewing range changed to %d"
+msgid "MiB/s"
msgstr ""
#: src/client/game.cpp
-#, c-format
-msgid "Viewing range is at minimum: %d"
+msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Enabled unlimited viewing range"
+msgid "Noclip mode disabled"
msgstr ""
#: src/client/game.cpp
-msgid "Disabled unlimited viewing range"
+msgid "Noclip mode enabled"
msgstr ""
#: src/client/game.cpp
-msgid "Zoom currently disabled by game or mod"
+msgid "Noclip mode enabled (note: no 'noclip' privilege)"
msgstr ""
#: src/client/game.cpp
-msgid ""
-"Default Controls:\n"
-"No menu visible:\n"
-"- single tap: button activate\n"
-"- double tap: place/use\n"
-"- slide finger: look around\n"
-"Menu/Inventory visible:\n"
-"- double tap (outside):\n"
-" -->close\n"
-"- touch stack, touch slot:\n"
-" --> move stack\n"
-"- touch&drag, tap 2nd finger\n"
-" --> place single item to slot\n"
+msgid "Node definitions..."
msgstr ""
#: src/client/game.cpp
-#, c-format
-msgid ""
-"Controls:\n"
-"- %s: move forwards\n"
-"- %s: move backwards\n"
-"- %s: move left\n"
-"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
-"- %s: drop item\n"
-"- %s: inventory\n"
-"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
-"- Mouse wheel: select item\n"
-"- %s: chat\n"
+msgid "Off"
msgstr ""
#: src/client/game.cpp
-msgid "Continue"
+msgid "On"
msgstr ""
#: src/client/game.cpp
-msgid "Change Password"
+msgid "Pitch move mode disabled"
msgstr ""
#: src/client/game.cpp
-msgid "Game paused"
+msgid "Pitch move mode enabled"
msgstr ""
#: src/client/game.cpp
-msgid "Sound Volume"
+msgid "Profiler graph shown"
msgstr ""
#: src/client/game.cpp
-msgid "Exit to Menu"
+msgid "Remote server"
msgstr ""
#: src/client/game.cpp
-msgid "Exit to OS"
+msgid "Resolving address..."
msgstr ""
#: src/client/game.cpp
-msgid "Game info:"
+msgid "Shutting down..."
msgstr ""
#: src/client/game.cpp
-msgid "- Mode: "
+msgid "Singleplayer"
msgstr ""
#: src/client/game.cpp
-msgid "Remote server"
+msgid "Sound Volume"
msgstr ""
#: src/client/game.cpp
-msgid "- Address: "
+msgid "Sound muted"
msgstr ""
#: src/client/game.cpp
-msgid "Hosting server"
+msgid "Sound system is disabled"
msgstr ""
#: src/client/game.cpp
-msgid "- Port: "
+msgid "Sound system is not supported on this build"
msgstr ""
#: src/client/game.cpp
-msgid "Singleplayer"
+msgid "Sound unmuted"
msgstr ""
#: src/client/game.cpp
-msgid "On"
+#, c-format
+msgid "Viewing range changed to %d"
msgstr ""
#: src/client/game.cpp
-msgid "Off"
+#, c-format
+msgid "Viewing range is at maximum: %d"
msgstr ""
#: src/client/game.cpp
-msgid "- Damage: "
+#, c-format
+msgid "Viewing range is at minimum: %d"
msgstr ""
#: src/client/game.cpp
-msgid "- Creative Mode: "
+#, c-format
+msgid "Volume changed to %d%%"
msgstr ""
-#. ~ PvP = Player versus Player
#: src/client/game.cpp
-msgid "- PvP: "
+msgid "Wireframe shown"
msgstr ""
#: src/client/game.cpp
-msgid "- Public: "
+msgid "Zoom currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "- Server Name: "
+msgid "ok"
msgstr ""
-#: src/client/game.cpp
-msgid ""
-"\n"
-"Check debug.txt for details."
+#: src/client/gameui.cpp
+msgid "Chat hidden"
msgstr ""
#: src/client/gameui.cpp
@@ -1397,7 +1426,7 @@ msgid "Chat shown"
msgstr ""
#: src/client/gameui.cpp
-msgid "Chat hidden"
+msgid "HUD hidden"
msgstr ""
#: src/client/gameui.cpp
@@ -1405,7 +1434,7 @@ msgid "HUD shown"
msgstr ""
#: src/client/gameui.cpp
-msgid "HUD hidden"
+msgid "Profiler hidden"
msgstr ""
#: src/client/gameui.cpp
@@ -1413,135 +1442,129 @@ msgstr ""
msgid "Profiler shown (page %d of %d)"
msgstr ""
-#: src/client/gameui.cpp
-msgid "Profiler hidden"
-msgstr ""
-
#: src/client/keycode.cpp
-msgid "Left Button"
+msgid "Apps"
msgstr ""
#: src/client/keycode.cpp
-msgid "Right Button"
+msgid "Backspace"
msgstr ""
#: src/client/keycode.cpp
-msgid "Middle Button"
+msgid "Caps Lock"
msgstr ""
#: src/client/keycode.cpp
-msgid "X Button 1"
+msgid "Clear"
msgstr ""
#: src/client/keycode.cpp
-msgid "X Button 2"
+msgid "Control"
msgstr ""
#: src/client/keycode.cpp
-msgid "Backspace"
+msgid "Down"
msgstr ""
#: src/client/keycode.cpp
-msgid "Tab"
+msgid "End"
msgstr ""
#: src/client/keycode.cpp
-msgid "Clear"
+msgid "Erase EOF"
msgstr ""
#: src/client/keycode.cpp
-msgid "Return"
+msgid "Execute"
msgstr ""
#: src/client/keycode.cpp
-msgid "Shift"
+msgid "Help"
msgstr ""
#: src/client/keycode.cpp
-msgid "Control"
+msgid "Home"
msgstr ""
-#. ~ Key name, common on Windows keyboards
#: src/client/keycode.cpp
-msgid "Menu"
+msgid "IME Accept"
msgstr ""
#: src/client/keycode.cpp
-msgid "Pause"
+msgid "IME Convert"
msgstr ""
#: src/client/keycode.cpp
-msgid "Caps Lock"
+msgid "IME Escape"
msgstr ""
#: src/client/keycode.cpp
-msgid "Space"
+msgid "IME Mode Change"
msgstr ""
#: src/client/keycode.cpp
-msgid "Page up"
+msgid "IME Nonconvert"
msgstr ""
#: src/client/keycode.cpp
-msgid "Page down"
+msgid "Insert"
msgstr ""
-#: src/client/keycode.cpp
-msgid "End"
+#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
+msgid "Left"
msgstr ""
#: src/client/keycode.cpp
-msgid "Home"
+msgid "Left Button"
msgstr ""
-#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
-msgid "Left"
+#: src/client/keycode.cpp
+msgid "Left Control"
msgstr ""
#: src/client/keycode.cpp
-msgid "Up"
+msgid "Left Menu"
msgstr ""
-#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
-msgid "Right"
+#: src/client/keycode.cpp
+msgid "Left Shift"
msgstr ""
#: src/client/keycode.cpp
-msgid "Down"
+msgid "Left Windows"
msgstr ""
-#. ~ Key name
+#. ~ Key name, common on Windows keyboards
#: src/client/keycode.cpp
-msgid "Select"
+msgid "Menu"
msgstr ""
-#. ~ "Print screen" key
#: src/client/keycode.cpp
-msgid "Print"
+msgid "Middle Button"
msgstr ""
#: src/client/keycode.cpp
-msgid "Execute"
+msgid "Num Lock"
msgstr ""
#: src/client/keycode.cpp
-msgid "Snapshot"
+msgid "Numpad *"
msgstr ""
#: src/client/keycode.cpp
-msgid "Insert"
+msgid "Numpad +"
msgstr ""
#: src/client/keycode.cpp
-msgid "Help"
+msgid "Numpad -"
msgstr ""
#: src/client/keycode.cpp
-msgid "Left Windows"
+msgid "Numpad ."
msgstr ""
#: src/client/keycode.cpp
-msgid "Right Windows"
+msgid "Numpad /"
msgstr ""
#: src/client/keycode.cpp
@@ -1585,99 +1608,127 @@ msgid "Numpad 9"
msgstr ""
#: src/client/keycode.cpp
-msgid "Numpad *"
+msgid "OEM Clear"
msgstr ""
#: src/client/keycode.cpp
-msgid "Numpad +"
+msgid "Page down"
msgstr ""
#: src/client/keycode.cpp
-msgid "Numpad ."
+msgid "Page up"
msgstr ""
#: src/client/keycode.cpp
-msgid "Numpad -"
+msgid "Pause"
msgstr ""
#: src/client/keycode.cpp
-msgid "Numpad /"
+msgid "Play"
msgstr ""
+#. ~ "Print screen" key
#: src/client/keycode.cpp
-msgid "Num Lock"
+msgid "Print"
msgstr ""
#: src/client/keycode.cpp
-msgid "Scroll Lock"
+msgid "Return"
+msgstr ""
+
+#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
+msgid "Right"
msgstr ""
#: src/client/keycode.cpp
-msgid "Left Shift"
+msgid "Right Button"
msgstr ""
#: src/client/keycode.cpp
-msgid "Right Shift"
+msgid "Right Control"
msgstr ""
#: src/client/keycode.cpp
-msgid "Left Control"
+msgid "Right Menu"
msgstr ""
#: src/client/keycode.cpp
-msgid "Right Control"
+msgid "Right Shift"
msgstr ""
#: src/client/keycode.cpp
-msgid "Left Menu"
+msgid "Right Windows"
msgstr ""
#: src/client/keycode.cpp
-msgid "Right Menu"
+msgid "Scroll Lock"
msgstr ""
+#. ~ Key name
#: src/client/keycode.cpp
-msgid "IME Escape"
+msgid "Select"
msgstr ""
#: src/client/keycode.cpp
-msgid "IME Convert"
+msgid "Shift"
msgstr ""
#: src/client/keycode.cpp
-msgid "IME Nonconvert"
+msgid "Sleep"
msgstr ""
#: src/client/keycode.cpp
-msgid "IME Accept"
+msgid "Snapshot"
msgstr ""
#: src/client/keycode.cpp
-msgid "IME Mode Change"
+msgid "Space"
msgstr ""
#: src/client/keycode.cpp
-msgid "Apps"
+msgid "Tab"
msgstr ""
#: src/client/keycode.cpp
-msgid "Sleep"
+msgid "Up"
msgstr ""
#: src/client/keycode.cpp
-msgid "Erase EOF"
+msgid "X Button 1"
msgstr ""
#: src/client/keycode.cpp
-msgid "Play"
+msgid "X Button 2"
msgstr ""
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
msgid "Zoom"
msgstr ""
-#: src/client/keycode.cpp
-msgid "OEM Clear"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
+#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
+msgid "Passwords do not match!"
+msgstr ""
+
+#: src/gui/guiConfirmRegistration.cpp
+msgid "Register and Join"
msgstr ""
#: src/gui/guiConfirmRegistration.cpp
@@ -1690,28 +1741,16 @@ msgid ""
"creation, or click 'Cancel' to abort."
msgstr ""
-#: src/gui/guiConfirmRegistration.cpp
-msgid "Register and Join"
-msgstr ""
-
-#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
-msgid "Passwords do not match!"
-msgstr ""
-
#: src/gui/guiFormSpecMenu.cpp
msgid "Proceed"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
msgid "\"Special\" = climb down"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Double tap \"jump\" to toggle fly"
+msgid "Autoforward"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
@@ -1719,71 +1758,71 @@ msgid "Automatic jumping"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Key already in use"
+msgid "Backward"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "press key"
+msgid "Change camera"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Forward"
+msgid "Chat"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Backward"
+msgid "Command"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Special"
+msgid "Console"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Jump"
+msgid "Dec. range"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Sneak"
+msgid "Dec. volume"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Drop"
+msgid "Double tap \"jump\" to toggle fly"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inventory"
+msgid "Drop"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Prev. item"
+msgid "Forward"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Next item"
+msgid "Inc. range"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Change camera"
+msgid "Inc. volume"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle minimap"
+msgid "Inventory"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fly"
+msgid "Jump"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle pitchmove"
+msgid "Key already in use"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fast"
+msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle noclip"
+msgid "Local command"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
@@ -1791,19 +1830,15 @@ msgid "Mute"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Dec. volume"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inc. volume"
+msgid "Next item"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Autoforward"
+msgid "Prev. item"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Chat"
+msgid "Range select"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
@@ -1811,47 +1846,51 @@ msgid "Screenshot"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Range select"
+msgid "Sneak"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Dec. range"
+msgid "Special"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inc. range"
+msgid "Toggle HUD"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Console"
+msgid "Toggle chat log"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Command"
+msgid "Toggle fast"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Local command"
+msgid "Toggle fly"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle HUD"
+msgid "Toggle fog"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle chat log"
+msgid "Toggle minimap"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fog"
+msgid "Toggle noclip"
msgstr ""
-#: src/gui/guiPasswordChange.cpp
-msgid "Old Password"
+#: src/gui/guiKeyChangeMenu.cpp
+msgid "Toggle pitchmove"
+msgstr ""
+
+#: src/gui/guiKeyChangeMenu.cpp
+msgid "press key"
msgstr ""
#: src/gui/guiPasswordChange.cpp
-msgid "New Password"
+msgid "Change"
msgstr ""
#: src/gui/guiPasswordChange.cpp
@@ -1859,11 +1898,11 @@ msgid "Confirm Password"
msgstr ""
#: src/gui/guiPasswordChange.cpp
-msgid "Change"
+msgid "New Password"
msgstr ""
-#: src/gui/guiVolumeChange.cpp
-msgid "Sound Volume: "
+#: src/gui/guiPasswordChange.cpp
+msgid "Old Password"
msgstr ""
#: src/gui/guiVolumeChange.cpp
@@ -1874,6 +1913,10 @@ msgstr ""
msgid "Muted"
msgstr ""
+#: src/gui/guiVolumeChange.cpp
+msgid "Sound Volume: "
+msgstr ""
+
#. ~ Imperative, as in "Enter/type in text".
#. Don't forget the space.
#: src/gui/modalMenu.cpp
@@ -1888,2038 +1931,1826 @@ msgid "LANG_CODE"
msgstr "gl"
#: src/settings_translation_file.cpp
-msgid "Controls"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Build inside player"
+msgid ""
+"(Android) Fixes the position of virtual joystick.\n"
+"If disabled, virtual joystick will center to first-touch's position."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"If enabled, you can place blocks at the position (feet + eye level) where "
-"you stand.\n"
-"This is helpful when working with nodeboxes in small areas."
+"(Android) Use virtual joystick to trigger \"aux\" button.\n"
+"If enabled, virtual joystick will also tap \"aux\" button when out of main "
+"circle."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Flying"
+msgid ""
+"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
+"Can be used to move a desired point to (0, 0) to create a\n"
+"suitable spawn point, or to allow 'zooming in' on a desired\n"
+"point by increasing 'scale'.\n"
+"The default is tuned for a suitable spawn point for Mandelbrot\n"
+"sets with default parameters, it may need altering in other\n"
+"situations.\n"
+"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Player is able to fly without being affected by gravity.\n"
-"This requires the \"fly\" privilege on the server."
+"(X,Y,Z) scale of fractal in nodes.\n"
+"Actual fractal size will be 2 to 3 times larger.\n"
+"These numbers can be made very large, the fractal does\n"
+"not have to fit inside the world.\n"
+"Increase these to 'zoom' into the detail of the fractal.\n"
+"Default is for a vertically-squashed shape suitable for\n"
+"an island, set all 3 numbers equal for the raw shape."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Pitch move mode"
+msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled, makes move directions relative to the player's pitch when flying "
-"or swimming."
+msgid "2D noise that controls the shape/size of rolling hills."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fast movement"
+msgid "2D noise that controls the shape/size of step mountains."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Fast movement (via the \"special\" key).\n"
-"This requires the \"fast\" privilege on the server."
+msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Noclip"
+msgid "2D noise that controls the size/occurrence of rolling hills."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled together with fly mode, player is able to fly through solid "
-"nodes.\n"
-"This requires the \"noclip\" privilege on the server."
+msgid "2D noise that controls the size/occurrence of step mountain ranges."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cinematic mode"
+msgid "2D noise that locates the river valleys and channels."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Smooths camera when looking around. Also called look or mouse smoothing.\n"
-"Useful for recording videos."
+msgid "3D clouds"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Camera smoothing"
+msgid "3D mode"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Smooths rotation of camera. 0 to disable."
+msgid "3D mode parallax strength"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Camera smoothing in cinematic mode"
+msgid "3D noise defining giant caverns."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Smooths rotation of camera in cinematic mode. 0 to disable."
+msgid ""
+"3D noise defining mountain structure and height.\n"
+"Also defines structure of floatland mountain terrain."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Invert mouse"
+msgid ""
+"3D noise defining structure of floatlands.\n"
+"If altered from the default, the noise 'scale' (0.7 by default) may need\n"
+"to be adjusted, as floatland tapering functions best when this noise has\n"
+"a value range of approximately -2.0 to 2.0."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Invert vertical mouse movement."
+msgid "3D noise defining structure of river canyon walls."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mouse sensitivity"
+msgid "3D noise defining terrain."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mouse sensitivity multiplier."
+msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Special key for climbing/descending"
+msgid "3D noise that determines number of dungeons per mapchunk."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"If enabled, \"special\" key instead of \"sneak\" key is used for climbing "
-"down and\n"
-"descending."
+"3D support.\n"
+"Currently supported:\n"
+"- none: no 3d output.\n"
+"- anaglyph: cyan/magenta color 3d.\n"
+"- interlaced: odd/even line based polarisation screen support.\n"
+"- topbottom: split screen top/bottom.\n"
+"- sidebyside: split screen side by side.\n"
+"- crossview: Cross-eyed 3d\n"
+"- pageflip: quadbuffer based 3d.\n"
+"Note that the interlaced mode requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Double tap jump for fly"
+msgid ""
+"A chosen map seed for a new map, leave empty for random.\n"
+"Will be overridden when creating a new world in the main menu."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Double-tapping the jump key toggles fly mode."
+msgid "A message to be displayed to all clients when the server crashes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Always fly and fast"
+msgid "A message to be displayed to all clients when the server shuts down."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If disabled, \"special\" key is used to fly fast if both fly and fast mode "
-"are\n"
-"enabled."
+msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
+msgid "ABM time budget"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+msgid "Absolute limit of queued blocks to emerge"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Automatically jump up single-node obstacles."
+msgid "Acceleration in air"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Safe digging and placing"
+msgid "Acceleration of gravity, in nodes per second per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Prevent digging and placing from repeating when holding the mouse buttons.\n"
-"Enable this when you dig or place too often by accident."
+msgid "Active Block Modifiers"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Random input"
+msgid "Active block management interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable random user input (only used for testing)."
+msgid "Active block range"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Continuous forward"
+msgid "Active object send range"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Continuous forward movement, toggled by autoforward key.\n"
-"Press the autoforward key again or the backwards movement to disable."
+"Address to connect to.\n"
+"Leave this blank to start a local server.\n"
+"Note that the address field in the main menu overrides this setting."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Touch screen threshold"
+msgid "Adds particles when digging a node."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "The length in pixels it takes for touch screen interaction to start."
+msgid ""
+"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
+"screens."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fixed virtual joystick"
+#, c-format
+msgid ""
+"Adjusts the density of the floatland layer.\n"
+"Increase value to increase density. Can be positive or negative.\n"
+"Value = 0.0: 50% of volume is floatland.\n"
+"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
+"to be sure) creates a solid floatland layer."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"(Android) Fixes the position of virtual joystick.\n"
-"If disabled, virtual joystick will center to first-touch's position."
+msgid "Advanced"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Virtual joystick triggers aux button"
+msgid ""
+"Alters the light curve by applying 'gamma correction' to it.\n"
+"Higher values make middle and lower light levels brighter.\n"
+"Value '1.0' leaves the light curve unaltered.\n"
+"This only has significant effect on daylight and artificial\n"
+"light, it has very little effect on natural night light."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"(Android) Use virtual joystick to trigger \"aux\" button.\n"
-"If enabled, virtual joystick will also tap \"aux\" button when out of main "
-"circle."
+msgid "Always fly and fast"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable joysticks"
+msgid "Ambient occlusion gamma"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Joystick ID"
+msgid "Amount of messages a player may send per 10 seconds."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "The identifier of the joystick to use"
+msgid "Amplifies the valleys."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Joystick type"
+msgid "Anisotropic filtering"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "The type of joystick"
+msgid "Announce server"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Joystick button repetition interval"
+msgid "Announce to this serverlist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The time in seconds it takes between repeated events\n"
-"when holding down a joystick button combination."
+msgid "Append item name"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Joystick frustum sensitivity"
+msgid "Append item name to tooltip."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The sensitivity of the joystick axes for moving the\n"
-"ingame view frustum around."
+msgid "Apple trees noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Forward key"
+msgid "Arm inertia"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for moving the player forward.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Arm inertia, gives a more realistic movement of\n"
+"the arm when the camera moves."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Backward key"
+msgid "Ask to reconnect after crash"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for moving the player backward.\n"
-"Will also disable autoforward, when active.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"At this distance the server will aggressively optimize which blocks are sent "
+"to\n"
+"clients.\n"
+"Small values potentially improve performance a lot, at the expense of "
+"visible\n"
+"rendering glitches (some blocks will not be rendered under water and in "
+"caves,\n"
+"as well as sometimes on land).\n"
+"Setting this to a value greater than max_block_send_distance disables this\n"
+"optimization.\n"
+"Stated in mapblocks (16 nodes)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Left key"
+msgid "Automatic forward key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving the player left.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Automatically jump up single-node obstacles."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Right key"
+msgid "Automatically report to the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving the player right.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Autosave screen size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Jump key"
+msgid "Autoscaling mode"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for jumping.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Backward key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Sneak key"
+msgid "Base ground level"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for sneaking.\n"
-"Also used for climbing down and descending in water if aux1_descends is "
-"disabled.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Base terrain height."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Inventory key"
+msgid "Basic"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the inventory.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Basic privileges"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Special key"
+msgid "Beach noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving fast in fast mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Beach noise threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat key"
+msgid "Bilinear filtering"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Bind address"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Command key"
+msgid "Biome API temperature and humidity noise parameters"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window to type commands.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Biome noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window to type local commands.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Bits per pixel (aka color depth) in fullscreen mode."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Range select key"
+msgid "Block send optimize distance"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling unlimited view range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Bold and italic font path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fly key"
+msgid "Bold and italic monospace font path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling flying.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Bold font path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Pitch move key"
+msgid "Bold monospace font path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling pitch move mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Build inside player"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fast key"
+msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for toggling fast mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Noclip key"
+"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
+"Only works on GLES platforms. Most users will not need to change this.\n"
+"Increasing can reduce artifacting on weaker GPUs.\n"
+"0.1 = Default, 0.25 = Good value for weaker tablets."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling noclip mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Camera smoothing"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar next key"
+msgid "Camera smoothing in cinematic mode"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the next item in the hotbar.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Camera update toggle key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar previous key"
+msgid "Cave noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the previous item in the hotbar.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cave noise #1"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mute key"
+msgid "Cave noise #2"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for muting the game.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cave width"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Inc. volume key"
+msgid "Cave1 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for increasing the volume.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cave2 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Dec. volume key"
+msgid "Cavern limit"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for decreasing the volume.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cavern noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Automatic forward key"
+msgid "Cavern taper"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling autoforward.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cavern threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cinematic mode key"
+msgid "Cavern upper limit"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for toggling cinematic mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Center of light curve boost range.\n"
+"Where 0.0 is minimum light level, 1.0 is maximum light level."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimap key"
+msgid "Chat font size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling display of minimap.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chat key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for taking screenshots.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chat log level"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Drop item key"
+msgid "Chat message count limit"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for dropping the currently selected item.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chat message format"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "View zoom key"
+msgid "Chat message kick threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key to use view zoom when possible.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chat message max length"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 1 key"
+msgid "Chat toggle key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the first hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chatcommands"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 2 key"
+msgid "Chunk size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the second hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cinematic mode"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 3 key"
+msgid "Cinematic mode key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the third hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Clean transparent textures"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 4 key"
+msgid "Client"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the fourth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Client and Server"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 5 key"
+msgid "Client modding"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the fifth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Client side modding restrictions"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 6 key"
+msgid "Client side node lookup range restriction"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the sixth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Climbing speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 7 key"
+msgid "Cloud radius"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the seventh hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Clouds"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 8 key"
+msgid "Clouds are a client side effect."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the eighth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Clouds in menu"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 9 key"
+msgid "Colored fog"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the ninth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Comma-separated list of flags to hide in the content repository.\n"
+"\"nonfree\" can be used to hide packages which do not qualify as 'free "
+"software',\n"
+"as defined by the Free Software Foundation.\n"
+"You can also specify content ratings.\n"
+"These flags are independent from Minetest versions,\n"
+"so see a full list at https://content.minetest.net/help/content_flags/"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 10 key"
+msgid ""
+"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
+"allow them to upload and download data to/from the internet."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the tenth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Comma-separated list of trusted mods that are allowed to access insecure\n"
+"functions even when mod security is on (via request_insecure_environment())."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 11 key"
+msgid "Command key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 11th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Connect glass"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 12 key"
+msgid "Connect to external media server"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 12th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Connects glass if supported by node."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 13 key"
+msgid "Console alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 13th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Console color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 14 key"
+msgid "Console height"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 14th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 15 key"
+msgid "ContentDB Max Concurrent Downloads"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 15th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "ContentDB URL"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 16 key"
+msgid "Continuous forward"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 16th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Continuous forward movement, toggled by autoforward key.\n"
+"Press the autoforward key again or the backwards movement to disable."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 17 key"
+msgid "Controls"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 17th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Controls length of day/night cycle.\n"
+"Examples:\n"
+"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 18 key"
+msgid "Controls sinking speed in liquid."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 18th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Controls steepness/depth of lake depressions."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 19 key"
+msgid "Controls steepness/height of hills."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 19th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Controls width of tunnels, a smaller value creates wider tunnels.\n"
+"Value >= 10.0 completely disables generation of tunnels and avoids the\n"
+"intensive noise calculations."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 20 key"
+msgid "Crash message"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 20th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Creative"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 21 key"
+msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 21st hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 22 key"
+msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 22nd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 23 key"
+msgid "DPI"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 23rd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Damage"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 24 key"
+msgid "Debug info toggle key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 24th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Debug log file size threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 25 key"
+msgid "Debug log level"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 25th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Dec. volume key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 26 key"
+msgid "Decrease this to increase liquid resistance to movement."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 26th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Dedicated server step"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 27 key"
+msgid "Default acceleration"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 27th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Default game"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 28 key"
+msgid ""
+"Default game when creating a new world.\n"
+"This will be overridden when creating a world from the main menu."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 28th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Default password"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 29 key"
+msgid "Default privileges"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 29th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Default report format"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 30 key"
+msgid "Default stack size"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 30th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Default timeout for cURL, stated in milliseconds.\n"
+"Only has an effect if compiled with cURL."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 31 key"
+msgid "Defines areas where trees have apples."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 31st hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines areas with sandy beaches."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 32 key"
+msgid "Defines distribution of higher terrain and steepness of cliffs."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 32nd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines distribution of higher terrain."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "HUD toggle key"
+msgid "Defines full size of caverns, smaller values create larger caverns."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the HUD.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines large-scale river channel structure."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat toggle key"
+msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of chat.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines the base ground level."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Large chat console key"
+msgid "Defines the depth of the river channel."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the large chat console.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fog toggle key"
+msgid "Defines the width of the river channel."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of fog.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines the width of the river valley."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Camera update toggle key"
+msgid "Defines tree areas and tree density."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for toggling the camera update. Only used for development\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Delay between mesh updates on the client in ms. Increasing this will slow\n"
+"down the rate of mesh updates, thus reducing jitter on slower clients."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Debug info toggle key"
+msgid "Delay in sending blocks after building"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of debug info.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Delay showing tooltips, stated in milliseconds."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Profiler toggle key"
+msgid "Deprecated Lua API handling"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the profiler. Used for development.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Depth below which you'll find giant caverns."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Toggle camera mode key"
+msgid "Depth below which you'll find large caves."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for switching between first- and third-person camera.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Description of server, to be displayed when players join and in the "
+"serverlist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "View range increase key"
+msgid "Desert noise threshold"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for increasing the viewing range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "View range decrease key"
+"Deserts occur when np_biome exceeds this value.\n"
+"When the 'snowbiomes' flag is enabled, this is ignored."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for decreasing the viewing range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Graphics"
+msgid "Dig key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "In-Game"
+msgid "Digging particles"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Basic"
+msgid "Disable anticheat"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "VBO"
+msgid "Disallow empty passwords"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enable vertex buffer objects.\n"
-"This should greatly improve graphics performance."
+msgid "Domain name of server, to be displayed in the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fog"
+msgid "Double tap jump for fly"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Whether to fog out the end of the visible area."
+msgid "Double-tapping the jump key toggles fly mode."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Leaves style"
+msgid "Drop item key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Leaves style:\n"
-"- Fancy: all faces visible\n"
-"- Simple: only outer faces, if defined special_tiles are used\n"
-"- Opaque: disable transparency"
+msgid "Dump the mapgen debug information."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Connect glass"
+msgid "Dungeon maximum Y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Connects glass if supported by node."
+msgid "Dungeon minimum Y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Smooth lighting"
+msgid "Dungeon noise"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable smooth lighting with simple ambient occlusion.\n"
-"Disable for speed or for different looks."
+"Enable IPv6 support (for both client and server).\n"
+"Required for IPv6 connections to work at all."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Clouds"
+msgid ""
+"Enable Lua modding support on client.\n"
+"This support is experimental and API can change."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Clouds are a client side effect."
+msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D clouds"
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use 3D cloud look instead of flat."
+msgid "Enable joysticks"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Node highlighting"
+msgid "Enable mod channels support."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Method used to highlight selected object."
+msgid "Enable mod security"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Digging particles"
+msgid "Enable players getting damage and dying."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Adds particles when digging a node."
+msgid "Enable random user input (only used for testing)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Filtering"
+msgid "Enable register confirmation"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mipmapping"
+msgid ""
+"Enable register confirmation when connecting to server.\n"
+"If disabled, new account will be registered automatically."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Use mip mapping to scale textures. May slightly increase performance,\n"
-"especially when using a high resolution texture pack.\n"
-"Gamma correct downscaling is not supported."
+"Enable smooth lighting with simple ambient occlusion.\n"
+"Disable for speed or for different looks."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Anisotropic filtering"
+msgid ""
+"Enable to disallow old clients from connecting.\n"
+"Older clients are compatible in the sense that they will not crash when "
+"connecting\n"
+"to new servers, but they may not support all new features that you are "
+"expecting."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use anisotropic filtering when viewing at textures from an angle."
+msgid ""
+"Enable usage of remote media server (if provided by server).\n"
+"Remote servers offer a significantly faster way to download media (e.g. "
+"textures)\n"
+"when connecting to the server."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bilinear filtering"
+msgid ""
+"Enable vertex buffer objects.\n"
+"This should greatly improve graphics performance."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use bilinear filtering when scaling textures."
+msgid ""
+"Enable view bobbing and amount of view bobbing.\n"
+"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Trilinear filtering"
+msgid ""
+"Enable/disable running an IPv6 server.\n"
+"Ignored if bind_address is set.\n"
+"Needs enable_ipv6 to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use trilinear filtering when scaling textures."
+msgid ""
+"Enables Hable's 'Uncharted 2' filmic tone mapping.\n"
+"Simulates the tone curve of photographic film and how this approximates the\n"
+"appearance of high dynamic range images. Mid-range contrast is slightly\n"
+"enhanced, highlights and shadows are gradually compressed."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Clean transparent textures"
+msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Filtered textures can blend RGB values with fully-transparent neighbors,\n"
-"which PNG optimizers usually discard, sometimes resulting in a dark or\n"
-"light edge to transparent textures. Apply this filter to clean that up\n"
-"at texture load time."
+msgid "Enables caching of facedir rotated meshes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimum texture size"
+msgid "Enables minimap."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
-"can be blurred, so automatically upscale them with nearest-neighbor\n"
-"interpolation to preserve crisp pixels. This sets the minimum texture size\n"
-"for the upscaled textures; higher values look sharper, but require more\n"
-"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n"
-"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n"
-"enabled.\n"
-"This is also used as the base node texture size for world-aligned\n"
-"texture autoscaling."
+"Enables the sound system.\n"
+"If disabled, this completely disables all sounds everywhere and the in-game\n"
+"sound controls will be non-functional.\n"
+"Changing this setting requires a restart."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FSAA"
+msgid "Engine profiling data print interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
+msgid "Entity methods"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Undersampling"
+msgid ""
+"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
+"Value = 1.0 creates a uniform, linear tapering.\n"
+"Values > 1.0 create a smooth tapering suitable for the default separated\n"
+"floatlands.\n"
+"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
+"flatter lowlands, suitable for a solid floatland layer."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Undersampling is similar to using a lower screen resolution, but it applies\n"
-"to the game world only, keeping the GUI intact.\n"
-"It should give a significant performance boost at the cost of less detailed "
-"image.\n"
-"Higher values result in a less detailed image."
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Shaders allow advanced visual effects and may increase performance on some "
-"video\n"
-"cards.\n"
-"This only works with the OpenGL video backend."
+msgid "FSAA"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Shader path"
+msgid "Factor noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Path to shader directory. If no path is defined, default location will be "
-"used."
+msgid "Fall bobbing factor"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Filmic tone mapping"
+msgid "Fallback font path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables Hable's 'Uncharted 2' filmic tone mapping.\n"
-"Simulates the tone curve of photographic film and how this approximates the\n"
-"appearance of high dynamic range images. Mid-range contrast is slightly\n"
-"enhanced, highlights and shadows are gradually compressed."
+msgid "Fallback font shadow"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
+msgid "Fallback font shadow alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
+msgid "Fallback font size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
+msgid "Fast key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
+msgid "Fast mode acceleration"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
+msgid "Fast mode speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
+msgid "Fast movement"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
+msgid ""
+"Fast movement (via the \"special\" key).\n"
+"This requires the \"fast\" privilege on the server."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
+msgid "Field of view"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
+msgid "Field of view in degrees."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
+"File in client/serverlist/ that contains your favorite servers displayed in "
+"the\n"
+"Multiplayer Tab."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
+msgid "Filler depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
+msgid "Filler depth noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
+msgid "Filmic tone mapping"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
+msgid ""
+"Filtered textures can blend RGB values with fully-transparent neighbors,\n"
+"which PNG optimizers usually discard, sometimes resulting in a dark or\n"
+"light edge to transparent textures. Apply this filter to clean that up\n"
+"at texture load time."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
+msgid "Filtering"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
+msgid "First of 4 2D noises that together define hill/mountain range height."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
+msgid "First of two 3D noises that together define tunnels."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
+msgid "Fixed map seed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving Nodes"
+msgid "Fixed virtual joystick"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving liquids"
+msgid "Floatland density"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving liquids (like water).\n"
-"Requires shaders to be enabled."
+msgid "Floatland maximum Y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving liquids wave height"
+msgid "Floatland minimum Y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The maximum height of the surface of waving liquids.\n"
-"4.0 = Wave height is two nodes.\n"
-"0.0 = Wave doesn't move at all.\n"
-"Default is 1.0 (1/2 node).\n"
-"Requires waving liquids to be enabled."
+msgid "Floatland noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving liquids wavelength"
+msgid "Floatland taper exponent"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Length of liquid waves.\n"
-"Requires waving liquids to be enabled."
+msgid "Floatland tapering distance"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving liquids wave speed"
+msgid "Floatland water level"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"How fast liquid waves will move. Higher = faster.\n"
-"If negative, liquid waves will move backwards.\n"
-"Requires waving liquids to be enabled."
+msgid "Fly key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving leaves"
+msgid "Flying"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving leaves.\n"
-"Requires shaders to be enabled."
+msgid "Fog"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving plants"
+msgid "Fog start"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving plants.\n"
-"Requires shaders to be enabled."
+msgid "Fog toggle key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Advanced"
+msgid "Font bold by default"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Arm inertia"
+msgid "Font italic by default"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Arm inertia, gives a more realistic movement of\n"
-"the arm when the camera moves."
+msgid "Font shadow"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS"
+msgid "Font shadow alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If FPS would go higher than this, limit it by sleeping\n"
-"to not waste CPU power for no benefit."
+msgid "Font size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "Font size of the default font in point (pt)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Font size of the fallback font in point (pt)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Pause on lost window focus"
+msgid "Font size of the monospace font in point (pt)."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Open the pause menu when the window's focus is lost. Does not pause if a "
-"formspec is\n"
-"open."
+"Font size of the recent chat text and chat prompt in point (pt).\n"
+"Value 0 will use the default font size."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Viewing range"
+msgid ""
+"Format of player chat messages. The following strings are valid "
+"placeholders:\n"
+"@name, @message, @timestamp (optional)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "View distance in nodes."
+msgid "Format of screenshots."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Near plane"
+msgid "Formspec Default Background Color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
-"Only works on GLES platforms. Most users will not need to change this.\n"
-"Increasing can reduce artifacting on weaker GPUs.\n"
-"0.1 = Default, 0.25 = Good value for weaker tablets."
+msgid "Formspec Default Background Opacity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Screen width"
+msgid "Formspec Full-Screen Background Color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Width component of the initial window size."
+msgid "Formspec Full-Screen Background Opacity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Screen height"
+msgid "Formspec default background color (R,G,B)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Height component of the initial window size."
+msgid "Formspec default background opacity (between 0 and 255)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Autosave screen size"
+msgid "Formspec full-screen background color (R,G,B)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Save window size automatically when modified."
+msgid "Formspec full-screen background opacity (between 0 and 255)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Full screen"
+msgid "Forward key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fullscreen mode."
+msgid "Fourth of 4 2D noises that together define hill/mountain range height."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Full screen BPP"
+msgid "Fractal type"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bits per pixel (aka color depth) in fullscreen mode."
+msgid "Fraction of the visible distance at which fog starts to be rendered"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "VSync"
+msgid "FreeType fonts"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Vertical screen synchronization."
+msgid ""
+"From how far blocks are generated for clients, stated in mapblocks (16 "
+"nodes)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Field of view"
+msgid ""
+"From how far blocks are sent to clients, stated in mapblocks (16 nodes)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Field of view in degrees."
+msgid ""
+"From how far clients know about objects, stated in mapblocks (16 nodes).\n"
+"\n"
+"Setting this larger than active_block_range will also cause the server\n"
+"to maintain active objects up to this distance in the direction the\n"
+"player is looking. (This can avoid mobs suddenly disappearing from view)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Light curve gamma"
+msgid "Full screen"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Alters the light curve by applying 'gamma correction' to it.\n"
-"Higher values make middle and lower light levels brighter.\n"
-"Value '1.0' leaves the light curve unaltered.\n"
-"This only has significant effect on daylight and artificial\n"
-"light, it has very little effect on natural night light."
+msgid "Full screen BPP"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Light curve low gradient"
+msgid "Fullscreen mode."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Gradient of light curve at minimum light level.\n"
-"Controls the contrast of the lowest light levels."
+msgid "GUI scaling"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Light curve high gradient"
+msgid "GUI scaling filter"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Gradient of light curve at maximum light level.\n"
-"Controls the contrast of the highest light levels."
+msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Light curve boost"
+msgid "Global callbacks"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Strength of light curve boost.\n"
-"The 3 'boost' parameters define a range of the light\n"
-"curve that is boosted in brightness."
+"Global map generation attributes.\n"
+"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
+"and junglegrass, in all other mapgens this flag controls all decorations."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Light curve boost center"
+msgid ""
+"Gradient of light curve at maximum light level.\n"
+"Controls the contrast of the highest light levels."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Center of light curve boost range.\n"
-"Where 0.0 is minimum light level, 1.0 is maximum light level."
+"Gradient of light curve at minimum light level.\n"
+"Controls the contrast of the lowest light levels."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Light curve boost spread"
+msgid "Graphics"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Spread of light curve boost range.\n"
-"Controls the width of the range to be boosted.\n"
-"Standard deviation of the light curve boost Gaussian."
+msgid "Gravity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Texture path"
+msgid "Ground level"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Path to texture directory. All textures are first searched from here."
+msgid "Ground noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Video driver"
+msgid "HTTP mods"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The rendering back-end for Irrlicht.\n"
-"A restart is required after changing this.\n"
-"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
-"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+msgid "HUD scale factor"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cloud radius"
+msgid "HUD toggle key"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Radius of cloud area stated in number of 64 node cloud squares.\n"
-"Values larger than 26 will start to produce sharp cutoffs at cloud area "
-"corners."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "View bobbing factor"
+"Handling for deprecated Lua API calls:\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
+"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable view bobbing and amount of view bobbing.\n"
-"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
+"Have the profiler instrument itself:\n"
+"* Instrument an empty function.\n"
+"This estimates the overhead, that instrumentation is adding (+1 function "
+"call).\n"
+"* Instrument the sampler being used to update the statistics."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fall bobbing factor"
+msgid "Heat blend noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Multiplier for fall bobbing.\n"
-"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
+msgid "Heat noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D mode"
+msgid "Height component of the initial window size."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"3D support.\n"
-"Currently supported:\n"
-"- none: no 3d output.\n"
-"- anaglyph: cyan/magenta color 3d.\n"
-"- interlaced: odd/even line based polarisation screen support.\n"
-"- topbottom: split screen top/bottom.\n"
-"- sidebyside: split screen side by side.\n"
-"- crossview: Cross-eyed 3d\n"
-"- pageflip: quadbuffer based 3d.\n"
-"Note that the interlaced mode requires shaders to be enabled."
+msgid "Height noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D mode parallax strength"
+msgid "Height select noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of 3D mode parallax."
+msgid "High-precision FPU"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Console height"
+msgid "Hill steepness"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
+msgid "Hill threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Console color"
+msgid "Hilliness1 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "In-game chat console background color (R,G,B)."
+msgid "Hilliness2 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Console alpha"
+msgid "Hilliness3 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
+msgid "Hilliness4 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec Full-Screen Background Opacity"
+msgid "Homepage of server, to be displayed in the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec full-screen background opacity (between 0 and 255)."
+msgid ""
+"Horizontal acceleration in air when jumping or falling,\n"
+"in nodes per second per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec Full-Screen Background Color"
+msgid ""
+"Horizontal and vertical acceleration in fast mode,\n"
+"in nodes per second per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec full-screen background color (R,G,B)."
+msgid ""
+"Horizontal and vertical acceleration on ground or when climbing,\n"
+"in nodes per second per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec Default Background Opacity"
+msgid "Hotbar next key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec default background opacity (between 0 and 255)."
+msgid "Hotbar previous key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec Default Background Color"
+msgid "Hotbar slot 1 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec default background color (R,G,B)."
+msgid "Hotbar slot 10 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Selection box color"
+msgid "Hotbar slot 11 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Selection box border color (R,G,B)."
+msgid "Hotbar slot 12 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Selection box width"
+msgid "Hotbar slot 13 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Width of the selection box lines around nodes."
+msgid "Hotbar slot 14 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color"
+msgid "Hotbar slot 15 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid "Hotbar slot 16 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha"
+msgid "Hotbar slot 17 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid "Hotbar slot 18 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Recent Chat Messages"
+msgid "Hotbar slot 19 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum number of recent chat messages to show"
+msgid "Hotbar slot 2 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Desynchronize block animation"
+msgid "Hotbar slot 20 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Whether node texture animations should be desynchronized per mapblock."
+msgid "Hotbar slot 21 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum hotbar width"
+msgid "Hotbar slot 22 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Maximum proportion of current window to be used for hotbar.\n"
-"Useful if there's something to be displayed right or left of hotbar."
+msgid "Hotbar slot 23 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "HUD scale factor"
+msgid "Hotbar slot 24 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Modifies the size of the hudbar elements."
+msgid "Hotbar slot 25 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mesh cache"
+msgid "Hotbar slot 26 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enables caching of facedir rotated meshes."
+msgid "Hotbar slot 27 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapblock mesh generation delay"
+msgid "Hotbar slot 28 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Delay between mesh updates on the client in ms. Increasing this will slow\n"
-"down the rate of mesh updates, thus reducing jitter on slower clients."
+msgid "Hotbar slot 29 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapblock mesh generator's MapBlock cache size in MB"
+msgid "Hotbar slot 3 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Size of the MapBlock cache of the mesh generator. Increasing this will\n"
-"increase the cache hit %, reducing the data being copied from the main\n"
-"thread, thus reducing jitter."
+msgid "Hotbar slot 30 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimap"
+msgid "Hotbar slot 31 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enables minimap."
+msgid "Hotbar slot 32 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Round minimap"
+msgid "Hotbar slot 4 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Shape of the minimap. Enabled = round, disabled = square."
+msgid "Hotbar slot 5 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimap scan height"
+msgid "Hotbar slot 6 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"True = 256\n"
-"False = 128\n"
-"Usable to make minimap smoother on slower machines."
+msgid "Hotbar slot 7 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Colored fog"
+msgid "Hotbar slot 8 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
+msgid "Hotbar slot 9 key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ambient occlusion gamma"
+msgid "How deep to make rivers."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The strength (darkness) of node ambient-occlusion shading.\n"
-"Lower is darker, Higher is lighter. The valid range of values for this\n"
-"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n"
-"set to the nearest valid value."
+"How fast liquid waves will move. Higher = faster.\n"
+"If negative, liquid waves will move backwards.\n"
+"Requires waving liquids to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Inventory items animations"
+msgid ""
+"How much the server will wait before unloading unused mapblocks.\n"
+"Higher value is smoother, but will use more RAM."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enables animation of inventory items."
+msgid "How wide to make rivers."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fog start"
+msgid "Humidity blend noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fraction of the visible distance at which fog starts to be rendered"
+msgid "Humidity noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Opaque liquids"
+msgid "Humidity variation for biomes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Makes all liquids opaque"
+msgid "IPv6"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "World-aligned textures mode"
+msgid "IPv6 server"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Textures on a node may be aligned either to the node or to the world.\n"
-"The former mode suits better things like machines, furniture, etc., while\n"
-"the latter makes stairs and microblocks fit surroundings better.\n"
-"However, as this possibility is new, thus may not be used by older servers,\n"
-"this option allows enforcing it for certain node types. Note though that\n"
-"that is considered EXPERIMENTAL and may not work properly."
+"If FPS would go higher than this, limit it by sleeping\n"
+"to not waste CPU power for no benefit."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Autoscaling mode"
+msgid ""
+"If disabled, \"special\" key is used to fly fast if both fly and fast mode "
+"are\n"
+"enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"World-aligned textures may be scaled to span several nodes. However,\n"
-"the server may not send the scale you want, especially if you use\n"
-"a specially-designed texture pack; with this option, the client tries\n"
-"to determine the scale automatically basing on the texture size.\n"
-"See also texture_min_size.\n"
-"Warning: This option is EXPERIMENTAL!"
+"If enabled the server will perform map block occlusion culling based on\n"
+"on the eye position of the player. This can reduce the number of blocks\n"
+"sent to the client 50-80%. The client will not longer receive most "
+"invisible\n"
+"so that the utility of noclip mode is reduced."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Show entity selection boxes"
+msgid ""
+"If enabled together with fly mode, player is able to fly through solid "
+"nodes.\n"
+"This requires the \"noclip\" privilege on the server."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Menus"
+msgid ""
+"If enabled, \"special\" key instead of \"sneak\" key is used for climbing "
+"down and\n"
+"descending."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Clouds in menu"
+msgid ""
+"If enabled, actions are recorded for rollback.\n"
+"This option is only read when server starts."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use a cloud animation for the main menu background."
+msgid "If enabled, disable cheat prevention in multiplayer."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "GUI scaling"
+msgid ""
+"If enabled, invalid world data won't cause the server to shut down.\n"
+"Only enable this if you know what you are doing."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Scale GUI by a user specified value.\n"
-"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n"
-"This will smooth over some of the rough edges, and blend\n"
-"pixels when scaling down, at the cost of blurring some\n"
-"edge pixels when images are scaled by non-integer sizes."
+"If enabled, makes move directions relative to the player's pitch when flying "
+"or swimming."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "GUI scaling filter"
+msgid "If enabled, new players cannot join with an empty password."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"When gui_scaling_filter is true, all GUI images need to be\n"
-"filtered in software, but some images are generated directly\n"
-"to hardware (e.g. render-to-texture for nodes in inventory)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "GUI scaling filter txr2img"
+"If enabled, you can place blocks at the position (feet + eye level) where "
+"you stand.\n"
+"This is helpful when working with nodeboxes in small areas."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"When gui_scaling_filter_txr2img is true, copy those images\n"
-"from hardware to software for scaling. When false, fall back\n"
-"to the old scaling method, for video drivers that don't\n"
-"properly support downloading textures back from hardware."
+"If the CSM restriction for node range is enabled, get_node calls are "
+"limited\n"
+"to this distance from the player to the node."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Tooltip delay"
+msgid ""
+"If the file size of debug.txt exceeds the number of megabytes specified in\n"
+"this setting when it is opened, the file is moved to debug.txt.1,\n"
+"deleting an older debug.txt.1 if it exists.\n"
+"debug.txt is only moved if this setting is positive."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Delay showing tooltips, stated in milliseconds."
+msgid "If this is set, players will always (re)spawn at the given position."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Append item name"
+msgid "Ignore world errors"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Append item name to tooltip."
+msgid "In-Game"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FreeType fonts"
+msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Whether FreeType fonts are used, requires FreeType support to be compiled "
-"in.\n"
-"If disabled, bitmap and XML vectors fonts are used instead."
+msgid "In-game chat console background color (R,G,B)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font bold by default"
+msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font italic by default"
+msgid "Inc. volume key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font shadow"
+msgid "Initial vertical speed when jumping, in nodes per second."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
-"drawn."
+"Instrument builtin.\n"
+"This is usually only needed by core/builtin contributors"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font shadow alpha"
+msgid "Instrument chatcommands on registration."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Font size"
+"Instrument global callback functions on registration.\n"
+"(anything you pass to a minetest.register_*() function)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font size of the default font in point (pt)."
+msgid ""
+"Instrument the action function of Active Block Modifiers on registration."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Regular font path"
+msgid ""
+"Instrument the action function of Loading Block Modifiers on registration."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Path to the default font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"The fallback font will be used if the font cannot be loaded."
+msgid "Instrument the methods of entities on registration."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bold font path"
+msgid "Instrumentation"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Italic font path"
+msgid "Interval of saving important changes in the world, stated in seconds."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bold and italic font path"
+msgid "Interval of sending time of day to clients."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Monospace font size"
+msgid "Inventory items animations"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font size of the monospace font in point (pt)."
+msgid "Inventory key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Monospace font path"
+msgid "Invert mouse"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Path to the monospace font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"This font is used for e.g. the console and profiler screen."
+msgid "Invert vertical mouse movement."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bold monospace font path"
+msgid "Italic font path"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3927,827 +3758,984 @@ msgid "Italic monospace font path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bold and italic monospace font path"
+msgid "Item entity TTL"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fallback font size"
+msgid "Iterations"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font size of the fallback font in point (pt)."
+msgid ""
+"Iterations of the recursive function.\n"
+"Increasing this increases the amount of fine detail, but also\n"
+"increases processing load.\n"
+"At iterations = 20 this mapgen has a similar load to mapgen V7."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fallback font shadow"
+msgid "Joystick ID"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
-"be drawn."
+msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fallback font shadow alpha"
+msgid "Joystick deadzone"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255."
+msgid "Joystick frustum sensitivity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fallback font path"
+msgid "Joystick type"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Path of the fallback font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"This font will be used for certain languages or if the default font is "
-"unavailable."
+"Julia set only.\n"
+"W component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Has no effect on 3D fractals.\n"
+"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat font size"
+msgid ""
+"Julia set only.\n"
+"X component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Font size of the recent chat text and chat prompt in point (pt).\n"
-"Value 0 will use the default font size."
+"Julia set only.\n"
+"Y component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Screenshot folder"
+msgid ""
+"Julia set only.\n"
+"Z component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Path to save screenshots at. Can be an absolute or relative path.\n"
-"The folder will be created if it doesn't already exist."
+msgid "Julia w"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Screenshot format"
+msgid "Julia x"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Format of screenshots."
+msgid "Julia y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Screenshot quality"
+msgid "Julia z"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Screenshot quality. Only used for JPEG format.\n"
-"1 means worst quality; 100 means best quality.\n"
-"Use 0 for default quality."
+msgid "Jump key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "DPI"
+msgid "Jumping speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
-"screens."
+"Key for decreasing the viewing range.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable console window"
+msgid ""
+"Key for decreasing the volume.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Windows systems only: Start Minetest with the command line window in the "
-"background.\n"
-"Contains the same information as the file debug.txt (default name)."
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Sound"
+msgid ""
+"Key for dropping the currently selected item.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables the sound system.\n"
-"If disabled, this completely disables all sounds everywhere and the in-game\n"
-"sound controls will be non-functional.\n"
-"Changing this setting requires a restart."
+"Key for increasing the viewing range.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Volume"
+msgid ""
+"Key for increasing the volume.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Volume of all sounds.\n"
-"Requires the sound system to be enabled."
+"Key for jumping.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mute sound"
+msgid ""
+"Key for moving fast in fast mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Whether to mute sounds. You can unmute sounds at any time, unless the\n"
-"sound system is disabled (enable_sound=false).\n"
-"In-game, you can toggle the mute state with the mute key or by using the\n"
-"pause menu."
+"Key for moving the player backward.\n"
+"Will also disable autoforward, when active.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Client"
+msgid ""
+"Key for moving the player forward.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Network"
+msgid ""
+"Key for moving the player left.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Server address"
+msgid ""
+"Key for moving the player right.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Address to connect to.\n"
-"Leave this blank to start a local server.\n"
-"Note that the address field in the main menu overrides this setting."
+"Key for muting the game.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Remote port"
+msgid ""
+"Key for opening the chat window to type commands.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Port to connect to (UDP).\n"
-"Note that the port field in the main menu overrides this setting."
+"Key for opening the chat window to type local commands.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Prometheus listener address"
+msgid ""
+"Key for opening the chat window.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Prometheus listener address.\n"
-"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n"
-"enable metrics listener for Prometheus on that address.\n"
-"Metrics can be fetch on http://127.0.0.1:30000/metrics"
+"Key for opening the inventory.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Saving map received from server"
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Save the map received by the client on disk."
+msgid ""
+"Key for selecting the 11th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Connect to external media server"
+msgid ""
+"Key for selecting the 12th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable usage of remote media server (if provided by server).\n"
-"Remote servers offer a significantly faster way to download media (e.g. "
-"textures)\n"
-"when connecting to the server."
+"Key for selecting the 13th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Client modding"
+msgid ""
+"Key for selecting the 14th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable Lua modding support on client.\n"
-"This support is experimental and API can change."
+"Key for selecting the 15th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Serverlist URL"
+msgid ""
+"Key for selecting the 16th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "URL to the server list displayed in the Multiplayer Tab."
+msgid ""
+"Key for selecting the 17th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Serverlist file"
+msgid ""
+"Key for selecting the 18th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"File in client/serverlist/ that contains your favorite servers displayed in "
-"the\n"
-"Multiplayer Tab."
+"Key for selecting the 19th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum size of the out chat queue"
+msgid ""
+"Key for selecting the 20th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Maximum size of the out chat queue.\n"
-"0 to disable queueing and -1 to make the queue size unlimited."
+"Key for selecting the 21st hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable register confirmation"
+msgid ""
+"Key for selecting the 22nd hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable register confirmation when connecting to server.\n"
-"If disabled, new account will be registered automatically."
+"Key for selecting the 23rd hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapblock unload timeout"
+msgid ""
+"Key for selecting the 24th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Timeout for client to remove unused map data from memory."
+msgid ""
+"Key for selecting the 25th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapblock limit"
+msgid ""
+"Key for selecting the 26th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of mapblocks for client to be kept in memory.\n"
-"Set to -1 for unlimited amount."
+"Key for selecting the 27th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Show debug info"
+msgid ""
+"Key for selecting the 28th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Whether to show the client debug info (has the same effect as hitting F5)."
+"Key for selecting the 29th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Server / Singleplayer"
+msgid ""
+"Key for selecting the 30th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Server name"
+msgid ""
+"Key for selecting the 31st hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Name of the server, to be displayed when players join and in the serverlist."
+"Key for selecting the 32nd hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Server description"
+msgid ""
+"Key for selecting the eighth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Description of server, to be displayed when players join and in the "
-"serverlist."
+"Key for selecting the fifth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Domain name of server, to be displayed in the serverlist."
+msgid ""
+"Key for selecting the first hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Server URL"
+msgid ""
+"Key for selecting the fourth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Homepage of server, to be displayed in the serverlist."
+msgid ""
+"Key for selecting the next item in the hotbar.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Announce server"
+msgid ""
+"Key for selecting the ninth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Automatically report to the serverlist."
+msgid ""
+"Key for selecting the previous item in the hotbar.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Announce to this serverlist."
+msgid ""
+"Key for selecting the second hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strip color codes"
+msgid ""
+"Key for selecting the seventh hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Remove color codes from incoming chat messages\n"
-"Use this to stop players from being able to use color in their messages"
+"Key for selecting the sixth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Server port"
+msgid ""
+"Key for selecting the tenth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Network port to listen (UDP).\n"
-"This value will be overridden when starting from the main menu."
+"Key for selecting the third hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bind address"
+msgid ""
+"Key for sneaking.\n"
+"Also used for climbing down and descending in water if aux1_descends is "
+"disabled.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "The network interface that the server listens on."
+msgid ""
+"Key for switching between first- and third-person camera.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strict protocol checking"
+msgid ""
+"Key for taking screenshots.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable to disallow old clients from connecting.\n"
-"Older clients are compatible in the sense that they will not crash when "
-"connecting\n"
-"to new servers, but they may not support all new features that you are "
-"expecting."
+"Key for toggling autoforward.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Remote media"
+msgid ""
+"Key for toggling cinematic mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Specifies URL from which client fetches media instead of using UDP.\n"
-"$filename should be accessible from $remote_media$filename via cURL\n"
-"(obviously, remote_media should end with a slash).\n"
-"Files that are not present will be fetched the usual way."
+"Key for toggling display of minimap.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "IPv6 server"
+msgid ""
+"Key for toggling fast mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable/disable running an IPv6 server.\n"
-"Ignored if bind_address is set.\n"
-"Needs enable_ipv6 to be enabled."
+"Key for toggling flying.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum simultaneous block sends per client"
+msgid ""
+"Key for toggling noclip mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of blocks that are simultaneously sent per client.\n"
-"The maximum total count is calculated dynamically:\n"
-"max_total = ceil((#clients + max_users) * per_client / 4)"
+"Key for toggling pitch move mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Delay in sending blocks after building"
+msgid ""
+"Key for toggling the camera update. Only used for development\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"To reduce lag, block transfers are slowed down when a player is building "
-"something.\n"
-"This determines how long they are slowed down after placing or removing a "
-"node."
+"Key for toggling the display of chat.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Max. packets per iteration"
+msgid ""
+"Key for toggling the display of debug info.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of packets sent per send step, if you have a slow connection\n"
-"try reducing it, but don't reduce it to a number below double of targeted\n"
-"client number."
+"Key for toggling the display of fog.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default game"
+msgid ""
+"Key for toggling the display of the HUD.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Default game when creating a new world.\n"
-"This will be overridden when creating a world from the main menu."
+"Key for toggling the display of the large chat console.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Message of the day"
+msgid ""
+"Key for toggling the display of the profiler. Used for development.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Message of the day displayed to players connecting."
+msgid ""
+"Key for toggling unlimited view range.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum users"
+msgid ""
+"Key to use view zoom when possible.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum number of players that can be connected simultaneously."
+msgid "Kick players who sent more than X messages per 10 seconds."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Map directory"
+msgid "Lake steepness"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"World directory (everything in the world is stored here).\n"
-"Not needed if starting from the main menu."
+msgid "Lake threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Item entity TTL"
+msgid "Language"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Time in seconds for item entity (dropped items) to live.\n"
-"Setting it to -1 disables the feature."
+msgid "Large cave depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default stack size"
+msgid "Large cave maximum number"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Specifies the default stack size of nodes, items and tools.\n"
-"Note that mods or games may explicitly set a stack for certain (or all) "
-"items."
+msgid "Large cave minimum number"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Damage"
+msgid "Large cave proportion flooded"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable players getting damage and dying."
+msgid "Large chat console key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Creative"
+msgid "Leaves style"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid ""
+"Leaves style:\n"
+"- Fancy: all faces visible\n"
+"- Simple: only outer faces, if defined special_tiles are used\n"
+"- Opaque: disable transparency"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fixed map seed"
+msgid "Left key"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"A chosen map seed for a new map, leave empty for random.\n"
-"Will be overridden when creating a new world in the main menu."
+"Length of a server tick and the interval at which objects are generally "
+"updated over\n"
+"network."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default password"
+msgid ""
+"Length of liquid waves.\n"
+"Requires waving liquids to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "New users need to input this password."
+msgid "Length of time between Active Block Modifier (ABM) execution cycles"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default privileges"
+msgid "Length of time between NodeTimer execution cycles"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The privileges that new users automatically get.\n"
-"See /privs in game for a full list on your server and mod configuration."
+msgid "Length of time between active block management cycles"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Basic privileges"
+msgid ""
+"Level of logging to be written to debug.txt:\n"
+"- <nothing> (no logging)\n"
+"- none (messages with no level)\n"
+"- error\n"
+"- warning\n"
+"- action\n"
+"- info\n"
+"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Privileges that players with basic_privs can grant"
+msgid "Light curve boost"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Unlimited player transfer distance"
+msgid "Light curve boost center"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Whether players are shown to clients without any range limit.\n"
-"Deprecated, use the setting player_transfer_distance instead."
+msgid "Light curve boost spread"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Player transfer distance"
+msgid "Light curve gamma"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
+msgid "Light curve high gradient"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Player versus player"
+msgid "Light curve low gradient"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Whether to allow players to damage and kill each other."
+msgid ""
+"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n"
+"Only mapchunks completely within the mapgen limit are generated.\n"
+"Value is stored per-world."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mod channels"
+msgid ""
+"Limits number of parallel HTTP requests. Affects:\n"
+"- Media fetch if server uses remote_media setting.\n"
+"- Serverlist download and server announcement.\n"
+"- Downloads performed by main menu (e.g. mod manager).\n"
+"Only has an effect if compiled with cURL."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable mod channels support."
+msgid "Liquid fluidity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Static spawnpoint"
+msgid "Liquid fluidity smoothing"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "If this is set, players will always (re)spawn at the given position."
+msgid "Liquid loop max"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Disallow empty passwords"
+msgid "Liquid queue purge time"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "If enabled, new players cannot join with an empty password."
+msgid "Liquid sinking"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Disable anticheat"
+msgid "Liquid update interval in seconds."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "If enabled, disable cheat prevention in multiplayer."
+msgid "Liquid update tick"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rollback recording"
+msgid "Load the game profiler"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"If enabled, actions are recorded for rollback.\n"
-"This option is only read when server starts."
+"Load the game profiler to collect game profiling data.\n"
+"Provides a /profiler command to access the compiled profile.\n"
+"Useful for mod developers and server operators."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat message format"
+msgid "Loading Block Modifiers"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Format of player chat messages. The following strings are valid "
-"placeholders:\n"
-"@name, @message, @timestamp (optional)"
+msgid "Lower Y limit of dungeons."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Shutdown message"
+msgid "Lower Y limit of floatlands."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "A message to be displayed to all clients when the server shuts down."
+msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crash message"
+msgid ""
+"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "A message to be displayed to all clients when the server crashes."
+msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ask to reconnect after crash"
+msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Whether to ask clients to reconnect after a (Lua) crash.\n"
-"Set this to true if your server is set up to restart automatically."
+msgid "Map Compression Level for Disk Storage"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Active object send range"
+msgid "Map Compression Level for Network Transfer"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"From how far clients know about objects, stated in mapblocks (16 nodes).\n"
-"\n"
-"Setting this larger than active_block_range will also cause the server\n"
-"to maintain active objects up to this distance in the direction the\n"
-"player is looking. (This can avoid mobs suddenly disappearing from view)"
+msgid "Map directory"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Active block range"
+msgid "Map generation attributes specific to Mapgen Carpathian."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The radius of the volume of blocks around every player that is subject to "
-"the\n"
-"active block stuff, stated in mapblocks (16 nodes).\n"
-"In active blocks objects are loaded and ABMs run.\n"
-"This is also the minimum range in which active objects (mobs) are "
-"maintained.\n"
-"This should be configured together with active_object_send_range_blocks."
+"Map generation attributes specific to Mapgen Flat.\n"
+"Occasional lakes and hills can be added to the flat world."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Max block send distance"
+msgid ""
+"Map generation attributes specific to Mapgen Fractal.\n"
+"'terrain' enables the generation of non-fractal terrain:\n"
+"ocean, islands and underground."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"From how far blocks are sent to clients, stated in mapblocks (16 nodes)."
+"Map generation attributes specific to Mapgen Valleys.\n"
+"'altitude_chill': Reduces heat with altitude.\n"
+"'humid_rivers': Increases humidity around rivers.\n"
+"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n"
+"to become shallower and occasionally dry.\n"
+"'altitude_dry': Reduces humidity with altitude."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum forceloaded blocks"
+msgid "Map generation attributes specific to Mapgen v5."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum number of forceloaded mapblocks."
+msgid ""
+"Map generation attributes specific to Mapgen v6.\n"
+"The 'snowbiomes' flag enables the new 5 biome system.\n"
+"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n"
+"the 'jungles' flag is ignored."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Time send interval"
+msgid ""
+"Map generation attributes specific to Mapgen v7.\n"
+"'ridges': Rivers.\n"
+"'floatlands': Floating land masses in the atmosphere.\n"
+"'caverns': Giant caves deep underground."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Interval of sending time of day to clients."
+msgid "Map generation limit"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Time speed"
+msgid "Map save interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Controls length of day/night cycle.\n"
-"Examples:\n"
-"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged."
+msgid "Mapblock limit"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "World start time"
+msgid "Mapblock mesh generation delay"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Time of day when a new world is started, in millihours (0-23999)."
+msgid "Mapblock mesh generator's MapBlock cache size in MB"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Map save interval"
+msgid "Mapblock unload timeout"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Interval of saving important changes in the world, stated in seconds."
+msgid "Mapgen Carpathian"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat message max length"
+msgid "Mapgen Carpathian specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Set the maximum character length of a chat message sent by clients."
+msgid "Mapgen Flat"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat message count limit"
+msgid "Mapgen Flat specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Amount of messages a player may send per 10 seconds."
+msgid "Mapgen Fractal"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat message kick threshold"
+msgid "Mapgen Fractal specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Kick players who sent more than X messages per 10 seconds."
+msgid "Mapgen V5"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Physics"
+msgid "Mapgen V5 specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default acceleration"
+msgid "Mapgen V6"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal and vertical acceleration on ground or when climbing,\n"
-"in nodes per second per second."
+msgid "Mapgen V6 specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Acceleration in air"
+msgid "Mapgen V7"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal acceleration in air when jumping or falling,\n"
-"in nodes per second per second."
+msgid "Mapgen V7 specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fast mode acceleration"
+msgid "Mapgen Valleys"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal and vertical acceleration in fast mode,\n"
-"in nodes per second per second."
+msgid "Mapgen Valleys specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Walking speed"
+msgid "Mapgen debug"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Walking and flying speed, in nodes per second."
+msgid "Mapgen name"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Sneaking speed"
+msgid "Max block generate distance"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Sneaking speed, in nodes per second."
+msgid "Max block send distance"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fast mode speed"
+msgid "Max liquids processed per step."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
+msgid "Max. clearobjects extra blocks"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Climbing speed"
+msgid "Max. packets per iteration"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Vertical climbing speed, in nodes per second."
+msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Jumping speed"
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Initial vertical speed when jumping, in nodes per second."
+msgid "Maximum forceloaded blocks"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid fluidity"
+msgid "Maximum hotbar width"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Decrease this to increase liquid resistance to movement."
+msgid "Maximum limit of random number of large caves per mapchunk."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid fluidity smoothing"
+msgid "Maximum limit of random number of small caves per mapchunk."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4757,941 +4745,945 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid sinking"
+msgid ""
+"Maximum number of blocks that are simultaneously sent per client.\n"
+"The maximum total count is calculated dynamically:\n"
+"max_total = ceil((#clients + max_users) * per_client / 4)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Controls sinking speed in liquid."
+msgid "Maximum number of blocks that can be queued for loading."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Gravity"
+msgid ""
+"Maximum number of blocks to be queued that are to be generated.\n"
+"This limit is enforced per player."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Acceleration of gravity, in nodes per second per second."
+msgid ""
+"Maximum number of blocks to be queued that are to be loaded from file.\n"
+"This limit is enforced per player."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Deprecated Lua API handling"
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
-"- error: abort on usage of deprecated call (suggested for mod developers)."
+msgid "Maximum number of forceloaded mapblocks."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Max. clearobjects extra blocks"
+msgid ""
+"Maximum number of mapblocks for client to be kept in memory.\n"
+"Set to -1 for unlimited amount."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Number of extra blocks that can be loaded by /clearobjects at once.\n"
-"This is a trade-off between sqlite transaction overhead and\n"
-"memory consumption (4096=100MB, as a rule of thumb)."
+"Maximum number of packets sent per send step, if you have a slow connection\n"
+"try reducing it, but don't reduce it to a number below double of targeted\n"
+"client number."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Unload unused server data"
+msgid "Maximum number of players that can be connected simultaneously."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"How much the server will wait before unloading unused mapblocks.\n"
-"Higher value is smoother, but will use more RAM."
+msgid "Maximum number of recent chat messages to show"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum objects per block"
+msgid "Maximum number of statically stored objects in a block."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum number of statically stored objects in a block."
+msgid "Maximum objects per block"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Synchronous SQLite"
+msgid ""
+"Maximum proportion of current window to be used for hotbar.\n"
+"Useful if there's something to be displayed right or left of hotbar."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
+msgid "Maximum simultaneous block sends per client"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Dedicated server step"
+msgid "Maximum size of the out chat queue"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Length of a server tick and the interval at which objects are generally "
-"updated over\n"
-"network."
+"Maximum size of the out chat queue.\n"
+"0 to disable queueing and -1 to make the queue size unlimited."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Active block management interval"
+msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Length of time between active block management cycles"
+msgid "Maximum users"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "ABM interval"
+msgid "Menus"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Length of time between Active Block Modifier (ABM) execution cycles"
+msgid "Mesh cache"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "NodeTimer interval"
+msgid "Message of the day"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Length of time between NodeTimer execution cycles"
+msgid "Message of the day displayed to players connecting."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ignore world errors"
+msgid "Method used to highlight selected object."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled, invalid world data won't cause the server to shut down.\n"
-"Only enable this if you know what you are doing."
+msgid "Minimal level of logging to be written to chat."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid loop max"
+msgid "Minimap"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Max liquids processed per step."
+msgid "Minimap key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid queue purge time"
+msgid "Minimap scan height"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The time (in seconds) that the liquids queue may grow beyond processing\n"
-"capacity until an attempt is made to decrease its size by dumping old queue\n"
-"items. A value of 0 disables the functionality."
+msgid "Minimum limit of random number of large caves per mapchunk."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid update tick"
+msgid "Minimum limit of random number of small caves per mapchunk."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid update interval in seconds."
+msgid "Minimum texture size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Block send optimize distance"
+msgid "Mipmapping"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"At this distance the server will aggressively optimize which blocks are sent "
-"to\n"
-"clients.\n"
-"Small values potentially improve performance a lot, at the expense of "
-"visible\n"
-"rendering glitches (some blocks will not be rendered under water and in "
-"caves,\n"
-"as well as sometimes on land).\n"
-"Setting this to a value greater than max_block_send_distance disables this\n"
-"optimization.\n"
-"Stated in mapblocks (16 nodes)."
+msgid "Mod channels"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Server side occlusion culling"
+msgid "Modifies the size of the hudbar elements."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled the server will perform map block occlusion culling based on\n"
-"on the eye position of the player. This can reduce the number of blocks\n"
-"sent to the client 50-80%. The client will not longer receive most "
-"invisible\n"
-"so that the utility of noclip mode is reduced."
+msgid "Monospace font path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Client side modding restrictions"
+msgid "Monospace font size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Restricts the access of certain client-side functions on servers.\n"
-"Combine the byteflags below to restrict client-side features, or set to 0\n"
-"for no restrictions:\n"
-"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n"
-"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n"
-"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n"
-"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n"
-"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n"
-"csm_restriction_noderange)\n"
-"READ_PLAYERINFO: 32 (disable get_player_names call client-side)"
+msgid "Mountain height noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Client side node lookup range restriction"
+msgid "Mountain noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If the CSM restriction for node range is enabled, get_node calls are "
-"limited\n"
-"to this distance from the player to the node."
+msgid "Mountain variation noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Security"
+msgid "Mountain zero level"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable mod security"
+msgid "Mouse sensitivity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Prevent mods from doing insecure things like running shell commands."
+msgid "Mouse sensitivity multiplier."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Trusted mods"
+msgid "Mud noise"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Comma-separated list of trusted mods that are allowed to access insecure\n"
-"functions even when mod security is on (via request_insecure_environment())."
+"Multiplier for fall bobbing.\n"
+"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "HTTP mods"
+msgid "Mute key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
-"allow them to upload and download data to/from the internet."
+msgid "Mute sound"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Profiling"
+msgid ""
+"Name of map generator to be used when creating a new world.\n"
+"Creating a world in the main menu will override this.\n"
+"Current mapgens in a highly unstable state:\n"
+"- The optional floatlands of v7 (disabled by default)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Load the game profiler"
+msgid ""
+"Name of the player.\n"
+"When running a server, clients connecting with this name are admins.\n"
+"When starting from the main menu, this is overridden."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Load the game profiler to collect game profiling data.\n"
-"Provides a /profiler command to access the compiled profile.\n"
-"Useful for mod developers and server operators."
+"Name of the server, to be displayed when players join and in the serverlist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default report format"
+msgid "Near plane"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The default format in which profiles are being saved,\n"
-"when calling `/profiler save [format]` without format."
+msgid "Network"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Report path"
+msgid ""
+"Network port to listen (UDP).\n"
+"This value will be overridden when starting from the main menu."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The file path relative to your worldpath in which profiles will be saved to."
+msgid "New users need to input this password."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Instrumentation"
+msgid "Noclip"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Entity methods"
+msgid "Noclip key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Instrument the methods of entities on registration."
+msgid "Node highlighting"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Active Block Modifiers"
+msgid "NodeTimer interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Instrument the action function of Active Block Modifiers on registration."
+msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Loading Block Modifiers"
+msgid "Number of emerge threads"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Instrument the action function of Loading Block Modifiers on registration."
+"Number of emerge threads to use.\n"
+"Value 0:\n"
+"- Automatic selection. The number of emerge threads will be\n"
+"- 'number of processors - 2', with a lower limit of 1.\n"
+"Any other value:\n"
+"- Specifies the number of emerge threads, with a lower limit of 1.\n"
+"WARNING: Increasing the number of emerge threads increases engine mapgen\n"
+"speed, but this may harm game performance by interfering with other\n"
+"processes, especially in singleplayer and/or when running Lua code in\n"
+"'on_generated'. For many users the optimum setting may be '1'."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chatcommands"
+msgid ""
+"Number of extra blocks that can be loaded by /clearobjects at once.\n"
+"This is a trade-off between sqlite transaction overhead and\n"
+"memory consumption (4096=100MB, as a rule of thumb)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Instrument chatcommands on registration."
+msgid "Online Content Repository"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Global callbacks"
+msgid "Opaque liquids"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Instrument global callback functions on registration.\n"
-"(anything you pass to a minetest.register_*() function)"
+"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Builtin"
+msgid ""
+"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Instrument builtin.\n"
-"This is usually only needed by core/builtin contributors"
+"Open the pause menu when the window's focus is lost. Does not pause if a "
+"formspec is\n"
+"open."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Profiler"
+msgid ""
+"Path of the fallback font.\n"
+"If “freetype†setting is enabled: Must be a TrueType font.\n"
+"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
+"This font will be used for certain languages or if the default font is "
+"unavailable."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Have the profiler instrument itself:\n"
-"* Instrument an empty function.\n"
-"This estimates the overhead, that instrumentation is adding (+1 function "
-"call).\n"
-"* Instrument the sampler being used to update the statistics."
+"Path to save screenshots at. Can be an absolute or relative path.\n"
+"The folder will be created if it doesn't already exist."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Client and Server"
+msgid ""
+"Path to shader directory. If no path is defined, default location will be "
+"used."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Player name"
+msgid "Path to texture directory. All textures are first searched from here."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Name of the player.\n"
-"When running a server, clients connecting with this name are admins.\n"
-"When starting from the main menu, this is overridden."
+"Path to the default font.\n"
+"If “freetype†setting is enabled: Must be a TrueType font.\n"
+"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
+"The fallback font will be used if the font cannot be loaded."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Language"
+msgid ""
+"Path to the monospace font.\n"
+"If “freetype†setting is enabled: Must be a TrueType font.\n"
+"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
+"This font is used for e.g. the console and profiler screen."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Set the language. Leave empty to use the system language.\n"
-"A restart is required after changing this."
+msgid "Pause on lost window focus"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Debug log level"
+msgid "Per-player limit of queued blocks load from disk"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Level of logging to be written to debug.txt:\n"
-"- <nothing> (no logging)\n"
-"- none (messages with no level)\n"
-"- error\n"
-"- warning\n"
-"- action\n"
-"- info\n"
-"- verbose"
+msgid "Per-player limit of queued blocks to generate"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Debug log file size threshold"
+msgid "Physics"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If the file size of debug.txt exceeds the number of megabytes specified in\n"
-"this setting when it is opened, the file is moved to debug.txt.1,\n"
-"deleting an older debug.txt.1 if it exists.\n"
-"debug.txt is only moved if this setting is positive."
+msgid "Pitch move key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat log level"
+msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimal level of logging to be written to chat."
+msgid "Place key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "IPv6"
+msgid "Place repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable IPv6 support (for both client and server).\n"
-"Required for IPv6 connections to work at all."
+"Player is able to fly without being affected by gravity.\n"
+"This requires the \"fly\" privilege on the server."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "cURL timeout"
+msgid "Player name"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Default timeout for cURL, stated in milliseconds.\n"
-"Only has an effect if compiled with cURL."
+msgid "Player transfer distance"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "cURL parallel limit"
+msgid "Player versus player"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Limits number of parallel HTTP requests. Affects:\n"
-"- Media fetch if server uses remote_media setting.\n"
-"- Serverlist download and server announcement.\n"
-"- Downloads performed by main menu (e.g. mod manager).\n"
-"Only has an effect if compiled with cURL."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "cURL file download timeout"
+"Port to connect to (UDP).\n"
+"Note that the port field in the main menu overrides this setting."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum time in ms a file download (e.g. a mod download) may take."
+msgid ""
+"Prevent digging and placing from repeating when holding the mouse buttons.\n"
+"Enable this when you dig or place too often by accident."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "High-precision FPU"
+msgid "Prevent mods from doing insecure things like running shell commands."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles."
+msgid ""
+"Print the engine's profiling data in regular intervals (in seconds).\n"
+"0 = disable. Useful for developers."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
+msgid "Privileges that players with basic_privs can grant"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
+msgid "Profiler"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu script"
+msgid "Profiler toggle key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Replaces the default main menu with a custom one."
+msgid "Profiling"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Engine profiling data print interval"
+msgid "Prometheus listener address"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Print the engine's profiling data in regular intervals (in seconds).\n"
-"0 = disable. Useful for developers."
+"Prometheus listener address.\n"
+"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n"
+"enable metrics listener for Prometheus on that address.\n"
+"Metrics can be fetch on http://127.0.0.1:30000/metrics"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen name"
+msgid "Proportion of large caves that contain liquid."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Name of map generator to be used when creating a new world.\n"
-"Creating a world in the main menu will override this.\n"
-"Current mapgens in a highly unstable state:\n"
-"- The optional floatlands of v7 (disabled by default)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Water level"
+"Radius of cloud area stated in number of 64 node cloud squares.\n"
+"Values larger than 26 will start to produce sharp cutoffs at cloud area "
+"corners."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Water surface level of the world."
+msgid "Raises terrain to make valleys around the rivers."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Max block generate distance"
+msgid "Random input"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"From how far blocks are generated for clients, stated in mapblocks (16 "
-"nodes)."
+msgid "Range select key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Map generation limit"
+msgid "Recent Chat Messages"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n"
-"Only mapchunks completely within the mapgen limit are generated.\n"
-"Value is stored per-world."
+msgid "Regular font path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Global map generation attributes.\n"
-"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
-"and junglegrass, in all other mapgens this flag controls all decorations."
+msgid "Remote media"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Biome API temperature and humidity noise parameters"
+msgid "Remote port"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Heat noise"
+msgid ""
+"Remove color codes from incoming chat messages\n"
+"Use this to stop players from being able to use color in their messages"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Temperature variation for biomes."
+msgid "Replaces the default main menu with a custom one."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Heat blend noise"
+msgid "Report path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Small-scale temperature variation for blending biomes on borders."
+msgid ""
+"Restricts the access of certain client-side functions on servers.\n"
+"Combine the byteflags below to restrict client-side features, or set to 0\n"
+"for no restrictions:\n"
+"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n"
+"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n"
+"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n"
+"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n"
+"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n"
+"csm_restriction_noderange)\n"
+"READ_PLAYERINFO: 32 (disable get_player_names call client-side)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Humidity noise"
+msgid "Ridge mountain spread noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Humidity variation for biomes."
+msgid "Ridge noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Humidity blend noise"
+msgid "Ridge underwater noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Small-scale humidity variation for blending biomes on borders."
+msgid "Ridged mountain size noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen V5"
+msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen V5 specific flags"
+msgid "River channel depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Map generation attributes specific to Mapgen v5."
+msgid "River channel width"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cave width"
+msgid "River depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Controls width of tunnels, a smaller value creates wider tunnels.\n"
-"Value >= 10.0 completely disables generation of tunnels and avoids the\n"
-"intensive noise calculations."
+msgid "River noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Large cave depth"
+msgid "River size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y of upper limit of large caves."
+msgid "River valley width"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Small cave minimum number"
+msgid "Rollback recording"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimum limit of random number of small caves per mapchunk."
+msgid "Rolling hill size noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Small cave maximum number"
+msgid "Rolling hills spread noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum limit of random number of small caves per mapchunk."
+msgid "Round minimap"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Large cave minimum number"
+msgid "Safe digging and placing"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimum limit of random number of large caves per mapchunk."
+msgid "Sandy beaches occur when np_beach exceeds this value."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Large cave maximum number"
+msgid "Save the map received by the client on disk."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum limit of random number of large caves per mapchunk."
+msgid "Save window size automatically when modified."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Large cave proportion flooded"
+msgid "Saving map received from server"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Proportion of large caves that contain liquid."
+msgid ""
+"Scale GUI by a user specified value.\n"
+"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n"
+"This will smooth over some of the rough edges, and blend\n"
+"pixels when scaling down, at the cost of blurring some\n"
+"edge pixels when images are scaled by non-integer sizes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cavern limit"
+msgid "Screen height"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of cavern upper limit."
+msgid "Screen width"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cavern taper"
+msgid "Screenshot folder"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-distance over which caverns expand to full size."
+msgid "Screenshot format"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cavern threshold"
+msgid "Screenshot quality"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines full size of caverns, smaller values create larger caverns."
+msgid ""
+"Screenshot quality. Only used for JPEG format.\n"
+"1 means worst quality; 100 means best quality.\n"
+"Use 0 for default quality."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Dungeon minimum Y"
+msgid "Seabed noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Lower Y limit of dungeons."
+msgid "Second of 4 2D noises that together define hill/mountain range height."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Dungeon maximum Y"
+msgid "Second of two 3D noises that together define tunnels."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Upper Y limit of dungeons."
+msgid "Security"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Noises"
+msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Filler depth noise"
+msgid "Selection box border color (R,G,B)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Variation of biome filler depth."
+msgid "Selection box color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Factor noise"
+msgid "Selection box width"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Variation of terrain vertical scale.\n"
-"When noise is < -0.55 terrain is near-flat."
+"Selects one of 18 fractal types.\n"
+"1 = 4D \"Roundy\" Mandelbrot set.\n"
+"2 = 4D \"Roundy\" Julia set.\n"
+"3 = 4D \"Squarry\" Mandelbrot set.\n"
+"4 = 4D \"Squarry\" Julia set.\n"
+"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n"
+"6 = 4D \"Mandy Cousin\" Julia set.\n"
+"7 = 4D \"Variation\" Mandelbrot set.\n"
+"8 = 4D \"Variation\" Julia set.\n"
+"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n"
+"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n"
+"11 = 3D \"Christmas Tree\" Mandelbrot set.\n"
+"12 = 3D \"Christmas Tree\" Julia set.\n"
+"13 = 3D \"Mandelbulb\" Mandelbrot set.\n"
+"14 = 3D \"Mandelbulb\" Julia set.\n"
+"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n"
+"16 = 3D \"Cosine Mandelbulb\" Julia set.\n"
+"17 = 4D \"Mandelbulb\" Mandelbrot set.\n"
+"18 = 4D \"Mandelbulb\" Julia set."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Height noise"
+msgid "Server / Singleplayer"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of average terrain surface."
+msgid "Server URL"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cave1 noise"
+msgid "Server address"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "First of two 3D noises that together define tunnels."
+msgid "Server description"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cave2 noise"
+msgid "Server name"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Second of two 3D noises that together define tunnels."
+msgid "Server port"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cavern noise"
+msgid "Server side occlusion culling"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D noise defining giant caverns."
+msgid "Serverlist URL"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ground noise"
+msgid "Serverlist file"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D noise defining terrain."
+msgid ""
+"Set the language. Leave empty to use the system language.\n"
+"A restart is required after changing this."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Dungeon noise"
+msgid "Set the maximum character length of a chat message sent by clients."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D noise that determines number of dungeons per mapchunk."
+msgid ""
+"Set to true to enable waving leaves.\n"
+"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen V6"
+msgid ""
+"Set to true to enable waving liquids (like water).\n"
+"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen V6 specific flags"
+msgid ""
+"Set to true to enable waving plants.\n"
+"Requires shaders to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen v6.\n"
-"The 'snowbiomes' flag enables the new 5 biome system.\n"
-"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n"
-"the 'jungles' flag is ignored."
+msgid "Shader path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Desert noise threshold"
+msgid ""
+"Shaders allow advanced visual effects and may increase performance on some "
+"video\n"
+"cards.\n"
+"This only works with the OpenGL video backend."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Deserts occur when np_biome exceeds this value.\n"
-"When the 'snowbiomes' flag is enabled, this is ignored."
+"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
+"drawn."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Beach noise threshold"
+msgid ""
+"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
+"be drawn."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Sandy beaches occur when np_beach exceeds this value."
+msgid "Shape of the minimap. Enabled = round, disabled = square."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain base noise"
+msgid "Show debug info"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of lower terrain and seabed."
+msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain higher noise"
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of higher terrain that creates cliffs."
+msgid "Show nametag backgrounds by default"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Steepness noise"
+msgid "Shutdown message"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Varies steepness of cliffs."
+msgid ""
+"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n"
+"WARNING!: There is no benefit, and there are several dangers, in\n"
+"increasing this value above 5.\n"
+"Reducing this value increases cave and dungeon density.\n"
+"Altering this value is for special usage, leaving it unchanged is\n"
+"recommended."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Height select noise"
+msgid ""
+"Size of the MapBlock cache of the mesh generator. Increasing this will\n"
+"increase the cache hit %, reducing the data being copied from the main\n"
+"thread, thus reducing jitter."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines distribution of higher terrain."
+msgid "Slice w"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mud noise"
+msgid "Slope and fill work together to modify the heights."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Varies depth of biome surface nodes."
+msgid "Small cave maximum number"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Beach noise"
+msgid "Small cave minimum number"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines areas with sandy beaches."
+msgid "Small-scale humidity variation for blending biomes on borders."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Biome noise"
+msgid "Small-scale temperature variation for blending biomes on borders."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cave noise"
+msgid "Smooth lighting"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Variation of number of caves."
+msgid ""
+"Smooths camera when looking around. Also called look or mouse smoothing.\n"
+"Useful for recording videos."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Trees noise"
+msgid "Smooths rotation of camera in cinematic mode. 0 to disable."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines tree areas and tree density."
+msgid "Smooths rotation of camera. 0 to disable."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Apple trees noise"
+msgid "Sneak key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines areas where trees have apples."
+msgid "Sneaking speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen V7"
+msgid "Sneaking speed, in nodes per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen V7 specific flags"
+msgid "Sound"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen v7.\n"
-"'ridges': Rivers.\n"
-"'floatlands': Floating land masses in the atmosphere.\n"
-"'caverns': Giant caves deep underground."
+msgid "Special key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mountain zero level"
+msgid "Special key for climbing/descending"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Y of mountain density gradient zero level. Used to shift mountains "
-"vertically."
+"Specifies URL from which client fetches media instead of using UDP.\n"
+"$filename should be accessible from $remote_media$filename via cURL\n"
+"(obviously, remote_media should end with a slash).\n"
+"Files that are not present will be fetched the usual way."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Floatland minimum Y"
+msgid ""
+"Specifies the default stack size of nodes, items and tools.\n"
+"Note that mods or games may explicitly set a stack for certain (or all) "
+"items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Lower Y limit of floatlands."
+msgid ""
+"Spread of light curve boost range.\n"
+"Controls the width of the range to be boosted.\n"
+"Standard deviation of the light curve boost Gaussian."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Floatland maximum Y"
+msgid "Static spawnpoint"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Upper Y limit of floatlands."
+msgid "Steepness noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Floatland tapering distance"
+msgid "Step mountain size noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Y-distance over which floatlands taper from full density to nothing.\n"
-"Tapering starts at this distance from the Y limit.\n"
-"For a solid floatland layer, this controls the height of hills/mountains.\n"
-"Must be less than or equal to half the distance between the Y limits."
+msgid "Step mountain spread noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Floatland taper exponent"
+msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
-"Value = 1.0 creates a uniform, linear tapering.\n"
-"Values > 1.0 create a smooth tapering suitable for the default separated\n"
-"floatlands.\n"
-"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
-"flatter lowlands, suitable for a solid floatland layer."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Floatland density"
+"Strength of light curve boost.\n"
+"The 3 'boost' parameters define a range of the light\n"
+"curve that is boosted in brightness."
msgstr ""
#: src/settings_translation_file.cpp
-#, c-format
-msgid ""
-"Adjusts the density of the floatland layer.\n"
-"Increase value to increase density. Can be positive or negative.\n"
-"Value = 0.0: 50% of volume is floatland.\n"
-"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
-"to be sure) creates a solid floatland layer."
+msgid "Strict protocol checking"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Floatland water level"
+msgid "Strip color codes"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5709,131 +5701,184 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Synchronous SQLite"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Temperature variation for biomes."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Terrain alternative noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain persistence noise"
+msgid "Terrain base noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Varies roughness of terrain.\n"
-"Defines the 'persistence' value for terrain_base and terrain_alt noises."
+msgid "Terrain height"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines distribution of higher terrain and steepness of cliffs."
+msgid "Terrain higher noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mountain height noise"
+msgid "Terrain noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Variation of maximum mountain height (in nodes)."
+msgid ""
+"Terrain noise threshold for hills.\n"
+"Controls proportion of world area covered by hills.\n"
+"Adjust towards 0.0 for a larger proportion."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ridge underwater noise"
+msgid ""
+"Terrain noise threshold for lakes.\n"
+"Controls proportion of world area covered by lakes.\n"
+"Adjust towards 0.0 for a larger proportion."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines large-scale river channel structure."
+msgid "Terrain persistence noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mountain noise"
+msgid "Texture path"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"3D noise defining mountain structure and height.\n"
-"Also defines structure of floatland mountain terrain."
+"Textures on a node may be aligned either to the node or to the world.\n"
+"The former mode suits better things like machines, furniture, etc., while\n"
+"the latter makes stairs and microblocks fit surroundings better.\n"
+"However, as this possibility is new, thus may not be used by older servers,\n"
+"this option allows enforcing it for certain node types. Note though that\n"
+"that is considered EXPERIMENTAL and may not work properly."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ridge noise"
+msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D noise defining structure of river canyon walls."
+msgid "The deadzone of the joystick"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Floatland noise"
+msgid ""
+"The default format in which profiles are being saved,\n"
+"when calling `/profiler save [format]` without format."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"3D noise defining structure of floatlands.\n"
-"If altered from the default, the noise 'scale' (0.7 by default) may need\n"
-"to be adjusted, as floatland tapering functions best when this noise has\n"
-"a value range of approximately -2.0 to 2.0."
+msgid "The depth of dirt or other biome filler node."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Carpathian"
+msgid ""
+"The file path relative to your worldpath in which profiles will be saved to."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Carpathian specific flags"
+msgid "The identifier of the joystick to use"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Map generation attributes specific to Mapgen Carpathian."
+msgid "The length in pixels it takes for touch screen interaction to start."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Base ground level"
+msgid ""
+"The maximum height of the surface of waving liquids.\n"
+"4.0 = Wave height is two nodes.\n"
+"0.0 = Wave doesn't move at all.\n"
+"Default is 1.0 (1/2 node).\n"
+"Requires waving liquids to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines the base ground level."
+msgid "The network interface that the server listens on."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "River channel width"
+msgid ""
+"The privileges that new users automatically get.\n"
+"See /privs in game for a full list on your server and mod configuration."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines the width of the river channel."
+msgid ""
+"The radius of the volume of blocks around every player that is subject to "
+"the\n"
+"active block stuff, stated in mapblocks (16 nodes).\n"
+"In active blocks objects are loaded and ABMs run.\n"
+"This is also the minimum range in which active objects (mobs) are "
+"maintained.\n"
+"This should be configured together with active_object_send_range_blocks."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "River channel depth"
+msgid ""
+"The rendering back-end for Irrlicht.\n"
+"A restart is required after changing this.\n"
+"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
+"otherwise.\n"
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines the depth of the river channel."
+msgid ""
+"The sensitivity of the joystick axes for moving the\n"
+"ingame view frustum around."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "River valley width"
+msgid ""
+"The strength (darkness) of node ambient-occlusion shading.\n"
+"Lower is darker, Higher is lighter. The valid range of values for this\n"
+"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n"
+"set to the nearest valid value."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines the width of the river valley."
+msgid ""
+"The time (in seconds) that the liquids queue may grow beyond processing\n"
+"capacity until an attempt is made to decrease its size by dumping old queue\n"
+"items. A value of 0 disables the functionality."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hilliness1 noise"
+msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "First of 4 2D noises that together define hill/mountain range height."
+msgid ""
+"The time in seconds it takes between repeated events\n"
+"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hilliness2 noise"
+msgid ""
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Second of 4 2D noises that together define hill/mountain range height."
+msgid "The type of joystick"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hilliness3 noise"
+msgid ""
+"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n"
+"enabled. Also the vertical distance over which humidity drops by 10 if\n"
+"'altitude_dry' is enabled."
msgstr ""
#: src/settings_translation_file.cpp
@@ -5841,488 +5886,489 @@ msgid "Third of 4 2D noises that together define hill/mountain range height."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hilliness4 noise"
+msgid ""
+"Time in seconds for item entity (dropped items) to live.\n"
+"Setting it to -1 disables the feature."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fourth of 4 2D noises that together define hill/mountain range height."
+msgid "Time of day when a new world is started, in millihours (0-23999)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rolling hills spread noise"
+msgid "Time send interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of rolling hills."
+msgid "Time speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ridge mountain spread noise"
+msgid "Timeout for client to remove unused map data from memory."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
+msgid ""
+"To reduce lag, block transfers are slowed down when a player is building "
+"something.\n"
+"This determines how long they are slowed down after placing or removing a "
+"node."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Step mountain spread noise"
+msgid "Toggle camera mode key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of step mountain ranges."
+msgid "Tooltip delay"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rolling hill size noise"
+msgid "Touch screen threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of rolling hills."
+msgid "Trees noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ridged mountain size noise"
+msgid "Trilinear filtering"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of ridged mountains."
+msgid ""
+"True = 256\n"
+"False = 128\n"
+"Usable to make minimap smoother on slower machines."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Step mountain size noise"
+msgid "Trusted mods"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of step mountains."
+msgid "URL to the server list displayed in the Multiplayer Tab."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "River noise"
+msgid "Undersampling"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that locates the river valleys and channels."
+msgid ""
+"Undersampling is similar to using a lower screen resolution, but it applies\n"
+"to the game world only, keeping the GUI intact.\n"
+"It should give a significant performance boost at the cost of less detailed "
+"image.\n"
+"Higher values result in a less detailed image."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mountain variation noise"
+msgid "Unlimited player transfer distance"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
+msgid "Unload unused server data"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Flat"
+msgid "Upper Y limit of dungeons."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Flat specific flags"
+msgid "Upper Y limit of floatlands."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen Flat.\n"
-"Occasional lakes and hills can be added to the flat world."
+msgid "Use 3D cloud look instead of flat."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ground level"
+msgid "Use a cloud animation for the main menu background."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y of flat ground."
+msgid "Use anisotropic filtering when viewing at textures from an angle."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Lake threshold"
+msgid "Use bilinear filtering when scaling textures."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Terrain noise threshold for lakes.\n"
-"Controls proportion of world area covered by lakes.\n"
-"Adjust towards 0.0 for a larger proportion."
+"Use mip mapping to scale textures. May slightly increase performance,\n"
+"especially when using a high resolution texture pack.\n"
+"Gamma correct downscaling is not supported."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Lake steepness"
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Controls steepness/depth of lake depressions."
+msgid "Use trilinear filtering when scaling textures."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hill threshold"
+msgid "VBO"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Terrain noise threshold for hills.\n"
-"Controls proportion of world area covered by hills.\n"
-"Adjust towards 0.0 for a larger proportion."
+msgid "VSync"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hill steepness"
+msgid "Valley depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Controls steepness/height of hills."
+msgid "Valley fill"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain noise"
+msgid "Valley profile"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines location and terrain of optional hills and lakes."
+msgid "Valley slope"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Fractal"
+msgid "Variation of biome filler depth."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Fractal specific flags"
+msgid "Variation of maximum mountain height (in nodes)."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Variation of number of caves."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Map generation attributes specific to Mapgen Fractal.\n"
-"'terrain' enables the generation of non-fractal terrain:\n"
-"ocean, islands and underground."
+"Variation of terrain vertical scale.\n"
+"When noise is < -0.55 terrain is near-flat."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fractal type"
+msgid "Varies depth of biome surface nodes."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Selects one of 18 fractal types.\n"
-"1 = 4D \"Roundy\" Mandelbrot set.\n"
-"2 = 4D \"Roundy\" Julia set.\n"
-"3 = 4D \"Squarry\" Mandelbrot set.\n"
-"4 = 4D \"Squarry\" Julia set.\n"
-"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n"
-"6 = 4D \"Mandy Cousin\" Julia set.\n"
-"7 = 4D \"Variation\" Mandelbrot set.\n"
-"8 = 4D \"Variation\" Julia set.\n"
-"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n"
-"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n"
-"11 = 3D \"Christmas Tree\" Mandelbrot set.\n"
-"12 = 3D \"Christmas Tree\" Julia set.\n"
-"13 = 3D \"Mandelbulb\" Mandelbrot set.\n"
-"14 = 3D \"Mandelbulb\" Julia set.\n"
-"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n"
-"16 = 3D \"Cosine Mandelbulb\" Julia set.\n"
-"17 = 4D \"Mandelbulb\" Mandelbrot set.\n"
-"18 = 4D \"Mandelbulb\" Julia set."
+"Varies roughness of terrain.\n"
+"Defines the 'persistence' value for terrain_base and terrain_alt noises."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Iterations"
+msgid "Varies steepness of cliffs."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Iterations of the recursive function.\n"
-"Increasing this increases the amount of fine detail, but also\n"
-"increases processing load.\n"
-"At iterations = 20 this mapgen has a similar load to mapgen V7."
+msgid "Vertical climbing speed, in nodes per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"(X,Y,Z) scale of fractal in nodes.\n"
-"Actual fractal size will be 2 to 3 times larger.\n"
-"These numbers can be made very large, the fractal does\n"
-"not have to fit inside the world.\n"
-"Increase these to 'zoom' into the detail of the fractal.\n"
-"Default is for a vertically-squashed shape suitable for\n"
-"an island, set all 3 numbers equal for the raw shape."
+msgid "Vertical screen synchronization."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
-"Can be used to move a desired point to (0, 0) to create a\n"
-"suitable spawn point, or to allow 'zooming in' on a desired\n"
-"point by increasing 'scale'.\n"
-"The default is tuned for a suitable spawn point for Mandelbrot\n"
-"sets with default parameters, it may need altering in other\n"
-"situations.\n"
-"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
+msgid "Video driver"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Slice w"
+msgid "View bobbing factor"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"W coordinate of the generated 3D slice of a 4D fractal.\n"
-"Determines which 3D slice of the 4D shape is generated.\n"
-"Alters the shape of the fractal.\n"
-"Has no effect on 3D fractals.\n"
-"Range roughly -2 to 2."
+msgid "View distance in nodes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Julia x"
+msgid "View range decrease key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"X component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
+msgid "View range increase key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Julia y"
+msgid "View zoom key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"Y component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
+msgid "Viewing range"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Julia z"
+msgid "Virtual joystick triggers aux button"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"Z component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
+msgid "Volume"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Julia w"
+msgid ""
+"Volume of all sounds.\n"
+"Requires the sound system to be enabled."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Julia set only.\n"
-"W component of hypercomplex constant.\n"
+"W coordinate of the generated 3D slice of a 4D fractal.\n"
+"Determines which 3D slice of the 4D shape is generated.\n"
"Alters the shape of the fractal.\n"
"Has no effect on 3D fractals.\n"
"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Seabed noise"
+msgid "Walking and flying speed, in nodes per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of seabed."
+msgid "Walking speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Valleys"
+msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Valleys specific flags"
+msgid "Water level"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen Valleys.\n"
-"'altitude_chill': Reduces heat with altitude.\n"
-"'humid_rivers': Increases humidity around rivers.\n"
-"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n"
-"to become shallower and occasionally dry.\n"
-"'altitude_dry': Reduces humidity with altitude."
+msgid "Water surface level of the world."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n"
-"enabled. Also the vertical distance over which humidity drops by 10 if\n"
-"'altitude_dry' is enabled."
+msgid "Waving Nodes"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Depth below which you'll find large caves."
+msgid "Waving leaves"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cavern upper limit"
+msgid "Waving liquids"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Depth below which you'll find giant caverns."
+msgid "Waving liquids wave height"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "River depth"
+msgid "Waving liquids wave speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "How deep to make rivers."
+msgid "Waving liquids wavelength"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "River size"
+msgid "Waving plants"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "How wide to make rivers."
+msgid ""
+"When gui_scaling_filter is true, all GUI images need to be\n"
+"filtered in software, but some images are generated directly\n"
+"to hardware (e.g. render-to-texture for nodes in inventory)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cave noise #1"
+msgid ""
+"When gui_scaling_filter_txr2img is true, copy those images\n"
+"from hardware to software for scaling. When false, fall back\n"
+"to the old scaling method, for video drivers that don't\n"
+"properly support downloading textures back from hardware."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cave noise #2"
+msgid ""
+"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
+"can be blurred, so automatically upscale them with nearest-neighbor\n"
+"interpolation to preserve crisp pixels. This sets the minimum texture size\n"
+"for the upscaled textures; higher values look sharper, but require more\n"
+"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n"
+"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n"
+"enabled.\n"
+"This is also used as the base node texture size for world-aligned\n"
+"texture autoscaling."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Filler depth"
+msgid ""
+"Whether FreeType fonts are used, requires FreeType support to be compiled "
+"in.\n"
+"If disabled, bitmap and XML vectors fonts are used instead."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "The depth of dirt or other biome filler node."
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain height"
+msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Base terrain height."
+msgid ""
+"Whether players are shown to clients without any range limit.\n"
+"Deprecated, use the setting player_transfer_distance instead."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Valley depth"
+msgid "Whether to allow players to damage and kill each other."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Raises terrain to make valleys around the rivers."
+msgid ""
+"Whether to ask clients to reconnect after a (Lua) crash.\n"
+"Set this to true if your server is set up to restart automatically."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Valley fill"
+msgid "Whether to fog out the end of the visible area."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Slope and fill work together to modify the heights."
+msgid ""
+"Whether to mute sounds. You can unmute sounds at any time, unless the\n"
+"sound system is disabled (enable_sound=false).\n"
+"In-game, you can toggle the mute state with the mute key or by using the\n"
+"pause menu."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Valley profile"
+msgid ""
+"Whether to show the client debug info (has the same effect as hitting F5)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Amplifies the valleys."
+msgid "Width component of the initial window size."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Valley slope"
+msgid "Width of the selection box lines around nodes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chunk size"
+msgid ""
+"Windows systems only: Start Minetest with the command line window in the "
+"background.\n"
+"Contains the same information as the file debug.txt (default name)."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n"
-"WARNING!: There is no benefit, and there are several dangers, in\n"
-"increasing this value above 5.\n"
-"Reducing this value increases cave and dungeon density.\n"
-"Altering this value is for special usage, leaving it unchanged is\n"
-"recommended."
+"World directory (everything in the world is stored here).\n"
+"Not needed if starting from the main menu."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen debug"
+msgid "World start time"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Dump the mapgen debug information."
+msgid ""
+"World-aligned textures may be scaled to span several nodes. However,\n"
+"the server may not send the scale you want, especially if you use\n"
+"a specially-designed texture pack; with this option, the client tries\n"
+"to determine the scale automatically basing on the texture size.\n"
+"See also texture_min_size.\n"
+"Warning: This option is EXPERIMENTAL!"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Absolute limit of queued blocks to emerge"
+msgid "World-aligned textures mode"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum number of blocks that can be queued for loading."
+msgid "Y of flat ground."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Per-player limit of queued blocks load from disk"
+msgid ""
+"Y of mountain density gradient zero level. Used to shift mountains "
+"vertically."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Maximum number of blocks to be queued that are to be loaded from file.\n"
-"This limit is enforced per player."
+msgid "Y of upper limit of large caves."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Per-player limit of queued blocks to generate"
+msgid "Y-distance over which caverns expand to full size."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of blocks to be queued that are to be generated.\n"
-"This limit is enforced per player."
+"Y-distance over which floatlands taper from full density to nothing.\n"
+"Tapering starts at this distance from the Y limit.\n"
+"For a solid floatland layer, this controls the height of hills/mountains.\n"
+"Must be less than or equal to half the distance between the Y limits."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of emerge threads"
+msgid "Y-level of average terrain surface."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Number of emerge threads to use.\n"
-"Value 0:\n"
-"- Automatic selection. The number of emerge threads will be\n"
-"- 'number of processors - 2', with a lower limit of 1.\n"
-"Any other value:\n"
-"- Specifies the number of emerge threads, with a lower limit of 1.\n"
-"WARNING: Increasing the number of emerge threads increases engine mapgen\n"
-"speed, but this may harm game performance by interfering with other\n"
-"processes, especially in singleplayer and/or when running Lua code in\n"
-"'on_generated'. For many users the optimum setting may be '1'."
+msgid "Y-level of cavern upper limit."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Online Content Repository"
+msgid "Y-level of higher terrain that creates cliffs."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "ContentDB URL"
+msgid "Y-level of lower terrain and seabed."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "The URL for the content repository"
+msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "ContentDB Flag Blacklist"
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Comma-separated list of flags to hide in the content repository.\n"
-"\"nonfree\" can be used to hide packages which do not qualify as 'free "
-"software',\n"
-"as defined by the Free Software Foundation.\n"
-"You can also specify content ratings.\n"
-"These flags are independent from Minetest versions,\n"
-"so see a full list at https://content.minetest.net/help/content_flags/"
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "cURL file download timeout"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "cURL parallel limit"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "cURL timeout"
msgstr ""
diff --git a/po/he/minetest.po b/po/he/minetest.po
index f0a49f82e..2bfb5e711 100644
--- a/po/he/minetest.po
+++ b/po/he/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Hebrew (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2019-11-10 15:04+0000\n"
-"Last-Translator: Krock <mk939@ymail.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-17 22:50+0000\n"
+"Last-Translator: Yossi Cohen <cohenyossi81@gmail.com>\n"
"Language-Team: Hebrew <https://hosted.weblate.org/projects/minetest/minetest/"
"he/>\n"
"Language: he\n"
@@ -13,29 +13,27 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
-"X-Generator: Weblate 3.10-dev\n"
+"X-Generator: Weblate 4.5\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
-msgstr ""
+msgstr "הזדמן"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "You died"
-msgstr ""
+msgstr "מתת"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "×ישור"
#: builtin/fstk/ui.lua
-#, fuzzy
msgid "An error occurred in a Lua script:"
-msgstr "×ירעה שגי××” בקוד לו××” (Lua), כנר××” ב×חד המודי×:"
+msgstr "×ירעה שגי××” בתסריט Lua:"
#: builtin/fstk/ui.lua
-#, fuzzy
msgid "An error occurred:"
-msgstr "התרחשה שגי××”:"
+msgstr "×ירעה שגי××”:"
#: builtin/fstk/ui.lua
msgid "Main menu"
@@ -43,15 +41,11 @@ msgstr "תפריט ר×שי"
#: builtin/fstk/ui.lua
msgid "Reconnect"
-msgstr "התחבר מחדש"
+msgstr "התחברות מחדש"
#: builtin/fstk/ui.lua
msgid "The server has requested a reconnect:"
-msgstr "השרת מבקש שתתחבר מחדש:"
-
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "טוען..."
+msgstr "השרת מבקש התחברות מחדש:"
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
@@ -59,17 +53,13 @@ msgstr "שגי××” בגרס×ות הפרוטוקול. "
#: builtin/mainmenu/common.lua
msgid "Server enforces protocol version $1. "
-msgstr "השרת יפעיל ×ת פרוטוקול גרסה $1. בכוח "
+msgstr "השרת מחייב שימוש בגרסת פרוטוקול $1. "
#: builtin/mainmenu/common.lua
msgid "Server supports protocol versions between $1 and $2. "
msgstr "השרת תומך ×‘×¤×¨×•×˜×•×§×•×œ×™× ×‘×™×Ÿ גרסה $1 וגרסה $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr "נסה לצ×ת והכנס מחדש לרשימת ×”×©×¨×ª×™× ×•×‘×“×•×§ ×ת חיבור ×”×ינטרנט שלך."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "×נו ×ª×•×ž×›×™× ×¨×§ בגירסה 1$ של הפרוטוקול."
@@ -77,7 +67,8 @@ msgstr "×נו ×ª×•×ž×›×™× ×¨×§ בגירסה 1$ של הפרוטוקול."
msgid "We support protocol versions between version $1 and $2."
msgstr "×נו ×ª×•×ž×›×™× ×‘×’×¨×¡×ות בין 1$ ל-2$ של הפרוטוקול."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -87,42 +78,38 @@ msgstr "×נו ×ª×•×ž×›×™× ×‘×’×¨×¡×ות בין 1$ ל-2$ של הפרוטוקו
msgid "Cancel"
msgstr "ביטול"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
-#, fuzzy
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
-msgstr "תלוי ב:"
+msgstr "תלויות:"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "Disable all"
-msgstr "×פשר הכל"
+msgstr "להשבית הכול"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "Disable modpack"
-msgstr "×פשר הכל"
+msgstr "השבתת ערכת המודי×"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable all"
-msgstr "×פשר הכל"
+msgstr "להפעיל הכול"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "Enable modpack"
-msgstr "×פשר הכל"
+msgstr "הפעלת ערכת המודי×"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid ""
"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
"characters [a-z0-9_] are allowed."
msgstr ""
-"טעינת המוד \"1$\" נכשלה מכיוון ×©×”×•× ×ž×›×™×œ ×ª×•×•×™× ×œ× ×—×•×§×™×™×. רק ×”×ª×•×•×™× [a-"
+"הפעלת המוד \"1$\" נכשלה מכיוון ×©×”×•× ×ž×›×™×œ ×ª×•×•×™× ×œ× ×—×•×§×™×™×. רק ×”×ª×•×•×™× [a-"
"z0-9_] מותרי×."
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "מצי×ת ×ž×•×“×™× × ×•×¡×¤×™×"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -130,33 +117,32 @@ msgstr "מוד:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No (optional) dependencies"
-msgstr ""
+msgstr "×ין תלויות (רשות)"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No game description provided."
-msgstr ""
+msgstr "×œ× ×¡×•×¤×§ תי×ור משחק."
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No hard dependencies"
-msgstr "תלוי ב:"
+msgstr "×œ×œ× ×ª×œ×•×™×•×ª קשות"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No modpack description provided."
-msgstr ""
+msgstr "×œ× ×¡×•×¤×§ תי×ור לחבילת המוד."
#: builtin/mainmenu/dlg_config_world.lua
msgid "No optional dependencies"
-msgstr ""
+msgstr "×ין תלויות רשות"
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
msgid "Optional dependencies:"
-msgstr ""
+msgstr "תלויות ×ופציונ×ליות:"
#: builtin/mainmenu/dlg_config_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
msgid "Save"
-msgstr "שמור"
+msgstr "שמירה"
#: builtin/mainmenu/dlg_config_world.lua
msgid "World:"
@@ -167,26 +153,64 @@ msgid "enabled"
msgstr "מופעל"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "All packages"
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" כבר ×§×™×™×. ×”×× ×ª×¨×¦×” להחליף ×ותו?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "התלויות $1 ו $2 יותקנו."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 ליד $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
msgstr ""
+"$1 מוריד,\n"
+"$2 ממתין"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 כעת בהורדה..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "×œ× × ×™×ª×Ÿ ×œ×ž×¦×•× ×ª×œ×•×ª חובה של $1."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 יותקן ו $2 תלויות שידולגו."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "All packages"
+msgstr "כל החבילות"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "כבר מותקן"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Back to Main Menu"
-msgstr "תפריט ר×שי"
+msgstr "חזרה לתפריט הר×שי"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "משחק בסיסי:"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "בסיס נתוני התוכן ×œ× ×–×ž×™×Ÿ ×›×שר מיינטסט מקומפל בלי cUrl"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
-msgstr "טוען..."
+msgstr "כעת בהורדה..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
-msgstr ""
+msgstr "הורדת $1 נכשלה"
#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -195,7 +219,15 @@ msgstr "משחקי×"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Install"
-msgstr "החקן"
+msgstr "התקנה"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "התקנת $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "מתקין תלויות חסרות"
#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -204,99 +236,115 @@ msgstr "מודי×"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No packages could be retrieved"
-msgstr ""
+msgstr "×œ× × ×™×ª×Ÿ ×œ×”×‘×™× ×ת החבילות"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No results"
-msgstr ""
+msgstr "×ין תוצ×ות"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "חפש"
+msgid "No updates"
+msgstr "×ין עדכוני×"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "×œ× × ×ž×¦×"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "דרוס"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "×× × ×‘×“×•×§ שמשחק הבסיס תקין."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "נכנס לתור"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Texture packs"
-msgstr "חבילות מרק×"
+msgstr "חבילות טקסטורה (מרק×)"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Uninstall"
-msgstr "החקן"
+msgstr "הסרה"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Update"
-msgstr ""
+msgstr "עדכון"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr ""
+msgid "Update All [$1]"
+msgstr "עדכן הכל [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "צפה במידע נוסף בדפדפן ×”×ינטרנט"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
-msgstr "×¢×•×œ× ×‘×©× \"1$\" כבר ×§×™×™×"
+msgstr "כבר ×§×™×™× ×¢×•×œ× ×‘×©× \"$1\""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "שטח נוסף"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
-msgstr ""
+msgstr "קור בגבהי×"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Altitude dry"
-msgstr ""
+msgstr "יובש בגבהי×"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biome blending"
-msgstr ""
+msgstr "מיזוג ×‘×™×•×ž×™× (×קולוגי)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biomes"
-msgstr ""
+msgstr "×‘×™×•×ž×™× (צמחיה ×קולוגית)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caverns"
-msgstr ""
+msgstr "מערות (טבעיות בחלקן מו×רות)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caves"
-msgstr ""
+msgstr "מערות (×œ×œ× ×ור שמש)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
-msgstr "ליצור"
+msgstr "יצירה"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Decorations"
-msgstr ""
+msgstr "קישוטי×"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Download a game, such as Minetest Game, from minetest.net"
-msgstr "הורד מפעיל משחק, למשל \"minetest_game\", מה×תר: minetest.net"
+msgstr "הורדת משחק, כמו משחק Minetest, מ×תר minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download one from minetest.net"
-msgstr "הורד ×חד מ-\"minetest.net\""
+msgstr "הורד ×חד מ×תר minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Dungeons"
-msgstr ""
+msgstr "מבוכי×"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "×¢×•×œ× ×©×˜×•×—"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
-msgstr ""
+msgstr "גושי ×דמה ×¦×¤×™× ×‘×©×ž×™×"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floatlands (experimental)"
-msgstr ""
+msgstr "×דמה צפה (נסיוני)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -304,276 +352,276 @@ msgstr "משחק"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "צור שטח ×œ× ×¤×¨×§×˜×œ×™: ××•×§×™×™× ×•×¡×™× ×•×ª×ª קרקעי"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "גבעות"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Humid rivers"
-msgstr ""
+msgstr "נהרות לחי×"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "הגברת הלחות בסביבת נהרות"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "×גמי×"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "לחות נמוכה ×•×—×•× ×’×‘×•×” ×’×•×¨×ž×™× ×œ× ×”×¨×•×ª ×¨×“×•×“×™× ×ו יבשי×"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
-msgstr "מנוע מפות"
+msgstr "מנוע (מחולל) מפות"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen flags"
-msgstr ""
+msgstr "×פשרויות מנוע מפות"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mapgen-specific flags"
-msgstr "מנוע מפות"
+msgstr "×פשרויות ספציפיות למנוע מפות"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mountains"
-msgstr ""
+msgstr "הרי×"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "זרימת בוץ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "רשת מערות ומחילות"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "No game selected"
-msgstr "×ין ×¢×•×œ× × ×•×¦×¨ ×ו נבחר!"
+msgstr "×œ× × ×‘×—×¨ משחק"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "הפחתה ×‘×—×•× ×‘×’×•×‘×” רב"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "הפחתת הלחות בגובה רב"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Rivers"
-msgstr ""
+msgstr "נהרות"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "נהרות בגובה פני ×”×™×"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Seed"
-msgstr ""
+msgstr "זרע"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "מעבר חלק בין ×זורי ××§×œ×™× ×©×•× ×™×"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
-msgstr ""
+msgstr "×ž×‘× ×™× ×”×ž×•×¤×™×¢×™× ×‘×©×˜×— (×ין השפעה על ×¢×¦×™× ×•×¢×©×‘×™ ×’'ונגל שנוצרו על ידי v6)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "×ž×‘× ×™× ×”×ž×•×¤×™×¢×™× ×‘×©×˜×—, בדרך כלל ×¢×¦×™× ×•×¦×ž×—×™×"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
-msgstr ""
+msgstr "ממוזג, מדברי"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgstr "ממוזג, מדברי, ג'ונגל"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "ממוזג, מדברי, ג'ונגל, טונדרה, טייגה"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Terrain surface erosion"
-msgstr ""
+msgstr "סחף פני השטח"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "×¢×¦×™× ×•×“×©× ×©×œ ג׳ונגל"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Vary river depth"
-msgstr ""
+msgstr "עומק נהרות משתנה"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "מערות גדולות מ×וד עמוק מתחת ל×דמה"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Warning: The Development Test is meant for developers."
-msgstr "×זהרה: מצב ×”×ž×¤×ª×—×™× × ×•×¢×“ למפתחי×!."
+msgstr "×זהרה: מצב בדיקת הפיתוח נועד למפתחי×."
#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
msgstr "×©× ×”×¢×•×œ×"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "You have no games installed."
-msgstr "×ין לך ××£ מפעיל משחק מותקן."
+msgstr "×ין לך ×ž×©×—×§×™× ×ž×•×ª×§× ×™×."
#: builtin/mainmenu/dlg_delete_content.lua
msgid "Are you sure you want to delete \"$1\"?"
-msgstr "×”×× ×‘×¨×¦×•× ×š למחוק ×ת \"$1\"?"
+msgstr "×”×× ×כן ברצונך למחוק ×ת \"$1\"?"
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua
#: src/client/keycode.cpp
msgid "Delete"
-msgstr "מחק"
+msgstr "מחיקה"
#: builtin/mainmenu/dlg_delete_content.lua
msgid "pkgmgr: failed to delete \"$1\""
-msgstr ""
+msgstr "pkgmgr: מחיקת \"$1\" נכשלה"
#: builtin/mainmenu/dlg_delete_content.lua
msgid "pkgmgr: invalid path \"$1\""
-msgstr ""
+msgstr "pkgmgr: נתיב ×œ× ×—×•×§×™ \"$1\""
#: builtin/mainmenu/dlg_delete_world.lua
msgid "Delete World \"$1\"?"
-msgstr "למחוק ×¢×•×œ× \"$1\"?"
+msgstr "למחוק ×ת ×”×¢×•×œ× \"$1\"?"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid "Accept"
-msgstr "קבל"
+msgstr "הסכמה"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid "Rename Modpack:"
-msgstr ""
+msgstr "שנה ×ת ×©× ×—×‘×™×œ×ª המודי×:"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid ""
"This modpack has an explicit name given in its modpack.conf which will "
"override any renaming here."
msgstr ""
+"ל- modpack (חבילת תוספות) ×–×” יש ×©× ×ž×¤×•×¨×© שניתן ב modpack.conf שלו ×שר יעקוף "
+"כל שינוי-×©× ×›×ן."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "(No description of setting given)"
-msgstr ""
+msgstr "(×œ× × ×•×¡×£ תי×ור להגדרה)"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "2D Noise"
-msgstr ""
+msgstr "רעש דו-מיימדי"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "< Back to Settings page"
-msgstr ""
+msgstr "חזור לדף ההגדרות >"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
-msgstr ""
+msgstr "דפדף"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Disabled"
-msgstr ""
+msgstr "מושבת"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Edit"
-msgstr ""
+msgstr "עריכה"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Enabled"
-msgstr ""
+msgstr "מופעל"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Lacunarity"
-msgstr ""
+msgstr "מרווחיות"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Octaves"
-msgstr ""
+msgstr "×וקטבות"
#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
msgid "Offset"
-msgstr ""
+msgstr "היסט"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Persistance"
-msgstr ""
+msgstr "התמדה"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a valid integer."
-msgstr ""
+msgstr "הכנס מספר ×©×œ× ×—×•×§×™."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a valid number."
-msgstr ""
+msgstr "הכנס מספר חוקי."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Restore Default"
-msgstr ""
+msgstr "שחזור לברירת המחדל"
#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
msgid "Scale"
-msgstr ""
+msgstr "קנה מידה"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "חיפוש"
#: builtin/mainmenu/dlg_settings_advanced.lua
-#, fuzzy
msgid "Select directory"
-msgstr "בחר עול×:"
+msgstr "× × ×œ×‘×—×•×¨ תיקיה"
#: builtin/mainmenu/dlg_settings_advanced.lua
-#, fuzzy
msgid "Select file"
-msgstr "בחר עול×:"
+msgstr "× × ×œ×‘×—×•×¨ קובץ"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
-msgstr ""
+msgstr "הצגת שמות טכניי×"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "The value must be at least $1."
-msgstr ""
+msgstr "הערך חייב להיות לפחות $1."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "The value must not be larger than $1."
-msgstr ""
+msgstr "הערך ×œ× ×™×›×•×œ להיות גדול מ־$1."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "X"
-msgstr ""
+msgstr "X"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "X spread"
-msgstr ""
+msgstr "מרווחיות X"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Y"
-msgstr ""
+msgstr "Y"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Y spread"
-msgstr ""
+msgstr "מרווחיות Y"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Z"
-msgstr ""
+msgstr "Z"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Z spread"
-msgstr ""
+msgstr "מרווחיות Z"
#. ~ "absvalue" is a noise parameter flag.
#. It is short for "absolute value".
@@ -581,14 +629,14 @@ msgstr ""
#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "absvalue"
-msgstr ""
+msgstr "ערך מוחלט"
#. ~ "defaults" is a noise parameter flag.
#. It describes the default processing options
#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "defaults"
-msgstr ""
+msgstr "ברירת מחדל"
#. ~ "eased" is a noise parameter flag.
#. It is used to make the map smoother and
@@ -596,157 +644,173 @@ msgstr ""
#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "eased"
-msgstr ""
+msgstr "החלקת ערכי×"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "$1 (Enabled)"
-msgstr "מופעל"
+msgstr "$1 (מופעל)"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "$1 mods"
-msgstr "מודי×"
+msgstr "$1 מודי×"
#: builtin/mainmenu/pkgmgr.lua
msgid "Failed to install $1 to $2"
-msgstr ""
+msgstr "התקנת $1 ×ל $2 נכשלה"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install Mod: Unable to find real mod name for: $1"
-msgstr ""
+msgstr "התקנת מוד: ×œ× × ×™×ª×Ÿ ×œ×ž×¦×•× ×ת ×©× ×”×ž×•×“ ×”×מיתי עבור: $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install Mod: Unable to find suitable folder name for modpack $1"
-msgstr ""
+msgstr "התקנת מוד: ×œ× × ×™×ª×Ÿ ×œ×ž×¦×•× ×©× ×ª×™×§×™×™×” מת××™× ×¢×‘×•×¨ חבילת ×”×ž×•×“×™× $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install: Unsupported file type \"$1\" or broken archive"
-msgstr ""
+msgstr "התקנה: סוג קובץ ×œ× × ×ª×ž×š \"$1\" ×ו שה×רכיב פגו×"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install: file: \"$1\""
-msgstr ""
+msgstr "התקנה: מקובץ: \"$1\""
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to find a valid mod or modpack"
-msgstr ""
+msgstr "×œ× × ×™×ª×Ÿ ×œ×ž×¦×•× ×ž×•×“/חבילת ×ž×•×“×™× ×ª×§×™× ×”"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a $1 as a texture pack"
-msgstr ""
+msgstr "×œ× × ×™×ª×Ÿ להתקין $1 כחבילת טקסטורות"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a game as a $1"
-msgstr ""
+msgstr "×œ× × ×™×ª×Ÿ להתקין משחק בתור $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a mod as a $1"
-msgstr ""
+msgstr "×œ× × ×™×ª×Ÿ להתקין מוד בתור $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a modpack as a $1"
+msgstr "×œ× × ×™×ª×Ÿ להתקין חבילת ×ž×•×“×™× ×‘×ª×•×¨ $1"
+
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "כעת בטעינה..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "×¡×§×¨×™×¤×˜×™× ×‘×¦×“ לקוח מבוטלי×"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
msgstr ""
+"× × ×œ× ×¡×•×ª לצ×ת ולהיכנס מחדש לרשימת ×”×©×¨×ª×™× ×•×œ×‘×“×•×§ ×ת החיבור שלך ל×ינטרנט."
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
-msgstr ""
+msgstr "עיון בתוכן מקוון"
#: builtin/mainmenu/tab_content.lua
msgid "Content"
-msgstr ""
+msgstr "תוכן"
#: builtin/mainmenu/tab_content.lua
-#, fuzzy
msgid "Disable Texture Pack"
-msgstr "חבילות מרק×"
+msgstr "השבתת חבילת המרק×"
#: builtin/mainmenu/tab_content.lua
msgid "Information:"
-msgstr ""
+msgstr "מידע:"
#: builtin/mainmenu/tab_content.lua
msgid "Installed Packages:"
-msgstr ""
+msgstr "חבילות מותקנות:"
#: builtin/mainmenu/tab_content.lua
msgid "No dependencies."
-msgstr ""
+msgstr "×ין תלויות."
#: builtin/mainmenu/tab_content.lua
msgid "No package description available"
-msgstr ""
+msgstr "×ין תי×ור חבילה זמין"
#: builtin/mainmenu/tab_content.lua
msgid "Rename"
-msgstr ""
+msgstr "שנה ש×"
#: builtin/mainmenu/tab_content.lua
msgid "Uninstall Package"
-msgstr ""
+msgstr "הסרת החבילה"
#: builtin/mainmenu/tab_content.lua
-#, fuzzy
msgid "Use Texture Pack"
-msgstr "חבילות מרק×"
+msgstr "שימוש בחבילת המרק×"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
-msgstr ""
+msgstr "×ª×•×¨×ž×™× ×¤×¢×™×œ×™×"
#: builtin/mainmenu/tab_credits.lua
msgid "Core Developers"
-msgstr ""
+msgstr "×ž×¤×ª×—×™× ×¢×™×§×¨×™×™×"
#: builtin/mainmenu/tab_credits.lua
msgid "Credits"
-msgstr "קרדיטי×"
+msgstr "תודות"
#: builtin/mainmenu/tab_credits.lua
-msgid "Previous Contributors"
+msgid "Open User Data Directory"
+msgstr "× × ×œ×‘×—×•×¨ תיקיית משתמש"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
msgstr ""
+"פותח ×ת התיקייה המכילה עולמות, משחקי×, מודי×,\n"
+"וחבילות טקסטורה במנהל קבצי×."
+
+#: builtin/mainmenu/tab_credits.lua
+msgid "Previous Contributors"
+msgstr "×ª×•×¨×ž×™× ×§×•×“×ž×™×"
#: builtin/mainmenu/tab_credits.lua
msgid "Previous Core Developers"
-msgstr ""
+msgstr "מפתחי ליבה קודמי×"
#: builtin/mainmenu/tab_local.lua
msgid "Announce Server"
-msgstr ""
+msgstr "הכרז על השרת"
#: builtin/mainmenu/tab_local.lua
msgid "Bind Address"
-msgstr ""
+msgstr "הצמד כתובת"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "קביעת תצורה"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
-msgstr "משחק יצירתי"
+msgstr "מצב יצירתי"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
-msgstr "×פשר × ×–×§"
+msgstr "ל×פשר חבלה"
#: builtin/mainmenu/tab_local.lua
-#, fuzzy
msgid "Host Game"
-msgstr "הסתר משחק"
+msgstr "×ירוח משחק"
#: builtin/mainmenu/tab_local.lua
-#, fuzzy
msgid "Host Server"
-msgstr "שרת"
+msgstr "×כסון שרת"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "התקנת משחק מContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "ש×/סיסמה"
+msgid "Name"
+msgstr "ש×"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -754,186 +818,164 @@ msgstr "חדש"
#: builtin/mainmenu/tab_local.lua
msgid "No world created or selected!"
-msgstr "×ין ×¢×•×œ× × ×•×¦×¨ ×ו נבחר!"
+msgstr "×ין ×¢×•×œ× ×©× ×•×¦×¨ ×ו נבחר!"
+
+#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "סיסמה"
#: builtin/mainmenu/tab_local.lua
-#, fuzzy
msgid "Play Game"
-msgstr "התחל משחק"
+msgstr "להתחיל לשחק"
#: builtin/mainmenu/tab_local.lua
msgid "Port"
msgstr "פורט"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "בחירת מודי×"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
-msgstr "בחר עול×:"
+msgstr "× × ×œ×‘×—×•×¨ עול×:"
#: builtin/mainmenu/tab_local.lua
msgid "Server Port"
-msgstr ""
+msgstr "פורט לשרת"
#: builtin/mainmenu/tab_local.lua
-#, fuzzy
msgid "Start Game"
-msgstr "הסתר משחק"
+msgstr "התחלת המשחק"
#: builtin/mainmenu/tab_online.lua
msgid "Address / Port"
msgstr "כתובת / פורט"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
-msgstr "התחבר"
+msgstr "התחברות"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
-msgstr ""
+msgstr "מצב יצירתי"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
-msgstr ""
+msgstr "נזק מופעל"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
-msgstr ""
+msgstr "מחק מועדף"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
-msgstr ""
+msgstr "מועדף"
#: builtin/mainmenu/tab_online.lua
-#, fuzzy
msgid "Join Game"
-msgstr "הסתר משחק"
+msgstr "הצטרפות למשחק"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "ש×/סיסמה"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
-msgstr ""
+msgstr "פינג"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
-msgstr "PvP ×פשר"
+msgstr "ל×פשר קרבות"
#: builtin/mainmenu/tab_settings.lua
msgid "2x"
-msgstr ""
+msgstr "x2"
#: builtin/mainmenu/tab_settings.lua
msgid "3D Clouds"
-msgstr ""
+msgstr "×¢× × ×™× ×ª×œ×ª מימדיי×"
#: builtin/mainmenu/tab_settings.lua
msgid "4x"
-msgstr ""
+msgstr "x4"
#: builtin/mainmenu/tab_settings.lua
msgid "8x"
-msgstr ""
+msgstr "x8"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "All Settings"
-msgstr "הגדרות"
+msgstr "כל ההגדרות"
#: builtin/mainmenu/tab_settings.lua
msgid "Antialiasing:"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
+msgstr "החלקת קצוות (AA):"
#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
-msgstr ""
+msgstr "שמור ×וטומטית גודל מסך"
#: builtin/mainmenu/tab_settings.lua
msgid "Bilinear Filter"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
+msgstr "פילטר בילינ×רי"
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
-msgstr ""
+msgstr "שנה מקשי×"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Connected Glass"
-msgstr "התחבר"
+msgstr "זכוכיות מחוברות"
#: builtin/mainmenu/tab_settings.lua
msgid "Fancy Leaves"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
+msgstr "×¢×œ×™× ×ž×’× ×™×‘×™×"
#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
-msgstr ""
+msgstr "מיפמ×פ"
#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap + Aniso. Filter"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "ל×"
+msgstr "מיפמ×פ + פילטר ×ניסוטרופי"
#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
-msgstr ""
+msgstr "בלי פילטר"
#: builtin/mainmenu/tab_settings.lua
msgid "No Mipmap"
-msgstr ""
+msgstr "בלי מיפמ×פ"
#: builtin/mainmenu/tab_settings.lua
msgid "Node Highlighting"
-msgstr ""
+msgstr "הבלטת קוביות"
#: builtin/mainmenu/tab_settings.lua
msgid "Node Outlining"
-msgstr ""
+msgstr "הדגשת מסגרת קוביות"
#: builtin/mainmenu/tab_settings.lua
msgid "None"
-msgstr ""
+msgstr "לל×"
#: builtin/mainmenu/tab_settings.lua
msgid "Opaque Leaves"
-msgstr ""
+msgstr "×¢×œ×™× ×טומי×"
#: builtin/mainmenu/tab_settings.lua
msgid "Opaque Water"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
+msgstr "×ž×™× ××˜×•×ž×™× ×œ×ור"
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "חלקיקי×"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
-msgid "Reset singleplayer world"
-msgstr "שרת"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
-msgstr ""
+msgstr "מסך:"
#: builtin/mainmenu/tab_settings.lua
msgid "Settings"
@@ -941,127 +983,115 @@ msgstr "הגדרות"
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
msgid "Shaders"
-msgstr ""
+msgstr "שיידרי×"
+
+#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr "×©×™×™×“×¨×™× (נסיוני)"
#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
-msgstr ""
+msgstr "×©×™×™×“×¨×™× (×œ× ×–×ž×™× ×™×)"
#: builtin/mainmenu/tab_settings.lua
msgid "Simple Leaves"
-msgstr ""
+msgstr "×¢×œ×™× ×¤×©×•×˜×™×"
#: builtin/mainmenu/tab_settings.lua
msgid "Smooth Lighting"
-msgstr ""
+msgstr "החלקת ת×ורה"
#: builtin/mainmenu/tab_settings.lua
msgid "Texturing:"
-msgstr ""
+msgstr "טקסטורות:"
#: builtin/mainmenu/tab_settings.lua
msgid "To enable shaders the OpenGL driver needs to be used."
-msgstr ""
+msgstr "כדי ל×פשר ×©×™×™×“×¨×™× ×™×© להשתמש בדרייבר של OpenGL."
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
msgid "Tone Mapping"
-msgstr ""
+msgstr "מיפוי גווני×"
#: builtin/mainmenu/tab_settings.lua
msgid "Touchthreshold: (px)"
-msgstr ""
+msgstr "סף נגיעה: (px)"
#: builtin/mainmenu/tab_settings.lua
msgid "Trilinear Filter"
-msgstr ""
+msgstr "פילטר תלת לינ×רי"
#: builtin/mainmenu/tab_settings.lua
msgid "Waving Leaves"
-msgstr ""
+msgstr "×¢×œ×™× ×ž×ª× ×•×¤×¤×™×"
#: builtin/mainmenu/tab_settings.lua
msgid "Waving Liquids"
-msgstr ""
+msgstr "× ×•×–×œ×™× ×¢× ×’×œ×™×"
#: builtin/mainmenu/tab_settings.lua
msgid "Waving Plants"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "כן"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
+msgstr "×¦×ž×—×™× ×ž×ª× ×•×¢× ×¢×™×"
#: src/client/client.cpp
msgid "Connection timed out."
-msgstr ""
+msgstr "זמן המתנה לחיבור ×זל."
#: src/client/client.cpp
msgid "Done!"
-msgstr ""
+msgstr "הסתיי×!"
#: src/client/client.cpp
msgid "Initializing nodes"
-msgstr ""
+msgstr "מ×תחל קוביות"
#: src/client/client.cpp
msgid "Initializing nodes..."
-msgstr ""
+msgstr "מ×תחל קוביות..."
#: src/client/client.cpp
msgid "Loading textures..."
-msgstr ""
+msgstr "טוען טקסטורות..."
#: src/client/client.cpp
msgid "Rebuilding shaders..."
-msgstr ""
+msgstr "בונה מחדש שיידרי×..."
#: src/client/clientlauncher.cpp
msgid "Connection error (timed out?)"
-msgstr ""
+msgstr "בעיה בחיבור (נגמר זמן ההמתנה?)"
#: src/client/clientlauncher.cpp
msgid "Could not find or load game \""
-msgstr ""
+msgstr "×œ× ×ž×¦×œ×™×— ×œ×ž×¦×•× ×ו לטעון משחק \""
#: src/client/clientlauncher.cpp
msgid "Invalid gamespec."
-msgstr ""
+msgstr "הגדרת משחק ×œ× ×ª×§×™× ×”."
#: src/client/clientlauncher.cpp
msgid "Main Menu"
-msgstr ""
+msgstr "תפריט ר×שי"
#: src/client/clientlauncher.cpp
msgid "No world selected and no address provided. Nothing to do."
-msgstr ""
+msgstr "×œ× × ×‘×—×¨ ×¢×•×œ× ×•×œ× × ×ª× ×” כתובת. ×œ× ×¢×•×©×” כלו×."
#: src/client/clientlauncher.cpp
msgid "Player name too long."
-msgstr ""
+msgstr "×©× ×”×©×—×§×Ÿ ×רוך מידי."
#: src/client/clientlauncher.cpp
msgid "Please choose a name!"
-msgstr ""
+msgstr "× × ×œ×‘×—×•×¨ ש×!"
#: src/client/clientlauncher.cpp
msgid "Provided password file failed to open: "
-msgstr ""
+msgstr "הסיסמה שניתנה ×œ× ×¤×ª×—×”: "
#: src/client/clientlauncher.cpp
msgid "Provided world path doesn't exist: "
-msgstr ""
+msgstr "נתיב ×”×¢×•×œ× ×©× ×™×ª×Ÿ ×œ× ×§×™×™×: "
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string. Put either "no" or "yes"
@@ -1080,84 +1110,81 @@ msgid ""
"\n"
"Check debug.txt for details."
msgstr ""
+"\n"
+"בדוק ×ת debug.txt ×œ×¤×¨×˜×™× × ×•×¡×¤×™×."
#: src/client/game.cpp
-#, fuzzy
msgid "- Address: "
-msgstr "כתובת / פורט"
+msgstr "- כתובת: "
#: src/client/game.cpp
-#, fuzzy
msgid "- Creative Mode: "
-msgstr "משחק יצירתי"
+msgstr "- מצב יצירתי: "
#: src/client/game.cpp
-#, fuzzy
msgid "- Damage: "
-msgstr "×פשר × ×–×§"
+msgstr "- חבלה: "
#: src/client/game.cpp
msgid "- Mode: "
-msgstr ""
+msgstr "- מצב: "
#: src/client/game.cpp
-#, fuzzy
msgid "- Port: "
-msgstr "פורט"
+msgstr "- פורט: "
#: src/client/game.cpp
-#, fuzzy
msgid "- Public: "
-msgstr "ציבורי"
+msgstr "- ציבורי: "
#. ~ PvP = Player versus Player
#: src/client/game.cpp
msgid "- PvP: "
-msgstr ""
+msgstr "- קרב: "
#: src/client/game.cpp
msgid "- Server Name: "
-msgstr ""
+msgstr "- ×©× ×©×¨×ª: "
#: src/client/game.cpp
msgid "Automatic forward disabled"
-msgstr ""
+msgstr "התקדמות ×וטומטית קדימה מבוטלת"
#: src/client/game.cpp
msgid "Automatic forward enabled"
-msgstr ""
+msgstr "תנועה קדימה ×וטומטית מופעל"
#: src/client/game.cpp
msgid "Camera update disabled"
-msgstr ""
+msgstr "עדכון מצלמה מבוטל"
#: src/client/game.cpp
msgid "Camera update enabled"
-msgstr ""
+msgstr "עדכון מצלמה מופעל"
#: src/client/game.cpp
msgid "Change Password"
-msgstr ""
+msgstr "שנה סיסמה"
#: src/client/game.cpp
msgid "Cinematic mode disabled"
-msgstr ""
+msgstr "מצב קולנועי מבוטל"
#: src/client/game.cpp
msgid "Cinematic mode enabled"
-msgstr ""
+msgstr "מצב קולנועי מופעל"
#: src/client/game.cpp
msgid "Client side scripting is disabled"
-msgstr ""
+msgstr "×¡×§×¨×™×¤×˜×™× ×‘×¦×“ לקוח מבוטלי×"
#: src/client/game.cpp
msgid "Connecting to server..."
-msgstr ""
+msgstr "מתחבר לשרת..."
#: src/client/game.cpp
msgid "Continue"
-msgstr ""
+msgstr "המשך"
#: src/client/game.cpp
#, c-format
@@ -1167,36 +1194,50 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
+"פקדי×:\n"
+"- %s: כדי לזוז קדימה\n"
+"- %s: כדי לזוז ×חורה\n"
+"- %s: כדי לזוז שמ×לה\n"
+"- %s: כדי לזוז ימינה\n"
+"- %s: כדי לקפוץ ×ו לטפס למעלה\n"
+"- %s: כדי לחפור ×ו לחבוט\n"
+"- %s: כדי להניח ×ו להשתמש\n"
+"- %s: כדי להתכופף ×ו לטפס למטה\n"
+"- %s: כדי לזרוק פריט\n"
+"- %s: כדי לפתוח ×ת תיק החפצי×\n"
+"- עכבר: כדי להסתובב ×ו להסתכל\n"
+"- גלגלת העכבר: כדי לבחור פריט\n"
+"- %s: כדי לפתוח ×ת הצ׳×ט\n"
#: src/client/game.cpp
msgid "Creating client..."
-msgstr ""
+msgstr "יוצר לקוח..."
#: src/client/game.cpp
msgid "Creating server..."
-msgstr ""
+msgstr "יוצר שרת..."
#: src/client/game.cpp
msgid "Debug info and profiler graph hidden"
-msgstr ""
+msgstr "מידע דיב××’ וגרף פרופיילר מוסתר"
#: src/client/game.cpp
msgid "Debug info shown"
-msgstr ""
+msgstr "מידע דיב××’ מוצג"
#: src/client/game.cpp
msgid "Debug info, profiler graph, and wireframe hidden"
-msgstr ""
+msgstr "מידע דיב××’, גרף פרופיילר, ומצב שלד מוסתר"
#: src/client/game.cpp
msgid ""
@@ -1213,165 +1254,146 @@ msgid ""
"- touch&drag, tap 2nd finger\n"
" --> place single item to slot\n"
msgstr ""
+"פקדי ברירת מחדל:\n"
+"×œ× × ×¨××” תפריט:\n"
+"- לחיצה בודדת: הפעלת כפתור\n"
+"- הקשה כפולה: ×ž×§×•× / שימוש\n"
+"- החלק ×צבע: הביט סביב\n"
+"תפריט / מל××™ גלוי:\n"
+"- לחיצה כפולה (בחוץ):\n"
+"--> סגור\n"
+"- מחסנית מגע, חריץ מגע:\n"
+"--> הזז מחסנית\n"
+"- ×’×¢ וגרור, הקש על ×”×צבע השנייה\n"
+"--> ×ž×§× ×¤×¨×™×˜ יחיד לחריץ\n"
#: src/client/game.cpp
msgid "Disabled unlimited viewing range"
-msgstr ""
+msgstr "ביטול טווח ר××™×” בלתי מוגבל"
#: src/client/game.cpp
msgid "Enabled unlimited viewing range"
-msgstr ""
+msgstr "הפעלת טווח ר××™×” בלתי מוגבל"
#: src/client/game.cpp
msgid "Exit to Menu"
-msgstr ""
+msgstr "יצי××” לתפריט"
#: src/client/game.cpp
msgid "Exit to OS"
-msgstr ""
+msgstr "יצי××” למערכת ההפעלה"
#: src/client/game.cpp
msgid "Fast mode disabled"
-msgstr ""
+msgstr "מצב מהיר מבוטל"
#: src/client/game.cpp
msgid "Fast mode enabled"
-msgstr ""
+msgstr "מצב מהיר מופעל"
#: src/client/game.cpp
msgid "Fast mode enabled (note: no 'fast' privilege)"
-msgstr ""
+msgstr "מצב מהיר מופעל (×©×™× ×œ×‘, ×ין הרש×ת 'fast')"
#: src/client/game.cpp
msgid "Fly mode disabled"
-msgstr ""
+msgstr "מצב תעופה מבוטל"
#: src/client/game.cpp
-#, fuzzy
msgid "Fly mode enabled"
-msgstr "מופעל"
+msgstr "מצב תעופה הופעל"
#: src/client/game.cpp
msgid "Fly mode enabled (note: no 'fly' privilege)"
-msgstr ""
+msgstr "מצב תעופה מופעל (×©×™× ×œ×‘, ×ין הרש×ת 'fly')"
#: src/client/game.cpp
msgid "Fog disabled"
-msgstr ""
+msgstr "ערפל מבוטל"
#: src/client/game.cpp
-#, fuzzy
msgid "Fog enabled"
-msgstr "מופעל"
+msgstr "ערפל מופעל"
#: src/client/game.cpp
msgid "Game info:"
-msgstr ""
+msgstr "מידע על המשחק:"
#: src/client/game.cpp
-#, fuzzy
msgid "Game paused"
-msgstr "משחקי×"
+msgstr "המשחק הושהה"
#: src/client/game.cpp
msgid "Hosting server"
-msgstr ""
+msgstr "שרת מ×רח"
#: src/client/game.cpp
msgid "Item definitions..."
-msgstr ""
+msgstr "הגדרות פריט..."
#: src/client/game.cpp
msgid "KiB/s"
-msgstr ""
+msgstr "קילובייט/שניה"
#: src/client/game.cpp
msgid "Media..."
-msgstr ""
+msgstr "מדיה..."
#: src/client/game.cpp
msgid "MiB/s"
-msgstr ""
+msgstr "מגהבייט/שניה"
#: src/client/game.cpp
msgid "Minimap currently disabled by game or mod"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
+msgstr "מיפמ×פ כרגע מבוטל ×¢\"×™ המשחק ×ו המוד"
#: src/client/game.cpp
msgid "Noclip mode disabled"
-msgstr ""
+msgstr "מעבר דרך קירות מבוטל"
#: src/client/game.cpp
msgid "Noclip mode enabled"
-msgstr ""
+msgstr "מעבר דרך קירות מופעל"
#: src/client/game.cpp
msgid "Noclip mode enabled (note: no 'noclip' privilege)"
-msgstr ""
+msgstr "מעבר דרך קירות מופעל (×©×™× ×œ×‘, ×ין הרש×ת 'noclip')"
#: src/client/game.cpp
msgid "Node definitions..."
-msgstr ""
+msgstr "הגדרות קוביה..."
#: src/client/game.cpp
msgid "Off"
-msgstr ""
+msgstr "מכובה"
#: src/client/game.cpp
msgid "On"
-msgstr ""
+msgstr "דולק"
#: src/client/game.cpp
msgid "Pitch move mode disabled"
-msgstr ""
+msgstr "תנועה לכיוון מבט מכובה"
#: src/client/game.cpp
msgid "Pitch move mode enabled"
-msgstr ""
+msgstr "תנועה לכיוון מבט מופעל"
#: src/client/game.cpp
msgid "Profiler graph shown"
-msgstr ""
+msgstr "גרף פרופיילר מוצג"
#: src/client/game.cpp
msgid "Remote server"
-msgstr ""
+msgstr "שרת מרוחק"
#: src/client/game.cpp
msgid "Resolving address..."
-msgstr ""
+msgstr "מפענח כתובת..."
#: src/client/game.cpp
msgid "Shutting down..."
-msgstr ""
+msgstr "מכבה..."
#: src/client/game.cpp
msgid "Singleplayer"
@@ -1379,262 +1401,261 @@ msgstr "שחקן יחיד"
#: src/client/game.cpp
msgid "Sound Volume"
-msgstr ""
+msgstr "×•×•×œ×™×•× ×©×ž×¢"
#: src/client/game.cpp
msgid "Sound muted"
-msgstr ""
+msgstr "שמע מושתק"
#: src/client/game.cpp
msgid "Sound system is disabled"
-msgstr ""
+msgstr "מערכת שמע ×œ× ×ž×•×¤×¢×œ×ª"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "מערכת שמע ×œ× × ×ª×ž×›×ª בבניה הנוכחית"
#: src/client/game.cpp
msgid "Sound unmuted"
-msgstr ""
+msgstr "מערכת שמע מופעלת"
#: src/client/game.cpp
#, c-format
msgid "Viewing range changed to %d"
-msgstr ""
+msgstr "טווח ר××™×” השתנה ל %d"
#: src/client/game.cpp
#, c-format
msgid "Viewing range is at maximum: %d"
-msgstr ""
+msgstr "טווח ר××™×” ×”×’×™×¢ למקסימו×: %d"
#: src/client/game.cpp
#, c-format
msgid "Viewing range is at minimum: %d"
-msgstr ""
+msgstr "טווח ר××™×” ×”×’×™×¢ למינימו×: %d"
#: src/client/game.cpp
#, c-format
msgid "Volume changed to %d%%"
-msgstr ""
+msgstr "עוצמת שמע שונתה ל %d%%"
#: src/client/game.cpp
msgid "Wireframe shown"
-msgstr ""
+msgstr "מסגרת שלדית מוצגת"
#: src/client/game.cpp
msgid "Zoom currently disabled by game or mod"
-msgstr ""
+msgstr "×–×•× ×’×¨×’×¢ מבוטל על-ידי המשחק ×ו המוד"
#: src/client/game.cpp
msgid "ok"
-msgstr ""
+msgstr "×וקיי"
#: src/client/gameui.cpp
msgid "Chat hidden"
-msgstr ""
+msgstr "צ'×ט מוסתר"
#: src/client/gameui.cpp
msgid "Chat shown"
-msgstr ""
+msgstr "צ'×ט מוצג"
#: src/client/gameui.cpp
msgid "HUD hidden"
-msgstr ""
+msgstr "מידע-על-מסך מוסתר"
#: src/client/gameui.cpp
msgid "HUD shown"
-msgstr ""
+msgstr "מידע-על-מסך מוצג"
#: src/client/gameui.cpp
msgid "Profiler hidden"
-msgstr ""
+msgstr "פרופיילר מוסתר"
#: src/client/gameui.cpp
#, c-format
msgid "Profiler shown (page %d of %d)"
-msgstr ""
+msgstr "פרופיילר מוצג (עמוד %d מתוך %d)"
#: src/client/keycode.cpp
msgid "Apps"
-msgstr ""
+msgstr "×פליקציות"
#: src/client/keycode.cpp
msgid "Backspace"
-msgstr ""
+msgstr "Backspace"
#: src/client/keycode.cpp
msgid "Caps Lock"
-msgstr ""
+msgstr "Caps Lock"
#: src/client/keycode.cpp
msgid "Clear"
-msgstr ""
+msgstr "× ×§×”"
#: src/client/keycode.cpp
msgid "Control"
-msgstr ""
+msgstr "קונטרול"
#: src/client/keycode.cpp
msgid "Down"
-msgstr ""
+msgstr "למטה"
#: src/client/keycode.cpp
msgid "End"
-msgstr ""
+msgstr "End"
#: src/client/keycode.cpp
msgid "Erase EOF"
-msgstr ""
+msgstr "מחק EOF"
#: src/client/keycode.cpp
msgid "Execute"
-msgstr ""
+msgstr "בצע"
#: src/client/keycode.cpp
msgid "Help"
-msgstr ""
+msgstr "עזרה"
#: src/client/keycode.cpp
msgid "Home"
-msgstr ""
+msgstr "Home"
#: src/client/keycode.cpp
-#, fuzzy
msgid "IME Accept"
-msgstr "קבל"
+msgstr "קבל IME"
#: src/client/keycode.cpp
msgid "IME Convert"
-msgstr ""
+msgstr "המרת IME"
#: src/client/keycode.cpp
msgid "IME Escape"
-msgstr ""
+msgstr "יצי×ת IME"
#: src/client/keycode.cpp
msgid "IME Mode Change"
-msgstr ""
+msgstr "שינוי מצב IME"
#: src/client/keycode.cpp
msgid "IME Nonconvert"
-msgstr ""
+msgstr "IME ×œ×œ× ×”×ž×¨×”"
#: src/client/keycode.cpp
msgid "Insert"
-msgstr ""
+msgstr "Insert"
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
msgid "Left"
-msgstr ""
+msgstr "שמ×לה"
#: src/client/keycode.cpp
msgid "Left Button"
-msgstr ""
+msgstr "הלחצן השמ×לי"
#: src/client/keycode.cpp
msgid "Left Control"
-msgstr ""
+msgstr "מקש Control השמ×לי"
#: src/client/keycode.cpp
msgid "Left Menu"
-msgstr ""
+msgstr "תפריט שמ×לי"
#: src/client/keycode.cpp
msgid "Left Shift"
-msgstr ""
+msgstr "מקש Shift השמ×לי"
#: src/client/keycode.cpp
msgid "Left Windows"
-msgstr ""
+msgstr "מקש Windows השמ×לי"
#. ~ Key name, common on Windows keyboards
#: src/client/keycode.cpp
msgid "Menu"
-msgstr ""
+msgstr "תפריט"
#: src/client/keycode.cpp
msgid "Middle Button"
-msgstr ""
+msgstr "כפתור ×מצעי"
#: src/client/keycode.cpp
msgid "Num Lock"
-msgstr ""
+msgstr "נעילה נומרית"
#: src/client/keycode.cpp
msgid "Numpad *"
-msgstr ""
+msgstr "מקלדת נומרית *"
#: src/client/keycode.cpp
msgid "Numpad +"
-msgstr ""
+msgstr "מקלדת נומרית +"
#: src/client/keycode.cpp
msgid "Numpad -"
-msgstr ""
+msgstr "מקלדת נומרית -"
#: src/client/keycode.cpp
msgid "Numpad ."
-msgstr ""
+msgstr "מקלדת נומרית ."
#: src/client/keycode.cpp
msgid "Numpad /"
-msgstr ""
+msgstr "מקלדת נומרית /"
#: src/client/keycode.cpp
msgid "Numpad 0"
-msgstr ""
+msgstr "מקלדת נומרית 0"
#: src/client/keycode.cpp
msgid "Numpad 1"
-msgstr ""
+msgstr "מקלדת נומרית 1"
#: src/client/keycode.cpp
msgid "Numpad 2"
-msgstr ""
+msgstr "מקלדת נומרית 2"
#: src/client/keycode.cpp
msgid "Numpad 3"
-msgstr ""
+msgstr "מקלדת נומרית 3"
#: src/client/keycode.cpp
msgid "Numpad 4"
-msgstr ""
+msgstr "מקלדת נומרית 4"
#: src/client/keycode.cpp
msgid "Numpad 5"
-msgstr ""
+msgstr "מקלדת נומרית 5"
#: src/client/keycode.cpp
msgid "Numpad 6"
-msgstr ""
+msgstr "מקלדת נומרית 6"
#: src/client/keycode.cpp
msgid "Numpad 7"
-msgstr ""
+msgstr "מקלדת נומרית 7"
#: src/client/keycode.cpp
msgid "Numpad 8"
-msgstr ""
+msgstr "מקלדת נומרית 8"
#: src/client/keycode.cpp
msgid "Numpad 9"
-msgstr ""
+msgstr "מקלדת נומרית 9"
#: src/client/keycode.cpp
msgid "OEM Clear"
-msgstr ""
+msgstr "ניקוי OME"
#: src/client/keycode.cpp
msgid "Page down"
-msgstr ""
+msgstr "Page down"
#: src/client/keycode.cpp
msgid "Page up"
-msgstr ""
+msgstr "Page up"
#: src/client/keycode.cpp
msgid "Pause"
-msgstr ""
+msgstr "Pause"
#: src/client/keycode.cpp
msgid "Play"
@@ -1643,88 +1664,106 @@ msgstr "שחק"
#. ~ "Print screen" key
#: src/client/keycode.cpp
msgid "Print"
-msgstr ""
+msgstr "PrintScreen"
#: src/client/keycode.cpp
msgid "Return"
-msgstr ""
+msgstr "Enter"
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
msgid "Right"
-msgstr ""
+msgstr "ימינה"
#: src/client/keycode.cpp
msgid "Right Button"
-msgstr ""
+msgstr "הלחצן הימני"
#: src/client/keycode.cpp
msgid "Right Control"
-msgstr ""
+msgstr "מקש Control הימני"
#: src/client/keycode.cpp
msgid "Right Menu"
-msgstr ""
+msgstr "תפריט ימני"
#: src/client/keycode.cpp
msgid "Right Shift"
-msgstr ""
+msgstr "מקש Shift הימני"
#: src/client/keycode.cpp
msgid "Right Windows"
-msgstr ""
+msgstr "מקש Windows הימני"
#: src/client/keycode.cpp
msgid "Scroll Lock"
-msgstr ""
+msgstr "Scroll Lock"
#. ~ Key name
#: src/client/keycode.cpp
msgid "Select"
-msgstr ""
+msgstr "Select"
#: src/client/keycode.cpp
msgid "Shift"
-msgstr ""
+msgstr "Shift"
#: src/client/keycode.cpp
msgid "Sleep"
-msgstr ""
+msgstr "שינה"
#: src/client/keycode.cpp
msgid "Snapshot"
-msgstr ""
+msgstr "×¦×™×œ×•× ×¨×’×¢×™"
#: src/client/keycode.cpp
msgid "Space"
-msgstr ""
+msgstr "רווח"
#: src/client/keycode.cpp
msgid "Tab"
-msgstr ""
+msgstr "Tab"
#: src/client/keycode.cpp
msgid "Up"
-msgstr ""
+msgstr "למעלה"
#: src/client/keycode.cpp
msgid "X Button 1"
-msgstr ""
+msgstr "X כפתור 1"
#: src/client/keycode.cpp
msgid "X Button 2"
-msgstr ""
+msgstr "X כפתור 2"
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
msgid "Zoom"
-msgstr ""
+msgstr "זו×"
+
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "מפה קטנה מוסתרת"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "מפה קטנה במצב ר×דר, ×–×•× x %d"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "מפה קטנה במצב שטח, ×–×•× x %d"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "מפה קטנה במצב טקסטורה"
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
-msgstr ""
+msgstr "סיסמ×ות ×œ× ×ª×•×מות!"
#: src/gui/guiConfirmRegistration.cpp
msgid "Register and Join"
-msgstr ""
+msgstr "×”×¨×©× ×•×”×¦×˜×¨×£"
#: src/gui/guiConfirmRegistration.cpp
#, c-format
@@ -1735,188 +1774,192 @@ msgid ""
"Please retype your password and click 'Register and Join' to confirm account "
"creation, or click 'Cancel' to abort."
msgstr ""
+"×תה עומד להצטרף לשרת ×–×” ×¢× ×”×©× \"%s\" ×‘×¤×¢× ×”×¨×שונה.\n"
+"×× ×ª×ž×©×™×š, ייווצר חשבון חדש ב×מצעות ×ישוריך בשרת ×–×”.\n"
+"×× × ×”×§×œ×“ מחדש ×ת הסיסמה שלך ולחץ על '×”×™×¨×©× ×•×”×¦×˜×¨×£' כדי ל×שר ×ת יצירת החשבון, "
+"×ו לחץ על 'ביטול' כדי לבטל."
#: src/gui/guiFormSpecMenu.cpp
msgid "Proceed"
-msgstr ""
+msgstr "להמשיך"
#: src/gui/guiKeyChangeMenu.cpp
msgid "\"Special\" = climb down"
-msgstr ""
+msgstr "\"מיוחד\" = טפס למטה"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Autoforward"
-msgstr ""
+msgstr "קדימה ×וטומטי"
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Automatic jumping"
-msgstr ""
+msgstr "קפיצה ×וטומטית"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Backward"
-msgstr ""
+msgstr "×חורה"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Change camera"
-msgstr ""
+msgstr "שנה מצלמה"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Chat"
-msgstr ""
+msgstr "צ'×ט"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Command"
-msgstr ""
+msgstr "פקודה"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Console"
-msgstr ""
+msgstr "קונסולה"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Dec. range"
-msgstr ""
+msgstr "הקטן טווח"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Dec. volume"
-msgstr ""
+msgstr "הנמך ווליו×"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Double tap \"jump\" to toggle fly"
-msgstr ""
+msgstr "לחיצה כפולה על \"קפיצה\" כדי לכבות ×ו להדליק ×ת מצב התעופה"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Drop"
-msgstr ""
+msgstr "הפל"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Forward"
-msgstr ""
+msgstr "קדימה"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Inc. range"
-msgstr ""
+msgstr "הגדל טווח"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Inc. volume"
-msgstr ""
+msgstr "הגבר ווליו×"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Inventory"
-msgstr ""
+msgstr "תיק חפצי×"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Jump"
-msgstr ""
+msgstr "קפיצה"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Key already in use"
-msgstr ""
+msgstr "מקש כבר בשימוש"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
-msgstr ""
+msgstr "קישור ×ž×§×©×™× (×× ×”×ª×¤×¨×™×˜ מתקלקל, הסר ×“×‘×¨×™× ×žminetest.conf)"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Local command"
-msgstr ""
+msgstr "פקודה מקומית"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Mute"
-msgstr ""
+msgstr "השתק"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Next item"
-msgstr ""
+msgstr "הפריט הב×"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Prev. item"
-msgstr ""
+msgstr "הפריט הקוד×"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Range select"
-msgstr ""
+msgstr "בחר טווח"
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
-msgstr ""
+msgstr "×¦×™×œ×•× ×ž×¡×š"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Sneak"
-msgstr ""
+msgstr "התכופף"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Special"
-msgstr ""
+msgstr "מיוחד"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle HUD"
-msgstr ""
+msgstr "מתג מידע על מסך"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle chat log"
-msgstr ""
+msgstr "מתג צ×'ט לוג"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fast"
-msgstr ""
+msgstr "מתג מצב מהיר"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fly"
-msgstr ""
+msgstr "מתג תעופה"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fog"
-msgstr ""
+msgstr "מתג ערפל"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle minimap"
-msgstr ""
+msgstr "מתג מפה קטנה"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
-msgstr ""
+msgstr "מתג מעבר דרך קירות"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle pitchmove"
-msgstr ""
+msgstr "מתג תנועה לכיוון מבט"
#: src/gui/guiKeyChangeMenu.cpp
msgid "press key"
-msgstr ""
+msgstr "לחץ מקש"
#: src/gui/guiPasswordChange.cpp
msgid "Change"
-msgstr ""
+msgstr "שנה"
#: src/gui/guiPasswordChange.cpp
msgid "Confirm Password"
-msgstr ""
+msgstr "×שר סיסמה"
#: src/gui/guiPasswordChange.cpp
msgid "New Password"
-msgstr ""
+msgstr "סיסמה חדשה"
#: src/gui/guiPasswordChange.cpp
msgid "Old Password"
-msgstr ""
+msgstr "סיסמה ישנה"
#: src/gui/guiVolumeChange.cpp
msgid "Exit"
-msgstr ""
+msgstr "יצי××”"
#: src/gui/guiVolumeChange.cpp
msgid "Muted"
-msgstr ""
+msgstr "מושתק"
#: src/gui/guiVolumeChange.cpp
msgid "Sound Volume: "
-msgstr ""
+msgstr "עוצמת שמע: "
#. ~ Imperative, as in "Enter/type in text".
#. Don't forget the space.
#: src/gui/modalMenu.cpp
msgid "Enter "
-msgstr ""
+msgstr "הכנס "
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string which needs to contain the translation's
@@ -1930,6 +1973,8 @@ msgid ""
"(Android) Fixes the position of virtual joystick.\n"
"If disabled, virtual joystick will center to first-touch's position."
msgstr ""
+"(Android) מתקן ×ת ×”×ž×™×§×•× ×©×œ ×”×’'ויסטיק הווירטו×לי.\n"
+"×× ×ž×•×©×‘×ª, ×”×’'ויסטיק הווירטו×לי יעמוד ×‘×ž×™×§×•× ×”×ž×’×¢ הר×שון."
#: src/settings_translation_file.cpp
msgid ""
@@ -1937,6 +1982,9 @@ msgid ""
"If enabled, virtual joystick will also tap \"aux\" button when out of main "
"circle."
msgstr ""
+"(Android) השתמש בג'ויסטיק וירטו×לי כדי להפעיל ×ת כפתור \"aux\".\n"
+"×× ×”×•× ×ž×•×¤×¢×œ, ×”×’'ויסטיק הווירטו×לי ילחץ ×’× ×¢×œ כפתור \"aux\" ×›×©×”×•× ×ž×—×•×¥ למעגל "
+"הר×שי."
#: src/settings_translation_file.cpp
msgid ""
@@ -1949,6 +1997,14 @@ msgid ""
"situations.\n"
"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
msgstr ""
+"(X, Y, Z) היסט של פרקטל ממרכז עולמי ביחידות 'סק×לה'.\n"
+"ניתן להשתמש בה כדי להעביר נקודה רצויה ל (0, 0) כדי ליצור\n"
+"נקודת הופעה מת×ימה, ×ו כדי ל×פשר 'התקרבות' לנקודה רצויה\n"
+"על ידי הגדלת 'סק×לה'.\n"
+"ברירת המחדל מכוונת לנקודת הופעה מת×ימה למנדלברוט\n"
+"קבוצות ×¢× ×¤×¨×ž×˜×¨×™ ברירת מחדל, יתכן שיהיה צורך לשנות ×–×ת\n"
+"מצבי×.\n"
+"טווח בערך -2 עד 2. הכפל ב×מצעות '×§× ×” מידה' עבור קיזוז בצמתי×."
#: src/settings_translation_file.cpp
msgid ""
@@ -1960,62 +2016,65 @@ msgid ""
"Default is for a vertically-squashed shape suitable for\n"
"an island, set all 3 numbers equal for the raw shape."
msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
+"(X, Y, Z) סק×לה של פרקטל בצמתי×.\n"
+"גודל הפרקטל בפועל יהיה גדול פי 2 עד 3.\n"
+"ניתן להפוך ×ת ×”×ž×¡×¤×¨×™× ×”×œ×œ×• ×œ×’×“×•×œ×™× ×ž×וד, כך הפרקטל\n"
+"×œ× ×¦×¨×™×š להשתלב בעול×.\n"
+"הגדל ×ת ×לה ל\"התקרב \"לפרטי הפרקטל.\n"
+"ברירת המחדל ×”×™× ×œ×¦×•×¨×” מעוכה ×נכית המת×ימה ל\n"
+"××™, קבע ×ת כל 3 ×”×ž×¡×¤×¨×™× ×©×•×•×™× ×œ×¦×•×¨×” הגולמית."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
-msgstr ""
+msgstr "רעש דו-ממדי השולט על ×¦×•×¨×ª× / גודל ×”×”×¨×™× ×”×ž×—×•×¨×¦×™×."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of rolling hills."
-msgstr ""
+msgstr "רעש דו-ממדי השולט על ×¦×•×¨×ª× / גודל הגבעות המתונות."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of step mountains."
-msgstr ""
+msgstr "רעש דו-ממדי השולט על ×¦×•×¨×ª× / גודל ×”×”×¨×™× ×”× ×™×©××™×."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
-msgstr ""
+msgstr "רעש דו-ממדי השולט על תדירות/ גודל רכסי ההרי×."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the size/occurrence of rolling hills."
-msgstr ""
+msgstr "רעש דו-ממדי השולט על תדירות/גודל הגבעות המתונות."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the size/occurrence of step mountain ranges."
-msgstr ""
+msgstr "רעש דו-ממדי השולט על תדירות/גודל רכסי ההרי×."
#: src/settings_translation_file.cpp
msgid "2D noise that locates the river valleys and channels."
-msgstr ""
+msgstr "רעש דו-ממדי שמ×תר ×ת עמקי הנהרות ותעלותיה×."
#: src/settings_translation_file.cpp
msgid "3D clouds"
-msgstr ""
+msgstr "×¢× × ×™× ×ª×œ×ª מימדיי×"
#: src/settings_translation_file.cpp
msgid "3D mode"
-msgstr ""
+msgstr "מצב תלת מימדי"
#: src/settings_translation_file.cpp
msgid "3D mode parallax strength"
-msgstr ""
+msgstr "חוזק פרלקסה במצב תלת ממדי"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
-msgstr ""
+msgstr "רעשי תלת מימד ×”×ž×’×“×™×¨×™× ×ž×¢×¨×•×ª ×¢× ×§."
#: src/settings_translation_file.cpp
msgid ""
"3D noise defining mountain structure and height.\n"
"Also defines structure of floatland mountain terrain."
msgstr ""
+"רעש תלת ממדי המגדיר ×ת מבנה ×”×”×¨×™× ×•×’×•×‘×”×.\n"
+"מגדיר ×’× ×ž×‘× ×” שטח ×”×¨×™× ×¦×¤×™×."
#: src/settings_translation_file.cpp
msgid ""
@@ -2024,22 +2083,27 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
+"רעש תלת ממדי מגדיר מבנה של שטחי צף.\n"
+"×× ×ž×©×ª× ×” מברירת המחדל, ייתכן ש\"סק×לת\" הרעש (0.7 כברירת מחדל) זקוקה\n"
+"להיות מות×מת, מכיוון שההתפשטות של שטחי צף מתפקדת בצורה הטובה ביותר ×›×שר יש "
+"לרעש זה\n"
+"טווח ×¢×¨×›×™× ×©×œ ×› -2.0 עד 2.0."
#: src/settings_translation_file.cpp
msgid "3D noise defining structure of river canyon walls."
-msgstr ""
+msgstr "מבנה מגדיר רעש תלת ממדי של קירות קניון הנהר."
#: src/settings_translation_file.cpp
msgid "3D noise defining terrain."
-msgstr ""
+msgstr "רעש תלת ממדי המגדיר שטח."
#: src/settings_translation_file.cpp
msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
-msgstr ""
+msgstr "רעש תלת ממדי ×œ×”×¨×™× ×ª×œ×•×™×™×, ×¦×•×§×™× ×•×›×•'בדרך כלל ורי×ציות קטנות."
#: src/settings_translation_file.cpp
msgid "3D noise that determines number of dungeons per mapchunk."
-msgstr ""
+msgstr "רעש תלת ממדי הקובע ×ת מספר ×”×¦×™× ×•×§×™× ×‘× ×ª×— מפה."
#: src/settings_translation_file.cpp
msgid ""
@@ -2054,52 +2118,68 @@ msgid ""
"- pageflip: quadbuffer based 3d.\n"
"Note that the interlaced mode requires shaders to be enabled."
msgstr ""
+"תמיכה בתלת מימד.\n"
+"נתמך כרגע:\n"
+"- לל×: ×ין פלט תלת-ממדי.\n"
+"- ×× ×גליף: צבע צי×ן / מגנטה 3d.\n"
+"- interlaced: תמיכה במסך קיטוב מבוסס מוזר / שווה\n"
+"- topbottom: מסך מפוצל למעלה / למטה.\n"
+"- צדדי: פיצול מסך זה לצד זה.\n"
+"- תצוגת רוחב: 3D ×¢× ×¢×™× ×™×™× ×¦×•×œ×‘×•×ª\n"
+"- pageflip: quadbuffer מבוסס 3d.\n"
+"×©×™× ×œ×‘ שמצב interlaced מחייב הפעלת shaders."
#: src/settings_translation_file.cpp
msgid ""
"A chosen map seed for a new map, leave empty for random.\n"
"Will be overridden when creating a new world in the main menu."
msgstr ""
+"זרע מפה שנבחר עבור מפה חדשה, הש×ר ריק ל×קר××™.\n"
+"יבוטל בעת יצירת ×¢×•×œ× ×—×“×© בתפריט הר×שי."
#: src/settings_translation_file.cpp
msgid "A message to be displayed to all clients when the server crashes."
-msgstr ""
+msgstr "הודעה שתוצג בפני כל הלקוחות ×›×שר השרת קורס."
#: src/settings_translation_file.cpp
msgid "A message to be displayed to all clients when the server shuts down."
-msgstr ""
+msgstr "הודעה שתוצג בפני כל הלקוחות ×›×שר השרת יכבה."
#: src/settings_translation_file.cpp
msgid "ABM interval"
-msgstr ""
+msgstr "×ינטרוול ABM"
+
+#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr "הקצ×ת זמן ABM"
#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
-msgstr ""
+msgstr "מגבלה מוחלטת של ×‘×œ×•×§×™× ×‘×ª×•×¨ שיופיעו"
#: src/settings_translation_file.cpp
msgid "Acceleration in air"
-msgstr ""
+msgstr "ת×וצה ב×ויר"
#: src/settings_translation_file.cpp
msgid "Acceleration of gravity, in nodes per second per second."
-msgstr ""
+msgstr "×”×צת כוח הכבידה, בקוביות לשנייה בריבוע."
#: src/settings_translation_file.cpp
msgid "Active Block Modifiers"
-msgstr ""
+msgstr "משניי בלוק פעיל"
#: src/settings_translation_file.cpp
msgid "Active block management interval"
-msgstr ""
+msgstr "×ינטרוול ניהול בלוק פעיל"
#: src/settings_translation_file.cpp
msgid "Active block range"
-msgstr ""
+msgstr "טווח בלוק פעיל"
#: src/settings_translation_file.cpp
msgid "Active object send range"
-msgstr ""
+msgstr "טווח שליחת ×ובייקט פעיל"
#: src/settings_translation_file.cpp
msgid ""
@@ -2107,16 +2187,19 @@ msgid ""
"Leave this blank to start a local server.\n"
"Note that the address field in the main menu overrides this setting."
msgstr ""
+"כתובת להתחברות ×ליה.\n"
+"הש×ר ×ת ×–×” ריק כדי להפעיל שרת מקומי.\n"
+"×©×™× ×œ×‘ ששדה הכתובת בתפריט הר×שי עוקף הגדרה זו."
#: src/settings_translation_file.cpp
msgid "Adds particles when digging a node."
-msgstr ""
+msgstr "הוסף ×—×œ×§×™×§×™× ×›×©×—×•×¤×¨×™× ×‘×§×•×‘×™×”."
#: src/settings_translation_file.cpp
msgid ""
"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
"screens."
-msgstr ""
+msgstr "הת×× ×ת תצורת dpi למסך שלך (×œ× X11 / Android בלבד) למשל. למסכי 4k."
#: src/settings_translation_file.cpp
#, c-format
@@ -2127,10 +2210,15 @@ msgid ""
"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
"to be sure) creates a solid floatland layer."
msgstr ""
+"מכוון ×ת הצפיפות של שכבת ×דמות צותף.\n"
+"הגדל ×ת הערך כדי להגדיל ×ת הצפיפות. יכול להיות חיובי ×ו שלילי.\n"
+"ערך = 0.0: 50% מהנפח ×”×•× ×©×˜×— צף.\n"
+"ערך = 2.0 (יכול להיות גבוה יותר בהת×× ×œ- 'mgv7_np_floatland', בדוק תמיד\n"
+"כדי להיות בטוח) יוצר שכבת צף מוצקה."
#: src/settings_translation_file.cpp
msgid "Advanced"
-msgstr ""
+msgstr "מתקד×"
#: src/settings_translation_file.cpp
msgid ""
@@ -2140,60 +2228,67 @@ msgid ""
"This only has significant effect on daylight and artificial\n"
"light, it has very little effect on natural night light."
msgstr ""
+"משנה ×ת עקומת ×”×ור על ידי החלת 'תיקון גמ×' עליה.\n"
+"×¢×¨×›×™× ×’×‘×•×”×™× ×”×•×¤×›×™× ×ת רמות ×”×ור ×”×מצעיות והתחתונות לבהירות יותר.\n"
+"הערך '1.0' מש×יר ×ת עקומת ×”×ור ×œ×œ× ×©×™× ×•×™.\n"
+"יש לכך השפעה משמעותית רק על ×ור ×™×•× ×•×ž×œ×כותי\n"
+"×–×” משפיע מעט מ×וד על ×ור הלילה הטבעי."
#: src/settings_translation_file.cpp
msgid "Always fly and fast"
-msgstr ""
+msgstr "תמיד לעוף ומהר"
#: src/settings_translation_file.cpp
msgid "Ambient occlusion gamma"
-msgstr ""
+msgstr "×’×ž× ×—×¡×™×ž×” סביבתית"
#: src/settings_translation_file.cpp
msgid "Amount of messages a player may send per 10 seconds."
-msgstr ""
+msgstr "כמות ההודעות ששחקן עשוי לשלוח לכל 10 שניות."
#: src/settings_translation_file.cpp
msgid "Amplifies the valleys."
-msgstr ""
+msgstr "מגביר ×ת העמקי×."
#: src/settings_translation_file.cpp
msgid "Anisotropic filtering"
-msgstr ""
+msgstr "פילטר ×נטיסטרופי"
#: src/settings_translation_file.cpp
msgid "Announce server"
-msgstr ""
+msgstr "הכרזת שרת"
#: src/settings_translation_file.cpp
msgid "Announce to this serverlist."
-msgstr ""
+msgstr "הכרז לרשימת השרתי×."
#: src/settings_translation_file.cpp
msgid "Append item name"
-msgstr ""
+msgstr "הוסף ×©× ×¤×¨×™×˜"
#: src/settings_translation_file.cpp
msgid "Append item name to tooltip."
-msgstr ""
+msgstr "הוסף ×ת ×©× ×”×¤×¨×™×˜ לטיפ הכלי×."
#: src/settings_translation_file.cpp
msgid "Apple trees noise"
-msgstr ""
+msgstr "רעש עצי תפוחי×"
#: src/settings_translation_file.cpp
msgid "Arm inertia"
-msgstr ""
+msgstr "×ינרציה בזרוע"
#: src/settings_translation_file.cpp
msgid ""
"Arm inertia, gives a more realistic movement of\n"
"the arm when the camera moves."
msgstr ""
+"×ינרציה בזרוע, נותנת תנועה מצי×ותית יותר של\n"
+"הזרוע כשהמצלמה נעה."
#: src/settings_translation_file.cpp
msgid "Ask to reconnect after crash"
-msgstr ""
+msgstr "ש×ל ×”×× ×œ×”×ª×—×‘×¨ מחדש ל×חר קריסה"
#: src/settings_translation_file.cpp
msgid ""
@@ -2209,106 +2304,110 @@ msgid ""
"optimization.\n"
"Stated in mapblocks (16 nodes)."
msgstr ""
+"במרחק ×–×” השרת יעשה ×ופטימיזציה ל×ילו ×‘×œ×•×§×™× × ×©×œ×—×™×\n"
+"ללקוחות.\n"
+"×¢×¨×›×™× ×§×˜× ×™× ×¢×©×•×™×™× ×œ×©×¤×¨ ×‘×™×¦×•×¢×™× ×¨×‘×•×ª, על חשבון גלוי\n"
+"עיבוד תקלות (חלק ×ž×”×‘×œ×•×§×™× ×œ× ×™×•×¢×‘×¨×• מתחת ×œ×ž×™× ×•×‘×ž×¢×¨×•×ª,\n"
+"כמו ×’× ×œ×¤×¢×ž×™× ×‘×™×‘×©×”).\n"
+"הגדרת ערך ×–×” יותר מ- max_block_send_distance מבטלת ×–×ת\n"
+"×ופטימיזציה.\n"
+"מצוין במפה (16 קוביות)."
#: src/settings_translation_file.cpp
msgid "Automatic forward key"
-msgstr ""
+msgstr "מקש התקדמות ×וטומטית"
#: src/settings_translation_file.cpp
msgid "Automatically jump up single-node obstacles."
-msgstr ""
+msgstr "קפיצה ×וטומטית של ×ž×›×©×•×œ×™× ×‘×§×•×‘×™×” יחידה."
#: src/settings_translation_file.cpp
msgid "Automatically report to the serverlist."
-msgstr ""
+msgstr "דווח ×וטומטית לרשימת השרתי×."
#: src/settings_translation_file.cpp
msgid "Autosave screen size"
-msgstr ""
+msgstr "שמור ×וטומטית גודל מסך"
#: src/settings_translation_file.cpp
msgid "Autoscaling mode"
-msgstr ""
+msgstr "מצב סק×לה ×וטומטית (Autoscale)"
#: src/settings_translation_file.cpp
msgid "Backward key"
-msgstr ""
+msgstr "מקש התזוזה ×חורה"
#: src/settings_translation_file.cpp
msgid "Base ground level"
-msgstr ""
+msgstr "מפלס בסיס ×”×דמה"
#: src/settings_translation_file.cpp
msgid "Base terrain height."
-msgstr ""
+msgstr "גובה השטח."
#: src/settings_translation_file.cpp
msgid "Basic"
-msgstr ""
+msgstr "בסיסי"
#: src/settings_translation_file.cpp
msgid "Basic privileges"
-msgstr ""
+msgstr "הרש×ות בסיסיות"
#: src/settings_translation_file.cpp
msgid "Beach noise"
-msgstr ""
+msgstr "רעש חופי×"
#: src/settings_translation_file.cpp
msgid "Beach noise threshold"
-msgstr ""
+msgstr "סף רעש חופי×"
#: src/settings_translation_file.cpp
msgid "Bilinear filtering"
-msgstr ""
+msgstr "סינון בילינ×רי"
#: src/settings_translation_file.cpp
msgid "Bind address"
-msgstr ""
+msgstr "הצמד כתובת"
#: src/settings_translation_file.cpp
msgid "Biome API temperature and humidity noise parameters"
-msgstr ""
+msgstr "פרמטרי רעש טמפרטורה ולחות של Biome API"
#: src/settings_translation_file.cpp
msgid "Biome noise"
-msgstr ""
+msgstr "רעש Biome"
#: src/settings_translation_file.cpp
msgid "Bits per pixel (aka color depth) in fullscreen mode."
-msgstr ""
+msgstr "×‘×™×˜×™× ×œ×¤×™×§×¡×œ (עומק צבע) במצב מסך מל×."
#: src/settings_translation_file.cpp
msgid "Block send optimize distance"
-msgstr ""
+msgstr "×ופטימיזצית שליחת בלוק"
#: src/settings_translation_file.cpp
msgid "Bold and italic font path"
-msgstr ""
+msgstr "נתיב גופן עבה/מוטה"
#: src/settings_translation_file.cpp
msgid "Bold and italic monospace font path"
-msgstr ""
+msgstr "נתיב גופן ×¢× ×ž×¨×•×•×— ×חיד עבה/מוטה"
#: src/settings_translation_file.cpp
msgid "Bold font path"
-msgstr ""
+msgstr "נתיב גופן עבה"
#: src/settings_translation_file.cpp
msgid "Bold monospace font path"
-msgstr ""
+msgstr "נתיב גופן מרווח ×חיד"
#: src/settings_translation_file.cpp
msgid "Build inside player"
-msgstr ""
+msgstr "בנה בתוך שחקן"
#: src/settings_translation_file.cpp
msgid "Builtin"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
+msgstr "בילד×ין"
#: src/settings_translation_file.cpp
msgid ""
@@ -2317,138 +2416,134 @@ msgid ""
"Increasing can reduce artifacting on weaker GPUs.\n"
"0.1 = Default, 0.25 = Good value for weaker tablets."
msgstr ""
+"מרחק מצלמה 'קרוב לקיר' בקוביות, בין 0 ל -0.25\n"
+"עובד רק בפלטפורמות GLES. רוב ×”×ž×©×ª×ž×©×™× ×œ× ×™×¦×˜×¨×›×• לשנות ×–×ת.\n"
+"הגדלה יכולה להפחית ×—×¤×¦×™× ×¢×œ גרפי GPU ×—×œ×©×™× ×™×•×ª×¨.\n"
+"0.1 = ברירת מחדל, 0.25 = ערך טוב לט××‘×œ×˜×™× ×—×œ×©×™× ×™×•×ª×¨."
#: src/settings_translation_file.cpp
msgid "Camera smoothing"
-msgstr ""
+msgstr "החלקת מצלמה"
#: src/settings_translation_file.cpp
msgid "Camera smoothing in cinematic mode"
-msgstr ""
+msgstr "החלקת מצלמה ומצב קולנועי"
#: src/settings_translation_file.cpp
msgid "Camera update toggle key"
-msgstr ""
+msgstr "מקש החלפת עדכון המצלמה"
#: src/settings_translation_file.cpp
msgid "Cave noise"
-msgstr ""
+msgstr "רעש מערות"
#: src/settings_translation_file.cpp
msgid "Cave noise #1"
-msgstr ""
+msgstr "רעש מערות #1"
#: src/settings_translation_file.cpp
msgid "Cave noise #2"
-msgstr ""
+msgstr "רעש מערות #2"
#: src/settings_translation_file.cpp
msgid "Cave width"
-msgstr ""
+msgstr "רוחב מערות"
#: src/settings_translation_file.cpp
msgid "Cave1 noise"
-msgstr ""
+msgstr "רעש מערה1"
#: src/settings_translation_file.cpp
msgid "Cave2 noise"
-msgstr ""
+msgstr "רעש מערה2"
#: src/settings_translation_file.cpp
msgid "Cavern limit"
-msgstr ""
+msgstr "גבול מנהרות"
#: src/settings_translation_file.cpp
msgid "Cavern noise"
-msgstr ""
+msgstr "רעש מנהרות"
#: src/settings_translation_file.cpp
msgid "Cavern taper"
-msgstr ""
+msgstr "מחדד מערות"
#: src/settings_translation_file.cpp
msgid "Cavern threshold"
-msgstr ""
+msgstr "סף מערות"
#: src/settings_translation_file.cpp
msgid "Cavern upper limit"
-msgstr ""
+msgstr "גבול עליון מערות"
#: src/settings_translation_file.cpp
msgid ""
"Center of light curve boost range.\n"
"Where 0.0 is minimum light level, 1.0 is maximum light level."
msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
+"טווח דחיפה של מרכז עקומת ×ור.\n"
+"×›×שר 0.0 ×”×•× ×¨×ž×ª ×ור מינימלית, 1.0 ×”×•× ×¨×ž×ª ×ור מקסימלית."
#: src/settings_translation_file.cpp
msgid "Chat font size"
-msgstr ""
+msgstr "גודל גופן צ'×ט"
#: src/settings_translation_file.cpp
msgid "Chat key"
-msgstr ""
+msgstr "מקש צ'×ט"
#: src/settings_translation_file.cpp
msgid "Chat log level"
-msgstr ""
+msgstr "רמת לוג צ'×ט"
#: src/settings_translation_file.cpp
msgid "Chat message count limit"
-msgstr ""
+msgstr "הגבלת מספר הודעות צ'×ט"
#: src/settings_translation_file.cpp
msgid "Chat message format"
-msgstr ""
+msgstr "פורמט הודעות צ'×ט"
#: src/settings_translation_file.cpp
msgid "Chat message kick threshold"
-msgstr ""
+msgstr "סף בעיטה להודעות צ'×ט"
#: src/settings_translation_file.cpp
msgid "Chat message max length"
-msgstr ""
+msgstr "×ורך הודעת צ'×ט מקסימלי"
#: src/settings_translation_file.cpp
msgid "Chat toggle key"
-msgstr ""
+msgstr "מתג הפעלת צ'×ט"
#: src/settings_translation_file.cpp
msgid "Chatcommands"
-msgstr ""
+msgstr "פקודות צ'×ט"
#: src/settings_translation_file.cpp
msgid "Chunk size"
-msgstr ""
+msgstr "גודל חתיכה"
#: src/settings_translation_file.cpp
msgid "Cinematic mode"
-msgstr ""
+msgstr "מצב קולנועי"
#: src/settings_translation_file.cpp
msgid "Cinematic mode key"
-msgstr ""
+msgstr "מקש מצב קולנועי"
#: src/settings_translation_file.cpp
msgid "Clean transparent textures"
-msgstr ""
+msgstr "טקסטורות נקיות ושקופות"
#: src/settings_translation_file.cpp
msgid "Client"
-msgstr "קלינט"
+msgstr "לקוח"
#: src/settings_translation_file.cpp
msgid "Client and Server"
-msgstr ""
+msgstr "שרת ולקוח"
#: src/settings_translation_file.cpp
#, fuzzy
@@ -2544,6 +2639,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2592,16 +2691,17 @@ msgid "Crash message"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Creative"
-msgstr "ליצור"
+msgstr "יצירתי"
#: src/settings_translation_file.cpp
msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2609,7 +2709,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2618,7 +2720,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Damage"
-msgstr ""
+msgstr "חבלה"
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
@@ -2709,12 +2811,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2786,6 +2882,11 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
+msgid "Dig key"
+msgstr "מקש התזוזה ימינה"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Digging particles"
msgstr "חלקיקי×"
@@ -2803,7 +2904,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Double tap jump for fly"
-msgstr ""
+msgstr "הקשה כפולה על \"קפיצה\" לתעופה"
#: src/settings_translation_file.cpp
msgid "Double-tapping the jump key toggles fly mode."
@@ -2846,7 +2947,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2863,7 +2964,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Enable players getting damage and dying."
-msgstr ""
+msgstr "ל×פשר חבלה ומוות של השחקני×."
#: src/settings_translation_file.cpp
msgid "Enable random user input (only used for testing)."
@@ -2934,14 +3035,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2951,18 +3044,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2979,12 +3060,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -2994,7 +3069,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3233,7 +3308,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Forward key"
-msgstr ""
+msgstr "מקש התזוזה קדימה"
#: src/settings_translation_file.cpp
msgid "Fourth of 4 2D noises that together define hill/mountain range height."
@@ -3296,10 +3371,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3354,8 +3425,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3822,6 +3893,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3880,11 +3955,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Jump key"
-msgstr ""
+msgstr "מקש הקפיצה"
#: src/settings_translation_file.cpp
msgid "Jumping speed"
-msgstr ""
+msgstr "מהירות הקפיצה"
#: src/settings_translation_file.cpp
msgid ""
@@ -3902,6 +3977,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4001,6 +4083,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4422,7 +4511,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Left key"
-msgstr ""
+msgstr "מקש התזוזה שמ×לה"
#: src/settings_translation_file.cpp
msgid ""
@@ -4557,11 +4646,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "תפריט ר×שי"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4575,6 +4659,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4744,7 +4836,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4793,6 +4885,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -4903,7 +5002,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Mipmapping"
-msgstr ""
+msgstr "מיפמ×פינג"
#: src/settings_translation_file.cpp
msgid "Mod channels"
@@ -5022,14 +5121,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5055,10 +5146,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5084,34 +5171,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5177,6 +5236,14 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5329,11 +5396,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Right key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
+msgstr "מקש התזוזה ימינה"
#: src/settings_translation_file.cpp
msgid "River channel depth"
@@ -5488,7 +5551,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Server / Singleplayer"
-msgstr "שרת"
+msgstr "שרת / שחקן יחיד"
#: src/settings_translation_file.cpp
msgid "Server URL"
@@ -5587,6 +5650,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5716,10 +5789,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5813,6 +5882,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5871,8 +5944,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5898,15 +5971,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6042,6 +6120,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6119,37 +6208,39 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "View distance in nodes."
-msgstr ""
+msgstr "טווח ר××™×” בקוביות."
#: src/settings_translation_file.cpp
msgid "View range decrease key"
-msgstr ""
+msgstr "מקש הקטנת טווח ר××™×”"
#: src/settings_translation_file.cpp
msgid "View range increase key"
-msgstr ""
+msgstr "מקש הגדלת טוחח ר××™×”"
#: src/settings_translation_file.cpp
msgid "View zoom key"
-msgstr ""
+msgstr "מקש ×–×•× (משקפת)"
#: src/settings_translation_file.cpp
msgid "Viewing range"
-msgstr ""
+msgstr "טווח ר××™×”"
#: src/settings_translation_file.cpp
msgid "Virtual joystick triggers aux button"
-msgstr ""
+msgstr "מקש הפעלת ×’'ויסטיק וירטו×לי"
#: src/settings_translation_file.cpp
msgid "Volume"
-msgstr ""
+msgstr "ווליו×"
#: src/settings_translation_file.cpp
msgid ""
"Volume of all sounds.\n"
"Requires the sound system to be enabled."
msgstr ""
+"עוצמת הקול של כל הצלילי×.\n"
+"דורש הפעלת מערכת הקול."
#: src/settings_translation_file.cpp
msgid ""
@@ -6166,19 +6257,19 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Walking speed"
-msgstr ""
+msgstr "מהירות הליכה"
#: src/settings_translation_file.cpp
msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
-msgstr ""
+msgstr "מהירות הליכה, טיסה וטיפוס במצב מהיר, בקוביות לשנייה."
#: src/settings_translation_file.cpp
msgid "Water level"
-msgstr ""
+msgstr "מפלס המי×"
#: src/settings_translation_file.cpp
msgid "Water surface level of the world."
-msgstr ""
+msgstr "מפלס פני ×”×ž×™× ×‘×¢×•×œ×."
#: src/settings_translation_file.cpp
msgid "Waving Nodes"
@@ -6198,15 +6289,15 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Waving liquids wave speed"
-msgstr ""
+msgstr "מהירות גל של × ×•×–×œ×™× ×¢× ×’×œ×™×"
#: src/settings_translation_file.cpp
msgid "Waving liquids wavelength"
-msgstr ""
+msgstr "×ורך גל של × ×•×–×œ×™× ×¢× ×’×œ×™×"
#: src/settings_translation_file.cpp
msgid "Waving plants"
-msgstr ""
+msgstr "×¦×ž×—×™× ×ž×ª× ×•×¤×¤×™×"
#: src/settings_translation_file.cpp
msgid ""
@@ -6244,6 +6335,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6255,7 +6352,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Whether to allow players to damage and kill each other."
-msgstr ""
+msgstr "×”×× ×œ×פשר ×œ×©×—×§× ×™× ×œ×”×¨×•×’ ×חד־×ת־השני."
#: src/settings_translation_file.cpp
msgid ""
@@ -6282,7 +6379,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Width component of the initial window size."
-msgstr ""
+msgstr "רכיב רוחב של גודל החלון הר×שוני."
#: src/settings_translation_file.cpp
msgid "Width of the selection box lines around nodes."
@@ -6318,25 +6415,25 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "World-aligned textures mode"
-msgstr ""
+msgstr "מצב טקסטורות מיושרות לעול×"
#: src/settings_translation_file.cpp
msgid "Y of flat ground."
-msgstr ""
+msgstr "Y לקרקע שטוחה."
#: src/settings_translation_file.cpp
msgid ""
"Y of mountain density gradient zero level. Used to shift mountains "
"vertically."
-msgstr ""
+msgstr "Y של צפיפות ×”×¨×™× ×©×™×¤×•×¢ רמת ×פס. משמש להעברת ×”×¨×™× ×נכית."
#: src/settings_translation_file.cpp
msgid "Y of upper limit of large caves."
-msgstr ""
+msgstr "Y של הגבול העליון של מערות גדולות."
#: src/settings_translation_file.cpp
msgid "Y-distance over which caverns expand to full size."
-msgstr ""
+msgstr "מרחק Y שעליו מתרחבות מערות לגודל מל×."
#: src/settings_translation_file.cpp
msgid ""
@@ -6367,20 +6464,57 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "cURL file download timeout"
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "cURL parallel limit"
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "cURL file download timeout"
+msgstr "(cURL) זמן להורדה נגמר"
+
+#: src/settings_translation_file.cpp
+msgid "cURL parallel limit"
+msgstr "(cURL) מגבלה לפעולות במקביל"
+
+#: src/settings_translation_file.cpp
msgid "cURL timeout"
-msgstr ""
+msgstr "(cURL) מגבלת זמן"
+
+#~ msgid "Configure"
+#~ msgstr "קביעת תצורה"
#, fuzzy
#~ msgid "Enable VBO"
#~ msgstr "×פשר בכל"
+#~ msgid "Main menu style"
+#~ msgstr "סגנון התפריט הר×שי"
+
+#~ msgid "No"
+#~ msgstr "ל×"
+
#~ msgid "Ok"
#~ msgstr "×ישור"
+
+#, fuzzy
+#~ msgid "Reset singleplayer world"
+#~ msgstr "שרת"
+
+#~ msgid "View"
+#~ msgstr "תצוגה"
+
+#~ msgid "Yes"
+#~ msgstr "כן"
diff --git a/po/hi/minetest.po b/po/hi/minetest.po
index a45a5ae89..2c88b00f0 100644
--- a/po/hi/minetest.po
+++ b/po/hi/minetest.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-29 07:53+0000\n"
-"Last-Translator: Agastya <acagastya@outlook.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-10-06 14:26+0000\n"
+"Last-Translator: Eyekay49 <satvikpatwardhan@gmail.com>\n"
"Language-Team: Hindi <https://hosted.weblate.org/projects/minetest/minetest/"
"hi/>\n"
"Language: hi\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -29,7 +29,7 @@ msgstr "आपकी मौत हो गयी"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr "Okay"
+msgstr "ठीक है"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -51,10 +51,6 @@ msgstr "वापस कनेकà¥à¤Ÿ करें"
msgid "The server has requested a reconnect:"
msgstr "सरà¥à¤µà¤° वापस कनेकà¥à¤Ÿ करना चाहता है :"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "लोड हो रहा है ..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल संखà¥à¤¯à¤¾ à¤à¤• नहीं है। "
@@ -68,10 +64,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "सरà¥à¤µà¤° केवल पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल $1 से $2 ही लेता है। "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• सरà¥à¤µà¤° शृंखला (सरà¥à¤µà¤° लिसà¥à¤Ÿ) को 'हां' करें और इंटरनेट कनेकà¥à¤¶à¤¨ जांचें।"
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "हम केवल पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल $1 ही लेते हैं।"
@@ -79,7 +71,8 @@ msgstr "हम केवल पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल $1 ही लेते à
msgid "We support protocol versions between version $1 and $2."
msgstr "हम पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल $1 से $2 ही लेते हैं।"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -89,7 +82,8 @@ msgstr "हम पà¥à¤°à¥‹à¤Ÿà¥‹à¤•ॉल $1 से $2 ही लेते हà
msgid "Cancel"
msgstr "रोकें"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "निरà¥à¤­à¤°à¤¤à¤¾à¤à¤‚ :"
@@ -163,19 +157,59 @@ msgid "enabled"
msgstr "चालू"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "लोड हो रहा है ..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "सभी पैकेज"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "की पहले से इसà¥à¤¤à¥‡à¤®à¤¾à¤² में है"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "वापस मà¥à¤–à¥à¤¯ पृषà¥à¤  पर जाà¤à¤‚"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "खेल चलाà¤à¤‚"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "cURL के बगैर कंपाइल होने के कारण Content DB उपलबà¥à¤§ नहीं है"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
msgstr "लोड हो रहा है ..."
@@ -193,6 +227,16 @@ msgid "Install"
msgstr "इनà¥à¤¸à¥à¤Ÿà¤¾à¤² करें"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "इनà¥à¤¸à¥à¤Ÿà¤¾à¤² करें"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "अनावशà¥à¤¯à¤• निरà¥à¤­à¤°à¤¤à¤¾à¤à¤‚ :"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "माॅड"
@@ -206,9 +250,25 @@ msgid "No results"
msgstr "कà¥à¤› नहीं मिला"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "ढूंढें"
+#, fuzzy
+msgid "No updates"
+msgstr "नया संसà¥à¤•रण इनà¥à¤¸à¥à¤Ÿà¤¾à¤² करें"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -223,8 +283,12 @@ msgid "Update"
msgstr "नया संसà¥à¤•रण इनà¥à¤¸à¥à¤Ÿà¤¾à¤² करें"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "दृशà¥à¤¯"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -232,32 +296,31 @@ msgstr "\"$1\" नामक दà¥à¤¨à¤¿à¤¯à¤¾ पहले से ही है
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "अतिरिकà¥à¤¤ भूमि"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
-msgstr ""
+msgstr "ऊंचाई की ठंडक"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Altitude dry"
-msgstr ""
+msgstr "ऊंचाई का सूखापन"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biome blending"
-msgstr ""
+msgstr "बायोम परिवरà¥à¤¤à¤¨ नज़र न आना (Biome Blending)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biomes"
-msgstr ""
+msgstr "बायोम"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caverns"
-msgstr ""
+msgstr "गà¥à¤«à¤¾à¤à¤‚"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caves"
-msgstr "सपà¥à¤Ÿà¤• (आकà¥à¤Ÿà¥‡à¤µ)"
+msgstr "गà¥à¤«à¤¾à¤à¤‚"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
@@ -277,19 +340,19 @@ msgstr "आप किसी भी खेल को minetest.net से डाà¤
#: builtin/mainmenu/dlg_create_world.lua
msgid "Dungeons"
-msgstr ""
+msgstr "कालकोठरियां"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "समतल भूमि"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
-msgstr ""
+msgstr "आसमान में तैरते हà¥à¤ भूमि-खंड"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floatlands (experimental)"
-msgstr ""
+msgstr "फà¥à¤²à¥‹à¤Ÿà¤²à¥ˆà¤‚डà¥à¤¸ (आसमान में तैरते हà¥à¤ भूमि-खंड) (पà¥à¤°à¤¾à¤¯à¥‹à¤—िक)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -297,11 +360,11 @@ msgstr "खेल"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Non-fractal भूमि तैयार हो : समà¥à¤¦à¥à¤° व भूमि के नीचे"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "छोटे पहाड़"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Humid rivers"
@@ -370,13 +433,13 @@ msgstr "बीज"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "बायोम के बीच में धीरे-धीरे परिवरà¥à¤¤à¤¨"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
-msgstr ""
+msgstr "भूमि पर बनावटें (v6 के पेड़ व जंगली घास पर कोई असर नहीं)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
@@ -404,14 +467,13 @@ msgstr "पेड़ और जंगल की घास"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Vary river depth"
-msgstr ""
+msgstr "नदी की गहराईयों में अंतर"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Warning: The Development Test is meant for developers."
msgstr ""
"चेतावनी : नà¥à¤¯à¥‚नतम विकास खेल (Minimal development test) खेल बनाने वालों के लिठहै।"
@@ -521,6 +583,10 @@ msgid "Scale"
msgstr "सà¥à¤•ेल"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "ढूंढें"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "फाईल पाथ चà¥à¤¨à¥‡à¤‚"
@@ -635,6 +701,19 @@ msgstr "मॉड को $1 के रूप में इनà¥à¤¸à¥à¤Ÿà¤¾à¤²
msgid "Unable to install a modpack as a $1"
msgstr "माॅडपैक को $1 के रूप में इनà¥à¤¸à¥à¤Ÿà¤¾à¤² नहीं किया जा सका"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "लोड हो रहा है ..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "कà¥à¤²à¤¾à¤‡à¤‚ट की तरफ से सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ लगाना मना है"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr "सारà¥à¤µà¤œà¤¨à¤¿à¤• सरà¥à¤µà¤° शृंखला (सरà¥à¤µà¤° लिसà¥à¤Ÿ) को 'हां' करें और इंटरनेट कनेकà¥à¤¶à¤¨ जांचें।"
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "नेट पर वसà¥à¤¤à¥à¤à¤‚ ढूंढें"
@@ -688,6 +767,17 @@ msgid "Credits"
msgstr "आभार सूची"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "फाईल पाथ चà¥à¤¨à¥‡à¤‚"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "पूरà¥à¤µ सहायक"
@@ -704,14 +794,10 @@ msgid "Bind Address"
msgstr "बाईंड à¤à¤¡à¥à¤°à¥‡à¤¸"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "सेटिंग बदलें"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "असीमित संसाधन"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "हानि व मृतà¥à¤¯à¥ हो सकती है"
@@ -728,8 +814,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "नाम/पासवरà¥à¤¡"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -740,6 +826,11 @@ msgid "No world created or selected!"
msgstr "कोई दà¥à¤¨à¤¿à¤¯à¤¾ उपसà¥à¤¥à¤¿à¤¤ या चà¥à¤¨à¥€ गयी नहीं है !"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "नया पासवरà¥à¤¡"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "खेल खेलें"
@@ -748,6 +839,11 @@ msgid "Port"
msgstr "पोरà¥à¤Ÿ"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "दà¥à¤¨à¤¿à¤¯à¤¾ चà¥à¤¨à¥à¤¹à¥‡à¤‚ :"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "दà¥à¤¨à¤¿à¤¯à¤¾ चà¥à¤¨à¥à¤¹à¥‡à¤‚ :"
@@ -763,23 +859,23 @@ msgstr "खेल शà¥à¤°à¥‚ करें"
msgid "Address / Port"
msgstr "à¤à¤¡à¤°à¥‡à¤¸ / पोरà¥à¤Ÿ"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "कनेकà¥à¤Ÿ करें"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "असीमित संसाधन"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "हानि व मृतà¥à¤¯à¥ हो सकती है"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "पसंद हटाà¤à¤‚"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "पसंद"
@@ -787,16 +883,16 @@ msgstr "पसंद"
msgid "Join Game"
msgstr "खेल में शामिल होà¤à¤‚"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "नाम/पासवरà¥à¤¡"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "पिंग"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "खिलाडियों में मारा-पीटी की अनà¥à¤®à¤¤à¥€ है"
@@ -825,10 +921,6 @@ msgid "Antialiasing:"
msgstr "à¤à¤¨à¥à¤Ÿà¥€ à¤à¤²à¤¿à¤¯à¤¾à¤¸à¤¿à¤‚ग :"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "कà¥à¤¯à¤¾ आप सचमà¥à¤š अपने à¤à¤•-खिलाडी दà¥à¤¨à¤¿à¤¯à¤¾ रदà¥à¤¦ करना चाहते हैं?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "सà¥à¤•à¥à¤°à¥€à¤¨ परिमाण सà¥à¤µà¤¯à¤‚ सेव हो"
@@ -836,10 +928,6 @@ msgstr "सà¥à¤•à¥à¤°à¥€à¤¨ परिमाण सà¥à¤µà¤¯à¤‚ सेव हà¥
msgid "Bilinear Filter"
msgstr "दà¥à¤µà¤¿à¤°à¥‡à¤–िय फिलà¥à¤Ÿà¤°"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "टकराव मैपिंग"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "की बदलें"
@@ -853,10 +941,6 @@ msgid "Fancy Leaves"
msgstr "रोचक पतà¥à¤¤à¥‡"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "मामूली नकà¥à¤¶à¥‡ बनाà¤à¤‚"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "मिपमैप"
@@ -865,10 +949,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "मिपमैप व अनीसो. फिलà¥à¤Ÿà¤°"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "नहीं"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "कोई फिलà¥à¤Ÿà¤° नहीं"
@@ -896,19 +976,11 @@ msgstr "अपारदरà¥à¤¶à¥€ पतà¥à¤¤à¥‡"
msgid "Opaque Water"
msgstr "अपारदरà¥à¤¶à¥€ पानी"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "पेरलेकà¥à¤¸ ऑकà¥à¤²à¥‚जन"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "कण"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "à¤à¤•-खिलाडी दà¥à¤¨à¤¿à¤¯à¤¾ रीसेट करें"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "सà¥à¤•à¥à¤°à¥€à¤¨ :"
@@ -921,6 +993,11 @@ msgid "Shaders"
msgstr "छाया बनावट"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "फà¥à¤²à¥‹à¤Ÿà¤²à¥ˆà¤‚डà¥à¤¸ (आसमान में तैरते हà¥à¤ भूमि-खंड) (पà¥à¤°à¤¾à¤¯à¥‹à¤—िक)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "छाया बनावट (अनà¥à¤ªà¤²à¤¬à¥à¤§)"
@@ -964,22 +1041,6 @@ msgstr "पानी में लहरें बनें"
msgid "Waving Plants"
msgstr "पाैधे लहराà¤à¤‚"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "हां"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "मॉड कॆ सेटिंग बदलें"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "मà¥à¤–à¥à¤¯"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "à¤à¤•-खिलाडी शà¥à¤°à¥‚ करें"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "कनेकà¥à¤¶à¤¨ समय अंत|"
@@ -1134,20 +1195,20 @@ msgid "Continue"
msgstr "आगे बढ़ें"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1295,34 +1356,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "खेल या मॉड़ के वजह से छोटा नकà¥à¤¶à¤¾ मना है"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "छोटा नकà¥à¤¶à¤¾ गायब"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "छोटा नकà¥à¤¶à¤¾ रेडार मोड, 1 गà¥à¤¨à¤¾ ज़ूम"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "छोटा नकà¥à¤¶à¤¾ रेडर मोड, दोगà¥à¤¨à¤¾ जूम"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "छोटा नकà¥à¤¶à¤¾ रेडार मोड, 4 गà¥à¤¨à¤¾ ज़ूम"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "छोटा नकà¥à¤¶à¤¾ जमीन मोड, 1 गà¥à¤¨à¤¾ ज़ूम"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "छोटा नकà¥à¤¶à¤¾ जमीन मोड, दोगà¥à¤¨à¤¾ जूम"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "छोटा नकà¥à¤¶à¤¾ जमीन मोड, 4 गà¥à¤¨à¤¾ जून"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "तरल चाल रà¥à¤•ा हà¥à¤†"
@@ -1714,9 +1747,28 @@ msgstr "X बटन २"
msgid "Zoom"
msgstr "ज़ूम"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "छोटा नकà¥à¤¶à¤¾ गायब"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "छोटा नकà¥à¤¶à¤¾ रेडार मोड, 1 गà¥à¤¨à¤¾ ज़ूम"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "छोटा नकà¥à¤¶à¤¾ जमीन मोड, 1 गà¥à¤¨à¤¾ ज़ूम"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "छोटा नकà¥à¤¶à¤¾ जमीन मोड, 1 गà¥à¤¨à¤¾ ज़ूम"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
-msgstr "पासवरà¥à¤¡ अलग अलग हैं!"
+msgstr "पासवरà¥à¤¡ अलग-अलग हैं!"
#: src/gui/guiConfirmRegistration.cpp
msgid "Register and Join"
@@ -1963,12 +2015,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2075,6 +2121,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2308,10 +2358,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2382,16 +2428,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2543,6 +2579,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2599,7 +2639,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2607,7 +2649,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2707,12 +2751,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2783,6 +2821,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2843,7 +2885,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2931,14 +2973,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2948,18 +2982,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2976,12 +2998,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -2991,7 +3007,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3295,10 +3311,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3352,8 +3364,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3828,6 +3840,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3908,6 +3924,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4007,6 +4030,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4563,10 +4593,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4580,6 +4606,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4743,7 +4777,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4792,6 +4826,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5021,14 +5062,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5054,10 +5087,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5083,34 +5112,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5176,6 +5177,15 @@ msgid "Pitch move mode"
msgstr "पिच चलन"
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "राइट कà¥à¤²à¤¿à¤• के दोहराने का समय"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5333,10 +5343,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "राइट कà¥à¤²à¤¿à¤• के दोहराने का समय"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5588,6 +5594,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5719,10 +5735,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5816,6 +5828,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5874,8 +5890,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5901,15 +5917,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6045,6 +6066,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6247,6 +6279,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6369,6 +6407,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6380,11 +6436,62 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "कà¥à¤¯à¤¾ आप सचमà¥à¤š अपने à¤à¤•-खिलाडी दà¥à¤¨à¤¿à¤¯à¤¾ रदà¥à¤¦ करना चाहते हैं?"
+
#~ msgid "Back"
#~ msgstr "पीछे"
+#~ msgid "Bump Mapping"
+#~ msgstr "टकराव मैपिंग"
+
+#~ msgid "Config mods"
+#~ msgstr "मॉड कॆ सेटिंग बदलें"
+
+#~ msgid "Configure"
+#~ msgstr "सेटिंग बदलें"
+
#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr "$1 का डाऊनलोड व इनà¥à¤¸à¥à¤Ÿà¤¾à¤² चल रहा है, कृपया ठहरें ..."
+#~ msgid "Generate Normal Maps"
+#~ msgstr "मामूली नकà¥à¤¶à¥‡ बनाà¤à¤‚"
+
+#~ msgid "Main"
+#~ msgstr "मà¥à¤–à¥à¤¯"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "छोटा नकà¥à¤¶à¤¾ रेडर मोड, दोगà¥à¤¨à¤¾ जूम"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "छोटा नकà¥à¤¶à¤¾ रेडार मोड, 4 गà¥à¤¨à¤¾ ज़ूम"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "छोटा नकà¥à¤¶à¤¾ जमीन मोड, दोगà¥à¤¨à¤¾ जूम"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "छोटा नकà¥à¤¶à¤¾ जमीन मोड, 4 गà¥à¤¨à¤¾ जून"
+
+#~ msgid "Name/Password"
+#~ msgstr "नाम/पासवरà¥à¤¡"
+
+#~ msgid "No"
+#~ msgstr "नहीं"
+
#~ msgid "Ok"
#~ msgstr "ठीक है"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "पेरलेकà¥à¤¸ ऑकà¥à¤²à¥‚जन"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "à¤à¤•-खिलाडी दà¥à¤¨à¤¿à¤¯à¤¾ रीसेट करें"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "à¤à¤•-खिलाडी शà¥à¤°à¥‚ करें"
+
+#~ msgid "View"
+#~ msgstr "दृशà¥à¤¯"
+
+#~ msgid "Yes"
+#~ msgstr "हां"
diff --git a/po/hu/minetest.po b/po/hu/minetest.po
index 725c12629..090d92454 100644
--- a/po/hu/minetest.po
+++ b/po/hu/minetest.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Hungarian (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-22 17:56+0000\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-13 08:50+0000\n"
"Last-Translator: Ãcs Zoltán <acszoltan111@gmail.com>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/minetest/"
"minetest/hu/>\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -24,7 +24,7 @@ msgstr "Meghaltál"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -46,10 +46,6 @@ msgstr "Újrakapcsolódás"
msgid "The server has requested a reconnect:"
msgstr "A kiszolgáló újrakapcsolódást kért:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Betöltés…"
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Protokollverzió-eltérés. "
@@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "A kiszolgáló $1 és $2 protokollverzió közötti verziókat támogat. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Próbáld újra engedélyezni a nyilvános kiszolgálólistát, és ellenőrizd az "
-"internetkapcsolatot."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Csak $1 protokollverziót támogjuk."
@@ -76,7 +66,8 @@ msgstr "Csak $1 protokollverziót támogjuk."
msgid "We support protocol versions between version $1 and $2."
msgstr "$1 és $2 közötti protokollverziókat támogatjuk."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "$1 és $2 közötti protokollverziókat támogatjuk."
msgid "Cancel"
msgstr "Mégse"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Függőségek:"
@@ -160,16 +152,59 @@ msgid "enabled"
msgstr "engedélyezve"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 letöltése,\n"
+"$2 sorba állítva"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Letöltés…"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Minden csomag"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "A gomb már használatban van"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Vissza a főmenübe"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Játék létrehozása"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "A ContentDB nem elérhető, ha a Minetest cURL nélkül lett lefordítva"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Downloading..."
@@ -189,6 +224,16 @@ msgid "Install"
msgstr "Telepítés"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Telepítés"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Választható függőségek:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Modok"
@@ -202,9 +247,26 @@ msgid "No results"
msgstr "Nincs találat"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Keresés"
+#, fuzzy
+msgid "No updates"
+msgstr "Frissítés"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Not found"
+msgstr "Hang némítása"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Felülírás"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "Sorbaállítva"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -219,8 +281,12 @@ msgid "Update"
msgstr "Frissítés"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "Megtekintés"
+msgid "Update All [$1]"
+msgstr "Összes frissítése [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "További információ megnyitása a böngészőben"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -231,9 +297,8 @@ msgid "Additional terrain"
msgstr "További terep"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-#, fuzzy
msgid "Altitude chill"
-msgstr "Hőmérsékletcsökkenés a magassággal"
+msgstr "Hőmérséklet-csökkenés a magassággal"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Altitude dry"
@@ -272,13 +337,12 @@ msgid "Download one from minetest.net"
msgstr "Letöltés a minetest.net címről"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Dungeons"
-msgstr "Tömlöc zaj"
+msgstr "Tömlöcök"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "Lapos terep"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
@@ -293,8 +357,9 @@ msgid "Game"
msgstr "Játék"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Nem-fraktál terep generálása: Óceánok és földalatti rész"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
@@ -372,14 +437,17 @@ msgid "Smooth transition between biomes"
msgstr "Sima átmenet a biomok között"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
+"A terepen megjelenő struktúrák (nincs hatása a fákra és a dzsungelfűre, "
+"amelyet a v6 készített)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "A terepen megjelenő struktúrák, általában fák és növények"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
@@ -396,7 +464,7 @@ msgstr "Mérsékelt, Sivatag, Dzsungel, Tundra, Tajga"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
msgid "Terrain surface erosion"
-msgstr "Terep alapzaj"
+msgstr "Terepfelület erózió"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
@@ -521,6 +589,10 @@ msgid "Scale"
msgstr "Mérték"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Keresés"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Útvonal kiválasztása"
@@ -636,6 +708,21 @@ msgstr "$1 mod telepítése meghiúsult"
msgid "Unable to install a modpack as a $1"
msgstr "$1 modcsomag telepítése meghiúsult"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Betöltés…"
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Kliens oldali szkriptek letiltva"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Próbáld újra engedélyezni a nyilvános kiszolgálólistát, és ellenőrizd az "
+"internetkapcsolatot."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Online tartalmak böngészése"
@@ -689,6 +776,20 @@ msgid "Credits"
msgstr "Köszönetnyilvánítás"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Útvonal kiválasztása"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Megnyitja a fájlkezelőben / intézőben azt a könyvtárat, amely a felhasználó "
+"világait,\n"
+"játékait, modjait, és textúráit tartalmazza."
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Korábbi közreműködők"
@@ -705,14 +806,10 @@ msgid "Bind Address"
msgstr "Cím csatolása"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Beállítás"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Kreatív mód"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Sérülés engedélyezése"
@@ -729,8 +826,8 @@ msgid "Install games from ContentDB"
msgstr "Játékok telepítése ContentDB-ről"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Név/jelszó"
+msgid "Name"
+msgstr "Név"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -741,6 +838,11 @@ msgid "No world created or selected!"
msgstr "Nincs létrehozott vagy kiválasztott világ!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Új jelszó"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Játék indítása"
@@ -749,6 +851,11 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Világ kiválasztása:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Világ kiválasztása:"
@@ -764,23 +871,23 @@ msgstr "Indítás"
msgid "Address / Port"
msgstr "Cím / Port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Kapcsolódás"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Kreatív mód"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Sérülés engedélyezve"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Kedvenc törlése"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Kedvenc"
@@ -788,16 +895,16 @@ msgstr "Kedvenc"
msgid "Join Game"
msgstr "Csatlakozás játékhoz"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Név / Jelszó"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP engedélyezve"
@@ -826,10 +933,6 @@ msgid "Antialiasing:"
msgstr "Élsimítás:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Biztosan visszaállítod az egyjátékos világod?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Képernyőméret automatikus mentése"
@@ -837,10 +940,6 @@ msgstr "Képernyőméret automatikus mentése"
msgid "Bilinear Filter"
msgstr "Bilineáris szűrés"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Bump mapping"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Gombok megváltoztatása"
@@ -854,10 +953,6 @@ msgid "Fancy Leaves"
msgstr "Szép levelek"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Normál felületek generálása"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmap effekt"
@@ -866,10 +961,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap + Anizotróp szűrés"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Nem"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Nincs szűrés"
@@ -897,19 +988,11 @@ msgstr "Ãtlátszatlan levelek"
msgid "Opaque Water"
msgstr "Ãtlátszatlan víz"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Parallax Occlusion ( domború textúra )"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Részecskék"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Egyjátékos világ visszaállítása"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Képernyő:"
@@ -922,6 +1005,11 @@ msgid "Shaders"
msgstr "Ãrnyalók"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Lebegő földek"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Ãrnyalók (nem elérhetÅ‘)"
@@ -965,22 +1053,6 @@ msgstr "Hullámzó folyadékok"
msgid "Waving Plants"
msgstr "Hullámzó növények"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Igen"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Modok beállítása"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "FÅ‘"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Egyjátékos mód indítása"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Csatlakozási idő lejárt."
@@ -1135,20 +1207,20 @@ msgid "Continue"
msgstr "Folytatás"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1296,34 +1368,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "A kistérkép letiltva (szerver, vagy mod által)"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Kistérkép letiltva"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Kistérkép radar módban x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Kistérkép radar módban x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Kistérkép radar módban x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Kistérkép terület módban x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Kistérkép terület módban x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Kistérkép terület módban x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Noclip mód letiltva"
@@ -1715,6 +1759,25 @@ msgstr "X Gomb 2"
msgid "Zoom"
msgstr "Nagyítás"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Kistérkép letiltva"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Kistérkép radar módban x1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Kistérkép terület módban x1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Minimum textúra méret"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "A jelszavak nem egyeznek!"
@@ -1950,7 +2013,6 @@ msgstr ""
"gombot ha kint van a fő körből."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
"Can be used to move a desired point to (0, 0) to create a\n"
@@ -1961,13 +2023,6 @@ msgid ""
"situations.\n"
"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
msgstr ""
-"A fraktál (X,Y,Z) eltolása a világ középpontjától, 'scale' egységekben.\n"
-"Egy megfelelő, alacsony magasságú keletkezési pont (0, 0) közelébe "
-"mozgatására használható.\n"
-"Az alapértelmezés megfelelő Mandelbrot-halmazokhoz, a szerkesztés Julia-"
-"halmazok esetén szükséges.\n"
-"Körülbelül -2 és 2 közötti érték. Szorozd be 'scale'-lel, hogy kockákban "
-"kapd meg az eltolást."
#: src/settings_translation_file.cpp
msgid ""
@@ -1981,14 +2036,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = parallax occlusion with slope information (gyorsabb).\n"
-"1 = relief mapping (lassabb, pontosabb)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "2D zaj, amely a hegyvonulatok az alakját/méretét szabályozza."
@@ -2027,9 +2074,8 @@ msgid "3D mode"
msgstr "3D mód"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "3D mode parallax strength"
-msgstr "Parallax Occlusion hatás ereje"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
@@ -2112,9 +2158,12 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
-msgstr "A világgeneráló szálak számának abszolút határa"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "Acceleration in air"
@@ -2227,17 +2276,16 @@ msgid "Apple trees noise"
msgstr "Almafa zaj"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Arm inertia"
msgstr "Kar tehetetlenség"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Arm inertia, gives a more realistic movement of\n"
"the arm when the camera moves."
msgstr ""
"A kar tehetetlensége reálisabb mozgást biztosít\n"
+"a karnak, amikor a kamera mozog.\n"
"a karnak, amikor a kamera mozog."
#: src/settings_translation_file.cpp
@@ -2284,7 +2332,6 @@ msgid "Autosave screen size"
msgstr "Képernyőméret automatikus mentése"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Autoscaling mode"
msgstr "Automatikus méretezés mód"
@@ -2349,9 +2396,8 @@ msgid "Bold and italic monospace font path"
msgstr "Félkövér dőlt monospace betűtípus útvonal"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Bold font path"
-msgstr "Betűtípus helye"
+msgstr "Félkövér betűtípus útvonala"
#: src/settings_translation_file.cpp
msgid "Bold monospace font path"
@@ -2366,10 +2412,6 @@ msgid "Builtin"
msgstr "Beépített"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Bumpmappolás"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2441,22 +2483,6 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Megváltoztatja a főmenü felhasználói felületét:\n"
-"- Teljes: Több egyjátékos világ, játékválasztás, textúracsomag-választó "
-"stb.\n"
-"- Egyszerű: Egy egyjátékos világ, nincs játék- vagy textúracsomag-választó.\n"
-"Szükséges lehet a kisebb képernyőkhöz."
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat font size"
msgstr "Betűtípus mérete"
@@ -2618,6 +2644,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "ContentDB zászló feketelista"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "ContentDB URL"
@@ -2678,7 +2708,10 @@ msgid "Crosshair alpha"
msgstr "Célkereszt átlátszóság"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "Célkereszt átlátszóság (0 és 255 között)."
#: src/settings_translation_file.cpp
@@ -2686,8 +2719,10 @@ msgid "Crosshair color"
msgstr "Célkereszt színe"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Célkereszt színe (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2797,14 +2832,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Az opcionális hegyek és tavak helyzetét és terepét határozza meg."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"A textúrák mintavételezési lépésközét adja meg.\n"
-"Nagyobb érték simább normal map-et eredményez."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Meghatározza az alap talajszintet."
@@ -2883,6 +2910,11 @@ msgid "Desynchronize block animation"
msgstr "Blokkanimáció deszinkronizálása"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Jobb gomb"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Ãsási részecskék"
@@ -2947,7 +2979,8 @@ msgid "Enable console window"
msgstr "Konzolablak engedélyezése"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Kreatív mód engedélyezése az újonnan létrehozott térképekhez."
#: src/settings_translation_file.cpp
@@ -3060,14 +3093,6 @@ msgid "Enables animation of inventory items."
msgstr "Az eszköztárelemek animációjának engedélyezése."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Enables caching of facedir rotated meshes."
msgstr "Engedélyezi az elforgatott rácsvonalak gyorsítótárazását."
@@ -3078,20 +3103,6 @@ msgstr "Engedélyezi a kistérképet."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Parallax occlusion mapping bekapcsolása.\n"
-"A shaderek engedélyezve kell hogy legyenek."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3109,14 +3120,6 @@ msgstr "Egység módszerek"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Kísérleti opció, látható rések jelenhetnek meg a blokkok között\n"
-"ha nagyobbra van állítva, mint 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3126,8 +3129,9 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS a szünet menüben"
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "Maximum FPS a játék szüneteltetésekor."
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3293,11 +3297,11 @@ msgstr "Köd váltása gomb"
#: src/settings_translation_file.cpp
msgid "Font bold by default"
-msgstr ""
+msgstr "Félkövér betűtípus alapértelmezetten"
#: src/settings_translation_file.cpp
msgid "Font italic by default"
-msgstr ""
+msgstr "Dőlt betűtípus alapértelmezetten"
#: src/settings_translation_file.cpp
msgid "Font shadow"
@@ -3451,10 +3455,6 @@ msgid "GUI scaling filter txr2img"
msgstr "Felhasználói felület méretarány szűrő txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Normálfelületek generálása"
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Global callbacks"
msgstr "Globális visszahívások"
@@ -3519,8 +3519,8 @@ msgstr "HUD váltás gomb"
#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Az elavult lua API hívások kezelése:\n"
@@ -3930,7 +3930,8 @@ msgstr "Játékon belüli csevegő konzol hátterének színe (R,G,B)."
#: src/settings_translation_file.cpp
msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
-msgstr "Játékon belüli csevegéskonzol magassága 0,1 (10%) és 1,0 (100%) között."
+msgstr ""
+"Játékon belüli csevegéskonzol magassága 0,1 (10%) és 1,0 (100%) között."
#: src/settings_translation_file.cpp
msgid "Inc. volume key"
@@ -4039,6 +4040,11 @@ msgid "Joystick button repetition interval"
msgstr "Joystick gomb ismétlési időköz"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "Joystick típus"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Joystick frustum érzékenység"
@@ -4142,6 +4148,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Gomb az ugráshoz.\n"
+"Lásd: http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4284,6 +4301,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Gomb az ugráshoz.\n"
+"Lásd: http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -5020,10 +5048,6 @@ msgid "Main menu script"
msgstr "Főmenü szkript"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Főmenü stílusa"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5042,6 +5066,14 @@ msgid "Makes all liquids opaque"
msgstr "Az összes folyadékot átlátszatlanná teszi"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Térkép mappája"
@@ -5241,7 +5273,8 @@ msgid "Maximum FPS"
msgstr "Maximum FPS (képkocka/mp)"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "Maximum FPS a játék szüneteltetésekor."
#: src/settings_translation_file.cpp
@@ -5297,6 +5330,13 @@ msgstr ""
"Hagyd üresen, hogy automatikusan legyen kiválasztva a megfelelő mennyiség."
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5542,14 +5582,6 @@ msgid "Noises"
msgstr "Zajok"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5575,10 +5607,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Online tartalomtár"
@@ -5604,34 +5632,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Parallax Occlusion effekt"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Parallax Occlusion módja"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "Parallax Occlusion mértéke"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5697,6 +5697,16 @@ msgid "Pitch move mode"
msgstr "Pályamozgás mód"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Repülés gomb"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "Jobb kattintás ismétlési időköz"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5741,8 +5751,8 @@ msgid ""
"Print the engine's profiling data in regular intervals (in seconds).\n"
"0 = disable. Useful for developers."
msgstr ""
-"A játékmotor profiladatainak kiírása szabályos időközökben (másodpercekben)."
-"\n"
+"A játékmotor profiladatainak kiírása szabályos időközökben "
+"(másodpercekben).\n"
"0 a kikapcsoláshoz. Hasznos fejlesztőknek."
#: src/settings_translation_file.cpp
@@ -5865,10 +5875,6 @@ msgid "Right key"
msgstr "Jobb gomb"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Jobb kattintás ismétlési időköz"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "Folyómeder mélysége"
@@ -6164,6 +6170,20 @@ msgid "Show entity selection boxes"
msgstr "Entitások kijelölő dobozának megjelenítése"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Nyelv beállítása. Hagyd üresen a rendszer nyelvének használatához.\n"
+"A változtatás után a játék újraindítása szükséges."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Félkövér betűtípus alapértelmezetten"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Leállítási üzenet"
@@ -6298,10 +6318,6 @@ msgid "Strength of 3D mode parallax."
msgstr "Generált normálfelületek erőssége."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Generált normálfelületek erőssége."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6396,6 +6412,11 @@ msgid "The URL for the content repository"
msgstr "Az URL a tartalomtárhoz"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "The deadzone of the joystick"
+msgstr "A használni kívánt joystick azonosítója"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6457,8 +6478,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6483,6 +6504,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"The time in seconds it takes between repeated events\n"
@@ -6494,9 +6521,8 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
"Ennyi másodperc szükséges az ismételt jobb kattintáshoz a jobb egérgomb "
"nyomva tartásakor."
@@ -6647,6 +6673,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "Trilineáris szűrés a textúrák méretezéséhez."
@@ -6858,6 +6895,12 @@ msgstr ""
"támogatás."
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6912,8 +6955,8 @@ msgid ""
"Contains the same information as the file debug.txt (default name)."
msgstr ""
"Csak Windows rendszeren: Minetest indítása parancssorral a háttérben.\n"
-"Ugyanazokat az információkat tartalmazza, mint a debug.txt fájl ("
-"alapértelmezett név)."
+"Ugyanazokat az információkat tartalmazza, mint a debug.txt fájl "
+"(alapértelmezett név)."
#: src/settings_translation_file.cpp
msgid ""
@@ -6989,6 +7032,24 @@ msgid "Y-level of seabed."
msgstr "Tengerfenék Y szintje."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "cURL fájlletöltés időkorlát"
@@ -7000,58 +7061,74 @@ msgstr "cURL párhuzamossági korlát"
msgid "cURL timeout"
msgstr "cURL időkorlát"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Váltás „mozi†módba"
-
-#~ msgid "Select Package File:"
-#~ msgstr "csomag fájl kiválasztása:"
-
-#~ msgid "Waving Water"
-#~ msgstr "Hullámzó víz"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = parallax occlusion with slope information (gyorsabb).\n"
+#~ "1 = relief mapping (lassabb, pontosabb)."
-#~ msgid "Waving water"
-#~ msgstr "Hullámzó víz"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "Gamma kódolás beállítása a fényhez. Alacsonyabb számok - nagyobb "
+#~ "fényerő.\n"
+#~ "Ez a beállítás csak a kliensre érvényes, a szerver nem veszi figyelembe."
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Ezt a betűtípust bizonyos nyelvek használják."
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Biztosan visszaállítod az egyjátékos világod?"
-#, fuzzy
-#~ msgid "Shadow limit"
-#~ msgstr "Térképblokk korlát"
+#~ msgid "Back"
+#~ msgstr "Vissza"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "A TrueType betűtípus (ttf) vagy bitmap útvonala."
+#~ msgid "Bump Mapping"
+#~ msgstr "Bump mapping"
-#, fuzzy
-#~ msgid "Lightness sharpness"
-#~ msgstr "Fényélesség"
+#~ msgid "Bumpmapping"
+#~ msgstr "Bumpmappolás"
#, fuzzy
-#~ msgid "Lava depth"
-#~ msgstr "Nagy barlang mélység"
-
-#~ msgid "IPv6 support."
-#~ msgstr "IPv6 támogatás."
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "Megváltoztatja a főmenü felhasználói felületét:\n"
+#~ "- Teljes: Több egyjátékos világ, játékválasztás, textúracsomag-választó "
+#~ "stb.\n"
+#~ "- Egyszerű: Egy egyjátékos világ, nincs játék- vagy textúracsomag-"
+#~ "választó.\n"
+#~ "Szükséges lehet a kisebb képernyőkhöz."
-#~ msgid "Gamma"
-#~ msgstr "Gamma"
+#~ msgid "Config mods"
+#~ msgstr "Modok beállítása"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Betűtípus árnyék alfa (átlátszatlanság, 0 és 255 között)."
+#~ msgid "Configure"
+#~ msgstr "Beállítás"
#, fuzzy
-#~ msgid "Floatland mountain height"
-#~ msgstr "Lebegő hegyek magassága"
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "A lebegő szigetek hegységeinek sűrűségét szabályozza.\n"
+#~ "Az \"np_mountain\" zaj értékéhez hozzáadott eltolás."
-#, fuzzy
-#~ msgid "Floatland base height noise"
-#~ msgstr "A lebegő hegyek alapmagassága"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "A járatok szélességét határozza meg, alacsonyabb érték szélesebb "
+#~ "járatokat hoz létre."
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "filmes tónus effektek bekapcsolása"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Célkereszt színe (R,G,B)."
-#~ msgid "Enable VBO"
-#~ msgstr "VBO engedélyez"
+#~ msgid "Darkness sharpness"
+#~ msgstr "a sötétség élessége"
#~ msgid ""
#~ "Defines areas of floatland smooth terrain.\n"
@@ -7060,39 +7137,145 @@ msgstr "cURL időkorlát"
#~ "A lebegő szigetek sima területeit határozza meg.\n"
#~ "Lapos szigetek ott fordulnak elő, ahol a zaj értéke pozitív."
-#~ msgid "Darkness sharpness"
-#~ msgstr "a sötétség élessége"
-
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
#~ msgstr ""
-#~ "A járatok szélességét határozza meg, alacsonyabb érték szélesebb "
-#~ "járatokat hoz létre."
+#~ "A textúrák mintavételezési lépésközét adja meg.\n"
+#~ "Nagyobb érték simább normal map-et eredményez."
+
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "$1 letöltése és telepítése, kérlek várj…"
+
+#~ msgid "Enable VBO"
+#~ msgstr "VBO engedélyez"
+
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "filmes tónus effektek bekapcsolása"
-#, fuzzy
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "A lebegő szigetek hegységeinek sűrűségét szabályozza.\n"
-#~ "Az \"np_mountain\" zaj értékéhez hozzáadott eltolás."
+#~ "Parallax occlusion mapping bekapcsolása.\n"
+#~ "A shaderek engedélyezve kell hogy legyenek."
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
#~ msgstr ""
-#~ "Gamma kódolás beállítása a fényhez. Alacsonyabb számok - nagyobb "
-#~ "fényerő.\n"
-#~ "Ez a beállítás csak a kliensre érvényes, a szerver nem veszi figyelembe."
+#~ "Kísérleti opció, látható rések jelenhetnek meg a blokkok között\n"
+#~ "ha nagyobbra van állítva, mint 0."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Képernyőmentések mappája."
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS a szünet menüben"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "$1 letöltése és telepítése, kérlek várj…"
+#, fuzzy
+#~ msgid "Floatland base height noise"
+#~ msgstr "A lebegő hegyek alapmagassága"
-#~ msgid "Back"
-#~ msgstr "Vissza"
+#, fuzzy
+#~ msgid "Floatland mountain height"
+#~ msgstr "Lebegő hegyek magassága"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Betűtípus árnyék alfa (átlátszatlanság, 0 és 255 között)."
+
+#~ msgid "Gamma"
+#~ msgstr "Gamma"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Normál felületek generálása"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Normálfelületek generálása"
+
+#~ msgid "IPv6 support."
+#~ msgstr "IPv6 támogatás."
+
+#, fuzzy
+#~ msgid "Lava depth"
+#~ msgstr "Nagy barlang mélység"
+
+#, fuzzy
+#~ msgid "Lightness sharpness"
+#~ msgstr "Fényélesség"
+
+#~ msgid "Main"
+#~ msgstr "FÅ‘"
+
+#~ msgid "Main menu style"
+#~ msgstr "Főmenü stílusa"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Kistérkép radar módban x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Kistérkép radar módban x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Kistérkép terület módban x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Kistérkép terület módban x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Név/jelszó"
+
+#~ msgid "No"
+#~ msgstr "Nem"
#~ msgid "Ok"
#~ msgstr "Ok"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parallax Occlusion ( domború textúra )"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Parallax Occlusion effekt"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Parallax Occlusion módja"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Parallax Occlusion mértéke"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "A TrueType betűtípus (ttf) vagy bitmap útvonala."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Képernyőmentések mappája."
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Egyjátékos világ visszaállítása"
+
+#~ msgid "Select Package File:"
+#~ msgstr "csomag fájl kiválasztása:"
+
+#, fuzzy
+#~ msgid "Shadow limit"
+#~ msgstr "Térképblokk korlát"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Egyjátékos mód indítása"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Generált normálfelületek erőssége."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Ezt a betűtípust bizonyos nyelvek használják."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Váltás „mozi†módba"
+
+#~ msgid "View"
+#~ msgstr "Megtekintés"
+
+#~ msgid "Waving Water"
+#~ msgstr "Hullámzó víz"
+
+#~ msgid "Waving water"
+#~ msgstr "Hullámzó víz"
+
+#~ msgid "Yes"
+#~ msgstr "Igen"
diff --git a/po/id/minetest.po b/po/id/minetest.po
index 21fd705bb..5f62541b5 100644
--- a/po/id/minetest.po
+++ b/po/id/minetest.po
@@ -2,10 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Indonesian (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-25 16:39+0000\n"
-"Last-Translator: Muhammad Rifqi Priyo Susanto "
-"<muhammadrifqipriyosusanto@gmail.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-23 15:50+0000\n"
+"Last-Translator: Reza Almanda <rezaalmanda27@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/minetest/"
"minetest/id/>\n"
"Language: id\n"
@@ -13,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.5\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -47,10 +46,6 @@ msgstr "Sambung ulang"
msgid "The server has requested a reconnect:"
msgstr "Server ini meminta untuk menyambung ulang:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Memuat..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Versi protokol tidak sesuai. "
@@ -64,11 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Server mendukung protokol antara versi $1 dan versi $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Coba nyalakan ulang daftar server publik dan periksa sambungan internet Anda."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Kami hanya mendukung protokol versi $1."
@@ -76,7 +66,8 @@ msgstr "Kami hanya mendukung protokol versi $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Kami mendukung protokol antara versi $1 dan versi $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Kami mendukung protokol antara versi $1 dan versi $2."
msgid "Cancel"
msgstr "Batal"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Dependensi:"
@@ -160,14 +152,54 @@ msgid "enabled"
msgstr "dinyalakan"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" telah ada. Apakah Anda mau menimpanya?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "Dependensi $1 dan $2 akan dipasang."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 oleh $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 sedang diunduh,\n"
+"$2 dalam antrean"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 mengunduh..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "$1 membutuhkan dependensi yang tidak bisa ditemukan."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 akan dipasang dan $2 dependensi akan dilewati."
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Semua paket"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Telah terpasang"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Kembali ke menu utama"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Permainan Dasar:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr "ContentDB tidak tersedia ketika Minetest tidak dikompilasi dengan cURL"
@@ -189,6 +221,14 @@ msgid "Install"
msgstr "Pasang"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "Pasang $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "Pasang dependensi yang belum ada"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mod"
@@ -202,9 +242,24 @@ msgid "No results"
msgstr "Tiada hasil"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Cari"
+msgid "No updates"
+msgstr "Tiada pembaruan"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "Tidak ditemukan"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Timpa"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "Harap pastikan bahwa permainan dasar telah sesuai."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "Diantrekan"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -219,8 +274,12 @@ msgid "Update"
msgstr "Perbarui"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "Tinjau"
+msgid "Update All [$1]"
+msgstr "Perbarui Semua [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Lihat informasi lebih lanjut di peramban web"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -284,7 +343,7 @@ msgstr "Tanah mengambang di langit"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floatlands (experimental)"
-msgstr "Floatland (uji coba)"
+msgstr "Floatland (tahap percobaan)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -518,6 +577,10 @@ msgid "Scale"
msgstr "Skala"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Cari"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Pilih direktori"
@@ -634,6 +697,20 @@ msgstr "Gagal memasang mod sebagai $1"
msgid "Unable to install a modpack as a $1"
msgstr "Gagal memasang paket mod sebagai $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Memuat..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Skrip sisi klien dimatikan"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Coba nyalakan ulang daftar server publik dan periksa sambungan internet Anda."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Jelajahi konten daring"
@@ -687,6 +764,18 @@ msgid "Credits"
msgstr "Penghargaan"
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr "Pilih direktori"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Membuka direktori yang berisi dunia, permainan, mod, dan paket tekstur\n"
+"dari pengguna dalam pengelola/penjelajah berkas."
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Penyumbang Sebelumnya"
@@ -703,14 +792,10 @@ msgid "Bind Address"
msgstr "Alamat Sambungan"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Konfigurasi"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Mode Kreatif"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Nyalakan Kerusakan"
@@ -727,8 +812,8 @@ msgid "Install games from ContentDB"
msgstr "Pasang permainan dari ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Nama/Kata Sandi"
+msgid "Name"
+msgstr "Nama"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -739,6 +824,10 @@ msgid "No world created or selected!"
msgstr "Tiada dunia yang dibuat atau dipilih!"
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "Kata sandi"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Mainkan Permainan"
@@ -747,6 +836,10 @@ msgid "Port"
msgstr "Porta"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "Pilih Mod"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Pilih Dunia:"
@@ -762,23 +855,23 @@ msgstr "Mulai Permainan"
msgid "Address / Port"
msgstr "Alamat/Porta"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Sambung"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Mode kreatif"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Kerusakan dinyalakan"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Hapus favorit"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Favorit"
@@ -786,16 +879,16 @@ msgstr "Favorit"
msgid "Join Game"
msgstr "Gabung Permainan"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Nama/Kata Sandi"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP dinyalakan"
@@ -824,10 +917,6 @@ msgid "Antialiasing:"
msgstr "Antialiasing:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Apakah Anda yakin ingin mengatur ulang dunia Anda?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Simpan Ukuran Layar"
@@ -835,10 +924,6 @@ msgstr "Simpan Ukuran Layar"
msgid "Bilinear Filter"
msgstr "Filter Bilinear"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Bump Mapping"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Ubah Tombol"
@@ -852,10 +937,6 @@ msgid "Fancy Leaves"
msgstr "Daun Megah"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Buat Normal Maps"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmap"
@@ -864,10 +945,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Filter Aniso. + Mipmap"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Tidak"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Tanpa Filter"
@@ -895,19 +972,11 @@ msgstr "Daun Opak"
msgid "Opaque Water"
msgstr "Air Opak"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Parallax Occlusion"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Partikel"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Atur ulang dunia pemain tunggal"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Layar:"
@@ -920,6 +989,10 @@ msgid "Shaders"
msgstr "Shader"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr "Shader (tahap percobaan)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Shader (tidak tersedia)"
@@ -941,7 +1014,7 @@ msgstr "Untuk menggunakan shader, pengandar OpenGL harus digunakan."
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
msgid "Tone Mapping"
-msgstr "Tone Mapping"
+msgstr "Pemetaan Nada"
#: builtin/mainmenu/tab_settings.lua
msgid "Touchthreshold: (px)"
@@ -963,22 +1036,6 @@ msgstr "Air Berombak"
msgid "Waving Plants"
msgstr "Tanaman Berayun"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Ya"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Konfigurasi mod"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Beranda"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Mulai Pemain Tunggal"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Sambungan kehabisan waktu."
@@ -1140,13 +1197,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1156,12 +1213,12 @@ msgstr ""
"- %s: geser kiri\n"
"- %s: geser kanan\n"
"- %s: lompat/panjat\n"
+"- %s: gali/pukul\n"
+"- %s: taruh/pakai\n"
"- %s: menyelinap/turun\n"
"- %s: jatuhkan barang\n"
"- %s: inventaris\n"
"- Tetikus: belok/lihat\n"
-"- Klik kiri: gali/pukul\n"
-"- Klik kanan: taruh/pakai\n"
"- Roda tetikus: pilih barang\n"
"- %s: obrolan\n"
@@ -1294,34 +1351,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Peta mini sedang dilarang oleh permainan atau mod"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Peta mini disembunyikan"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Peta mini mode radar, perbesaran 1x"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Peta mini mode radar, perbesaran 2x"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Peta mini mode radar, perbesaran 4x"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Peta mini mode permukaan, perbesaran 1x"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Peta mini mode permukaan, perbesaran 2x"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Peta mini mode permukaan, perbesaran 4x"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Mode tembus blok dimatikan"
@@ -1713,6 +1742,24 @@ msgstr "Tombol X 2"
msgid "Zoom"
msgstr "Zum"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Peta mini disembunyikan"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Peta mini mode radar, perbesaran %dx"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Peta mini mode permukaan, perbesaran %dx"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "Peta mini mode tekstur"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Kata sandi tidak cocok!"
@@ -1984,14 +2031,6 @@ msgstr ""
"untuk pulau, atur ketiga angka menjadi sama untuk bentuk mentah."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = parallax occlusion dengan informasi kemiringan (cepat).\n"
-"1 = relief mapping (pelan, lebih akurat)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "Noise 2D yang mengatur bentuk/ukuran punggung gunung."
@@ -2118,6 +2157,10 @@ msgid "ABM interval"
msgstr "Selang waktu ABM"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr "Anggaran waktu ABM"
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr "Batas mutlak antrean kemunculan blok"
@@ -2178,7 +2221,7 @@ msgid ""
msgstr ""
"Sesuaikan kepadatan lapisan floatland.\n"
"Tambahkan nilai untuk menambah kepadatan. Dapat positif atau negatif.\n"
-"Nilai = 0.0: 50% volume adalah floatland.\n"
+"Nilai = 0.0: 50% o volume adalah floatland.\n"
"Nilai = 2.0 (dapat lebih tinggi tergantung 'mgv7_np_floatland', selalu uji\n"
"terlebih dahulu) membuat lapisan floatland padat (penuh)."
@@ -2376,10 +2419,6 @@ msgid "Builtin"
msgstr "Terpasang bawaan"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Bumpmapping"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2456,20 +2495,6 @@ msgstr ""
"Nilai 0.0 adalah minimum, 1.0 adalah maksimum."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Mengubah antarmuka menu utama:\n"
-"- Full: Banyak dunia pemain tunggal, pilih permainan, paket tekstur, dll.\n"
-"- Simple: Satu dunia pemain tunggal, tanpa pilihan permainan atau paket\n"
-"tekstur. Cocok untuk layar kecil."
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr "Ukuran fon obrolan"
@@ -2590,8 +2615,8 @@ msgid ""
"allow them to upload and download data to/from the internet."
msgstr ""
"Daftar yang dipisahkan dengan koma dari mod yang dibolehkan untuk\n"
-"mengakses HTTP API, membolehkan mereka untuk mengunggah dan\n"
-"mengunduh data ke/dari internet."
+"mengakses HTTP API, membolehkan mereka untuk mengunggah dan mengunduh data "
+"ke/dari internet."
#: src/settings_translation_file.cpp
msgid ""
@@ -2599,7 +2624,7 @@ msgid ""
"functions even when mod security is on (via request_insecure_environment())."
msgstr ""
"Daftar yang dengan dipisahkan koma dari mod terpercaya yang diperbolehkan\n"
-"untuk mengakses fungsi yang tidak aman bahkan ketika mod security aktif\n"
+"untuk mengakses fungsi yang tidak aman bahkan ketika mod security aktif "
"(melalui request_insecure_environment())."
#: src/settings_translation_file.cpp
@@ -2635,6 +2660,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "Daftar Hitam Flag ContentDB"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "Jumlah Maks Pengunduhan ContentDB Bersamaan"
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "URL ContentDB"
@@ -2700,16 +2729,24 @@ msgid "Crosshair alpha"
msgstr "Keburaman crosshair"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr "Keburaman crosshair (keopakan, dari 0 sampai 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Keburaman crosshair (keopakan, dari 0 sampai 255).\n"
+"Juga mengatur warna crosshair objek"
#: src/settings_translation_file.cpp
msgid "Crosshair color"
msgstr "Warna crosshair"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Warna crosshair: (merah,hijau,biru) atau (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Warna crosshair (R,G,B),\n"
+"sekaligus mengatur warna crosshair objek"
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2813,14 +2850,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Menetapkan lokasi dan medan dari danau dan bukit pilihan."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Menentukan langkah penyampelan tekstur.\n"
-"Nilai lebih tinggi menghasilkan peta lebih halus."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Mengatur ketinggian dasar tanah."
@@ -2899,6 +2928,10 @@ msgid "Desynchronize block animation"
msgstr "Putuskan sinkronasi animasi blok"
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr "Tombol gali"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Partikel menggali"
@@ -2963,7 +2996,8 @@ msgid "Enable console window"
msgstr "Gunakan jendela konsol"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Gunakan mode kreatif pada peta baru."
#: src/settings_translation_file.cpp
@@ -3073,17 +3107,6 @@ msgid "Enables animation of inventory items."
msgstr "Jalankan animasi barang inventaris."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Gunakan bumpmapping untuk tekstur. Normalmap harus disediakan oleh paket\n"
-"tekstur atau harus dihasilkan otomatis.\n"
-"Membutuhkan penggunaan shader."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Gunakan tembolok untuk facedir mesh yang diputar."
@@ -3093,22 +3116,6 @@ msgstr "Gunakan peta mini."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Buat normalmap secara langsung (efek Emboss).\n"
-"Membutuhkan penggunaan bumpmapping."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Gunakan pemetaan parallax occlusion.\n"
-"Membutuhkan penggunaan shader."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3129,14 +3136,6 @@ msgstr "Metode benda (entity)"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Masih tahap percobaan, dapat menyebabkan terlihatnya spasi antarblok\n"
-"saat diatur dengan angka yang lebih besar dari 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3152,8 +3151,8 @@ msgstr ""
"yang rata dan cocok untuk lapisan floatland padat (penuh)."
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS (bingkai per detik) pada menu jeda"
+msgid "FPS when unfocused or paused"
+msgstr "FPS (bingkai per detik) saat dijeda atau tidak difokuskan"
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3474,10 +3473,6 @@ msgid "GUI scaling filter txr2img"
msgstr "Filter txr2img skala GUI"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Buat normalmap"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Callback global"
@@ -3488,9 +3483,9 @@ msgid ""
"and junglegrass, in all other mapgens this flag controls all decorations."
msgstr ""
"Atribut pembuatan peta global.\n"
-"Dalam pembuat peta v6, flag \"decorations\" mengatur semua hiasan kecuali\n"
-"pohon dan rumput rimba. Dalam pembuat peta lain, flag ini mengatur\n"
-"semua dekorasi."
+"Dalam pembuat peta v6, flag \"decorations\" mengatur semua hiasan, kecuali\n"
+"pohon dan rumput rimba. Dalam pembuat peta lain, flag ini mengatur semua "
+"dekorasi."
#: src/settings_translation_file.cpp
msgid ""
@@ -3539,12 +3534,12 @@ msgstr "Tombol beralih HUD"
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Penanganan panggilan Lua API usang:\n"
-"- legacy: (mencoba untuk) menyerupai aturan lawas (bawaan untuk rilis).\n"
+"- none: jangan catat panggilan usang\n"
"- log: menyerupai dan mencatat asal-usul panggilan usang (bawaan untuk "
"awakutu).\n"
"- error: batalkan penggunaan panggilan usang (disarankan untuk pengembang "
@@ -3827,9 +3822,8 @@ msgid ""
"If FPS would go higher than this, limit it by sleeping\n"
"to not waste CPU power for no benefit."
msgstr ""
-"Jika FPS (bingkai per detik) lebih tinggi dari ini, akan\n"
-"dibatasi dengan jeda agar tidak menghabiskan tenaga\n"
-"CPU dengan percuma."
+"Jika FPS (bingkai per detik) lebih tinggi daripada ini, akan dibatasi\n"
+"dengan jeda agar tidak membuang tenaga CPU dengan percuma."
#: src/settings_translation_file.cpp
msgid ""
@@ -3915,8 +3909,8 @@ msgid ""
msgstr ""
"Jika dinyalakan, Anda dapat menaruh blok pada posisi (kaki + ketinggian "
"mata)\n"
-"tempat Anda berdiri.\n"
-"Ini berguna saat bekerja dengan kotak nodus (nodebox) dalam daerah sempit."
+"tempat Anda berdiri. Ini berguna saat bekerja dengan kotak nodus (nodebox) "
+"dalam daerah sempit."
#: src/settings_translation_file.cpp
msgid ""
@@ -3991,8 +3985,7 @@ msgid ""
"Instrument global callback functions on registration.\n"
"(anything you pass to a minetest.register_*() function)"
msgstr ""
-"Melengkapi fungsi panggil balik (callback) global saat didaftarkan,\n"
-"dengan perkakas.\n"
+"Melengkapi fungsi panggil balik (callback) global saat didaftarkan.\n"
"(semua yang dimasukkan ke fungsi minetest.register_*())"
#: src/settings_translation_file.cpp
@@ -4067,8 +4060,7 @@ msgstr ""
"Perulangan fungsi rekursif.\n"
"Menaikkan nilai ini menaikkan detail, tetapi juga menambah\n"
"beban pemrosesan.\n"
-"Saat perulangan = 20, pembuat peta ini memiliki beban yang\n"
-"mirip dengan pembuat peta v7."
+"Saat perulangan = 20, beban pembuat peta ini mirip dengan v7."
#: src/settings_translation_file.cpp
msgid "Joystick ID"
@@ -4079,6 +4071,10 @@ msgid "Joystick button repetition interval"
msgstr "Jarak penekanan tombol joystick terus-menerus"
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr "Zona mati joystick"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Kepekaan ruang gerak joystick"
@@ -4182,6 +4178,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tombol untuk gali.\n"
+"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4324,6 +4330,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tombol untuk taruh.\n"
+"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -5071,10 +5087,6 @@ msgid "Main menu script"
msgstr "Skrip menu utama"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Gaya menu utama"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5090,6 +5102,14 @@ msgid "Makes all liquids opaque"
msgstr "Buat semua cairan buram"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr "Tingkat Kompresi Peta untuk Penyimpanan Diska"
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr "Tingkat Kompresi Peta untuk Transfer Jaringan"
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Direktori peta"
@@ -5272,8 +5292,10 @@ msgid "Maximum FPS"
msgstr "FPS (bingkai per detik) maksimum"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
-msgstr "FPS (bingkai per detik) maksimum saat permainan dijeda."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
+msgstr ""
+"FPS (bingkai per detik) maksimum saat permainan dijeda atau saat jendela "
+"tidak difokuskan."
#: src/settings_translation_file.cpp
msgid "Maximum forceloaded blocks"
@@ -5330,6 +5352,16 @@ msgstr ""
"Batasan ini diatur per pemain."
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+"Jumlah maksimum pengunduhan bersamaan. Pengunduhan yang melebihi batas ini "
+"akan\n"
+"diantrekan. Nilai ini harus lebih rendah daripada curl_parallel_limit."
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr "Jumlah maksimum blok peta yang dipaksa muat."
@@ -5582,14 +5614,6 @@ msgid "Noises"
msgstr "Noise"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Sampling normalmap"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Kekuatan normalmap"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "Jumlah utas kemunculan"
@@ -5615,8 +5639,8 @@ msgstr ""
"PERINGATAN: Penambahan jumlah utas kemunculan mempercepat mesin pembuat\n"
"peta, tetapi dapat merusak kinerja permainan dengan mengganggu proses lain,\n"
"terutama dalam pemain tunggal dan/atau saat menjalankan kode Lua dalam\n"
-"\"on_generated\". Untuk kebanyakan pengguna, pengaturan yang cocok adalah \"1"
-"\"."
+"\"on_generated\". Untuk kebanyakan pengguna, pengaturan yang cocok adalah "
+"\"1\"."
#: src/settings_translation_file.cpp
msgid ""
@@ -5630,10 +5654,6 @@ msgstr ""
"penggunaan memori (4096=100MB, kasarannya)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "Jumlah pengulangan parallax occlusion."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Gudang konten daring"
@@ -5657,38 +5677,11 @@ msgid ""
"formspec is\n"
"open."
msgstr ""
-"Buka menu jeda saat jendela hilang fokus. Tidak menjeda jika formspec sedang "
+"Buka menu jeda saat jendela hilang fokus. Tidak menjeda jika formspec "
+"sedang \n"
"dibuka."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "Bias keseluruhan dari efek parallax occlusion, biasanya skala/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Skala keseluruhan dari efek parallax occlusion."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Parallax occlusion"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Pergeseran parallax occlusion"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Pengulangan parallax occlusion"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Mode parallax occlusion"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "Skala parallax occlusion"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5769,6 +5762,14 @@ msgid "Pitch move mode"
msgstr "Mode gerak sesuai pandang"
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr "Tombol taruh"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr "Jeda waktu taruh berulang"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5836,7 +5837,7 @@ msgstr "Profiling"
#: src/settings_translation_file.cpp
msgid "Prometheus listener address"
-msgstr ""
+msgstr "Alamat pendengar Prometheus"
#: src/settings_translation_file.cpp
msgid ""
@@ -5845,6 +5846,10 @@ msgid ""
"enable metrics listener for Prometheus on that address.\n"
"Metrics can be fetch on http://127.0.0.1:30000/metrics"
msgstr ""
+"Alamat pendengar Prometheus.\n"
+"Jika Minetest dikompilasi dengan pilihan ENABLE_PROMETHEUS dinyalakan,\n"
+"ini menyalakan pendengar metrik untuk Prometheus pada alamat itu.\n"
+"Metrik dapat diambil pada http://127.0.0.1:30000/metrics"
#: src/settings_translation_file.cpp
msgid "Proportion of large caves that contain liquid."
@@ -5885,7 +5890,7 @@ msgstr "Media jarak jauh"
#: src/settings_translation_file.cpp
msgid "Remote port"
-msgstr "Porta server jarak jauh"
+msgstr "Port utk Kendali Jarak Jauh"
#: src/settings_translation_file.cpp
msgid ""
@@ -5949,10 +5954,6 @@ msgid "Right key"
msgstr "Tombol kanan"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Jarak klik kanan berulang"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "Kedalaman kanal sungai"
@@ -6021,12 +6022,11 @@ msgid ""
"edge pixels when images are scaled by non-integer sizes."
msgstr ""
"Perbesar/perkecil GUI sesuai pengguna.\n"
-"Menggunakan filter nearest-neighbor-anti-alias untuk\n"
-"perbesar/perkecil GUI.\n"
+"Menggunakan filter nearest-neighbor-anti-alias untuk perbesar/perkecil GUI.\n"
"Ini akan menghaluskan beberapa tepi kasar dan\n"
"mencampurkan piksel-piksel saat diperkecil dengan\n"
-"mengaburkan beberapa piksel tepi saat diperkecil dengan\n"
-"skala bukan bilangan bulat."
+"mengaburkan beberapa piksel tepi saat diperkecil dengan skala bukan bilangan "
+"bulat."
#: src/settings_translation_file.cpp
msgid "Screen height"
@@ -6249,6 +6249,19 @@ msgid "Show entity selection boxes"
msgstr "Tampilkan kotak pilihan benda"
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Tampilkan kotak pilihan entitas\n"
+"Dibutuhkan mulai ulang setelah mengganti ini."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Fon tebal bawaan"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Pesan saat server dimatikan"
@@ -6266,7 +6279,8 @@ msgstr ""
"PERINGATAN! Tidak ada untungnya dan berbahaya jika menaikkan\n"
"nilai ini di atas 5.\n"
"Mengecilkan nilai ini akan meningkatkan kekerapan gua dan dungeon.\n"
-"Mengubah nilai ini untuk kegunaan khusus, membiarkannya disarankan."
+"Mengubah nilai ini untuk kegunaan khusus, membiarkannya \n"
+"disarankan."
#: src/settings_translation_file.cpp
msgid ""
@@ -6401,10 +6415,6 @@ msgid "Strength of 3D mode parallax."
msgstr "Kekuatan mode paralaks 3D."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Kekuatan normalmap yang dibuat."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6435,6 +6445,16 @@ msgid ""
"server-intensive extreme water flow and to avoid vast flooding of the\n"
"world surface below."
msgstr ""
+"Tingkat permukaan peletakan air pada lapisan floatland padat.\n"
+"Air tidak ditaruh secara bawaan dan akan ditaruh jika nilai ini diatur ke\n"
+"atas 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (mulai dari\n"
+"penirusan atas).\n"
+"***PERINGATAN, POTENSI BAHAYA TERHADAP DUNIA DAN KINERJA SERVER***\n"
+"Ketika penaruhan air dinyalakan, floatland wajib diatur dan diuji agar\n"
+"berupa lapisan padat dengan mengatur 'mgv7_floatland_density' ke 2.0\n"
+"(atau nilai wajib lainnya sesuai 'mgv7_np_floatland') untuk menghindari\n"
+"aliran air ekstrem yang membebani server dan menghindari banjir\n"
+"bandang di permukaan dunia bawah."
#: src/settings_translation_file.cpp
msgid "Synchronous SQLite"
@@ -6513,6 +6533,10 @@ msgid "The URL for the content repository"
msgstr "URL dari gudang konten"
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr "Zona mati joystick yang digunakan"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6568,7 +6592,6 @@ msgstr ""
"server Anda."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"The radius of the volume of blocks around every player that is subject to "
"the\n"
@@ -6578,8 +6601,8 @@ msgid ""
"maintained.\n"
"This should be configured together with active_object_send_range_blocks."
msgstr ""
-"Jari-jari ruang di sekitar pemain yang menjadi blok aktif, dalam blok peta\n"
-"(16 nodus).\n"
+"Jari-jari volume blok di sekitar pemain yang menjadi blok aktif, dalam\n"
+"blok peta (16 nodus).\n"
"Dalam blok aktif, objek dimuat dan ABM berjalan.\n"
"Ini juga jangkauan minimum pengelolaan objek aktif (makhluk).\n"
"Ini harus diatur bersama dengan active_object_range."
@@ -6590,14 +6613,14 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
"Penggambar untuk Irrlicht.\n"
"Mulai ulang dibutuhkan setelah mengganti ini.\n"
"Catatan: Pada Android, gunakan OGLES1 jika tidak yakin! Apl mungkin gagal\n"
-"berjalan pada lainnya. Pada platform lain, OpenGL disarankan yang menjadi\n"
-"satu-satunya pengandar yang mendukung shader untuk saat ini."
+"berjalan untuk pilihan lainnya. Pada platform lain, OpenGL disarankan.\n"
+"Shader didukung oleh OpenGL (khusus desktop) dan OGLES2 (tahap percobaan)"
#: src/settings_translation_file.cpp
msgid ""
@@ -6632,6 +6655,14 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+"Anggaran waktu yang dibolehkan untuk ABM dalam menjalankan\n"
+"tiap langkah (dalam pecahan dari jarak ABM)"
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6640,11 +6671,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
-"Jeda dalam detik antarklik kanan berulang saat menekan tombol kanan tetikus."
+"Jeda dalam detik antar-penaruhan berulang saat menekan \n"
+"tombol taruh."
#: src/settings_translation_file.cpp
msgid "The type of joystick"
@@ -6796,12 +6827,29 @@ msgid ""
"especially when using a high resolution texture pack.\n"
"Gamma correct downscaling is not supported."
msgstr ""
-"Gunakan mip mapping untuk penyekalaan tekstur. Dapat sedikit\n"
-"meningkatkan kinerja, terutama saat menggunakan paket tekstur\n"
-"beresolusi tinggi.\n"
+"Pakai mip mapping untuk penyekalaan tekstur. Bisa sedikit menaikkan\n"
+"kinerja, terutama pada saat memakai paket tekstur beresolusi tinggi.\n"
"Pengecilan dengan tepat gamma tidak didukung."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+"Pakai antialias multisampel (MSAA) untuk memperhalus tepian blok.\n"
+"Algoritme ini memperhalus tampilan 3D sambil menjaga ketajaman gambar,\n"
+"tetapi tidak memengaruhi tekstur bagian dalam (yang terlihat khususnya\n"
+"dengan tekstur transparan).\n"
+"Muncul spasi tampak di antara nodus ketika shader dimatikan.\n"
+"Jika diatur 0, MSAA dimatikan.\n"
+"Dibutuhkan mulai ulang setelah penggantian pengaturan ini."
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "Gunakan pemfilteran trilinear saat mengubah ukuran tekstur."
@@ -6987,10 +7035,9 @@ msgid ""
"filtered in software, but some images are generated directly\n"
"to hardware (e.g. render-to-texture for nodes in inventory)."
msgstr ""
-"Saat gui_scaling_filter diatur ke true, semua gambar GUI harus\n"
-"difilter dalam perangkat lunak, tetapi beberapa gambar dibuat\n"
-"langsung ke perangkat keras (misal. render ke tekstur untuk nodus\n"
-"dalam inventaris)."
+"Saat gui_scaling_filter diatur ke true, semua gambar GUI harus difilter\n"
+"dalam perangkat lunak, tetapi beberapa gambar dibuat langsung ke\n"
+"perangkat keras (misal. render ke tekstur untuk nodus dalam inventaris)."
#: src/settings_translation_file.cpp
msgid ""
@@ -6999,11 +7046,10 @@ msgid ""
"to the old scaling method, for video drivers that don't\n"
"properly support downloading textures back from hardware."
msgstr ""
-"Saat gui_scaling_filter_txr2img dibolehkan, salin gambar-gambar\n"
-"tersebut dari perangkat keras ke perangkat lunak untuk perbesar/\n"
-"perkecil. Saat tidak dibolehkan, kembali ke cara lama, untuk\n"
-"pengandar video yang tidak mendukung pengunduhan tekstur dari\n"
-"perangkat keras."
+"Saat gui_scaling_filter_txr2img dibolehkan, salin gambar-gambar tersebut\n"
+"dari perangkat keras ke perangkat lunak untuk perbesar/perkecil. Saat tidak\n"
+"dibolehkan, kembali ke cara lama, untuk pengandar video yang tidak\n"
+"mendukung pengunduhan tekstur dari perangkat keras."
#: src/settings_translation_file.cpp
msgid ""
@@ -7038,6 +7084,12 @@ msgstr ""
"Jika dimatikan, fon bitmap dan vektor XML akan dipakai."
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr "Apakah animasi tekstur nodus harus tidak disinkronkan tiap blok peta."
@@ -7141,8 +7193,8 @@ msgid ""
"Y of mountain density gradient zero level. Used to shift mountains "
"vertically."
msgstr ""
-"Titik acuan kemiringan kepadatan gunung pada sumbu Y.\n"
-"Digunakan untuk menggeser gunung secara vertikal."
+"Titik acuan kemiringan kepadatan gunung pada sumbu Y. Digunakan untuk "
+"menggeser gunung secara vertikal."
#: src/settings_translation_file.cpp
msgid "Y of upper limit of large caves."
@@ -7159,6 +7211,10 @@ msgid ""
"For a solid floatland layer, this controls the height of hills/mountains.\n"
"Must be less than or equal to half the distance between the Y limits."
msgstr ""
+"Jarak Y penirusan floatland dari padat sampai kosong.\n"
+"Penirusan dimulai dari jarak ini sampai batas Y.\n"
+"Untuk lapisan floatland padat, nilai ini mengatur tinggi bukit/gunung.\n"
+"Nilai ini harus kurang dari atau sama dengan setengah jarak antarbatas Y."
#: src/settings_translation_file.cpp
msgid "Y-level of average terrain surface."
@@ -7181,6 +7237,34 @@ msgid "Y-level of seabed."
msgstr "Ketinggian Y dari dasar laut."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Tingkat kompresi ZLib saat pengiriman blok peta kepada klien.\n"
+"-1 - tingkat kompresi Zlib bawaan\n"
+"0 - tanpa kompresi, tercepat\n"
+"9 - kompresi terbaik, terlambat\n"
+"(tingkat 1-3 pakai metode \"cepat\" Zlib, 4-9 pakai metode normal)"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Tingkat kompresi ZLib saat penyimpanan blok peta kepada klien.\n"
+"-1 - tingkat kompresi Zlib bawaan\n"
+"0 - tanpa kompresi, tercepat\n"
+"9 - kompresi terbaik, terlambat\n"
+"(tingkat 1-3 pakai metode \"cepat\" Zlib, 4-9 pakai metode normal)"
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "Batas waktu cURL mengunduh berkas"
@@ -7192,82 +7276,78 @@ msgstr "Batas cURL paralel"
msgid "cURL timeout"
msgstr "Waktu habis untuk cURL"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Mode sinema"
-
-#~ msgid "Select Package File:"
-#~ msgstr "Pilih berkas paket:"
-
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Batas atas Y untuk lava dalam gua besar."
-
-#~ msgid "Waving Water"
-#~ msgstr "Air Berombak"
-
-#~ msgid "Whether dungeons occasionally project from the terrain."
-#~ msgstr "Apakah dungeon terkadang muncul dari medan."
-
-#~ msgid "Projecting dungeons"
-#~ msgstr "Dungeon yang menonjol"
-
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Ketinggian Y tempat bayangan floatland diperpanjang."
-
-#~ msgid "Y-level of floatland midpoint and lake surface."
-#~ msgstr "Ketinggian Y dari titik tengah floatland dan permukaan danau."
-
-#~ msgid "Waving water"
-#~ msgstr "Air berombak"
-
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
#~ msgstr ""
-#~ "Variasi dari ketinggian bukit dan kedalaman danau pada medan halus "
-#~ "floatland."
+#~ "0 = parallax occlusion dengan informasi kemiringan (cepat).\n"
+#~ "1 = relief mapping (pelan, lebih akurat)."
#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
#~ msgstr ""
-#~ "Ketinggian maksimum secara umum, di atas dan di bawah titik tengah, dari "
-#~ "gunung floatland."
+#~ "Sesuaikan pengodean gamma untuk tabel cahaya.\n"
+#~ "Angka yang lebih tinggi lebih terang.\n"
+#~ "Pengaturan ini untuk klien saja dan diabaikan oleh peladen."
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Fon ini akan digunakan pada bahasa tertentu."
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgstr ""
+#~ "Ubah cara gunung floatland meramping di atas dan di bawah titik tengah."
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "Kekuatan penguatan tengah kurva cahaya."
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Apakah Anda yakin ingin mengatur ulang dunia Anda?"
-#~ msgid "Shadow limit"
-#~ msgstr "Batas bayangan"
+#~ msgid "Back"
+#~ msgstr "Kembali"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "Jalur ke TrueTypeFont atau bitmap."
+#~ msgid "Bump Mapping"
+#~ msgstr "Bump Mapping"
-#~ msgid "Lightness sharpness"
-#~ msgstr "Kecuraman keterangan"
+#~ msgid "Bumpmapping"
+#~ msgstr "Bumpmapping"
-#~ msgid "Lava depth"
-#~ msgstr "Kedalaman lava"
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "Titik tengah penguatan tengah kurva cahaya."
-#~ msgid "IPv6 support."
-#~ msgstr "Dukungan IPv6."
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "Mengubah antarmuka menu utama:\n"
+#~ "- Full: Banyak dunia pemain tunggal, pilih permainan, paket tekstur, "
+#~ "dll.\n"
+#~ "- Simple: Satu dunia pemain tunggal, tanpa pilihan permainan atau "
+#~ "paket\n"
+#~ "tekstur. Cocok untuk layar kecil."
-#~ msgid "Gamma"
-#~ msgstr "Gamma"
+#~ msgid "Config mods"
+#~ msgstr "Konfigurasi mod"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Keburaman bayangan fon (keopakan, dari 0 sampai 255)."
+#~ msgid "Configure"
+#~ msgstr "Konfigurasi"
-#~ msgid "Floatland mountain height"
-#~ msgstr "Ketinggian gunung floatland"
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "Atur kepadatan floatland berbentuk gunung.\n"
+#~ "Merupakan pergeseran yang ditambahkan ke nilai noise \"mgv7_np_mountain\"."
-#~ msgid "Floatland base height noise"
-#~ msgstr "Noise ketinggian dasar floatland"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Mengatur lebar terowongan, nilai lebih kecil terowongan semakin lebar."
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Gunakan pemetaan suasana (tone mapping) filmis"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Warna crosshair: (merah,hijau,biru) atau (R,G,B)."
-#~ msgid "Enable VBO"
-#~ msgstr "Gunakan VBO"
+#~ msgid "Darkness sharpness"
+#~ msgstr "Kecuraman kegelapan"
#~ msgid ""
#~ "Defines areas of floatland smooth terrain.\n"
@@ -7276,50 +7356,213 @@ msgstr "Waktu habis untuk cURL"
#~ "Mengatur daerah dari medan halus floatland.\n"
#~ "Floatland halus muncul saat noise > 0."
-#~ msgid "Darkness sharpness"
-#~ msgstr "Kecuraman kegelapan"
-
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
#~ msgstr ""
-#~ "Mengatur lebar terowongan, nilai lebih kecil terowongan semakin lebar."
+#~ "Menentukan langkah penyampelan tekstur.\n"
+#~ "Nilai lebih tinggi menghasilkan peta lebih halus."
+
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Mengunduh dan memasang $1, mohon tunggu..."
+
+#~ msgid "Enable VBO"
+#~ msgstr "Gunakan VBO"
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Atur kepadatan floatland berbentuk gunung.\n"
-#~ "Merupakan pergeseran yang ditambahkan ke nilai noise \"mgv7_np_mountain\"."
+#~ "Gunakan bumpmapping untuk tekstur. Normalmap harus disediakan oleh paket\n"
+#~ "tekstur atau harus dihasilkan otomatis.\n"
+#~ "Membutuhkan penggunaan shader."
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "Titik tengah penguatan tengah kurva cahaya."
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Gunakan pemetaan suasana (tone mapping) filmis"
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgid ""
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Ubah cara gunung floatland meramping di atas dan di bawah titik tengah."
+#~ "Buat normalmap secara langsung (efek Emboss).\n"
+#~ "Membutuhkan penggunaan bumpmapping."
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Sesuaikan pengodean gamma untuk tabel cahaya.\n"
-#~ "Angka yang lebih tinggi lebih terang.\n"
-#~ "Pengaturan ini untuk klien saja dan diabaikan oleh peladen."
+#~ "Gunakan pemetaan parallax occlusion.\n"
+#~ "Membutuhkan penggunaan shader."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Jalur untuk menyimpan tangkapan layar."
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
+#~ msgstr ""
+#~ "Masih tahap percobaan, dapat menyebabkan terlihatnya spasi antarblok\n"
+#~ "saat diatur dengan angka yang lebih besar dari 0."
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "Kekuatan parallax occlusion"
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS (bingkai per detik) pada menu jeda"
+
+#~ msgid "Floatland base height noise"
+#~ msgstr "Noise ketinggian dasar floatland"
+
+#~ msgid "Floatland mountain height"
+#~ msgstr "Ketinggian gunung floatland"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Keburaman bayangan fon (keopakan, dari 0 sampai 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "Gamma"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Buat Normal Maps"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Buat normalmap"
+
+#~ msgid "IPv6 support."
+#~ msgstr "Dukungan IPv6."
+
+#~ msgid "Lava depth"
+#~ msgstr "Kedalaman lava"
+
+#~ msgid "Lightness sharpness"
+#~ msgstr "Kecuraman keterangan"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "Batas antrean kemunculan (emerge queue) pada diska"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Mengunduh dan memasang $1, mohon tunggu..."
+#~ msgid "Main"
+#~ msgstr "Beranda"
-#~ msgid "Back"
-#~ msgstr "Kembali"
+#~ msgid "Main menu style"
+#~ msgstr "Gaya menu utama"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Peta mini mode radar, perbesaran 2x"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Peta mini mode radar, perbesaran 4x"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Peta mini mode permukaan, perbesaran 2x"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Peta mini mode permukaan, perbesaran 4x"
+
+#~ msgid "Name/Password"
+#~ msgstr "Nama/Kata Sandi"
+
+#~ msgid "No"
+#~ msgstr "Tidak"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Sampling normalmap"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Kekuatan normalmap"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "Jumlah pengulangan parallax occlusion."
#~ msgid "Ok"
#~ msgstr "Oke"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "Bias keseluruhan dari efek parallax occlusion, biasanya skala/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Skala keseluruhan dari efek parallax occlusion."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parallax Occlusion"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Parallax occlusion"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Pergeseran parallax occlusion"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Pengulangan parallax occlusion"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Mode parallax occlusion"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Skala parallax occlusion"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "Kekuatan parallax occlusion"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "Jalur ke TrueTypeFont atau bitmap."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Jalur untuk menyimpan tangkapan layar."
+
+#~ msgid "Projecting dungeons"
+#~ msgstr "Dungeon yang menonjol"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Atur ulang dunia pemain tunggal"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Pilih berkas paket:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "Batas bayangan"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Mulai Pemain Tunggal"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Kekuatan normalmap yang dibuat."
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "Kekuatan penguatan tengah kurva cahaya."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Fon ini akan digunakan pada bahasa tertentu."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Mode sinema"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr ""
+#~ "Ketinggian maksimum secara umum, di atas dan di bawah titik tengah, dari "
+#~ "gunung floatland."
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr ""
+#~ "Variasi dari ketinggian bukit dan kedalaman danau pada medan halus "
+#~ "floatland."
+
+#~ msgid "View"
+#~ msgstr "Tinjau"
+
+#~ msgid "Waving Water"
+#~ msgstr "Air Berombak"
+
+#~ msgid "Waving water"
+#~ msgstr "Air berombak"
+
+#~ msgid "Whether dungeons occasionally project from the terrain."
+#~ msgstr "Apakah dungeon terkadang muncul dari medan."
+
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Batas atas Y untuk lava dalam gua besar."
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr "Ketinggian Y dari titik tengah floatland dan permukaan danau."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Ketinggian Y tempat bayangan floatland diperpanjang."
+
+#~ msgid "Yes"
+#~ msgstr "Ya"
diff --git a/po/it/minetest.po b/po/it/minetest.po
index c7ce03705..897859222 100644
--- a/po/it/minetest.po
+++ b/po/it/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Italian (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-26 10:41+0000\n"
-"Last-Translator: Hamlet <hamlatmesehub@riseup.net>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-13 08:50+0000\n"
+"Last-Translator: Jacques Lagrange <Jacques.Reads@gmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/minetest/"
"minetest/it/>\n"
"Language: it\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -46,10 +46,6 @@ msgstr "Riconnettiti"
msgid "The server has requested a reconnect:"
msgstr "Il server ha richiesto una riconnessione:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Caricamento..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "La versione del protocollo non coincide. "
@@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Il server supporta versioni di protocollo comprese tra la $1 e la $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Prova a riabilitare l'elenco dei server pubblici e controlla la tua "
-"connessione internet."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Supportiamo solo la versione $1 del protocollo."
@@ -76,7 +66,8 @@ msgstr "Supportiamo solo la versione $1 del protocollo."
msgid "We support protocol versions between version $1 and $2."
msgstr "Supportiamo solo le versioni di protocollo comprese tra la $1 e la $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Supportiamo solo le versioni di protocollo comprese tra la $1 e la $2."
msgid "Cancel"
msgstr "Annulla"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Dipendenze:"
@@ -96,7 +88,7 @@ msgstr "Disattiva tutto"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Disable modpack"
-msgstr "Disattiva la raccolta di mod"
+msgstr "Disattiva il pacchetto mod"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable all"
@@ -104,7 +96,7 @@ msgstr "Attiva tutto"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable modpack"
-msgstr "Attiva la raccolta di mod"
+msgstr "Attiva il pacchetto mod"
#: builtin/mainmenu/dlg_config_world.lua
msgid ""
@@ -136,7 +128,7 @@ msgstr "Nessuna dipendenza"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No modpack description provided."
-msgstr "Non è stata fornita nessuna descrizione per la raccolta di mod."
+msgstr "Non è stata fornita alcuna descrizione per il pacchetto mod."
#: builtin/mainmenu/dlg_config_world.lua
msgid "No optional dependencies"
@@ -160,14 +152,54 @@ msgid "enabled"
msgstr "abilitato"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" già esiste. Vuoi sovrascriverlo?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "Le dipendenze $1 e $2 verranno installate."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 di $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 in scaricamento,\n"
+"$2 in coda"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "Scaricando $1..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "Le dipendeze richieste per $1 non sono state trovate."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 verrà installato, e $2 dipendenze verranno ignorate."
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Tutti i pacchetti"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Già installato"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Torna al Menu Principale"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Gioco base:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr "ContentDB non è disponibile quando Minetest viene compilato senza cuRL"
@@ -189,6 +221,14 @@ msgid "Install"
msgstr "Installa"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "Installa $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "Installa le dipendenze mancanti"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mod"
@@ -202,13 +242,28 @@ msgid "No results"
msgstr "Nessun risultato"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Cerca"
+msgid "No updates"
+msgstr "Nessun aggiornamento"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "Non trovato"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Sovrascrivi"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "Per favore, controlla che il gioco base sia corretto."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "In coda"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
-msgstr "Raccolte di immagini"
+msgstr "Pacchetti texture"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Uninstall"
@@ -219,8 +274,12 @@ msgid "Update"
msgstr "Aggiorna"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "Vedi"
+msgid "Update All [$1]"
+msgstr "Aggiornat tutti [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Visualizza ulteriori informazioni in un browser web"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -448,15 +507,15 @@ msgstr "Accetta"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid "Rename Modpack:"
-msgstr "Rinomina la raccolta di mod:"
+msgstr "Rinomina il pacchetto mod:"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid ""
"This modpack has an explicit name given in its modpack.conf which will "
"override any renaming here."
msgstr ""
-"Questa raccolta di mod esplicita un nome in modpack.conf che sovrascriverà "
-"ogni modifica qui fatta."
+"Questo pacchetto mod esplicita un nome in modpack.conf che sovrascriverà "
+"ogni modifica qui effettuata."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "(No description of setting given)"
@@ -519,6 +578,10 @@ msgid "Scale"
msgstr "Scala"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Cerca"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Scegli la cartella"
@@ -604,8 +667,8 @@ msgstr "Installa mod: Impossibile trovare il vero nome del mod per: $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install Mod: Unable to find suitable folder name for modpack $1"
msgstr ""
-"Installa mod: Impossibile trovare un nome cartella corretto per la raccolta "
-"di mod $1"
+"Installa mod: Impossibile trovare un nome cartella corretto per il pacchetto "
+"mod $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install: Unsupported file type \"$1\" or broken archive"
@@ -617,11 +680,11 @@ msgstr "Install: File: \"$1\""
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to find a valid mod or modpack"
-msgstr "Impossibile trovare un mod o una raccolta di mod validi"
+msgstr "Impossibile trovare un mod o un pacchetto mod validi"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a $1 as a texture pack"
-msgstr "Impossibile installare un $1 come una raccolta di immagini"
+msgstr "Impossibile installare un $1 come un pacchetto texture"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a game as a $1"
@@ -633,11 +696,26 @@ msgstr "Impossibile installare un mod come un $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a modpack as a $1"
-msgstr "Impossibile installare una raccolta di mod come un $1"
+msgstr "Impossibile installare un pacchetto mod come un $1"
+
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Caricamento..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Scripting su lato client disabilitato"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Prova a riabilitare l'elenco dei server pubblici e controlla la tua "
+"connessione internet."
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
-msgstr "Mostra contenuti in linea"
+msgstr "Mostra contenuti online"
#: builtin/mainmenu/tab_content.lua
msgid "Content"
@@ -645,7 +723,7 @@ msgstr "Contenuti"
#: builtin/mainmenu/tab_content.lua
msgid "Disable Texture Pack"
-msgstr "Disattiva raccolta immagini"
+msgstr "Disattiva pacchetto texture"
#: builtin/mainmenu/tab_content.lua
msgid "Information:"
@@ -673,7 +751,7 @@ msgstr "Disinstalla la raccolta"
#: builtin/mainmenu/tab_content.lua
msgid "Use Texture Pack"
-msgstr "Usa la raccolta di immagini"
+msgstr "Usa pacchetto texture"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
@@ -688,6 +766,18 @@ msgid "Credits"
msgstr "Riconoscimenti"
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr "Apri la cartella dei dati utente"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Apre la cartella che contiene mondi, giochi, mod e pacchetti \n"
+"texture forniti dall'utente in un gestore di file / explorer."
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Contributori precedenti"
@@ -704,14 +794,10 @@ msgid "Bind Address"
msgstr "Legare indirizzo"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Configura"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Modalità creativa"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Abilita il ferimento"
@@ -725,11 +811,11 @@ msgstr "Ospita un server"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr "Installa giochi dal ContentDB"
+msgstr "Installa giochi da ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Nome/Password"
+msgid "Name"
+msgstr "Nome"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -740,6 +826,10 @@ msgid "No world created or selected!"
msgstr "Nessun mondo creato o selezionato!"
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "Password"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Avvia il gioco"
@@ -748,6 +838,10 @@ msgid "Port"
msgstr "Porta"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "Seleziona mod"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Seleziona mondo:"
@@ -757,46 +851,46 @@ msgstr "Porta del server"
#: builtin/mainmenu/tab_local.lua
msgid "Start Game"
-msgstr "Comincia gioco"
+msgstr "Gioca"
#: builtin/mainmenu/tab_online.lua
msgid "Address / Port"
msgstr "Indirizzo / Porta"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Connettiti"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Modalità creativa"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Danno fisico abilitato"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Elimina preferito"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Preferito"
#: builtin/mainmenu/tab_online.lua
msgid "Join Game"
-msgstr "Entra in un gioco"
+msgstr "Gioca online"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Nome / Password"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP abilitato"
@@ -825,10 +919,6 @@ msgid "Antialiasing:"
msgstr "Antialiasing:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Sei sicuro di azzerare il tuo mondo locale?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Ricorda dim. finestra"
@@ -836,10 +926,6 @@ msgstr "Ricorda dim. finestra"
msgid "Bilinear Filter"
msgstr "Filtro bilineare"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Bump Mapping"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Cambia i tasti"
@@ -853,10 +939,6 @@ msgid "Fancy Leaves"
msgstr "Foglie di qualità"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Genera Normal Map"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmap"
@@ -865,10 +947,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap + Filtro aniso."
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "No"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Nessun filtro"
@@ -896,19 +974,11 @@ msgstr "Foglie opache"
msgid "Opaque Water"
msgstr "Acqua opaca"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Parallax Occlusion"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Particelle"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Azzera mondo locale"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Schermo:"
@@ -921,6 +991,10 @@ msgid "Shaders"
msgstr "Shaders"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr "Shader (sperimentali)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Shaders (non disponibili)"
@@ -964,22 +1038,6 @@ msgstr "Liquidi ondeggianti"
msgid "Waving Plants"
msgstr "Piante ondeggianti"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Sì"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Config mod"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Principale"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Avvia in locale"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Connessione scaduta."
@@ -998,7 +1056,7 @@ msgstr "Inizializzazione nodi..."
#: src/client/client.cpp
msgid "Loading textures..."
-msgstr "Caricamento immagini..."
+msgstr "Caricando le texture..."
#: src/client/client.cpp
msgid "Rebuilding shaders..."
@@ -1141,13 +1199,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1156,13 +1214,13 @@ msgstr ""
"- %s: arretra\n"
"- %s: sinistra\n"
"- %s: destra\n"
-"- %s: salta/arrampica\n"
-"- %s: striscia/scendi\n"
-"- %s: butta oggetto\n"
+"- %s: salta/arrampicati\n"
+"- %s: scava/colpisci\n"
+"- %s: piazza/usa\n"
+"- %s: furtivo/scendi\n"
+"- %s: lascia oggetto\n"
"- %s: inventario\n"
"- Mouse: gira/guarda\n"
-"- Mouse sx: scava/colpisci\n"
-"- Mouse dx: piazza/usa\n"
"- Rotella mouse: scegli oggetto\n"
"- %s: chat\n"
@@ -1295,34 +1353,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Minimappa attualmente disabilitata dal gioco o da una mod"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Minimappa nascosta"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Minimappa in modalità radar, ingrandimento x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Minimappa in modalità radar, ingrandimento x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Minimappa in modalità radar, ingrandimento x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Minimappa in modalità superficie, ingrandimento x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Minimappa in modalità superficie, ingrandimento x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Minimappa in modalità superficie, ingrandimento x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Modalità incorporea disabilitata"
@@ -1348,11 +1378,11 @@ msgstr "Attivato"
#: src/client/game.cpp
msgid "Pitch move mode disabled"
-msgstr "Modalità movimento inclinazione disabilitata"
+msgstr "Modalità inclinazione movimento disabilitata"
#: src/client/game.cpp
msgid "Pitch move mode enabled"
-msgstr "Modalità movimento inclinazione abilitata"
+msgstr "Modalità inclinazione movimento abilitata"
#: src/client/game.cpp
msgid "Profiler graph shown"
@@ -1436,11 +1466,11 @@ msgstr "Chat visualizzata"
#: src/client/gameui.cpp
msgid "HUD hidden"
-msgstr "Visore nascosto"
+msgstr "HUD nascosto"
#: src/client/gameui.cpp
msgid "HUD shown"
-msgstr "Visore visualizzato"
+msgstr "HUD visibile"
#: src/client/gameui.cpp
msgid "Profiler hidden"
@@ -1714,6 +1744,24 @@ msgstr "Pulsante X 2"
msgid "Zoom"
msgstr "Ingrandimento"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Minimappa nascosta"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Minimappa in modalità radar, ingrandimento x%d"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Minimappa in modalità superficie, ingrandimento x%d"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "Minimappa in modalità texture"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Le password non corrispondono!"
@@ -1783,7 +1831,7 @@ msgstr "Diminuisci volume"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Double tap \"jump\" to toggle fly"
-msgstr "Doppio \"salta\" per scegliere il volo"
+msgstr "Doppio \"salta\" per volare"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Drop"
@@ -1824,7 +1872,7 @@ msgstr "Comando locale"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Mute"
-msgstr "Silenzio"
+msgstr "Muta audio"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Next item"
@@ -1844,7 +1892,7 @@ msgstr "Schermata"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Sneak"
-msgstr "Striscia"
+msgstr "Furtivo"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Special"
@@ -1852,35 +1900,35 @@ msgstr "Speciale"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle HUD"
-msgstr "Scegli visore"
+msgstr "HUD sì/no"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle chat log"
-msgstr "Scegli registro chat"
+msgstr "Log chat sì/no"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fast"
-msgstr "Scegli rapido"
+msgstr "Corsa sì/no"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fly"
-msgstr "Scegli volo"
+msgstr "Volo sì/no"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fog"
-msgstr "Scegli nebbia"
+msgstr "Nebbia sì/no"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle minimap"
-msgstr "Scegli minimappa"
+msgstr "Minimappa sì/no"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
-msgstr "Scegli incorporea"
+msgstr "Incorporeità sì/no"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle pitchmove"
-msgstr "Modalità beccheggio"
+msgstr "Beccheggio sì/no"
#: src/gui/guiKeyChangeMenu.cpp
msgid "press key"
@@ -1989,14 +2037,6 @@ msgstr ""
"forma grezza."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = occlusione di parallasse con informazione di inclinazione (più veloce).\n"
-"1 = relief mapping (più lenta, più accurata)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "Rumore 2D che controlla forma/dimensione delle montagne con dirupi."
@@ -2129,6 +2169,10 @@ msgid "ABM interval"
msgstr "Intervallo ABM"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr "Budget di tempo ABM"
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr "Limite assoluto di blocchi in coda da fare apparire"
@@ -2392,10 +2436,6 @@ msgid "Builtin"
msgstr "Incorporato"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Bumpmapping"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2418,7 +2458,7 @@ msgstr "Fluidità della telecamera in modalità cinematic"
#: src/settings_translation_file.cpp
msgid "Camera update toggle key"
-msgstr "Tasto di scelta dell'aggiornamento della telecamera"
+msgstr "Tasto di (dis)attivazione dell'aggiornamento della telecamera"
#: src/settings_translation_file.cpp
msgid "Cave noise"
@@ -2473,22 +2513,6 @@ msgstr ""
"Dove 0.0 è il livello di luce minimo, 1.0 è il livello di luce massimo."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Cambia l'UI del menu principale:\n"
-"- Completa: mondi locali multipli, scelta del gioco, selettore pacchetti "
-"grafici, ecc.\n"
-"- Semplice: un mondo locale, nessun selettore di gioco o pacchetti "
-"grafici.\n"
-"Potrebbe servire per gli schermi più piccoli."
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr "Dimensione del carattere dell'area di messaggistica"
@@ -2518,7 +2542,7 @@ msgstr "Lunghezza massima dei messaggi di chat"
#: src/settings_translation_file.cpp
msgid "Chat toggle key"
-msgstr "Tasto di scelta della chat"
+msgstr "Tasto di (dis)attivazione della chat"
#: src/settings_translation_file.cpp
msgid "Chatcommands"
@@ -2538,7 +2562,7 @@ msgstr "Tasto modalità cinematic"
#: src/settings_translation_file.cpp
msgid "Clean transparent textures"
-msgstr "Pulizia delle immagini trasparenti"
+msgstr "Pulizia delle texture trasparenti"
#: src/settings_translation_file.cpp
msgid "Client"
@@ -2594,8 +2618,8 @@ msgid ""
"These flags are independent from Minetest versions,\n"
"so see a full list at https://content.minetest.net/help/content_flags/"
msgstr ""
-"Elenco separato da virgole di valori da nascondere nel deposito dei "
-"contenuti.\n"
+"Elenco di valori separato da virgole che si vuole nascondere dall'archivio "
+"dei contenuti.\n"
"\"nonfree\" può essere usato per nascondere pacchetti che non si "
"qualificano\n"
"come \"software libero\", così come definito dalla Free Software "
@@ -2653,7 +2677,11 @@ msgstr "Altezza della console"
#: src/settings_translation_file.cpp
msgid "ContentDB Flag Blacklist"
-msgstr "Lista nera dei valori per il ContentDB"
+msgstr "Contenuti esclusi da ContentDB"
+
+#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "Massimi download contemporanei di ContentDB"
#: src/settings_translation_file.cpp
msgid "ContentDB URL"
@@ -2668,9 +2696,9 @@ msgid ""
"Continuous forward movement, toggled by autoforward key.\n"
"Press the autoforward key again or the backwards movement to disable."
msgstr ""
-"Avanzamento continuo, scelto dal tasto avanzamento automatico.\n"
-"Premi nuovamente il tasto avanzamento automatico o il tasto di arretramento "
-"per disabilitarlo."
+"Avanzamento continuo, attivato dal tasto avanzamento automatico.\n"
+"Premi nuovamente il tasto di avanzamento automatico o il tasto di "
+"arretramento per disabilitarlo."
#: src/settings_translation_file.cpp
msgid "Controls"
@@ -2723,16 +2751,24 @@ msgid "Crosshair alpha"
msgstr "Trasparenza del mirino"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr "Trasparenza del mirino (opacità, tra 0 e 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Trasparenza del mirino (opacità, tra 0 e 255).\n"
+"Controlla anche il colore del mirino dell'oggetto"
#: src/settings_translation_file.cpp
msgid "Crosshair color"
msgstr "Colore del mirino"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Colore del mirino (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Colore del mirino (R,G,B).\n"
+"Controlla anche il colore del mirino dell'oggetto"
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2744,7 +2780,7 @@ msgstr "Ferimento"
#: src/settings_translation_file.cpp
msgid "Debug info toggle key"
-msgstr "Tasto di scelta delle informazioni di debug"
+msgstr "Tasto di (dis)attivazione delle informazioni di debug"
#: src/settings_translation_file.cpp
msgid "Debug log file size threshold"
@@ -2838,14 +2874,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Definisce posizione e terreno di colline e laghi facoltativi."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Stabilisce il passo di campionamento dell'immagine.\n"
-"Un valore maggiore dà normalmap più uniformi."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Definisce il livello base del terreno."
@@ -2925,6 +2953,10 @@ msgid "Desynchronize block animation"
msgstr "De-sincronizza l'animazione del blocco"
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr "Tasto scava"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Particelle di scavo"
@@ -2946,7 +2978,8 @@ msgstr "Doppio \"salta\" per volare"
#: src/settings_translation_file.cpp
msgid "Double-tapping the jump key toggles fly mode."
-msgstr "Premendo due volte il tasto di salto si sceglie la modalità di volo."
+msgstr ""
+"Premendo due volte il tasto di salto si (dis)attiva la modalità di volo."
#: src/settings_translation_file.cpp
msgid "Drop item key"
@@ -2989,7 +3022,8 @@ msgid "Enable console window"
msgstr "Attivare la finestra della console"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Abilitare la modalità creativa per le nuove mappe create."
#: src/settings_translation_file.cpp
@@ -3059,7 +3093,7 @@ msgstr ""
"server).\n"
"I server remoti offrono un sistema significativamente più rapido per "
"scaricare\n"
-"contenuti multimediali (es. immagini) quando ci si connette al server."
+"contenuti multimediali (es. texture) quando ci si connette al server."
#: src/settings_translation_file.cpp
msgid ""
@@ -3106,17 +3140,6 @@ msgid "Enables animation of inventory items."
msgstr "Attiva l'animazione degli oggetti dell'inventario."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Attiva il bumpmapping per le immagini. È necessario fornire le normalmap\n"
-"con la raccolta di immagini, o devono essere generate automaticamente.\n"
-"Necessita l'attivazione degli shader."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Attiva la cache delle mesh ruotate con facedir."
@@ -3126,22 +3149,6 @@ msgstr "Attiva la minimappa."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Attiva la generazione istantanea delle normalmap (effetto rilievo).\n"
-"Necessita l'attivazione del bumpmapping."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Attiva la parallax occlusion mapping.\n"
-"Necessita l'attivazione degli shader."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3163,14 +3170,6 @@ msgstr "Sistemi di entità"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Opzione sperimentale, potrebbe causare spazi visibili tra i blocchi\n"
-"quando impostata su numeri maggiori di 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3188,8 +3187,8 @@ msgstr ""
"pianure più piatte, adatti a uno strato solido di terre fluttuanti."
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS nel menu di pausa"
+msgid "FPS when unfocused or paused"
+msgstr "FPS quando il gioco è in pausa o in secondo piano"
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3280,12 +3279,12 @@ msgid ""
"light edge to transparent textures. Apply this filter to clean that up\n"
"at texture load time."
msgstr ""
-"Le immagini a cui si applicano i filtri possono amalgamare i valori RGB con "
+"Le texture a cui si applicano i filtri possono amalgamare i valori RGB con "
"quelle vicine completamente trasparenti,\n"
"che normalmente vengono scartati dagli ottimizzatori PNG, risultando a volte "
-"in immagini trasparenti scure o\n"
+"in texture trasparenti scure o\n"
"dai bordi chiari. Applicare questo filtro aiuta a ripulire tutto ciò\n"
-"al momento del caricamento dell'immagine."
+"al momento del caricamento della texture."
#: src/settings_translation_file.cpp
msgid "Filtering"
@@ -3355,7 +3354,7 @@ msgstr "Inizio nebbia"
#: src/settings_translation_file.cpp
msgid "Fog toggle key"
-msgstr "Tasto scelta nebbia"
+msgstr "Tasto (dis)attivazione nebbia"
#: src/settings_translation_file.cpp
msgid "Font bold by default"
@@ -3523,10 +3522,6 @@ msgid "GUI scaling filter txr2img"
msgstr "Filtro di scala txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Generare le normalmap"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Callback globali"
@@ -3580,26 +3575,25 @@ msgstr "Moduli HTTP"
#: src/settings_translation_file.cpp
msgid "HUD scale factor"
-msgstr "Fattore di scala del visore"
+msgstr "Fattore di scala dell'HUD"
#: src/settings_translation_file.cpp
msgid "HUD toggle key"
-msgstr "Tasto di scelta del visore"
+msgstr "Tasto di (dis)attivazione dell'HUD"
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
-"Gestione delle chiamate deprecate alle API Lua:\n"
-"- legacy (ereditaria): (prova a) simulare il vecchio comportamento ("
-"predefinito per i rilasci).\n"
-"- log (registro): simula e registra la traccia della chiamata deprecata ("
-"predefinito per il debug).\n"
-"- error (errore): interrompere all'uso della chiamata deprecata (suggerito "
-"per lo sviluppo di moduli)."
+"Gestione delle chiamate API Lua deprecate:\n"
+"- none (nessuno): non registra le chiamate obsolete\n"
+"- log (registro): imita e registra il backtrace di una chiamata obsoleta "
+"(impostazione predefinita).\n"
+"- error (errore): interrompe l'utilizzo della chiamata deprecata "
+"(consigliata per gli sviluppatori di mod)."
#: src/settings_translation_file.cpp
msgid ""
@@ -3922,7 +3916,7 @@ msgid ""
"down and\n"
"descending."
msgstr ""
-"Se abilitata, si usa il tasto \"speciale\" invece di \"striscia\" per "
+"Se abilitata, si usa il tasto \"speciale\" invece di \"furtivo\" per "
"arrampicarsi e\n"
"scendere."
@@ -4133,6 +4127,10 @@ msgid "Joystick button repetition interval"
msgstr "Intervallo di ripetizione del pulsante del joystick"
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr "Deadzone joystick"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Sensibilità del tronco del joystick"
@@ -4236,6 +4234,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tasto per scavare.\n"
+"Vedi http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4378,6 +4386,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tasto per piazzare.\n"
+"Vedi http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4724,7 +4742,7 @@ msgid ""
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Tasto per strisciare.\n"
+"Tasto per muoversi furtivamente.\n"
"Usato anche per scendere, e per immergersi in acqua se aux1_descends è "
"disattivato.\n"
"Si veda http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4816,7 +4834,7 @@ msgid ""
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Tasto per scegliere la modalità di movimento di pendenza.\n"
+"Tasto per scegliere la modalità di inclinazione del movimento. \n"
"Si veda http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4857,7 +4875,7 @@ msgid ""
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Tasto per scegliere la visualizzazione della nebbia.\n"
+"Tasto per attivare/disattivare la visualizzazione della nebbia.\n"
"Si veda http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4867,7 +4885,7 @@ msgid ""
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Tasto per scegliere la visualizzazione del visore.\n"
+"Tasto per attivare/disattivare la visualizzazione dell'HUD.\n"
"Si veda http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -5132,10 +5150,6 @@ msgid "Main menu script"
msgstr "Script del menu principale"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Stile del menu principale"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5151,6 +5165,14 @@ msgid "Makes all liquids opaque"
msgstr "Rende opachi tutti i liquidi"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr "Livello di compressione della mappa per l'archiviazione su disco"
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr "Livello di compressione della mappa per il trasferimento in rete"
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Cartella della mappa"
@@ -5165,8 +5187,8 @@ msgid ""
"Map generation attributes specific to Mapgen Flat.\n"
"Occasional lakes and hills can be added to the flat world."
msgstr ""
-"Attributi di generazione della mappa specifici del generatore di mappe Flat."
-"\n"
+"Attributi di generazione della mappa specifici del generatore di mappe "
+"Flat.\n"
"Al mondo piatto possono essere aggiunti laghi e colline occasionali."
#: src/settings_translation_file.cpp
@@ -5339,8 +5361,10 @@ msgid "Maximum FPS"
msgstr "FPS massimi"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
-msgstr "FPS massimi quando il gioco è in pausa."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
+msgstr ""
+"FPS massimi quando la finestra è in secondo piano o quando il gioco è in "
+"pausa."
#: src/settings_translation_file.cpp
msgid "Maximum forceloaded blocks"
@@ -5399,6 +5423,16 @@ msgstr ""
"Questo limite viene imposto per ciascun giocatore."
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+"Numero massimo di download simultanei. I download che superano questo limite "
+"verranno messi in coda.\n"
+"Dovrebbe essere inferiore a curl_parallel_limit."
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr "Numero massimo di blocchi mappa caricati a forza."
@@ -5522,7 +5556,7 @@ msgstr "Limite minimo di piccole grotte casuali per pezzo di mappa."
#: src/settings_translation_file.cpp
msgid "Minimum texture size"
-msgstr "Dimensione minima dell'immagine"
+msgstr "Dimensione minima della texture"
#: src/settings_translation_file.cpp
msgid "Mipmapping"
@@ -5534,7 +5568,7 @@ msgstr "Canali mod"
#: src/settings_translation_file.cpp
msgid "Modifies the size of the hudbar elements."
-msgstr "Modifica la dimensione degli elementi della barra del visore."
+msgstr "Modifica la dimensione degli elementi della barra dell'HUD."
#: src/settings_translation_file.cpp
msgid "Monospace font path"
@@ -5582,7 +5616,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Mute key"
-msgstr "Tasto silenzio"
+msgstr "Tasto muta"
#: src/settings_translation_file.cpp
msgid "Mute sound"
@@ -5659,14 +5693,6 @@ msgid "Noises"
msgstr "Rumori"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Campionamento normalmap"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Intensità normalmap"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "Numero di thread emerge"
@@ -5688,8 +5714,8 @@ msgstr ""
"- Selezione automatica. Il numero di thread di comparsa sarà\n"
"- 'numero di processori - 2', con un limite inferiore di 1.\n"
"Qualsiasi altro valore:\n"
-"- Specifica il numero di thread di comparsa, con un limite inferiore di 1."
-"\n"
+"- Specifica il numero di thread di comparsa, con un limite inferiore di "
+"1.\n"
"AVVISO: Aumentare il numero dei thread di comparsa aumenta la velocità del "
"motore\n"
"del generatore di mappe, ma questo potrebbe danneggiare le prestazioni del "
@@ -5710,10 +5736,6 @@ msgstr ""
"consumo di memoria (4096 = 100MB, come regola generale)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "Numero di iterazioni dell'occlusione di parallasse."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Deposito dei contenuti in linea"
@@ -5724,7 +5746,8 @@ msgstr "Liquidi opachi"
#: src/settings_translation_file.cpp
msgid ""
"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255."
-msgstr "Opacità (alfa) dell'ombra dietro il carattere predefinito, tra 0 e 255."
+msgstr ""
+"Opacità (alfa) dell'ombra dietro il carattere predefinito, tra 0 e 255."
#: src/settings_translation_file.cpp
msgid ""
@@ -5741,36 +5764,6 @@ msgstr ""
"mette in pausa se è aperta una finestra di dialogo."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-"Deviazione complessiva dell'effetto di occlusione di parallasse, solitamente "
-"scala/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Scala globale dell'effetto di occlusione di parallasse."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Parallax Occlusion"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Deviazione dell'occlusione di parallasse"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Iterazioni dell'occlusione di parallasse"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Modalità dell'occlusione di parallasse"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "Scala dell'occlusione di parallasse"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5806,8 +5799,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Path to texture directory. All textures are first searched from here."
msgstr ""
-"Percorso della cartella immagini. Tutte le immagini vengono cercate a "
-"partire da qui."
+"Percorso della cartella contenente le texture. Tutte le texture vengono "
+"cercate a partire da qui."
#: src/settings_translation_file.cpp
msgid ""
@@ -5857,11 +5850,19 @@ msgstr "Fisica"
#: src/settings_translation_file.cpp
msgid "Pitch move key"
-msgstr "Modalità movimento pendenza"
+msgstr "Modalità inclinazione movimento"
#: src/settings_translation_file.cpp
msgid "Pitch move mode"
-msgstr "Modalità movimento pendenza"
+msgstr "Modalità inclinazione movimento"
+
+#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr "Tasto piazza"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr "Intervallo di ripetizione per il piazzamento"
#: src/settings_translation_file.cpp
msgid ""
@@ -5926,7 +5927,7 @@ msgstr "Generatore di profili"
#: src/settings_translation_file.cpp
msgid "Profiler toggle key"
-msgstr "Tasto di scelta del generatore di profili"
+msgstr "Tasto di (dis)attivazione del generatore di profili"
#: src/settings_translation_file.cpp
msgid "Profiling"
@@ -5950,7 +5951,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Proportion of large caves that contain liquid."
-msgstr "Proporzione delle grotte di grandi dimensioni che contiene del liquido."
+msgstr ""
+"Proporzione delle grotte di grandi dimensioni che contiene del liquido."
#: src/settings_translation_file.cpp
msgid ""
@@ -6053,10 +6055,6 @@ msgid "Right key"
msgstr "Tasto des."
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Intervallo di ripetizione del click destro"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "Profondità dell'alveo dei fiumi"
@@ -6302,8 +6300,8 @@ msgid ""
"Set to true to enable waving liquids (like water).\n"
"Requires shaders to be enabled."
msgstr ""
-"Impostata su vero abilita i liquidi ondeggianti (come, ad esempio, l'acqua)."
-"\n"
+"Impostata su vero abilita i liquidi ondeggianti (come, ad esempio, "
+"l'acqua).\n"
"Necessita l'attivazione degli shader."
#: src/settings_translation_file.cpp
@@ -6359,6 +6357,19 @@ msgid "Show entity selection boxes"
msgstr "Mostrare le aree di selezione delle entità"
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Mostra la casella di selezione delle entità\n"
+"È necessario riavviare dopo aver cambiato questo."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Carattere grassetto per impostazione predefinita"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Messaggio di chiusura"
@@ -6440,11 +6451,11 @@ msgstr "Rende fluida la rotazione della telecamera. 0 per disattivare."
#: src/settings_translation_file.cpp
msgid "Sneak key"
-msgstr "Tasto striscia"
+msgstr "Tasto furtivo"
#: src/settings_translation_file.cpp
msgid "Sneaking speed"
-msgstr "Velocità di strisciamento"
+msgstr "Velocità furtiva"
#: src/settings_translation_file.cpp
msgid "Sneaking speed, in nodes per second."
@@ -6516,10 +6527,6 @@ msgid "Strength of 3D mode parallax."
msgstr "Intensità della parallasse della modalità 3D."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Intensità delle normalmap generate."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6554,8 +6561,8 @@ msgstr ""
"di terra fluttuante.\n"
"L'acqua è disabilitata in modo predefinito e sarà posizionata se questo "
"valore è impostato\n"
-"al di sopra di 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (l'inizio dell'"
-"affusolamento\n"
+"al di sopra di 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (l'inizio "
+"dell'affusolamento\n"
"superiore).\n"
"***AVVISO, PERICOLO POTENZIALE PER MONDI E PRESTAZIONI SERVER***:\n"
"Quando si abilita il posizionamento dell'acqua, le terre fluttuanti devono "
@@ -6621,7 +6628,7 @@ msgstr "Rumore di continuità del terreno"
#: src/settings_translation_file.cpp
msgid "Texture path"
-msgstr "Percorso delle immagini"
+msgstr "Percorso delle texture"
#: src/settings_translation_file.cpp
msgid ""
@@ -6632,7 +6639,7 @@ msgid ""
"this option allows enforcing it for certain node types. Note though that\n"
"that is considered EXPERIMENTAL and may not work properly."
msgstr ""
-"Le immagini su un nodo possono essere allineate sia al nodo che al mondo.\n"
+"Le texture su un nodo possono essere allineate sia al nodo che al mondo.\n"
"Il primo modo si addice meglio a cose come macchine, arredamento, ecc.,\n"
"mentre il secondo fa sì che scale e microblocchi si adattino meglio ai "
"dintorni.\n"
@@ -6646,6 +6653,10 @@ msgid "The URL for the content repository"
msgstr "L'URL per il deposito dei contenuti"
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr "La deadzone del joystick"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6723,15 +6734,15 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
-"Il motore di resa per Irrlicht.\n"
+"Il back-end di rendering per Irrlicht.\n"
"Dopo averlo cambiato è necessario un riavvio.\n"
-"Nota: su Android, si resti con OGLES1 se incerti! Altrimenti l'app potrebbe "
+"Nota: su Android, restare con OGLES1 se incerti! Altrimenti l'app potrebbe "
"non partire.\n"
-"Su altre piattaforme, si raccomanda OpenGL, ed è attualmente l'unico driver\n"
-"con supporto degli shader."
+"Su altre piattaforme, si raccomanda OpenGL\n"
+"Le shader sono supportate da OpenGL (solo su desktop) e OGLES2 (sperimentale)"
#: src/settings_translation_file.cpp
msgid ""
@@ -6770,6 +6781,14 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+"Il budget di tempo ha consentito agli ABM per eseguire ogni passaggio\n"
+"(come frazione dell'intervallo ABM)"
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6778,12 +6797,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
-"Il tempo in secondi richiesto tra click destri ripetuti quando\n"
-"si tiene premuto il tasto destro del mouse."
+"Il tempo in secondi che intercorre tra il piazzamento dei nodi quando si "
+"tiene\n"
+"premuto il pulsante piazza."
#: src/settings_translation_file.cpp
msgid "The type of joystick"
@@ -6847,7 +6866,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Toggle camera mode key"
-msgstr "Tasto di scelta della modalità telecamera"
+msgstr "Tasto di (dis)attivazione della modalità telecamera"
#: src/settings_translation_file.cpp
msgid "Tooltip delay"
@@ -6930,12 +6949,12 @@ msgstr "Usare un'animazione con le nuvole per lo sfondo del menu principale."
#: src/settings_translation_file.cpp
msgid "Use anisotropic filtering when viewing at textures from an angle."
msgstr ""
-"Usare il filtraggio anisotropico quando si guardano le immagini da "
+"Usare il filtraggio anisotropico quando si guardano le texture da "
"un'angolazione."
#: src/settings_translation_file.cpp
msgid "Use bilinear filtering when scaling textures."
-msgstr "Usare il filtraggio bilineare quando si ridimensionano le immagini."
+msgstr "Usare il filtraggio bilineare quando si ridimensionano le texture."
#: src/settings_translation_file.cpp
msgid ""
@@ -6943,14 +6962,34 @@ msgid ""
"especially when using a high resolution texture pack.\n"
"Gamma correct downscaling is not supported."
msgstr ""
-"Usare il mip mapping per ridimensionare le immagini. Potrebbe aumentare "
+"Usare il mip mapping per ridimensionare le texture. Potrebbe aumentare "
"leggermente le prestazioni,\n"
-"specialmente quando si usa una raccolta di immagini ad alta risoluzione.\n"
+"specialmente quando si usa un pacchetto texture ad alta risoluzione.\n"
"La correzione gamma del downscaling non è supportata."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+"Utilizzare l'antialiasing multi-campione (MSAA) per smussare i bordi del "
+"blocco.\n"
+"Questo algoritmo uniforma la visualizzazione 3D mantenendo l'immagine "
+"nitida,\n"
+"ma non influenza l'interno delle texture\n"
+"(che è particolarmente evidente con trame trasparenti).\n"
+"Gli spazi visibili appaiono tra i nodi quando gli shader sono disabilitati.\n"
+"Se impostato a 0, MSAA è disabilitato.\n"
+"È necessario riavviare dopo aver modificato questa opzione."
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
-msgstr "Usare il filtraggio trilineare quando si ridimensionano le immagini."
+msgstr "Usare il filtraggio trilineare quando si ridimensionano le texture."
#: src/settings_translation_file.cpp
msgid "VBO"
@@ -7150,7 +7189,7 @@ msgstr ""
"Quando gui_scaling_filter_txr2img è Vero, copia quelle immagini\n"
"dall'hardware al software per il ridimensionamento. Quando è Falso,\n"
"ripiega sul vecchio metodo di ridimensionamento, per i driver video che\n"
-"non supportano correttamente lo scaricamento delle immagini dall'hardware."
+"non supportano correttamente lo scaricamento delle texture dall'hardware."
#: src/settings_translation_file.cpp
msgid ""
@@ -7164,13 +7203,13 @@ msgid ""
"This is also used as the base node texture size for world-aligned\n"
"texture autoscaling."
msgstr ""
-"Quando si usano i filtri bilineare/trilineare/anisotropico, le immagini a "
+"Quando si usano i filtri bilineare/trilineare/anisotropico, le texture a "
"bassa risoluzione\n"
-"possono essere sfocate, così si esegue l'upscaling automatico con "
+"possono essere sfocate, così viene eseguito l'ingrandimento automatico con "
"l'interpolazione nearest-neighbor\n"
"per conservare pixel chiari. Questo imposta la dimensione minima delle "
"immagini\n"
-"per le immagini upscaled; valori più alti hanno un aspetto più nitido, ma "
+"per le texture ingrandite; valori più alti hanno un aspetto più nitido, ma "
"richiedono più memoria.\n"
"Sono raccomandate le potenze di 2. Impostarla a un valore maggiore di 1 "
"potrebbe non avere\n"
@@ -7191,9 +7230,15 @@ msgstr ""
"Se disabilitati, si utilizzano invece i caratteri bitmap e XML vettoriali."
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
-"Se le animazioni delle immagini dei nodi dovrebbero essere asincrone per "
+"Se le animazioni delle texture dei nodi dovrebbero essere asincrone per "
"blocco mappa."
#: src/settings_translation_file.cpp
@@ -7231,8 +7276,7 @@ msgstr ""
"Se silenziare i suoni. È possibile de-silenziare i suoni in qualsiasi "
"momento, a meno che\n"
"il sistema audio non sia disabilitato (enable_sound=false).\n"
-"Nel gioco, puoi alternare lo stato silenziato col tasto di silenzio o "
-"usando\n"
+"Nel gioco, puoi alternare lo stato silenziato col tasto muta o usando\n"
"il menu di pausa."
#: src/settings_translation_file.cpp
@@ -7281,19 +7325,19 @@ msgid ""
"See also texture_min_size.\n"
"Warning: This option is EXPERIMENTAL!"
msgstr ""
-"Le immagini allineate al mondo possono essere ridimensionate per estendersi "
+"Le texture allineate al mondo possono essere ridimensionate per estendersi "
"su diversi nodi.\n"
"Comunque, il server potrebbe non inviare la scala che vuoi, specialmente se "
-"usi una raccolta di immagini\n"
-"progettata specificamente; con questa opzione, il client prova a stabilire "
+"usi un pacchetto texture\n"
+"progettato specificamente; con questa opzione, il client prova a stabilire "
"automaticamente la scala\n"
-"basandosi sulla dimensione dell'immagine.\n"
+"basandosi sulla dimensione della texture.\n"
"Si veda anche texture_min_size.\n"
"Avviso: questa opzione è SPERIMENTALE!"
#: src/settings_translation_file.cpp
msgid "World-aligned textures mode"
-msgstr "Modalità immagini allineate al mondo"
+msgstr "Modalità texture allineate al mondo"
#: src/settings_translation_file.cpp
msgid "Y of flat ground."
@@ -7350,6 +7394,38 @@ msgid "Y-level of seabed."
msgstr "Livello Y del fondale marino."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Livello di compressione ZLib da utilizzare quando si salvano i blocchi mappa "
+"su disco.\n"
+"-1 - Livello di compressione predefinito di Zlib\n"
+"0 - nessuna compressione, più veloce\n"
+"9 - migliore compressione, più lenta\n"
+"(i livelli 1-3 usano il metodo \"veloce\" di Zlib, 4-9 usano il metodo "
+"normale)"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Livello di compressione ZLib da utilizzare quando si inviano i blocchi mappa "
+"al client.\n"
+"-1 - Livello di compressione predefinito di Zlib\n"
+"0 - nessuna compressione, più veloce\n"
+"9 - migliore compressione, più lenta\n"
+"(i livelli 1-3 usano il metodo \"veloce\" di Zlib, 4-9 usano il metodo "
+"normale)"
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "Scadenza cURL scaricamento file"
@@ -7361,84 +7437,96 @@ msgstr "Limite parallelo cURL"
msgid "cURL timeout"
msgstr "Scadenza cURL"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Scegli cinematica"
-
-#~ msgid "Select Package File:"
-#~ msgstr "Seleziona pacchetto file:"
-
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Y del limite superiore della lava nelle caverne grandi."
-
-#~ msgid "Waving Water"
-#~ msgstr "Acqua ondeggiante"
-
-#~ msgid "Whether dungeons occasionally project from the terrain."
-#~ msgstr "Se i sotterranei saltuariamente si protendono dal terreno."
-
-#~ msgid "Projecting dungeons"
-#~ msgstr "Sotterranei protundenti"
-
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Livello Y a cui si estendono le ombre delle terre fluttuanti."
-
-#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
#~ msgstr ""
-#~ "Livello Y del punto medio delle terre fluttuanti e della superficie dei "
-#~ "laghi."
-
-#~ msgid "Waving water"
-#~ msgstr "Acqua ondeggiante"
+#~ "0 = occlusione di parallasse con informazione di inclinazione (più "
+#~ "veloce).\n"
+#~ "1 = relief mapping (più lenta, più accurata)."
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
#~ msgstr ""
-#~ "Variazione dell'altezza delle colline, e della profondità dei laghi sul\n"
-#~ "terreno uniforme delle terre fluttuanti."
+#~ "Regola la codifica della gamma per le tabelle della luce. Numeri maggiori "
+#~ "sono più chiari.\n"
+#~ "Questa impostazione è solo per il client ed è ignorata dal server."
-#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
#~ msgstr ""
-#~ "Altezza massima tipica, sopra e sotto il punto medio, delle montagne dei "
-#~ "terreni fluttuanti."
+#~ "Modifica il restringimento superiore e inferiore rispetto al punto "
+#~ "mediano delle terre fluttuanti di tipo montagnoso."
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Questo carattere sarà usato per certe Lingue."
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Sei sicuro di azzerare il tuo mondo locale?"
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "Intensità dell'aumento mediano della curva di luce."
+#~ msgid "Back"
+#~ msgstr "Indietro"
-#~ msgid "Shadow limit"
-#~ msgstr "Limite dell'ombra"
+#~ msgid "Bump Mapping"
+#~ msgstr "Bump Mapping"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "Percorso del carattere TrueType o bitmap."
+#~ msgid "Bumpmapping"
+#~ msgstr "Bumpmapping"
-#~ msgid "Lightness sharpness"
-#~ msgstr "Nitidezza della luminosità"
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "Centro dell'aumento mediano della curva della luce."
-#~ msgid "Lava depth"
-#~ msgstr "Profondità della lava"
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "Cambia l'UI del menu principale:\n"
+#~ "- Completa: mondi locali multipli, scelta del gioco, selettore "
+#~ "pacchetti texture, ecc.\n"
+#~ "- Semplice: un mondo locale, nessun selettore di gioco o pacchetti "
+#~ "grafici.\n"
+#~ "Potrebbe servire per gli schermi più piccoli."
-#~ msgid "IPv6 support."
-#~ msgstr "Supporto IPv6."
+#~ msgid "Config mods"
+#~ msgstr "Config mod"
-#~ msgid "Gamma"
-#~ msgstr "Gamma"
+#~ msgid "Configure"
+#~ msgstr "Configura"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Trasparenza ombreggiatura carattere (opacità, tra 0 e 255)."
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "Controlla la densità delle terre fluttuanti di tipo montuoso.\n"
+#~ "È uno spostamento di rumore aggiunto al valore del rumore "
+#~ "'mgv7_np_mountain'."
-#~ msgid "Floatland mountain height"
-#~ msgstr "Altezza delle montagne delle terre fluttuanti"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Controlla la larghezza delle gallerie, un valore più piccolo crea "
+#~ "gallerie più larghe."
-#~ msgid "Floatland base height noise"
-#~ msgstr "Rumore base dell'altezza delle terre fluttuanti"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Colore del mirino (R,G,B)."
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Attiva il filmic tone mapping"
+#~ msgid "Darkness sharpness"
+#~ msgstr "Nitidezza dell'oscurità"
-#~ msgid "Enable VBO"
-#~ msgstr "Abilitare i VBO"
+#~ msgid ""
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
+#~ msgstr ""
+#~ "Definisce aree di terreno uniforme nelle terre fluttuanti.\n"
+#~ "Le terre fluttuanti uniformi avvengono quando il rumore è > 0."
+
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Stabilisce il passo di campionamento della texture.\n"
+#~ "Un valore maggiore dà normalmap più uniformi."
#~ msgid ""
#~ "Deprecated, define and locate cave liquids using biome definitions "
@@ -7449,60 +7537,210 @@ msgstr "Scadenza cURL"
#~ "posizionare le caverne di liquido.\n"
#~ "Limite verticale della lava nelle caverne grandi."
-#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
-#~ msgstr ""
-#~ "Definisce aree di terreno uniforme nelle terre fluttuanti.\n"
-#~ "Le terre fluttuanti uniformi avvengono quando il rumore è > 0."
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Scaricamento e installazione di $1, attendere prego..."
-#~ msgid "Darkness sharpness"
-#~ msgstr "Nitidezza dell'oscurità"
+#~ msgid "Enable VBO"
+#~ msgstr "Abilitare i VBO"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Controlla la larghezza delle gallerie, un valore più piccolo crea "
-#~ "gallerie più larghe."
+#~ "Attiva il bumpmapping per le texture. È necessario fornire le normalmap\n"
+#~ "con i pacchetti texture, o devono essere generate automaticamente.\n"
+#~ "Necessita l'attivazione degli shader."
+
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Attiva il filmic tone mapping"
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Controlla la densità delle terre fluttuanti di tipo montuoso.\n"
-#~ "È uno spostamento di rumore aggiunto al valore del rumore "
-#~ "'mgv7_np_mountain'."
+#~ "Attiva la generazione istantanea delle normalmap (effetto rilievo).\n"
+#~ "Necessita l'attivazione del bumpmapping."
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "Centro dell'aumento mediano della curva della luce."
-
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Modifica il restringimento superiore e inferiore rispetto al punto "
-#~ "mediano delle terre fluttuanti di tipo montagnoso."
+#~ "Attiva la parallax occlusion mapping.\n"
+#~ "Necessita l'attivazione degli shader."
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
#~ msgstr ""
-#~ "Regola la codifica della gamma per le tabelle della luce. Numeri maggiori "
-#~ "sono più chiari.\n"
-#~ "Questa impostazione è solo per il client ed è ignorata dal server."
+#~ "Opzione sperimentale, potrebbe causare spazi visibili tra i blocchi\n"
+#~ "quando impostata su numeri maggiori di 0."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Percorso dove salvare le schermate."
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS nel menu di pausa"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "Intensità dell'occlusione di parallasse"
+#~ msgid "Floatland base height noise"
+#~ msgstr "Rumore base dell'altezza delle terre fluttuanti"
+
+#~ msgid "Floatland mountain height"
+#~ msgstr "Altezza delle montagne delle terre fluttuanti"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Trasparenza ombreggiatura carattere (opacità, tra 0 e 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "Gamma"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Genera Normal Map"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Generare le normalmap"
+
+#~ msgid "IPv6 support."
+#~ msgstr "Supporto IPv6."
+
+#~ msgid "Lava depth"
+#~ msgstr "Profondità della lava"
+
+#~ msgid "Lightness sharpness"
+#~ msgstr "Nitidezza della luminosità"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "Limite di code emerge su disco"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Scaricamento e installazione di $1, attendere prego..."
+#~ msgid "Main"
+#~ msgstr "Principale"
-#~ msgid "Back"
-#~ msgstr "Indietro"
+#~ msgid "Main menu style"
+#~ msgstr "Stile del menu principale"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Minimappa in modalità radar, ingrandimento x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Minimappa in modalità radar, ingrandimento x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Minimappa in modalità superficie, ingrandimento x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Minimappa in modalità superficie, ingrandimento x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Nome/Password"
+
+#~ msgid "No"
+#~ msgstr "No"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Campionamento normalmap"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Intensità normalmap"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "Numero di iterazioni dell'occlusione di parallasse."
#~ msgid "Ok"
#~ msgstr "OK"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr ""
+#~ "Deviazione complessiva dell'effetto di occlusione di parallasse, "
+#~ "solitamente scala/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Scala globale dell'effetto di occlusione di parallasse."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parallax Occlusion"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Parallax Occlusion"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Deviazione dell'occlusione di parallasse"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Iterazioni dell'occlusione di parallasse"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Modalità dell'occlusione di parallasse"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Scala dell'occlusione di parallasse"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "Intensità dell'occlusione di parallasse"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "Percorso del carattere TrueType o bitmap."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Percorso dove salvare le schermate."
+
+#~ msgid "Projecting dungeons"
+#~ msgstr "Sotterranei protundenti"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Azzera mondo locale"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Seleziona pacchetto file:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "Limite dell'ombra"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Avvia in locale"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Intensità delle normalmap generate."
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "Intensità dell'aumento mediano della curva di luce."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Questo carattere sarà usato per certe Lingue."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Scegli cinematica"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr ""
+#~ "Altezza massima tipica, sopra e sotto il punto medio, delle montagne dei "
+#~ "terreni fluttuanti."
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr ""
+#~ "Variazione dell'altezza delle colline, e della profondità dei laghi sul\n"
+#~ "terreno uniforme delle terre fluttuanti."
+
+#~ msgid "View"
+#~ msgstr "Vedi"
+
+#~ msgid "Waving Water"
+#~ msgstr "Acqua ondeggiante"
+
+#~ msgid "Waving water"
+#~ msgstr "Acqua ondeggiante"
+
+#~ msgid "Whether dungeons occasionally project from the terrain."
+#~ msgstr "Se i sotterranei saltuariamente si protendono dal terreno."
+
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Y del limite superiore della lava nelle caverne grandi."
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr ""
+#~ "Livello Y del punto medio delle terre fluttuanti e della superficie dei "
+#~ "laghi."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Livello Y a cui si estendono le ombre delle terre fluttuanti."
+
+#~ msgid "Yes"
+#~ msgstr "Sì"
diff --git a/po/ja/minetest.po b/po/ja/minetest.po
index f274682c4..c3a5e3522 100644
--- a/po/ja/minetest.po
+++ b/po/ja/minetest.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Japanese (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-15 22:41+0000\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-13 08:50+0000\n"
"Last-Translator: BreadW <toshiharu.uno@gmail.com>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/minetest/"
"minetest/ja/>\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.1\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -46,10 +46,6 @@ msgstr "å†æŽ¥ç¶š"
msgid "The server has requested a reconnect:"
msgstr "サーãƒãŒå†æŽ¥ç¶šã‚’è¦æ±‚ã—ã¾ã—ãŸ:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "読ã¿è¾¼ã¿ä¸­..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "プロトコルã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒä¸€è‡´ã—ã¦ã„ã¾ã›ã‚“。 "
@@ -63,10 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "サーãƒã¯$1ã‹ã‚‰$2ã¾ã§ã®ãƒ—ロトコルã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚ "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr "インターãƒãƒƒãƒˆæŽ¥ç¶šã‚’確èªã—ã€å…¬é–‹ã‚µãƒ¼ãƒä¸€è¦§ã‚’冿œ‰åŠ¹åŒ–ã—ã¦ãã ã•ã„。"
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "プロトコルã¯ãƒãƒ¼ã‚¸ãƒ§ãƒ³$1ã®ã¿ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚"
@@ -74,7 +66,8 @@ msgstr "プロトコルã¯ãƒãƒ¼ã‚¸ãƒ§ãƒ³$1ã®ã¿ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã
msgid "We support protocol versions between version $1 and $2."
msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³$1ã‹ã‚‰$2ã¾ã§ã®ãƒ—ロトコルをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -84,9 +77,10 @@ msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³$1ã‹ã‚‰$2ã¾ã§ã®ãƒ—ロトコルをサãƒãƒ¼ãƒˆã—ã¦ã
msgid "Cancel"
msgstr "キャンセル"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
-msgstr "ä¾å­˜é–¢ä¿‚:"
+msgstr "ä¾å­˜Mod:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Disable all"
@@ -122,7 +116,7 @@ msgstr "Mod:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No (optional) dependencies"
-msgstr "(ä»»æ„)ä¾å­˜é–¢ä¿‚ãªã—"
+msgstr "(任æ„)ä¾å­˜Modãªã—"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No game description provided."
@@ -130,7 +124,7 @@ msgstr "ゲームã®èª¬æ˜ŽãŒã‚りã¾ã›ã‚“。"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No hard dependencies"
-msgstr "ä¾å­˜é–¢ä¿‚ãªã—"
+msgstr "å¿…é ˆä¾å­˜Modãªã—"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No modpack description provided."
@@ -138,11 +132,11 @@ msgstr "Modパックã®èª¬æ˜ŽãŒã‚りã¾ã›ã‚“。"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No optional dependencies"
-msgstr "ä»»æ„ä¾å­˜é–¢ä¿‚ãªã—"
+msgstr "ä»»æ„ä¾å­˜Modãªã—"
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
msgid "Optional dependencies:"
-msgstr "ä»»æ„:"
+msgstr "ä»»æ„ä¾å­˜Mod:"
#: builtin/mainmenu/dlg_config_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
@@ -158,12 +152,52 @@ msgid "enabled"
msgstr "有効"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "「$1ã€ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚上書ãã—ã¾ã™ã‹ï¼Ÿ"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "$1 ã¨ä¾å­˜Mod $2 ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¾ã™ã€‚"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 by $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 ダウンロード中ã€\n"
+"$2 ダウンロード待機中"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 ダウンロード中..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "$1 ã¤ã®å¿…è¦ãªä¾å­˜ModãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã€ä¾å­˜Mod $2 ã¯ã‚¹ã‚­ãƒƒãƒ—ã•れã¾ã™ã€‚"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "ã™ã¹ã¦"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "インストール済ã¿"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
-msgstr "ãƒ¡ã‚¤ãƒ³ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã¸æˆ»ã‚‹"
+msgstr "メインメニューã¸"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "基盤ゲーム:"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
@@ -187,6 +221,14 @@ msgid "Install"
msgstr "入手"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "$1 ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "ä¸è¶³ä¾å­˜Modインストール"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mod"
@@ -200,9 +242,24 @@ msgid "No results"
msgstr "何も見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "検索"
+msgid "No updates"
+msgstr "æ›´æ–°ãªã—"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "見ã¤ã‹ã‚Šã¾ã›ã‚“"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "上書ã"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "基盤ã¨ãªã‚‹ã‚²ãƒ¼ãƒ ãŒæ­£ã—ã„ã‹ã©ã†ã‹ç¢ºèªã—ã¦ãã ã•ã„。"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "待機中"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -217,12 +274,16 @@ msgid "Update"
msgstr "æ›´æ–°"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "見る"
+msgid "Update All [$1]"
+msgstr "ã™ã¹ã¦æ›´æ–° [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Webブラウザã§è©³ç´°ã‚’見る"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
-msgstr "ワールドå「$1ã€ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™"
+msgstr "ワールドå「$1ã€ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
@@ -369,7 +430,8 @@ msgstr "ãƒã‚¤ã‚ªãƒ¼ãƒ é–“ã®å††æ»‘ãªç§»è¡Œ"
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
-msgstr "地形上ã«ç¾ã‚Œã‚‹æ§‹é€ ç‰©ï¼ˆv6ã«ã‚ˆã£ã¦ç”Ÿæˆã•ã‚ŒãŸæœ¨ã‚„ジャングルã®è‰ã«å½±éŸ¿ãªã—)"
+msgstr ""
+"地形上ã«ç¾ã‚Œã‚‹æ§‹é€ ç‰©ï¼ˆv6ã«ã‚ˆã£ã¦ç”Ÿæˆã•ã‚ŒãŸæœ¨ã‚„ジャングルã®è‰ã«å½±éŸ¿ãªã—)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
@@ -514,6 +576,10 @@ msgid "Scale"
msgstr "スケール"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "検索"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "ディレクトリã®é¸æŠž"
@@ -628,6 +694,19 @@ msgstr "Modã‚’$1ã¨ã—ã¦ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“"
msgid "Unable to install a modpack as a $1"
msgstr "Modパックを$1ã¨ã—ã¦ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "読ã¿è¾¼ã¿ä¸­..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "クライアントå´ã®ã‚¹ã‚¯ãƒªãƒ—トã¯ç„¡åй"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr "インターãƒãƒƒãƒˆæŽ¥ç¶šã‚’確èªã—ã€å…¬é–‹ã‚µãƒ¼ãƒä¸€è¦§ã‚’冿œ‰åŠ¹åŒ–ã—ã¦ãã ã•ã„。"
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "オンラインコンテンツå‚ç…§"
@@ -650,7 +729,7 @@ msgstr "インストール済ã¿ã®ãƒ‘ッケージ:"
#: builtin/mainmenu/tab_content.lua
msgid "No dependencies."
-msgstr "ä¾å­˜ãªã—。"
+msgstr "ä¾å­˜Modãªã—。"
#: builtin/mainmenu/tab_content.lua
msgid "No package description available"
@@ -681,6 +760,18 @@ msgid "Credits"
msgstr "クレジット"
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr "ディレクトリを開ã"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"ファイルマãƒãƒ¼ã‚¸ãƒ£ãƒ¼/エクスプローラーã§ã€ãƒ¯ãƒ¼ãƒ«ãƒ‰ã€ã‚²ãƒ¼ãƒ ã€Modã€\n"
+"ãŠã‚ˆã³ãƒ†ã‚¯ã‚¹ãƒãƒ£ãƒ‘ックをå«ã‚€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é–‹ãã¾ã™ã€‚"
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "以å‰ã®è²¢çŒ®è€…"
@@ -697,14 +788,10 @@ msgid "Bind Address"
msgstr "ãƒã‚¤ãƒ³ãƒ‰ã‚¢ãƒ‰ãƒ¬ã‚¹"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "設定"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
-msgstr "クリエイティブモード"
+msgstr "クリエイティブ"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "ダメージ有効"
@@ -721,8 +808,8 @@ msgid "Install games from ContentDB"
msgstr "コンテンツDBã‹ã‚‰ã‚²ãƒ¼ãƒ ã‚’インストール"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "åå‰ / パスワード"
+msgid "Name"
+msgstr "åå‰"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -733,6 +820,10 @@ msgid "No world created or selected!"
msgstr "ワールドãŒä½œæˆã¾ãŸã¯é¸æŠžã•れã¦ã„ã¾ã›ã‚“ï¼"
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "パスワード"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "ゲームプレイ"
@@ -741,6 +832,10 @@ msgid "Port"
msgstr "ãƒãƒ¼ãƒˆ"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "Modã‚’é¸æŠž"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "ãƒ¯ãƒ¼ãƒ«ãƒ‰ã‚’é¸æŠž:"
@@ -756,23 +851,23 @@ msgstr "ゲームスタート"
msgid "Address / Port"
msgstr "アドレス / ãƒãƒ¼ãƒˆ"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "接続"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "クリエイティブモード"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "ダメージ有効"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "ãŠæ°—ã«å…¥ã‚Šå‰Šé™¤"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "ãŠæ°—ã«å…¥ã‚Š"
@@ -780,16 +875,16 @@ msgstr "ãŠæ°—ã«å…¥ã‚Š"
msgid "Join Game"
msgstr "ゲームã«å‚加"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "åå‰ / パスワード"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "応答速度"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP有効"
@@ -818,21 +913,13 @@ msgid "Antialiasing:"
msgstr "アンãƒã‚¨ã‚¤ãƒªã‚¢ã‚¹:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "シングルプレイヤーã®ãƒ¯ãƒ¼ãƒ«ãƒ‰ã‚’リセットã—ã¦ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
-msgstr "ç”»é¢ã®å¤§ãã•を自動ä¿å­˜"
+msgstr "大ãã•を自動ä¿å­˜"
#: builtin/mainmenu/tab_settings.lua
msgid "Bilinear Filter"
msgstr "ãƒã‚¤ãƒªãƒ‹ã‚¢ãƒ•ィルタ"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "ãƒãƒ³ãƒ—マッピング"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "キー変更"
@@ -846,10 +933,6 @@ msgid "Fancy Leaves"
msgstr "綺麗ãªè‘‰"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "法線マップã®ç”Ÿæˆ"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "ミップマップ"
@@ -858,10 +941,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "ミップマップã¨ç•°æ–¹æ€§ãƒ•ィルタ"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "ã„ã„ãˆ"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "フィルタ無ã—"
@@ -889,19 +968,11 @@ msgstr "ä¸é€æ˜Žãªè‘‰"
msgid "Opaque Water"
msgstr "ä¸é€æ˜Žãªæ°´"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "視差é®è”½"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "パーティクル"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "ワールドをリセット"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "ç”»é¢:"
@@ -914,6 +985,10 @@ msgid "Shaders"
msgstr "シェーダー"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr "シェーダー(実験的)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "シェーダー (無効)"
@@ -957,22 +1032,6 @@ msgstr "æºã‚Œã‚‹æ¶²ä½“"
msgid "Waving Plants"
msgstr "æºã‚Œã‚‹è‰èб"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "ã¯ã„"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Mod設定"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "メイン"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "シングルプレイスタート"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "接続ãŒã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã—ã¾ã—ãŸã€‚"
@@ -1134,29 +1193,29 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
-"æ“作:\n"
+"æ“作方法:\n"
"- %s: å‰é€²\n"
"- %s: 後退\n"
"- %s: 左移動\n"
"- %s: å³ç§»å‹•\n"
"- %s: ジャンプ/登る\n"
+"- %s: 掘削/パンãƒ\n"
+"- %s: 設置/使用\n"
"- %s: スニーク/é™ã‚Šã‚‹\n"
"- %s: アイテムをè½ã¨ã™\n"
"- %s: インベントリ\n"
"- マウス: 見回ã™\n"
-"- 左クリック: 掘削/パンãƒ\n"
-"- å³ã‚¯ãƒªãƒƒã‚¯: 設置/使用\n"
-"- ホイール: ã‚¢ã‚¤ãƒ†ãƒ é¸æŠž\n"
+"- マウスホイール: ã‚¢ã‚¤ãƒ†ãƒ é¸æŠž\n"
"- %s: ãƒãƒ£ãƒƒãƒˆ\n"
#: src/client/game.cpp
@@ -1288,34 +1347,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "ミニマップã¯ç¾åœ¨ã‚²ãƒ¼ãƒ ã¾ãŸã¯Modã«ã‚ˆã‚Šç„¡åй"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "ミニマップ éžè¡¨ç¤º"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "ミニマップ レーダーモードã€ã‚ºãƒ¼ãƒ  x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "ミニマップ レーダーモードã€ã‚ºãƒ¼ãƒ  x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "ミニマップ レーダーモードã€ã‚ºãƒ¼ãƒ  x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "ミニマップ 表é¢ãƒ¢ãƒ¼ãƒ‰ã€ã‚ºãƒ¼ãƒ  x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "ミニマップ 表é¢ãƒ¢ãƒ¼ãƒ‰ã€ã‚ºãƒ¼ãƒ  x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "ミニマップ 表é¢ãƒ¢ãƒ¼ãƒ‰ã€ã‚ºãƒ¼ãƒ  x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "ã™ã‚ŠæŠœã‘モード 無効"
@@ -1707,6 +1738,24 @@ msgstr "Xボタン2"
msgid "Zoom"
msgstr "ズーム"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "ミニマップ éžè¡¨ç¤º"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "ミニマップ レーダーモードã€ã‚ºãƒ¼ãƒ  x%d"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "ミニマップ 表é¢ãƒ¢ãƒ¼ãƒ‰ã€ã‚ºãƒ¼ãƒ  x%d"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "ミニマップ テクスãƒãƒ£ãƒ¢ãƒ¼ãƒ‰"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "パスワードãŒä¸€è‡´ã—ã¾ã›ã‚“ï¼"
@@ -1777,7 +1826,7 @@ msgstr "音é‡ã‚’下ã’ã‚‹"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Double tap \"jump\" to toggle fly"
-msgstr "\"ジャンプ\"二度押ã—ã§é£›è¡Œãƒ¢ãƒ¼ãƒ‰åˆ‡æ›¿"
+msgstr "\"ジャンプ\"2回ã§é£›è¡Œãƒ¢ãƒ¼ãƒ‰åˆ‡æ›¿"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Drop"
@@ -1810,7 +1859,7 @@ msgstr "キーãŒé‡è¤‡ã—ã¦ã„ã¾ã™"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
msgstr ""
-"キー設定ã§ã™ã€‚ (ã“ã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã§å¤±æ•—ã™ã‚‹å ´åˆã¯ã€minetest.confã‹ã‚‰è©²å½“ã™ã‚‹è¨­å®šã‚’"
+"キー設定ã§ã™ã€‚ (ã“ã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã§å¤±æ•—ã™ã‚‹å ´åˆã¯ minetest.conf ã‹ã‚‰è©²å½“ã™ã‚‹è¨­å®šã‚’"
"削除ã—ã¦ãã ã•ã„)"
#: src/gui/guiKeyChangeMenu.cpp
@@ -1978,14 +2027,6 @@ msgstr ""
"加工ã—ã¦ã„ãªã„ã®å½¢çжã®ãŸã‚ã«ã¯3ã¤ã®æ•°å­—ã‚’ã™ã¹ã¦ç­‰ã—ã設定ã—ã¾ã™ã€‚"
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = æ–œé¢æƒ…報付ãã®è¦–å·®é®è”½ãƒžãƒƒãƒ”ング(高速)。\n"
-"1 = リリーフマッピング(正確ã ãŒä½Žé€Ÿ)。"
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "尾根ã®å½¢çж/大ãã•を制御ã™ã‚‹2Dノイズ。"
@@ -2110,6 +2151,10 @@ msgid "ABM interval"
msgstr "ABMã®é–“éš”"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr "ABMã®æ™‚間予算"
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr "キューã«å…¥ã‚Œã‚‰ã‚ŒãŸãƒ–ロックãŒå‡ºç¾ã™ã‚‹çµ¶å¯¾åˆ¶é™"
@@ -2367,10 +2412,6 @@ msgid "Builtin"
msgstr "ビルトイン"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "ãƒãƒ³ãƒ—マッピング"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2448,21 +2489,6 @@ msgstr ""
"0.0ã¯æœ€å°å…‰ãƒ¬ãƒ™ãƒ«ã€1.0ã¯æœ€å¤§å…‰ãƒ¬ãƒ™ãƒ«ã§ã™ã€‚"
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"メインメニューUIを変更:\n"
-"- Full: 複数ã®ã‚·ãƒ³ã‚°ãƒ«ãƒ—レイヤーã®ãƒ¯ãƒ¼ãƒ«ãƒ‰ã€ã‚²ãƒ¼ãƒ ã®é¸æŠžã€\n"
-"テクスãƒãƒ£ãƒ‘ックã®é¸æŠžã€ãã®ä»–。\n"
-"- Simple: 1ã¤ã®ã‚·ãƒ³ã‚°ãƒ«ãƒ—レイヤーã®ãƒ¯ãƒ¼ãƒ«ãƒ‰ã€ã‚²ãƒ¼ãƒ ã‚„\n"
-"テクスãƒãƒ£ãƒ‘ックã®é¸æŠžã¯ã‚りã¾ã›ã‚“。å°ã•ãªç”»é¢ã§å¿…è¦ã‹ã‚‚ã—れã¾ã›ã‚“。"
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr "ãƒãƒ£ãƒƒãƒˆã®ãƒ•ォントサイズ"
@@ -2626,6 +2652,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "コンテンツDBフラグã®ãƒ–ラックリスト"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "コンテンツDBã®æœ€å¤§åŒæ™‚ダウンロード数"
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "コンテンツDBã®URL"
@@ -2687,19 +2717,27 @@ msgstr "クリエイティブ"
#: src/settings_translation_file.cpp
msgid "Crosshair alpha"
-msgstr "照準線ã®é€éŽåº¦"
+msgstr "å字カーソルã®é€éŽåº¦"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr "照準線ã®é€éŽ (ä¸é€æ˜Žã€0~255ã®é–“)。"
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"å字カーソルã®é€éŽåº¦ï¼ˆä¸é€æ˜Žã€0~255ã®é–“)。\n"
+"オブジェクトå字カーソルã®è‰²ã‚‚制御"
#: src/settings_translation_file.cpp
msgid "Crosshair color"
-msgstr "照準線ã®è‰²"
+msgstr "å字カーソルã®è‰²"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "照準線ã®è‰² (R,G,B)。"
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"å字カーソルã®è‰²ï¼ˆR,G,B)。\n"
+"オブジェクトå字カーソルã®è‰²ã‚‚制御"
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2802,14 +2840,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "オプションã®ä¸˜ã¨æ¹–ã®å ´æ‰€ã¨åœ°å½¢ã‚’定義ã—ã¾ã™ã€‚"
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"テクスãƒãƒ£ã®ã‚µãƒ³ãƒ—リング手順を定義ã—ã¾ã™ã€‚\n"
-"値ãŒå¤§ãã„ã»ã©ã€æ³•ç·šãƒžãƒƒãƒ—ãŒæ»‘らã‹ã«ãªã‚Šã¾ã™ã€‚"
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "基準地上レベルを定義ã—ã¾ã™ã€‚"
@@ -2851,7 +2881,7 @@ msgstr "ツールãƒãƒƒãƒ—を表示ã™ã‚‹ã¾ã§ã®é…å»¶ã€ãƒŸãƒªç§’ã§å®šã‚ã¾
#: src/settings_translation_file.cpp
msgid "Deprecated Lua API handling"
-msgstr "廃止予定ã®Lua APIã®å‡¦ç†"
+msgstr "éžæŽ¨å¥¨ã® Lua API ã®å‡¦ç†"
#: src/settings_translation_file.cpp
msgid "Depth below which you'll find giant caverns."
@@ -2884,6 +2914,10 @@ msgid "Desynchronize block animation"
msgstr "ブロックã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã®éžåŒæœŸåŒ–"
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr "掘削キー"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "掘削時パーティクル"
@@ -2948,7 +2982,8 @@ msgid "Enable console window"
msgstr "コンソールウィンドウを有効化"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "æ–°ã—ã作æˆã•れãŸãƒžãƒƒãƒ—ã§ã‚¯ãƒªã‚¨ã‚¤ãƒ†ã‚£ãƒ–モードを有効ã«ã—ã¾ã™ã€‚"
#: src/settings_translation_file.cpp
@@ -3059,17 +3094,6 @@ msgid "Enables animation of inventory items."
msgstr "インベントリã®ã‚¢ã‚¤ãƒ†ãƒ ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’有効ã«ã—ã¾ã™ã€‚"
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"テクスãƒãƒ£ã®ãƒãƒ³ãƒ—マッピングを有効ã«ã—ã¾ã™ã€‚法線マップã¯\n"
-"テクスãƒãƒ£ãƒ‘ックã«ã‚ˆã£ã¦æä¾›ã•れるã‹ã¾ãŸã¯è‡ªå‹•生æˆã•れる必è¦ãŒã‚りã¾ã™ã€‚\n"
-"ã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ãŒæœ‰åйã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚"
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "facedir回転メッシュã®ã‚­ãƒ£ãƒƒã‚·ãƒ³ã‚°ã‚’有効ã«ã—ã¾ã™ã€‚"
@@ -3079,22 +3103,6 @@ msgstr "ミニマップを有効ã«ã™ã‚‹ã€‚"
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"法線マップ生æˆã‚’è‡¨æ©Ÿå¿œå¤‰ã«æœ‰åйã«ã—ã¾ã™(エンボス効果)。\n"
-"ãƒãƒ³ãƒ—ãƒžãƒƒãƒ”ãƒ³ã‚°ãŒæœ‰åйã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚"
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"視差é®è”½ãƒžãƒƒãƒ”ングを有効ã«ã—ã¾ã™ã€‚\n"
-"ã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ãŒæœ‰åйã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚"
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3115,14 +3123,6 @@ msgstr "エンティティメソッド"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"実験的ãªã‚ªãƒ—ションã§ã€0 より大ãã„æ•°å€¤ã«è¨­å®šã™ã‚‹ã¨ã€ãƒ–ロック間ã«\n"
-"ç›®ã«è¦‹ãˆã‚‹ã‚¹ãƒšãƒ¼ã‚¹ãŒç”Ÿã˜ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚"
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3138,8 +3138,8 @@ msgstr ""
"作æˆã—ã€å¯†ãªæµ®éŠå¤§é™¸å±¤ã«é©ã—ã¦ã„ã¾ã™ã€‚"
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "ãƒãƒ¼ã‚ºãƒ¡ãƒ‹ãƒ¥ãƒ¼ã§ã®FPS"
+msgid "FPS when unfocused or paused"
+msgstr "éžã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã¾ãŸã¯ãƒãƒ¼ã‚ºãƒ¡ãƒ‹ãƒ¥ãƒ¼è¡¨ç¤ºä¸­ã®FPS"
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3464,10 +3464,6 @@ msgid "GUI scaling filter txr2img"
msgstr "GUI拡大縮å°ãƒ•ィルタ txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "法線マップã®ç”Ÿæˆ"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "グローãƒãƒ«ã‚³ãƒ¼ãƒ«ãƒãƒƒã‚¯"
@@ -3529,15 +3525,14 @@ msgstr "HUD表示切り替ãˆã‚­ãƒ¼"
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
-"廃止予定ã®Lua API呼ã³å‡ºã—ã®å‡¦ç†:\n"
-"- legacy: å¤ã„振る舞ã„を模倣ã™ã‚‹(試ã¿ã‚‹) (ãƒªãƒªãƒ¼ã‚¹ç‰ˆã®æ—¢å®šå€¤)。\n"
-"- log: 廃止予定ã®å‘¼ã³å‡ºã—を模倣ã—ã¦ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’記録 (デãƒãƒƒã‚°ç‰ˆã®æ—¢å®š"
-"値)。\n"
-"- error: 廃止予定ã®å‘¼ã³å‡ºã—ã®ä½¿ç”¨ã‚’中止ã™ã‚‹ (Mod開発者å‘ã‘ã«æŽ¨å¥¨)。"
+"éžæŽ¨å¥¨ã® Lua API 呼ã³å‡ºã—ã®å‡¦ç†ï¼š\n"
+"- none: éžæŽ¨å¥¨ã®å‘¼ã³å‡ºã—を記録ã—ãªã„\n"
+"- log: éžæŽ¨å¥¨ã®å‘¼ã³å‡ºã—ã®ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’模倣ã—ã¦è¨˜éŒ²ã—ã¾ã™ï¼ˆæ—¢å®šå€¤ï¼‰ã€‚\n"
+"- error: éžæŽ¨å¥¨ã®å‘¼ã³å‡ºã—ã®ä½¿ç”¨ã‚’中止ã—ã¾ã™ï¼ˆModé–‹ç™ºè€…ã«æŽ¨å¥¨ï¼‰ã€‚"
#: src/settings_translation_file.cpp
msgid ""
@@ -4059,6 +4054,10 @@ msgid "Joystick button repetition interval"
msgstr "ジョイスティックボタンã®ç¹°ã‚Šè¿”ã—é–“éš”"
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr "ジョイスティックã®ãƒ‡ãƒƒãƒ‰ã‚¾ãƒ¼ãƒ³"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "ジョイスティック視éŒå°æ„Ÿåº¦"
@@ -4162,6 +4161,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"掘削ã™ã‚‹ã‚­ãƒ¼ã§ã™ã€‚\n"
+"å‚ç…§ http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4304,6 +4313,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"設置ã™ã‚‹ã‚­ãƒ¼ã§ã™ã€‚\n"
+"å‚ç…§ http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -5046,10 +5065,6 @@ msgid "Main menu script"
msgstr "メインメニュースクリプト"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "メインメニューã®ã‚¹ã‚¿ã‚¤ãƒ«"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr "霧ã¨ç©ºã®è‰²ã‚’日中(夜明ã‘/日没)ã¨è¦–ç·šæ–¹å‘ã«ä¾å­˜ã•ã›ã¾ã™ã€‚"
@@ -5063,6 +5078,14 @@ msgid "Makes all liquids opaque"
msgstr "ã™ã¹ã¦ã®æ¶²ä½“ã‚’ä¸é€æ˜Žã«ã™ã‚‹"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr "ディスクストレージã®ãƒžãƒƒãƒ—圧縮レベル"
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr "ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯è»¢é€ã®ãŸã‚ã®ãƒžãƒƒãƒ—圧縮レベル"
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "マップディレクトリ"
@@ -5245,8 +5268,10 @@ msgid "Maximum FPS"
msgstr "最大FPS"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
-msgstr "ãƒãƒ¼ã‚ºãƒ¡ãƒ‹ãƒ¥ãƒ¼ã§ã®æœ€å¤§FPS。"
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
+msgstr ""
+"ウィンドウã«ãƒ•ォーカスãŒåˆã£ã¦ã„ãªã„ã¨ãã€ã¾ãŸã¯ãƒãƒ¼ã‚ºãƒ¡ãƒ‹ãƒ¥ãƒ¼è¡¨ç¤ºä¸­ã®æœ€å¤§"
+"FPS。"
#: src/settings_translation_file.cpp
msgid "Maximum forceloaded blocks"
@@ -5301,6 +5326,16 @@ msgstr ""
"ã“ã®åˆ¶é™ã¯ãƒ—レイヤーã”ã¨ã«é©ç”¨ã•れã¾ã™ã€‚"
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+"åŒæ™‚ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã®æœ€å¤§æ•°ã§ã™ã€‚ã“ã®åˆ¶é™ã‚’è¶…ãˆã‚‹ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã¯ã‚­ãƒ¥ãƒ¼ã«å…¥ã‚Œã‚‰ã‚Œ"
+"ã¾ã™ã€‚\n"
+"ã“れ㯠curl_parallel_limit よりも低ã„値ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。"
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr "強制読ã¿è¾¼ã¿ãƒžãƒƒãƒ—ãƒ–ãƒ­ãƒƒã‚¯ã®æœ€å¤§æ•°ã€‚"
@@ -5551,14 +5586,6 @@ msgid "Noises"
msgstr "ノイズ"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "法線マップã®ã‚µãƒ³ãƒ—リング"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "法線マップã®å¼·ã•"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "出ç¾ã™ã‚‹ã‚¹ãƒ¬ãƒƒãƒ‰æ•°"
@@ -5598,10 +5625,6 @@ msgstr ""
"トレードオフã§ã™ (経験則ã¨ã—ã¦ã€4096 = 100MB)。"
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "視差é®è”½å復ã®å›žæ•°ã§ã™ã€‚"
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "オンラインコンテンツリãƒã‚¸ãƒˆãƒª"
@@ -5629,34 +5652,6 @@ msgstr ""
"フォームスペックãŒé–‹ã‹ã‚Œã¦ã„ã‚‹ã¨ãã¯ãƒãƒ¼ã‚ºãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’é–‹ãã¾ã›ã‚“。"
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "視差é®è”½åŠ¹æžœã®å…¨ä½“çš„ãƒã‚¤ã‚¢ã‚¹ã€é€šå¸¸ スケール/2 ã§ã™ã€‚"
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "視差é®è”½åŠ¹æžœã®å…¨ä½“çš„ãªã‚¹ã‚±ãƒ¼ãƒ«ã§ã™ã€‚"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "視差é®è”½"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "視差é®è”½ãƒã‚¤ã‚¢ã‚¹"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "視差é®è”½å復"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "視差é®è”½ãƒ¢ãƒ¼ãƒ‰"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "視差é®è”½ã‚¹ã‚±ãƒ¼ãƒ«"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5747,6 +5742,14 @@ msgid "Pitch move mode"
msgstr "ピッãƒç§»å‹•モード"
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr "設置キー"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr "設置ã®ç¹°ã‚Šè¿”ã—é–“éš”"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5822,7 +5825,8 @@ msgid ""
"Metrics can be fetch on http://127.0.0.1:30000/metrics"
msgstr ""
"プロメテウスリスナーã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã€‚\n"
-"minetest ㌠ENABLE_PROMETHEUS オプションを有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã•れã¦ã„ã‚‹å ´åˆã€\n"
+"minetest ㌠ENABLE_PROMETHEUS オプションを有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã•れã¦ã„ã‚‹å ´"
+"åˆã€\n"
"ãã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ãƒ—ロメテウスã®ãƒ¡ãƒˆãƒªãƒƒã‚¯ã‚¹ãƒªã‚¹ãƒŠãƒ¼ã‚’有効ã«ã—ã¾ã™ã€‚\n"
"メトリック㯠http://127.0.0.1:30000/metrics ã§å–å¾—å¯èƒ½"
@@ -5929,10 +5933,6 @@ msgid "Right key"
msgstr "å³ã‚­ãƒ¼"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "å³ã‚¯ãƒªãƒƒã‚¯ç¹°ã‚Šè¿”ã—ã®é–“éš”"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "æ²³é“ã®æ·±ã•"
@@ -6223,7 +6223,20 @@ msgstr "デãƒãƒƒã‚°æƒ…報を表示"
#: src/settings_translation_file.cpp
msgid "Show entity selection boxes"
-msgstr "エンティティã®é¸æŠžãƒœãƒƒã‚¯ã‚¹ã‚’表示"
+msgstr "エンティティã®é¸æŠžãƒœãƒƒã‚¯ã‚¹è¡¨ç¤º"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"エンティティã®é¸æŠžãƒœãƒƒã‚¯ã‚¹ã‚’表示\n"
+"変更後ã¯å†èµ·å‹•ãŒå¿…è¦ã§ã™ã€‚"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "既定ã§å¤ªå­—ã®ãƒ•ォント"
#: src/settings_translation_file.cpp
msgid "Shutdown message"
@@ -6377,10 +6390,6 @@ msgid "Strength of 3D mode parallax."
msgstr "3Dモード視差ã®å¼·ã•ã§ã™ã€‚"
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "生æˆã•ã‚ŒãŸæ³•線マップã®å¼·ã•ã§ã™ã€‚"
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6412,11 +6421,13 @@ msgid ""
"world surface below."
msgstr ""
"å¯†ãªæµ®éŠå¤§é™¸å±¤ã«é…ç½®ã•ã‚Œã‚‹ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã®æ°´ã®è¡¨é¢ãƒ¬ãƒ™ãƒ«ã€‚\n"
-"æ°´ã¯è¦å®šã§ç„¡åйã«ãªã£ã¦ãŠã‚Šã€ã“ã®å€¤ãŒ 'mgv7_floatland_ymax' - 'mgv7_floatland_taper'\n"
+"æ°´ã¯è¦å®šã§ç„¡åйã«ãªã£ã¦ãŠã‚Šã€ã“ã®å€¤ãŒ 'mgv7_floatland_ymax' - "
+"'mgv7_floatland_taper'\n"
"(上部ã®å…ˆç´°ã‚Šé–‹å§‹ç‚¹ï¼‰ã‚ˆã‚Šä¸Šã«è¨­å®šã•れã¦ã„ã‚‹å ´åˆã«ã®ã¿é…ç½®ã•れã¾ã™ã€‚\n"
"***警告ã€ã‚µãƒ¼ãƒãƒ¼ã®ãƒ‘フォーマンスã¸ã®æ½œåœ¨çš„ãªå±é™ºæ€§***:\n"
"æ°´ã®é…置を有効ã«ã™ã‚‹å ´åˆã€æµ®éŠå¤§é™¸ã‚’密ãªå±¤ã«ã™ã‚‹ãŸã‚ã«\n"
-"'mgv7_floatland_density' ã‚’2.0(ã¾ãŸã¯ 'mgv7_np_floatland' ã«å¿œã˜ã¦ä»–ã®å¿…è¦ãªå€¤ï¼‰ã«\n"
+"'mgv7_floatland_density' ã‚’2.0(ã¾ãŸã¯ 'mgv7_np_floatland' ã«å¿œã˜ã¦ä»–ã®å¿…è¦ãª"
+"値)ã«\n"
"設定ã—ã¦ã€ã‚µãƒ¼ãƒãƒ¼ã«é›†ä¸­ã™ã‚‹æ¥µç«¯ãªæ°´ã®æµã‚Œã‚’é¿ã‘ã€ä¸‹ã®ä¸–界表é¢ã¸ã®å¤§è¦æ¨¡ãª\n"
"洪水をé¿ã‘るよã†ã«ãƒ†ã‚¹ãƒˆã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚"
@@ -6498,6 +6509,10 @@ msgid "The URL for the content repository"
msgstr "コンテンツリãƒã‚¸ãƒˆãƒªã®URL"
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr "ジョイスティックã®ãƒ‡ãƒƒãƒ‰ã‚¾ãƒ¼ãƒ³"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6571,15 +6586,15 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
"Irrlichtã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã€‚\n"
"変更後ã¯å†èµ·å‹•ãŒå¿…è¦ã§ã™ã€‚\n"
-"メモ: Androidã§ã¯ã€ä¸æ˜Žãªå ´åˆã¯ OGLES1 を使用ã—ã¦ãã ã•ã„ï¼ \n"
-"ãれ以外ã®å ´åˆã‚¢ãƒ—リã¯èµ·å‹•ã«å¤±æ•—ã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚\n"
-"ä»–ã®ãƒ—ラットフォームã§ã¯ã€OpenGL ãŒæŽ¨å¥¨ã•れã¦ãŠã‚Šã€ç¾åœ¨ãれãŒ\n"
-"シェーダーをサãƒãƒ¼ãƒˆã™ã‚‹å”¯ä¸€ã®ãƒ‰ãƒ©ã‚¤ãƒã§ã™ã€‚"
+"注æ„:Android ã®å ´åˆã€ã‚ˆãã‚ã‹ã‚‰ãªã„å ´åˆã¯ OGLES1 を使用ã—ã¦ãã ã•ã„ï¼\n"
+"ãã†ã—ãªã„ã¨ã‚¢ãƒ—リã®èµ·å‹•ã«å¤±æ•—ã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚\n"
+"ãã®ä»–ã®ãƒ—ラットフォームã§ã¯ã€OpenGL ãŒæŽ¨å¥¨ã•れã¦ã„ã¾ã™ã€‚\n"
+"シェーダー㯠OpenGL(デスクトップã®ã¿ï¼‰ã¨ OGLES2(実験的)ã§ã‚µãƒãƒ¼ãƒˆ"
#: src/settings_translation_file.cpp
msgid ""
@@ -6609,6 +6624,14 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+"ABM ãŒå„ステップã§å®Ÿè¡Œã§ãる時間予算\n"
+"(ABMé–“éš”ã®ä¸€éƒ¨ã¨ã—ã¦ï¼‰"
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6617,10 +6640,9 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
-msgstr "マウスã®å³ãƒœã‚¿ãƒ³ã‚’押ã—ãŸã¾ã¾å³ã‚¯ãƒªãƒƒã‚¯ã‚’繰り返ã™ç§’å˜ä½ã®é–“隔。"
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
+msgstr "設置ボタンを押ã—ãŸã¾ã¾ãƒŽãƒ¼ãƒ‰ã®è¨­ç½®ã‚’繰り返ã™ç§’å˜ä½ã®é–“隔。"
#: src/settings_translation_file.cpp
msgid "The type of joystick"
@@ -6775,6 +6797,25 @@ msgstr ""
"ガンマ補正縮å°ã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“。"
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+"マルãƒã‚µãƒ³ãƒ—ルアンãƒã‚¨ã‚¤ãƒªã‚¢ã‚¹ï¼ˆMSAA)を使用ã—ã¦ã€ãƒ–ロックエッジを滑らã‹ã«ã—"
+"ã¾ã™ã€‚\n"
+"ã“ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã¯ã€ç”»åƒã‚’鮮明ã«ä¿ã¡ãªãŒã‚‰3Dビューãƒãƒ¼ãƒˆã‚’滑らã‹ã«ã—ã¾ã™ã€‚\n"
+"ã—ã‹ã—ã€ãれã¯ãƒ†ã‚¯ã‚¹ãƒãƒ£ã®å†…部ã«ã¯å½±éŸ¿ã—ã¾ã›ã‚“\n"
+"(ã“れã¯ã€é€æ˜Žãªãƒ†ã‚¯ã‚¹ãƒãƒ£ã§ç‰¹ã«ç›®ç«‹ã¡ã¾ã™ï¼‰ã€‚\n"
+"シェーダーを無効ã«ã™ã‚‹ã¨ã€ãƒŽãƒ¼ãƒ‰é–“ã«å¯è¦–スペースãŒè¡¨ç¤ºã•れã¾ã™ã€‚\n"
+"0 ã«è¨­å®šã™ã‚‹ã¨ã€MSAAã¯ç„¡åйã«ãªã‚Šã¾ã™ã€‚\n"
+"ã“ã®ã‚ªãƒ—ションを変更ã—ãŸå ´åˆã€å†èµ·å‹•ãŒå¿…è¦ã§ã™ã€‚"
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "テクスãƒãƒ£ã‚’拡大縮å°ã™ã‚‹å ´åˆã¯ãƒˆãƒ©ã‚¤ãƒªãƒ‹ã‚¢ãƒ•ィルタリングを使用ã—ã¾ã™ã€‚"
@@ -7010,6 +7051,12 @@ msgstr ""
"ã™ã€‚"
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
"ノードã®ãƒ†ã‚¯ã‚¹ãƒãƒ£ã®ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’マップブロックã”ã¨ã«éžåŒæœŸã«\n"
@@ -7021,7 +7068,7 @@ msgid ""
"Deprecated, use the setting player_transfer_distance instead."
msgstr ""
"プレイヤーãŒç¯„囲制é™ãªã—ã§ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã«è¡¨ç¤ºã•れるã‹ã©ã†ã‹ã§ã™ã€‚\n"
-"廃止予定ã€ä»£ã‚りã«è¨­å®š player_transfer_distance を使用ã—ã¦ãã ã•ã„。"
+"éžæŽ¨å¥¨ã€‚ä»£ã‚りã«è¨­å®š player_transfer_distance を使用ã—ã¦ãã ã•ã„。"
#: src/settings_translation_file.cpp
msgid "Whether to allow players to damage and kill each other."
@@ -7164,6 +7211,34 @@ msgid "Y-level of seabed."
msgstr "海底ã®Yレベル。"
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"マップブロックをディスクã«ä¿å­˜ã™ã‚‹ã¨ãã«ä½¿ç”¨ã™ã‚‹ ZLib圧縮レベル。\n"
+"-1 - Zlib ã®è¦å®šã®åœ§ç¸®ãƒ¬ãƒ™ãƒ«\n"
+"0 - 圧縮ãªã—ã€æœ€é€Ÿ\n"
+"9 - 最高ã®åœ§ç¸®ã€æœ€ã‚‚é…ã„\n"
+"(レベル 1〜3 ã¯Zlibã®ã€Œé«˜é€Ÿã€æ–¹å¼ã‚’使用ã—ã€4〜9 ã¯é€šå¸¸æ–¹å¼ã‚’使用)"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"マップブロックをクライアントã«é€ä¿¡ã™ã‚‹ã¨ãã«ä½¿ç”¨ã™ã‚‹ ZLib圧縮レベル。\n"
+"-1 - Zlib ã®è¦å®šã®åœ§ç¸®ãƒ¬ãƒ™ãƒ«\n"
+"0 - 圧縮ãªã—ã€æœ€é€Ÿ\n"
+"9 - 最高ã®åœ§ç¸®ã€æœ€ã‚‚é…ã„\n"
+"(レベル 1〜3 ã¯Zlibã®ã€Œé«˜é€Ÿã€æ–¹å¼ã‚’使用ã—ã€4〜9 ã¯é€šå¸¸æ–¹å¼ã‚’使用)"
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "cURLファイルダウンロードタイムアウト"
@@ -7175,78 +7250,88 @@ msgstr "cURL並行処ç†åˆ¶é™"
msgid "cURL timeout"
msgstr "cURLタイムアウト"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "映画風モード切替"
-
-#~ msgid "Select Package File:"
-#~ msgstr "ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž:"
-
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "大ããªæ´žçªŸå†…ã®æº¶å²©ã®Y高ã•上é™ã€‚"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = æ–œé¢æƒ…報付ãã®è¦–å·®é®è”½ãƒžãƒƒãƒ”ング(高速)。\n"
+#~ "1 = リリーフマッピング(正確ã ãŒä½Žé€Ÿ)。"
-#~ msgid "Waving Water"
-#~ msgstr "æºã‚Œã‚‹æ°´"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "ライトテーブルã®ã‚¬ãƒ³ãƒžè£œæ­£ã‚’調整ã—ã¾ã™ã€‚数値ãŒå¤§ãã„ã»ã©æ˜Žã‚‹ããªã‚Šã¾ã™ã€‚\n"
+#~ "ã“ã®è¨­å®šã¯ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆå°‚用ã§ã‚りã€ã‚µãƒ¼ãƒã§ã¯ç„¡è¦–ã•れã¾ã™ã€‚"
-#~ msgid "Whether dungeons occasionally project from the terrain."
-#~ msgstr "ãƒ€ãƒ³ã‚¸ãƒ§ãƒ³ãŒæ™‚折地形ã‹ã‚‰çªå‡ºã™ã‚‹ã‹ã©ã†ã‹ã€‚"
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgstr "山型浮éŠå¤§é™¸ãŒä¸­é–“点ã®ä¸Šä¸‹ã§ã©ã®ã‚ˆã†ã«å…ˆç´°ããªã‚‹ã‹ã‚’変更ã—ã¾ã™ã€‚"
-#~ msgid "Projecting dungeons"
-#~ msgstr "çªå‡ºã™ã‚‹ãƒ€ãƒ³ã‚¸ãƒ§ãƒ³"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "シングルプレイヤーã®ãƒ¯ãƒ¼ãƒ«ãƒ‰ã‚’リセットã—ã¦ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ"
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "æµ®éŠå¤§é™¸ã®å½±ãŒåºƒãŒã‚‹Yレベル。"
+#~ msgid "Back"
+#~ msgstr "戻る"
-#~ msgid "Y-level of floatland midpoint and lake surface."
-#~ msgstr "æµ®éŠå¤§é™¸ã®ä¸­é–“ç‚¹ã¨æ¹–é¢ã®Yレベル。"
+#~ msgid "Bump Mapping"
+#~ msgstr "ãƒãƒ³ãƒ—マッピング"
-#~ msgid "Waving water"
-#~ msgstr "æºã‚Œã‚‹æ°´"
+#~ msgid "Bumpmapping"
+#~ msgstr "ãƒãƒ³ãƒ—マッピング"
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
-#~ msgstr "æµ®éŠå¤§é™¸ã®æ»‘らã‹ãªåœ°å½¢ã«ãŠã‘る丘ã®é«˜ã•ã¨æ¹–ã®æ·±ã•ã®å¤‰å‹•。"
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "光度曲線ミッドブーストã®ä¸­å¿ƒã€‚"
#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
-#~ msgstr "æµ®éŠå¤§é™¸ã®å±±ã®ä¸­é–“点ã®ä¸Šã¨ä¸‹ã®å…¸åž‹çš„ãªæœ€å¤§é«˜ã•。"
-
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "ã“ã®ãƒ•ォントã¯ç‰¹å®šã®è¨€èªžã§ä½¿ç”¨ã•れã¾ã™ã€‚"
-
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "光度曲線ミッドブーストã®å¼·ã•。"
-
-#~ msgid "Shadow limit"
-#~ msgstr "å½±ã®åˆ¶é™"
-
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "TrueTypeフォントã¾ãŸã¯ãƒ“ットマップã¸ã®ãƒ‘ス。"
-
-#~ msgid "Lightness sharpness"
-#~ msgstr "明るã•ã®é‹­ã•"
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "メインメニューUIを変更:\n"
+#~ "- Full: 複数ã®ã‚·ãƒ³ã‚°ãƒ«ãƒ—レイヤーã®ãƒ¯ãƒ¼ãƒ«ãƒ‰ã€ã‚²ãƒ¼ãƒ ã®é¸æŠžã€\n"
+#~ "テクスãƒãƒ£ãƒ‘ックã®é¸æŠžã€ãã®ä»–。\n"
+#~ "- Simple: 1ã¤ã®ã‚·ãƒ³ã‚°ãƒ«ãƒ—レイヤーã®ãƒ¯ãƒ¼ãƒ«ãƒ‰ã€ã‚²ãƒ¼ãƒ ã‚„\n"
+#~ "テクスãƒãƒ£ãƒ‘ックã®é¸æŠžã¯ã‚りã¾ã›ã‚“。å°ã•ãªç”»é¢ã§å¿…è¦ã‹ã‚‚ã—れã¾ã›ã‚“。"
-#~ msgid "Lava depth"
-#~ msgstr "æº¶å²©ã®æ·±ã•"
+#~ msgid "Config mods"
+#~ msgstr "Mod設定"
-#~ msgid "IPv6 support."
-#~ msgstr "IPv6 サãƒãƒ¼ãƒˆã€‚"
+#~ msgid "Configure"
+#~ msgstr "設定"
-#~ msgid "Gamma"
-#~ msgstr "ガンマ"
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "山型浮éŠå¤§é™¸ã®å¯†åº¦ã‚’制御ã—ã¾ã™ã€‚\n"
+#~ "ノイズã®ã‚ªãƒ•セットã¯ã€'mgv7_np_mountain' ノイズ値ã«è¿½åŠ ã•れã¾ã™ã€‚"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "フォントã®å½±ã®é€éŽ (ä¸é€æ˜Žã€0~255ã®é–“)。"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr "トンãƒãƒ«ã®å¹…を制御ã€å°ã•ã„æ–¹ã®å€¤ã»ã©åºƒã„トンãƒãƒ«ã‚’生æˆã—ã¾ã™ã€‚"
-#~ msgid "Floatland mountain height"
-#~ msgstr "æµ®éŠå¤§é™¸ã®å±±ã®é«˜ã•"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "照準線ã®è‰² (R,G,B)。"
-#~ msgid "Floatland base height noise"
-#~ msgstr "æµ®éŠå¤§é™¸ã®åŸºæº–高ã•ノイズ"
+#~ msgid "Darkness sharpness"
+#~ msgstr "æš—ã•ã®é‹­ã•"
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "フィルム調トーンマッピング有効ã«ã™ã‚‹"
+#~ msgid ""
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
+#~ msgstr ""
+#~ "æµ®éŠå¤§é™¸ã®æ»‘らã‹ãªåœ°å½¢ã®åœ°åŸŸã‚’定義ã—ã¾ã™ã€‚\n"
+#~ "ノイズ㌠0 より大ãã„ã¨ãã€æ»‘らã‹ãªæµ®éŠå¤§é™¸ã«ãªã‚Šã¾ã™ã€‚"
-#~ msgid "Enable VBO"
-#~ msgstr "VBOを有効化"
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "テクスãƒãƒ£ã®ã‚µãƒ³ãƒ—リング手順を定義ã—ã¾ã™ã€‚\n"
+#~ "値ãŒå¤§ãã„ã»ã©ã€æ³•ç·šãƒžãƒƒãƒ—ãŒæ»‘らã‹ã«ãªã‚Šã¾ã™ã€‚"
#~ msgid ""
#~ "Deprecated, define and locate cave liquids using biome definitions "
@@ -7257,54 +7342,202 @@ msgstr "cURLタイムアウト"
#~ "ã™ã€‚\n"
#~ "大ããªæ´žçªŸå†…ã®æº¶å²©ã®Y高ã•上é™ã€‚"
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "$1をインストールã—ã¦ã„ã¾ã™ã€ãŠå¾…ã¡ãã ã•ã„..."
+
+#~ msgid "Enable VBO"
+#~ msgstr "VBOを有効化"
+
#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "æµ®éŠå¤§é™¸ã®æ»‘らã‹ãªåœ°å½¢ã®åœ°åŸŸã‚’定義ã—ã¾ã™ã€‚\n"
-#~ "ノイズ㌠0 より大ãã„ã¨ãã€æ»‘らã‹ãªæµ®éŠå¤§é™¸ã«ãªã‚Šã¾ã™ã€‚"
-
-#~ msgid "Darkness sharpness"
-#~ msgstr "æš—ã•ã®é‹­ã•"
+#~ "テクスãƒãƒ£ã®ãƒãƒ³ãƒ—マッピングを有効ã«ã—ã¾ã™ã€‚法線マップã¯\n"
+#~ "テクスãƒãƒ£ãƒ‘ックã«ã‚ˆã£ã¦æä¾›ã•れるã‹ã¾ãŸã¯è‡ªå‹•生æˆã•れる必è¦ãŒã‚りã¾ã™ã€‚\n"
+#~ "ã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ãŒæœ‰åйã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
-#~ msgstr "トンãƒãƒ«ã®å¹…を制御ã€å°ã•ã„æ–¹ã®å€¤ã»ã©åºƒã„トンãƒãƒ«ã‚’生æˆã—ã¾ã™ã€‚"
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "フィルム調トーンマッピング有効ã«ã™ã‚‹"
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "山型浮éŠå¤§é™¸ã®å¯†åº¦ã‚’制御ã—ã¾ã™ã€‚\n"
-#~ "ノイズã®ã‚ªãƒ•セットã¯ã€'mgv7_np_mountain' ノイズ値ã«è¿½åŠ ã•れã¾ã™ã€‚"
-
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "光度曲線ミッドブーストã®ä¸­å¿ƒã€‚"
+#~ "法線マップ生æˆã‚’è‡¨æ©Ÿå¿œå¤‰ã«æœ‰åйã«ã—ã¾ã™(エンボス効果)。\n"
+#~ "ãƒãƒ³ãƒ—ãƒžãƒƒãƒ”ãƒ³ã‚°ãŒæœ‰åйã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚"
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
-#~ msgstr "山型浮éŠå¤§é™¸ãŒä¸­é–“点ã®ä¸Šä¸‹ã§ã©ã®ã‚ˆã†ã«å…ˆç´°ããªã‚‹ã‹ã‚’変更ã—ã¾ã™ã€‚"
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "視差é®è”½ãƒžãƒƒãƒ”ングを有効ã«ã—ã¾ã™ã€‚\n"
+#~ "ã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ãŒæœ‰åйã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚"
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
#~ msgstr ""
-#~ "ライトテーブルã®ã‚¬ãƒ³ãƒžè£œæ­£ã‚’調整ã—ã¾ã™ã€‚数値ãŒå¤§ãã„ã»ã©æ˜Žã‚‹ããªã‚Šã¾ã™ã€‚\n"
-#~ "ã“ã®è¨­å®šã¯ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆå°‚用ã§ã‚りã€ã‚µãƒ¼ãƒã§ã¯ç„¡è¦–ã•れã¾ã™ã€‚"
+#~ "実験的ãªã‚ªãƒ—ションã§ã€0 より大ãã„æ•°å€¤ã«è¨­å®šã™ã‚‹ã¨ã€ãƒ–ロック間ã«\n"
+#~ "ç›®ã«è¦‹ãˆã‚‹ã‚¹ãƒšãƒ¼ã‚¹ãŒç”Ÿã˜ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚"
-#~ msgid "Path to save screenshots at."
-#~ msgstr "スクリーンショットをä¿å­˜ã™ã‚‹ãƒ‘ス。"
+#~ msgid "FPS in pause menu"
+#~ msgstr "ãƒãƒ¼ã‚ºãƒ¡ãƒ‹ãƒ¥ãƒ¼ã§ã®FPS"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "視差é®è”½å¼·åº¦"
+#~ msgid "Floatland base height noise"
+#~ msgstr "æµ®éŠå¤§é™¸ã®åŸºæº–高ã•ノイズ"
+
+#~ msgid "Floatland mountain height"
+#~ msgstr "æµ®éŠå¤§é™¸ã®å±±ã®é«˜ã•"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "フォントã®å½±ã®é€éŽ (ä¸é€æ˜Žã€0~255ã®é–“)。"
+
+#~ msgid "Gamma"
+#~ msgstr "ガンマ"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "法線マップã®ç”Ÿæˆ"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "法線マップã®ç”Ÿæˆ"
+
+#~ msgid "IPv6 support."
+#~ msgstr "IPv6 サãƒãƒ¼ãƒˆã€‚"
+
+#~ msgid "Lava depth"
+#~ msgstr "æº¶å²©ã®æ·±ã•"
+
+#~ msgid "Lightness sharpness"
+#~ msgstr "明るã•ã®é‹­ã•"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "ディスク上ã«å‡ºç¾ã™ã‚‹ã‚­ãƒ¥ãƒ¼ã®åˆ¶é™"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "$1をインストールã—ã¦ã„ã¾ã™ã€ãŠå¾…ã¡ãã ã•ã„..."
+#~ msgid "Main"
+#~ msgstr "メイン"
-#~ msgid "Back"
-#~ msgstr "戻る"
+#~ msgid "Main menu style"
+#~ msgstr "メインメニューã®ã‚¹ã‚¿ã‚¤ãƒ«"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "ミニマップ レーダーモードã€ã‚ºãƒ¼ãƒ  x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "ミニマップ レーダーモードã€ã‚ºãƒ¼ãƒ  x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "ミニマップ 表é¢ãƒ¢ãƒ¼ãƒ‰ã€ã‚ºãƒ¼ãƒ  x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "ミニマップ 表é¢ãƒ¢ãƒ¼ãƒ‰ã€ã‚ºãƒ¼ãƒ  x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "åå‰ / パスワード"
+
+#~ msgid "No"
+#~ msgstr "ã„ã„ãˆ"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "法線マップã®ã‚µãƒ³ãƒ—リング"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "法線マップã®å¼·ã•"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "視差é®è”½å復ã®å›žæ•°ã§ã™ã€‚"
#~ msgid "Ok"
#~ msgstr "決定"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "視差é®è”½åŠ¹æžœã®å…¨ä½“çš„ãƒã‚¤ã‚¢ã‚¹ã€é€šå¸¸ スケール/2 ã§ã™ã€‚"
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "視差é®è”½åŠ¹æžœã®å…¨ä½“çš„ãªã‚¹ã‚±ãƒ¼ãƒ«ã§ã™ã€‚"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "視差é®è”½"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "視差é®è”½"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "視差é®è”½ãƒã‚¤ã‚¢ã‚¹"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "視差é®è”½å復"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "視差é®è”½ãƒ¢ãƒ¼ãƒ‰"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "視差é®è”½ã‚¹ã‚±ãƒ¼ãƒ«"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "視差é®è”½å¼·åº¦"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "TrueTypeフォントã¾ãŸã¯ãƒ“ットマップã¸ã®ãƒ‘ス。"
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "スクリーンショットをä¿å­˜ã™ã‚‹ãƒ‘ス。"
+
+#~ msgid "Projecting dungeons"
+#~ msgstr "çªå‡ºã™ã‚‹ãƒ€ãƒ³ã‚¸ãƒ§ãƒ³"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "ワールドをリセット"
+
+#~ msgid "Select Package File:"
+#~ msgstr "ãƒ‘ãƒƒã‚±ãƒ¼ã‚¸ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "å½±ã®åˆ¶é™"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "シングルプレイスタート"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "生æˆã•ã‚ŒãŸæ³•線マップã®å¼·ã•ã§ã™ã€‚"
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "光度曲線ミッドブーストã®å¼·ã•。"
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "ã“ã®ãƒ•ォントã¯ç‰¹å®šã®è¨€èªžã§ä½¿ç”¨ã•れã¾ã™ã€‚"
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "映画風モード切替"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr "æµ®éŠå¤§é™¸ã®å±±ã®ä¸­é–“点ã®ä¸Šã¨ä¸‹ã®å…¸åž‹çš„ãªæœ€å¤§é«˜ã•。"
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr "æµ®éŠå¤§é™¸ã®æ»‘らã‹ãªåœ°å½¢ã«ãŠã‘る丘ã®é«˜ã•ã¨æ¹–ã®æ·±ã•ã®å¤‰å‹•。"
+
+#~ msgid "View"
+#~ msgstr "見る"
+
+#~ msgid "Waving Water"
+#~ msgstr "æºã‚Œã‚‹æ°´"
+
+#~ msgid "Waving water"
+#~ msgstr "æºã‚Œã‚‹æ°´"
+
+#~ msgid "Whether dungeons occasionally project from the terrain."
+#~ msgstr "ãƒ€ãƒ³ã‚¸ãƒ§ãƒ³ãŒæ™‚折地形ã‹ã‚‰çªå‡ºã™ã‚‹ã‹ã©ã†ã‹ã€‚"
+
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "大ããªæ´žçªŸå†…ã®æº¶å²©ã®Y高ã•上é™ã€‚"
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr "æµ®éŠå¤§é™¸ã®ä¸­é–“ç‚¹ã¨æ¹–é¢ã®Yレベル。"
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "æµ®éŠå¤§é™¸ã®å½±ãŒåºƒãŒã‚‹Yレベル。"
+
+#~ msgid "Yes"
+#~ msgstr "ã¯ã„"
diff --git a/po/ja_KS/minetest.po b/po/ja_KS/minetest.po
deleted file mode 100644
index 2bb9891ae..000000000
--- a/po/ja_KS/minetest.po
+++ /dev/null
@@ -1,6323 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Japanese (Kansai) (Minetest)\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-01-11 18:26+0000\n"
-"Last-Translator: rubenwardy <rubenwardy@gmail.com>\n"
-"Language-Team: Japanese (Kansai) <https://hosted.weblate.org/projects/"
-"minetest/minetest/ja_KS/>\n"
-"Language: ja_KS\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.10.1\n"
-
-#: builtin/client/death_formspec.lua src/client/game.cpp
-msgid "Respawn"
-msgstr ""
-
-#: builtin/client/death_formspec.lua src/client/game.cpp
-msgid "You died"
-msgstr ""
-
-#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
-msgid "OK"
-msgstr ""
-
-#: builtin/fstk/ui.lua
-msgid "An error occurred in a Lua script:"
-msgstr ""
-
-#: builtin/fstk/ui.lua
-msgid "An error occurred:"
-msgstr ""
-
-#: builtin/fstk/ui.lua
-msgid "Main menu"
-msgstr ""
-
-#: builtin/fstk/ui.lua
-msgid "Reconnect"
-msgstr ""
-
-#: builtin/fstk/ui.lua
-msgid "The server has requested a reconnect:"
-msgstr ""
-
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr ""
-
-#: builtin/mainmenu/common.lua
-msgid "Protocol version mismatch. "
-msgstr ""
-
-#: builtin/mainmenu/common.lua
-msgid "Server enforces protocol version $1. "
-msgstr ""
-
-#: builtin/mainmenu/common.lua
-msgid "Server supports protocol versions between $1 and $2. "
-msgstr ""
-
-#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-
-#: builtin/mainmenu/common.lua
-msgid "We only support protocol version $1."
-msgstr ""
-
-#: builtin/mainmenu/common.lua
-msgid "We support protocol versions between version $1 and $2."
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
-#: builtin/mainmenu/dlg_delete_content.lua
-#: builtin/mainmenu/dlg_delete_world.lua
-#: builtin/mainmenu/dlg_rename_modpack.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp
-#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
-#: src/gui/guiPasswordChange.cpp
-msgid "Cancel"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
-msgid "Dependencies:"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Disable all"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Disable modpack"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Enable all"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Enable modpack"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid ""
-"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
-"characters [a-z0-9_] are allowed."
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Find More Mods"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Mod:"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "No (optional) dependencies"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "No game description provided."
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "No hard dependencies"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "No modpack description provided."
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "No optional dependencies"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
-msgid "Optional dependencies:"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
-msgid "Save"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "World:"
-msgstr ""
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "enabled"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-msgid "All packages"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Back to Main Menu"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Downloading..."
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Failed to download $1"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Games"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Install"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Mods"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-msgid "No packages could be retrieved"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-msgid "No results"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Texture packs"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Uninstall"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Update"
-msgstr ""
-
-#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "A world named \"$1\" already exists"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Additional terrain"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Altitude chill"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Altitude dry"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Biome blending"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Biomes"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Caverns"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Caves"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Create"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Decorations"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Download a game, such as Minetest Game, from minetest.net"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Download one from minetest.net"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Dungeons"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Flat terrain"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Floating landmasses in the sky"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Floatlands (experimental)"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Game"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Hills"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Humid rivers"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Increases humidity around rivers"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Lakes"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Mapgen"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Mapgen flags"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mapgen-specific flags"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mountains"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mud flow"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Network of tunnels and caves"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "No game selected"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Reduces heat with altitude"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Reduces humidity with altitude"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Rivers"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Sea level rivers"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Seed"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Smooth transition between biomes"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid ""
-"Structures appearing on the terrain (no effect on trees and jungle grass "
-"created by v6)"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert, Jungle"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Terrain surface erosion"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Trees and jungle grass"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Vary river depth"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Very large caverns deep in the underground"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Warning: The Development Test is meant for developers."
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "World name"
-msgstr ""
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "You have no games installed."
-msgstr ""
-
-#: builtin/mainmenu/dlg_delete_content.lua
-msgid "Are you sure you want to delete \"$1\"?"
-msgstr ""
-
-#: builtin/mainmenu/dlg_delete_content.lua
-#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua
-#: src/client/keycode.cpp
-msgid "Delete"
-msgstr ""
-
-#: builtin/mainmenu/dlg_delete_content.lua
-msgid "pkgmgr: failed to delete \"$1\""
-msgstr ""
-
-#: builtin/mainmenu/dlg_delete_content.lua
-msgid "pkgmgr: invalid path \"$1\""
-msgstr ""
-
-#: builtin/mainmenu/dlg_delete_world.lua
-msgid "Delete World \"$1\"?"
-msgstr ""
-
-#: builtin/mainmenu/dlg_rename_modpack.lua
-msgid "Accept"
-msgstr ""
-
-#: builtin/mainmenu/dlg_rename_modpack.lua
-msgid "Rename Modpack:"
-msgstr ""
-
-#: builtin/mainmenu/dlg_rename_modpack.lua
-msgid ""
-"This modpack has an explicit name given in its modpack.conf which will "
-"override any renaming here."
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "(No description of setting given)"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "2D Noise"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "< Back to Settings page"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Browse"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Disabled"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Edit"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Enabled"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Lacunarity"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Octaves"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
-msgid "Offset"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Persistance"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Please enter a valid integer."
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Please enter a valid number."
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Restore Default"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
-msgid "Scale"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Select directory"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Select file"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Show technical names"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "The value must be at least $1."
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "The value must not be larger than $1."
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "X"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "X spread"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Y"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Y spread"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Z"
-msgstr ""
-
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Z spread"
-msgstr ""
-
-#. ~ "absvalue" is a noise parameter flag.
-#. It is short for "absolute value".
-#. It can be enabled in noise settings in
-#. main menu -> "All Settings".
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "absvalue"
-msgstr ""
-
-#. ~ "defaults" is a noise parameter flag.
-#. It describes the default processing options
-#. for noise settings in main menu -> "All Settings".
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "defaults"
-msgstr ""
-
-#. ~ "eased" is a noise parameter flag.
-#. It is used to make the map smoother and
-#. can be enabled in noise settings in
-#. main menu -> "All Settings".
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "eased"
-msgstr ""
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "$1 (Enabled)"
-msgstr ""
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "$1 mods"
-msgstr ""
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "Failed to install $1 to $2"
-msgstr ""
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "Install Mod: Unable to find real mod name for: $1"
-msgstr ""
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "Install Mod: Unable to find suitable folder name for modpack $1"
-msgstr ""
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "Install: Unsupported file type \"$1\" or broken archive"
-msgstr ""
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "Install: file: \"$1\""
-msgstr ""
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to find a valid mod or modpack"
-msgstr ""
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a $1 as a texture pack"
-msgstr ""
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a game as a $1"
-msgstr ""
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a mod as a $1"
-msgstr ""
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a modpack as a $1"
-msgstr ""
-
-#: builtin/mainmenu/tab_content.lua
-msgid "Browse online content"
-msgstr ""
-
-#: builtin/mainmenu/tab_content.lua
-msgid "Content"
-msgstr ""
-
-#: builtin/mainmenu/tab_content.lua
-msgid "Disable Texture Pack"
-msgstr ""
-
-#: builtin/mainmenu/tab_content.lua
-msgid "Information:"
-msgstr ""
-
-#: builtin/mainmenu/tab_content.lua
-msgid "Installed Packages:"
-msgstr ""
-
-#: builtin/mainmenu/tab_content.lua
-msgid "No dependencies."
-msgstr ""
-
-#: builtin/mainmenu/tab_content.lua
-msgid "No package description available"
-msgstr ""
-
-#: builtin/mainmenu/tab_content.lua
-msgid "Rename"
-msgstr ""
-
-#: builtin/mainmenu/tab_content.lua
-msgid "Uninstall Package"
-msgstr ""
-
-#: builtin/mainmenu/tab_content.lua
-msgid "Use Texture Pack"
-msgstr ""
-
-#: builtin/mainmenu/tab_credits.lua
-msgid "Active Contributors"
-msgstr ""
-
-#: builtin/mainmenu/tab_credits.lua
-msgid "Core Developers"
-msgstr ""
-
-#: builtin/mainmenu/tab_credits.lua
-msgid "Credits"
-msgstr ""
-
-#: builtin/mainmenu/tab_credits.lua
-msgid "Previous Contributors"
-msgstr ""
-
-#: builtin/mainmenu/tab_credits.lua
-msgid "Previous Core Developers"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "Announce Server"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "Bind Address"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Creative Mode"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Enable Damage"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "Host Game"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "Host Server"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "Install games from ContentDB"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "New"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "No world created or selected!"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "Play Game"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "Port"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "Select World:"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "Server Port"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua
-msgid "Start Game"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua
-msgid "Address / Port"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Connect"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Creative mode"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Damage enabled"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Del. Favorite"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Favorite"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua
-msgid "Join Game"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Name / Password"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Ping"
-msgstr ""
-
-#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "PvP enabled"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "2x"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "3D Clouds"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "4x"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "8x"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "All Settings"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Antialiasing:"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Autosave Screen Size"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bilinear Filter"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
-msgid "Change Keys"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Connected Glass"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Fancy Leaves"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Mipmap"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Mipmap + Aniso. Filter"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "No Filter"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "No Mipmap"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Node Highlighting"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Node Outlining"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "None"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Opaque Leaves"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Opaque Water"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Particles"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Screen:"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Settings"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Shaders"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Shaders (unavailable)"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Simple Leaves"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Smooth Lighting"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Texturing:"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "To enable shaders the OpenGL driver needs to be used."
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Tone Mapping"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Touchthreshold: (px)"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Trilinear Filter"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Waving Leaves"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Waving Liquids"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Waving Plants"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
-#: src/client/client.cpp
-msgid "Connection timed out."
-msgstr ""
-
-#: src/client/client.cpp
-msgid "Done!"
-msgstr ""
-
-#: src/client/client.cpp
-msgid "Initializing nodes"
-msgstr ""
-
-#: src/client/client.cpp
-msgid "Initializing nodes..."
-msgstr ""
-
-#: src/client/client.cpp
-msgid "Loading textures..."
-msgstr ""
-
-#: src/client/client.cpp
-msgid "Rebuilding shaders..."
-msgstr ""
-
-#: src/client/clientlauncher.cpp
-msgid "Connection error (timed out?)"
-msgstr ""
-
-#: src/client/clientlauncher.cpp
-msgid "Could not find or load game \""
-msgstr ""
-
-#: src/client/clientlauncher.cpp
-msgid "Invalid gamespec."
-msgstr ""
-
-#: src/client/clientlauncher.cpp
-msgid "Main Menu"
-msgstr ""
-
-#: src/client/clientlauncher.cpp
-msgid "No world selected and no address provided. Nothing to do."
-msgstr ""
-
-#: src/client/clientlauncher.cpp
-msgid "Player name too long."
-msgstr ""
-
-#: src/client/clientlauncher.cpp
-msgid "Please choose a name!"
-msgstr ""
-
-#: src/client/clientlauncher.cpp
-msgid "Provided password file failed to open: "
-msgstr ""
-
-#: src/client/clientlauncher.cpp
-msgid "Provided world path doesn't exist: "
-msgstr ""
-
-#. ~ DO NOT TRANSLATE THIS LITERALLY!
-#. This is a special string. Put either "no" or "yes"
-#. into the translation field (literally).
-#. Choose "yes" if the language requires use of the fallback
-#. font, "no" otherwise.
-#. The fallback font is (normally) required for languages with
-#. non-Latin script, like Chinese.
-#. When in doubt, test your translation.
-#: src/client/fontengine.cpp
-msgid "needs_fallback_font"
-msgstr "yes"
-
-#: src/client/game.cpp
-msgid ""
-"\n"
-"Check debug.txt for details."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "- Address: "
-msgstr ""
-
-#: src/client/game.cpp
-msgid "- Creative Mode: "
-msgstr ""
-
-#: src/client/game.cpp
-msgid "- Damage: "
-msgstr ""
-
-#: src/client/game.cpp
-msgid "- Mode: "
-msgstr ""
-
-#: src/client/game.cpp
-msgid "- Port: "
-msgstr ""
-
-#: src/client/game.cpp
-msgid "- Public: "
-msgstr ""
-
-#. ~ PvP = Player versus Player
-#: src/client/game.cpp
-msgid "- PvP: "
-msgstr ""
-
-#: src/client/game.cpp
-msgid "- Server Name: "
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Automatic forward disabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Automatic forward enabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Camera update disabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Camera update enabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Change Password"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Cinematic mode disabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Cinematic mode enabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Client side scripting is disabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Connecting to server..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Continue"
-msgstr ""
-
-#: src/client/game.cpp
-#, c-format
-msgid ""
-"Controls:\n"
-"- %s: move forwards\n"
-"- %s: move backwards\n"
-"- %s: move left\n"
-"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
-"- %s: drop item\n"
-"- %s: inventory\n"
-"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
-"- Mouse wheel: select item\n"
-"- %s: chat\n"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Creating client..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Creating server..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Debug info and profiler graph hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Debug info shown"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Debug info, profiler graph, and wireframe hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid ""
-"Default Controls:\n"
-"No menu visible:\n"
-"- single tap: button activate\n"
-"- double tap: place/use\n"
-"- slide finger: look around\n"
-"Menu/Inventory visible:\n"
-"- double tap (outside):\n"
-" -->close\n"
-"- touch stack, touch slot:\n"
-" --> move stack\n"
-"- touch&drag, tap 2nd finger\n"
-" --> place single item to slot\n"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Disabled unlimited viewing range"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Enabled unlimited viewing range"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Exit to Menu"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Exit to OS"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Fast mode disabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Fast mode enabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Fast mode enabled (note: no 'fast' privilege)"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Fly mode disabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Fly mode enabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Fly mode enabled (note: no 'fly' privilege)"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Fog disabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Fog enabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Game info:"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Game paused"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Hosting server"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Item definitions..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "KiB/s"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Media..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "MiB/s"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap currently disabled by game or mod"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Noclip mode disabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Noclip mode enabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Noclip mode enabled (note: no 'noclip' privilege)"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Node definitions..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Off"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "On"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Pitch move mode disabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Pitch move mode enabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Profiler graph shown"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Remote server"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Resolving address..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Shutting down..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Singleplayer"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Sound Volume"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Sound muted"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Sound system is disabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Sound system is not supported on this build"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Sound unmuted"
-msgstr ""
-
-#: src/client/game.cpp
-#, c-format
-msgid "Viewing range changed to %d"
-msgstr ""
-
-#: src/client/game.cpp
-#, c-format
-msgid "Viewing range is at maximum: %d"
-msgstr ""
-
-#: src/client/game.cpp
-#, c-format
-msgid "Viewing range is at minimum: %d"
-msgstr ""
-
-#: src/client/game.cpp
-#, c-format
-msgid "Volume changed to %d%%"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Wireframe shown"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Zoom currently disabled by game or mod"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "ok"
-msgstr ""
-
-#: src/client/gameui.cpp
-msgid "Chat hidden"
-msgstr ""
-
-#: src/client/gameui.cpp
-msgid "Chat shown"
-msgstr ""
-
-#: src/client/gameui.cpp
-msgid "HUD hidden"
-msgstr ""
-
-#: src/client/gameui.cpp
-msgid "HUD shown"
-msgstr ""
-
-#: src/client/gameui.cpp
-msgid "Profiler hidden"
-msgstr ""
-
-#: src/client/gameui.cpp
-#, c-format
-msgid "Profiler shown (page %d of %d)"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Apps"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Backspace"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Caps Lock"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Clear"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Control"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Down"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "End"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Erase EOF"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Execute"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Help"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Home"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "IME Accept"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "IME Convert"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "IME Escape"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "IME Mode Change"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "IME Nonconvert"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Insert"
-msgstr ""
-
-#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
-msgid "Left"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Left Button"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Left Control"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Left Menu"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Left Shift"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Left Windows"
-msgstr ""
-
-#. ~ Key name, common on Windows keyboards
-#: src/client/keycode.cpp
-msgid "Menu"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Middle Button"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Num Lock"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad *"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad +"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad -"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad ."
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad /"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad 0"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad 1"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad 2"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad 3"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad 4"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad 5"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad 6"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad 7"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad 8"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Numpad 9"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "OEM Clear"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Page down"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Page up"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Pause"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Play"
-msgstr ""
-
-#. ~ "Print screen" key
-#: src/client/keycode.cpp
-msgid "Print"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Return"
-msgstr ""
-
-#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
-msgid "Right"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Right Button"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Right Control"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Right Menu"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Right Shift"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Right Windows"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Scroll Lock"
-msgstr ""
-
-#. ~ Key name
-#: src/client/keycode.cpp
-msgid "Select"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Shift"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Sleep"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Snapshot"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Space"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Tab"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "Up"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "X Button 1"
-msgstr ""
-
-#: src/client/keycode.cpp
-msgid "X Button 2"
-msgstr ""
-
-#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
-msgid "Zoom"
-msgstr ""
-
-#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
-msgid "Passwords do not match!"
-msgstr ""
-
-#: src/gui/guiConfirmRegistration.cpp
-msgid "Register and Join"
-msgstr ""
-
-#: src/gui/guiConfirmRegistration.cpp
-#, c-format
-msgid ""
-"You are about to join this server with the name \"%s\" for the first time.\n"
-"If you proceed, a new account using your credentials will be created on this "
-"server.\n"
-"Please retype your password and click 'Register and Join' to confirm account "
-"creation, or click 'Cancel' to abort."
-msgstr ""
-
-#: src/gui/guiFormSpecMenu.cpp
-msgid "Proceed"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "\"Special\" = climb down"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Autoforward"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
-msgid "Automatic jumping"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Backward"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Change camera"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Chat"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Command"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Console"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Dec. range"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Dec. volume"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Double tap \"jump\" to toggle fly"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Drop"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Forward"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inc. range"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inc. volume"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inventory"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Jump"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Key already in use"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Local command"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Mute"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Next item"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Prev. item"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Range select"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
-msgid "Screenshot"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Sneak"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Special"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle HUD"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle chat log"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fast"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fly"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fog"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle minimap"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle noclip"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle pitchmove"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "press key"
-msgstr ""
-
-#: src/gui/guiPasswordChange.cpp
-msgid "Change"
-msgstr ""
-
-#: src/gui/guiPasswordChange.cpp
-msgid "Confirm Password"
-msgstr ""
-
-#: src/gui/guiPasswordChange.cpp
-msgid "New Password"
-msgstr ""
-
-#: src/gui/guiPasswordChange.cpp
-msgid "Old Password"
-msgstr ""
-
-#: src/gui/guiVolumeChange.cpp
-msgid "Exit"
-msgstr ""
-
-#: src/gui/guiVolumeChange.cpp
-msgid "Muted"
-msgstr ""
-
-#: src/gui/guiVolumeChange.cpp
-msgid "Sound Volume: "
-msgstr ""
-
-#. ~ Imperative, as in "Enter/type in text".
-#. Don't forget the space.
-#: src/gui/modalMenu.cpp
-msgid "Enter "
-msgstr ""
-
-#. ~ DO NOT TRANSLATE THIS LITERALLY!
-#. This is a special string which needs to contain the translation's
-#. language code (e.g. "de" for German).
-#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp
-msgid "LANG_CODE"
-msgstr "ja_KS"
-
-#: src/settings_translation_file.cpp
-msgid ""
-"(Android) Fixes the position of virtual joystick.\n"
-"If disabled, virtual joystick will center to first-touch's position."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"(Android) Use virtual joystick to trigger \"aux\" button.\n"
-"If enabled, virtual joystick will also tap \"aux\" button when out of main "
-"circle."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
-"Can be used to move a desired point to (0, 0) to create a\n"
-"suitable spawn point, or to allow 'zooming in' on a desired\n"
-"point by increasing 'scale'.\n"
-"The default is tuned for a suitable spawn point for Mandelbrot\n"
-"sets with default parameters, it may need altering in other\n"
-"situations.\n"
-"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"(X,Y,Z) scale of fractal in nodes.\n"
-"Actual fractal size will be 2 to 3 times larger.\n"
-"These numbers can be made very large, the fractal does\n"
-"not have to fit inside the world.\n"
-"Increase these to 'zoom' into the detail of the fractal.\n"
-"Default is for a vertically-squashed shape suitable for\n"
-"an island, set all 3 numbers equal for the raw shape."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of ridged mountains."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of rolling hills."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of step mountains."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of rolling hills."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of step mountain ranges."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "2D noise that locates the river valleys and channels."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "3D clouds"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "3D mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "3D mode parallax strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "3D noise defining giant caverns."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"3D noise defining mountain structure and height.\n"
-"Also defines structure of floatland mountain terrain."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"3D noise defining structure of floatlands.\n"
-"If altered from the default, the noise 'scale' (0.7 by default) may need\n"
-"to be adjusted, as floatland tapering functions best when this noise has\n"
-"a value range of approximately -2.0 to 2.0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "3D noise defining structure of river canyon walls."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "3D noise defining terrain."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "3D noise that determines number of dungeons per mapchunk."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"3D support.\n"
-"Currently supported:\n"
-"- none: no 3d output.\n"
-"- anaglyph: cyan/magenta color 3d.\n"
-"- interlaced: odd/even line based polarisation screen support.\n"
-"- topbottom: split screen top/bottom.\n"
-"- sidebyside: split screen side by side.\n"
-"- crossview: Cross-eyed 3d\n"
-"- pageflip: quadbuffer based 3d.\n"
-"Note that the interlaced mode requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"A chosen map seed for a new map, leave empty for random.\n"
-"Will be overridden when creating a new world in the main menu."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "A message to be displayed to all clients when the server crashes."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "A message to be displayed to all clients when the server shuts down."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "ABM interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Absolute limit of queued blocks to emerge"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Acceleration in air"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Acceleration of gravity, in nodes per second per second."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Active Block Modifiers"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Active block management interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Active block range"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Active object send range"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Address to connect to.\n"
-"Leave this blank to start a local server.\n"
-"Note that the address field in the main menu overrides this setting."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Adds particles when digging a node."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
-"screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-#, c-format
-msgid ""
-"Adjusts the density of the floatland layer.\n"
-"Increase value to increase density. Can be positive or negative.\n"
-"Value = 0.0: 50% of volume is floatland.\n"
-"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
-"to be sure) creates a solid floatland layer."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Advanced"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Alters the light curve by applying 'gamma correction' to it.\n"
-"Higher values make middle and lower light levels brighter.\n"
-"Value '1.0' leaves the light curve unaltered.\n"
-"This only has significant effect on daylight and artificial\n"
-"light, it has very little effect on natural night light."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Always fly and fast"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Ambient occlusion gamma"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Amount of messages a player may send per 10 seconds."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Amplifies the valleys."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Anisotropic filtering"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Announce server"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Announce to this serverlist."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Append item name"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Append item name to tooltip."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Apple trees noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Arm inertia"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Arm inertia, gives a more realistic movement of\n"
-"the arm when the camera moves."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Ask to reconnect after crash"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"At this distance the server will aggressively optimize which blocks are sent "
-"to\n"
-"clients.\n"
-"Small values potentially improve performance a lot, at the expense of "
-"visible\n"
-"rendering glitches (some blocks will not be rendered under water and in "
-"caves,\n"
-"as well as sometimes on land).\n"
-"Setting this to a value greater than max_block_send_distance disables this\n"
-"optimization.\n"
-"Stated in mapblocks (16 nodes)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Automatic forward key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Automatically jump up single-node obstacles."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Automatically report to the serverlist."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Autosave screen size"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Autoscaling mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Backward key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Base ground level"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Base terrain height."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Basic"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Basic privileges"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Beach noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Beach noise threshold"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Bilinear filtering"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Bind address"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Biome API temperature and humidity noise parameters"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Biome noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Bits per pixel (aka color depth) in fullscreen mode."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Block send optimize distance"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Bold and italic font path"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Bold and italic monospace font path"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Bold font path"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Bold monospace font path"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Build inside player"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Builtin"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
-"Only works on GLES platforms. Most users will not need to change this.\n"
-"Increasing can reduce artifacting on weaker GPUs.\n"
-"0.1 = Default, 0.25 = Good value for weaker tablets."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Camera smoothing"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Camera smoothing in cinematic mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Camera update toggle key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cave noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cave noise #1"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cave noise #2"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cave width"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cave1 noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cave2 noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cavern limit"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cavern noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cavern taper"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cavern threshold"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cavern upper limit"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Center of light curve boost range.\n"
-"Where 0.0 is minimum light level, 1.0 is maximum light level."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Chat font size"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Chat key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Chat log level"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Chat message count limit"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Chat message format"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Chat message kick threshold"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Chat message max length"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Chat toggle key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Chatcommands"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Chunk size"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cinematic mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cinematic mode key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Clean transparent textures"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Client"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Client and Server"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Client modding"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Client side modding restrictions"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Client side node lookup range restriction"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Climbing speed"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Cloud radius"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Clouds"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Clouds are a client side effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Clouds in menu"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Colored fog"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Comma-separated list of flags to hide in the content repository.\n"
-"\"nonfree\" can be used to hide packages which do not qualify as 'free "
-"software',\n"
-"as defined by the Free Software Foundation.\n"
-"You can also specify content ratings.\n"
-"These flags are independent from Minetest versions,\n"
-"so see a full list at https://content.minetest.net/help/content_flags/"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
-"allow them to upload and download data to/from the internet."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Comma-separated list of trusted mods that are allowed to access insecure\n"
-"functions even when mod security is on (via request_insecure_environment())."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Command key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Connect glass"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Connect to external media server"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Connects glass if supported by node."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Console alpha"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Console color"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Console height"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "ContentDB Flag Blacklist"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "ContentDB URL"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Continuous forward"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Continuous forward movement, toggled by autoforward key.\n"
-"Press the autoforward key again or the backwards movement to disable."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Controls"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Controls length of day/night cycle.\n"
-"Examples:\n"
-"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Controls sinking speed in liquid."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Controls steepness/depth of lake depressions."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Controls steepness/height of hills."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Controls width of tunnels, a smaller value creates wider tunnels.\n"
-"Value >= 10.0 completely disables generation of tunnels and avoids the\n"
-"intensive noise calculations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Crash message"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Creative"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Crosshair alpha"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Crosshair color"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "DPI"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Damage"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Debug info toggle key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Debug log file size threshold"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Debug log level"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Dec. volume key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Decrease this to increase liquid resistance to movement."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Dedicated server step"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Default acceleration"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Default game"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Default game when creating a new world.\n"
-"This will be overridden when creating a world from the main menu."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Default password"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Default privileges"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Default report format"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Default stack size"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Default timeout for cURL, stated in milliseconds.\n"
-"Only has an effect if compiled with cURL."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines areas where trees have apples."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines areas with sandy beaches."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines distribution of higher terrain and steepness of cliffs."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines distribution of higher terrain."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines full size of caverns, smaller values create larger caverns."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines large-scale river channel structure."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines location and terrain of optional hills and lakes."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines the base ground level."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines the depth of the river channel."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines the width of the river channel."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines the width of the river valley."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Defines tree areas and tree density."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Delay between mesh updates on the client in ms. Increasing this will slow\n"
-"down the rate of mesh updates, thus reducing jitter on slower clients."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Delay in sending blocks after building"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Delay showing tooltips, stated in milliseconds."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Deprecated Lua API handling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Depth below which you'll find giant caverns."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Depth below which you'll find large caves."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Description of server, to be displayed when players join and in the "
-"serverlist."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Desert noise threshold"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Deserts occur when np_biome exceeds this value.\n"
-"When the 'snowbiomes' flag is enabled, this is ignored."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Desynchronize block animation"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Digging particles"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Disable anticheat"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Disallow empty passwords"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Domain name of server, to be displayed in the serverlist."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Double tap jump for fly"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Double-tapping the jump key toggles fly mode."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Drop item key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Dump the mapgen debug information."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Dungeon maximum Y"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Dungeon minimum Y"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Dungeon noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enable IPv6 support (for both client and server).\n"
-"Required for IPv6 connections to work at all."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enable Lua modding support on client.\n"
-"This support is experimental and API can change."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Enable console window"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Enable joysticks"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Enable mod channels support."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Enable mod security"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Enable players getting damage and dying."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Enable random user input (only used for testing)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Enable register confirmation"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enable register confirmation when connecting to server.\n"
-"If disabled, new account will be registered automatically."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enable smooth lighting with simple ambient occlusion.\n"
-"Disable for speed or for different looks."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enable to disallow old clients from connecting.\n"
-"Older clients are compatible in the sense that they will not crash when "
-"connecting\n"
-"to new servers, but they may not support all new features that you are "
-"expecting."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enable usage of remote media server (if provided by server).\n"
-"Remote servers offer a significantly faster way to download media (e.g. "
-"textures)\n"
-"when connecting to the server."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enable vertex buffer objects.\n"
-"This should greatly improve graphics performance."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enable view bobbing and amount of view bobbing.\n"
-"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enable/disable running an IPv6 server.\n"
-"Ignored if bind_address is set.\n"
-"Needs enable_ipv6 to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables Hable's 'Uncharted 2' filmic tone mapping.\n"
-"Simulates the tone curve of photographic film and how this approximates the\n"
-"appearance of high dynamic range images. Mid-range contrast is slightly\n"
-"enhanced, highlights and shadows are gradually compressed."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Enables animation of inventory items."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Enables caching of facedir rotated meshes."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Enables minimap."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables the sound system.\n"
-"If disabled, this completely disables all sounds everywhere and the in-game\n"
-"sound controls will be non-functional.\n"
-"Changing this setting requires a restart."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Engine profiling data print interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Entity methods"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
-"Value = 1.0 creates a uniform, linear tapering.\n"
-"Values > 1.0 create a smooth tapering suitable for the default separated\n"
-"floatlands.\n"
-"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
-"flatter lowlands, suitable for a solid floatland layer."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "FSAA"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Factor noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fall bobbing factor"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fallback font path"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fallback font shadow"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fallback font shadow alpha"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fallback font size"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fast key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fast mode acceleration"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fast mode speed"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fast movement"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Fast movement (via the \"special\" key).\n"
-"This requires the \"fast\" privilege on the server."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Field of view"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Field of view in degrees."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"File in client/serverlist/ that contains your favorite servers displayed in "
-"the\n"
-"Multiplayer Tab."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Filler depth"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Filler depth noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Filmic tone mapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Filtered textures can blend RGB values with fully-transparent neighbors,\n"
-"which PNG optimizers usually discard, sometimes resulting in a dark or\n"
-"light edge to transparent textures. Apply this filter to clean that up\n"
-"at texture load time."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Filtering"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "First of 4 2D noises that together define hill/mountain range height."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "First of two 3D noises that together define tunnels."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fixed map seed"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fixed virtual joystick"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Floatland density"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Floatland maximum Y"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Floatland minimum Y"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Floatland noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Floatland taper exponent"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Floatland tapering distance"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Floatland water level"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fly key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Flying"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fog"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fog start"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fog toggle key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Font bold by default"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Font italic by default"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Font shadow"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Font shadow alpha"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Font size"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Font size of the default font in point (pt)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Font size of the fallback font in point (pt)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Font size of the monospace font in point (pt)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Font size of the recent chat text and chat prompt in point (pt).\n"
-"Value 0 will use the default font size."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Format of player chat messages. The following strings are valid "
-"placeholders:\n"
-"@name, @message, @timestamp (optional)"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Format of screenshots."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Formspec Default Background Color"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Formspec Default Background Opacity"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Formspec Full-Screen Background Color"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Formspec Full-Screen Background Opacity"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Formspec default background color (R,G,B)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Formspec default background opacity (between 0 and 255)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Formspec full-screen background color (R,G,B)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Formspec full-screen background opacity (between 0 and 255)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Forward key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fourth of 4 2D noises that together define hill/mountain range height."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fractal type"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fraction of the visible distance at which fog starts to be rendered"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "FreeType fonts"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"From how far blocks are generated for clients, stated in mapblocks (16 "
-"nodes)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"From how far blocks are sent to clients, stated in mapblocks (16 nodes)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"From how far clients know about objects, stated in mapblocks (16 nodes).\n"
-"\n"
-"Setting this larger than active_block_range will also cause the server\n"
-"to maintain active objects up to this distance in the direction the\n"
-"player is looking. (This can avoid mobs suddenly disappearing from view)"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Full screen"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Full screen BPP"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Fullscreen mode."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "GUI scaling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "GUI scaling filter"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "GUI scaling filter txr2img"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Global callbacks"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Global map generation attributes.\n"
-"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
-"and junglegrass, in all other mapgens this flag controls all decorations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Gradient of light curve at maximum light level.\n"
-"Controls the contrast of the highest light levels."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Gradient of light curve at minimum light level.\n"
-"Controls the contrast of the lowest light levels."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Graphics"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Gravity"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Ground level"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Ground noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "HTTP mods"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "HUD scale factor"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "HUD toggle key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
-"- error: abort on usage of deprecated call (suggested for mod developers)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Have the profiler instrument itself:\n"
-"* Instrument an empty function.\n"
-"This estimates the overhead, that instrumentation is adding (+1 function "
-"call).\n"
-"* Instrument the sampler being used to update the statistics."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Heat blend noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Heat noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Height component of the initial window size."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Height noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Height select noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "High-precision FPU"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hill steepness"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hill threshold"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hilliness1 noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hilliness2 noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hilliness3 noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hilliness4 noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Homepage of server, to be displayed in the serverlist."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal acceleration in air when jumping or falling,\n"
-"in nodes per second per second."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal and vertical acceleration in fast mode,\n"
-"in nodes per second per second."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal and vertical acceleration on ground or when climbing,\n"
-"in nodes per second per second."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar next key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar previous key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 1 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 10 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 11 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 12 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 13 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 14 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 15 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 16 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 17 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 18 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 19 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 2 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 20 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 21 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 22 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 23 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 24 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 25 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 26 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 27 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 28 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 29 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 3 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 30 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 31 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 32 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 4 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 5 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 6 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 7 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 8 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar slot 9 key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "How deep to make rivers."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"How fast liquid waves will move. Higher = faster.\n"
-"If negative, liquid waves will move backwards.\n"
-"Requires waving liquids to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"How much the server will wait before unloading unused mapblocks.\n"
-"Higher value is smoother, but will use more RAM."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "How wide to make rivers."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Humidity blend noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Humidity noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Humidity variation for biomes."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "IPv6"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "IPv6 server"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"If FPS would go higher than this, limit it by sleeping\n"
-"to not waste CPU power for no benefit."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"If disabled, \"special\" key is used to fly fast if both fly and fast mode "
-"are\n"
-"enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"If enabled the server will perform map block occlusion culling based on\n"
-"on the eye position of the player. This can reduce the number of blocks\n"
-"sent to the client 50-80%. The client will not longer receive most "
-"invisible\n"
-"so that the utility of noclip mode is reduced."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"If enabled together with fly mode, player is able to fly through solid "
-"nodes.\n"
-"This requires the \"noclip\" privilege on the server."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"If enabled, \"special\" key instead of \"sneak\" key is used for climbing "
-"down and\n"
-"descending."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"If enabled, actions are recorded for rollback.\n"
-"This option is only read when server starts."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "If enabled, disable cheat prevention in multiplayer."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"If enabled, invalid world data won't cause the server to shut down.\n"
-"Only enable this if you know what you are doing."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"If enabled, makes move directions relative to the player's pitch when flying "
-"or swimming."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "If enabled, new players cannot join with an empty password."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"If enabled, you can place blocks at the position (feet + eye level) where "
-"you stand.\n"
-"This is helpful when working with nodeboxes in small areas."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"If the CSM restriction for node range is enabled, get_node calls are "
-"limited\n"
-"to this distance from the player to the node."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"If the file size of debug.txt exceeds the number of megabytes specified in\n"
-"this setting when it is opened, the file is moved to debug.txt.1,\n"
-"deleting an older debug.txt.1 if it exists.\n"
-"debug.txt is only moved if this setting is positive."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "If this is set, players will always (re)spawn at the given position."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Ignore world errors"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "In-Game"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "In-game chat console background color (R,G,B)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Inc. volume key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Initial vertical speed when jumping, in nodes per second."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Instrument builtin.\n"
-"This is usually only needed by core/builtin contributors"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Instrument chatcommands on registration."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Instrument global callback functions on registration.\n"
-"(anything you pass to a minetest.register_*() function)"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Instrument the action function of Active Block Modifiers on registration."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Instrument the action function of Loading Block Modifiers on registration."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Instrument the methods of entities on registration."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Instrumentation"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Interval of saving important changes in the world, stated in seconds."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Interval of sending time of day to clients."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Inventory items animations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Inventory key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Invert mouse"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Invert vertical mouse movement."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Italic font path"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Italic monospace font path"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Item entity TTL"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Iterations of the recursive function.\n"
-"Increasing this increases the amount of fine detail, but also\n"
-"increases processing load.\n"
-"At iterations = 20 this mapgen has a similar load to mapgen V7."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Joystick ID"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Joystick button repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Joystick frustum sensitivity"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Joystick type"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"W component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Has no effect on 3D fractals.\n"
-"Range roughly -2 to 2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"X component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"Y component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"Z component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Julia w"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Julia x"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Julia y"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Julia z"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Jump key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Jumping speed"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for decreasing the viewing range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for decreasing the volume.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for dropping the currently selected item.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for increasing the viewing range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for increasing the volume.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for jumping.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving fast in fast mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving the player backward.\n"
-"Will also disable autoforward, when active.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving the player forward.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving the player left.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving the player right.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for muting the game.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window to type commands.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window to type local commands.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the inventory.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 11th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 12th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 13th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 14th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 15th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 16th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 17th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 18th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 19th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 20th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 21st hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 22nd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 23rd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 24th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 25th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 26th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 27th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 28th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 29th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 30th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 31st hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 32nd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the eighth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the fifth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the first hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the fourth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the next item in the hotbar.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the ninth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the previous item in the hotbar.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the second hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the seventh hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the sixth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the tenth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the third hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for sneaking.\n"
-"Also used for climbing down and descending in water if aux1_descends is "
-"disabled.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for switching between first- and third-person camera.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for taking screenshots.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling autoforward.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling cinematic mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling display of minimap.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling fast mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling flying.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling noclip mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling pitch move mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the camera update. Only used for development\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of chat.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of debug info.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of fog.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the HUD.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the large chat console.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the profiler. Used for development.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling unlimited view range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key to use view zoom when possible.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Kick players who sent more than X messages per 10 seconds."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Lake steepness"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Lake threshold"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Language"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Large cave depth"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Large cave maximum number"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Large cave minimum number"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Large cave proportion flooded"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Large chat console key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Leaves style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Leaves style:\n"
-"- Fancy: all faces visible\n"
-"- Simple: only outer faces, if defined special_tiles are used\n"
-"- Opaque: disable transparency"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Left key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Length of a server tick and the interval at which objects are generally "
-"updated over\n"
-"network."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Length of liquid waves.\n"
-"Requires waving liquids to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Length of time between Active Block Modifier (ABM) execution cycles"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Length of time between NodeTimer execution cycles"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Length of time between active block management cycles"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Level of logging to be written to debug.txt:\n"
-"- <nothing> (no logging)\n"
-"- none (messages with no level)\n"
-"- error\n"
-"- warning\n"
-"- action\n"
-"- info\n"
-"- verbose"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Light curve boost"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Light curve boost center"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Light curve boost spread"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Light curve gamma"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Light curve high gradient"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Light curve low gradient"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n"
-"Only mapchunks completely within the mapgen limit are generated.\n"
-"Value is stored per-world."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Limits number of parallel HTTP requests. Affects:\n"
-"- Media fetch if server uses remote_media setting.\n"
-"- Serverlist download and server announcement.\n"
-"- Downloads performed by main menu (e.g. mod manager).\n"
-"Only has an effect if compiled with cURL."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Liquid fluidity"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Liquid fluidity smoothing"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Liquid loop max"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Liquid queue purge time"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Liquid sinking"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Liquid update interval in seconds."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Liquid update tick"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Load the game profiler"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Load the game profiler to collect game profiling data.\n"
-"Provides a /profiler command to access the compiled profile.\n"
-"Useful for mod developers and server operators."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Loading Block Modifiers"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Lower Y limit of dungeons."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Lower Y limit of floatlands."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Main menu script"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Makes all liquids opaque"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Map directory"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Map generation attributes specific to Mapgen Carpathian."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen Flat.\n"
-"Occasional lakes and hills can be added to the flat world."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen Fractal.\n"
-"'terrain' enables the generation of non-fractal terrain:\n"
-"ocean, islands and underground."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen Valleys.\n"
-"'altitude_chill': Reduces heat with altitude.\n"
-"'humid_rivers': Increases humidity around rivers.\n"
-"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n"
-"to become shallower and occasionally dry.\n"
-"'altitude_dry': Reduces humidity with altitude."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Map generation attributes specific to Mapgen v5."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen v6.\n"
-"The 'snowbiomes' flag enables the new 5 biome system.\n"
-"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n"
-"the 'jungles' flag is ignored."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen v7.\n"
-"'ridges': Rivers.\n"
-"'floatlands': Floating land masses in the atmosphere.\n"
-"'caverns': Giant caves deep underground."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Map generation limit"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Map save interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapblock limit"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapblock mesh generation delay"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapblock mesh generator's MapBlock cache size in MB"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapblock unload timeout"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen Carpathian"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen Carpathian specific flags"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen Flat"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen Flat specific flags"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen Fractal"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen Fractal specific flags"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen V5"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen V5 specific flags"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen V6"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen V6 specific flags"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen V7"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen V7 specific flags"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen Valleys"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen Valleys specific flags"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen debug"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mapgen name"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Max block generate distance"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Max block send distance"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Max liquids processed per step."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Max. clearobjects extra blocks"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Max. packets per iteration"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum FPS"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum forceloaded blocks"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum hotbar width"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum limit of random number of large caves per mapchunk."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum limit of random number of small caves per mapchunk."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Maximum liquid resistance. Controls deceleration when entering liquid at\n"
-"high speed."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Maximum number of blocks that are simultaneously sent per client.\n"
-"The maximum total count is calculated dynamically:\n"
-"max_total = ceil((#clients + max_users) * per_client / 4)"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum number of blocks that can be queued for loading."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Maximum number of blocks to be queued that are to be generated.\n"
-"This limit is enforced per player."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Maximum number of blocks to be queued that are to be loaded from file.\n"
-"This limit is enforced per player."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum number of forceloaded mapblocks."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Maximum number of mapblocks for client to be kept in memory.\n"
-"Set to -1 for unlimited amount."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Maximum number of packets sent per send step, if you have a slow connection\n"
-"try reducing it, but don't reduce it to a number below double of targeted\n"
-"client number."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum number of players that can be connected simultaneously."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum number of recent chat messages to show"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum number of statically stored objects in a block."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum objects per block"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Maximum proportion of current window to be used for hotbar.\n"
-"Useful if there's something to be displayed right or left of hotbar."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum simultaneous block sends per client"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum size of the out chat queue"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Maximum size of the out chat queue.\n"
-"0 to disable queueing and -1 to make the queue size unlimited."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum time in ms a file download (e.g. a mod download) may take."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Maximum users"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Menus"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mesh cache"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Message of the day"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Message of the day displayed to players connecting."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Method used to highlight selected object."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Minimal level of logging to be written to chat."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Minimap"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Minimap key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Minimap scan height"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Minimum limit of random number of large caves per mapchunk."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Minimum limit of random number of small caves per mapchunk."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Minimum texture size"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mipmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mod channels"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Modifies the size of the hudbar elements."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Monospace font path"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Monospace font size"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mountain height noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mountain noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mountain variation noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mountain zero level"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mouse sensitivity"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mouse sensitivity multiplier."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mud noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Multiplier for fall bobbing.\n"
-"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mute key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Mute sound"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Name of map generator to be used when creating a new world.\n"
-"Creating a world in the main menu will override this.\n"
-"Current mapgens in a highly unstable state:\n"
-"- The optional floatlands of v7 (disabled by default)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Name of the player.\n"
-"When running a server, clients connecting with this name are admins.\n"
-"When starting from the main menu, this is overridden."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Name of the server, to be displayed when players join and in the serverlist."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Near plane"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Network"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Network port to listen (UDP).\n"
-"This value will be overridden when starting from the main menu."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "New users need to input this password."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Noclip"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Noclip key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Node highlighting"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "NodeTimer interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Noises"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Number of emerge threads"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Number of emerge threads to use.\n"
-"Value 0:\n"
-"- Automatic selection. The number of emerge threads will be\n"
-"- 'number of processors - 2', with a lower limit of 1.\n"
-"Any other value:\n"
-"- Specifies the number of emerge threads, with a lower limit of 1.\n"
-"WARNING: Increasing the number of emerge threads increases engine mapgen\n"
-"speed, but this may harm game performance by interfering with other\n"
-"processes, especially in singleplayer and/or when running Lua code in\n"
-"'on_generated'. For many users the optimum setting may be '1'."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Number of extra blocks that can be loaded by /clearobjects at once.\n"
-"This is a trade-off between sqlite transaction overhead and\n"
-"memory consumption (4096=100MB, as a rule of thumb)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Online Content Repository"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Opaque liquids"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Open the pause menu when the window's focus is lost. Does not pause if a "
-"formspec is\n"
-"open."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Path of the fallback font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"This font will be used for certain languages or if the default font is "
-"unavailable."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Path to save screenshots at. Can be an absolute or relative path.\n"
-"The folder will be created if it doesn't already exist."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Path to shader directory. If no path is defined, default location will be "
-"used."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Path to texture directory. All textures are first searched from here."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Path to the default font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"The fallback font will be used if the font cannot be loaded."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Path to the monospace font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"This font is used for e.g. the console and profiler screen."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Pause on lost window focus"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Per-player limit of queued blocks load from disk"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Per-player limit of queued blocks to generate"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Physics"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Pitch move key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Pitch move mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Player is able to fly without being affected by gravity.\n"
-"This requires the \"fly\" privilege on the server."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Player name"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Player transfer distance"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Player versus player"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Port to connect to (UDP).\n"
-"Note that the port field in the main menu overrides this setting."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Prevent digging and placing from repeating when holding the mouse buttons.\n"
-"Enable this when you dig or place too often by accident."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Prevent mods from doing insecure things like running shell commands."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Print the engine's profiling data in regular intervals (in seconds).\n"
-"0 = disable. Useful for developers."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Privileges that players with basic_privs can grant"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Profiler"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Profiler toggle key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Profiling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Prometheus listener address"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Prometheus listener address.\n"
-"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n"
-"enable metrics listener for Prometheus on that address.\n"
-"Metrics can be fetch on http://127.0.0.1:30000/metrics"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Proportion of large caves that contain liquid."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Radius of cloud area stated in number of 64 node cloud squares.\n"
-"Values larger than 26 will start to produce sharp cutoffs at cloud area "
-"corners."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Raises terrain to make valleys around the rivers."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Random input"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Range select key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Recent Chat Messages"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Regular font path"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Remote media"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Remote port"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Remove color codes from incoming chat messages\n"
-"Use this to stop players from being able to use color in their messages"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Replaces the default main menu with a custom one."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Report path"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Restricts the access of certain client-side functions on servers.\n"
-"Combine the byteflags below to restrict client-side features, or set to 0\n"
-"for no restrictions:\n"
-"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n"
-"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n"
-"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n"
-"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n"
-"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n"
-"csm_restriction_noderange)\n"
-"READ_PLAYERINFO: 32 (disable get_player_names call client-side)"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Ridge mountain spread noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Ridge noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Ridge underwater noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Ridged mountain size noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Right key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "River channel depth"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "River channel width"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "River depth"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "River noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "River size"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "River valley width"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Rollback recording"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Rolling hill size noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Rolling hills spread noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Round minimap"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Safe digging and placing"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Sandy beaches occur when np_beach exceeds this value."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Save the map received by the client on disk."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Save window size automatically when modified."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Saving map received from server"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Scale GUI by a user specified value.\n"
-"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n"
-"This will smooth over some of the rough edges, and blend\n"
-"pixels when scaling down, at the cost of blurring some\n"
-"edge pixels when images are scaled by non-integer sizes."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Screen height"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Screen width"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Screenshot folder"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Screenshot format"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Screenshot quality"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Screenshot quality. Only used for JPEG format.\n"
-"1 means worst quality; 100 means best quality.\n"
-"Use 0 for default quality."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Seabed noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Second of 4 2D noises that together define hill/mountain range height."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Second of two 3D noises that together define tunnels."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Security"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Selection box border color (R,G,B)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Selection box color"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Selection box width"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Selects one of 18 fractal types.\n"
-"1 = 4D \"Roundy\" Mandelbrot set.\n"
-"2 = 4D \"Roundy\" Julia set.\n"
-"3 = 4D \"Squarry\" Mandelbrot set.\n"
-"4 = 4D \"Squarry\" Julia set.\n"
-"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n"
-"6 = 4D \"Mandy Cousin\" Julia set.\n"
-"7 = 4D \"Variation\" Mandelbrot set.\n"
-"8 = 4D \"Variation\" Julia set.\n"
-"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n"
-"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n"
-"11 = 3D \"Christmas Tree\" Mandelbrot set.\n"
-"12 = 3D \"Christmas Tree\" Julia set.\n"
-"13 = 3D \"Mandelbulb\" Mandelbrot set.\n"
-"14 = 3D \"Mandelbulb\" Julia set.\n"
-"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n"
-"16 = 3D \"Cosine Mandelbulb\" Julia set.\n"
-"17 = 4D \"Mandelbulb\" Mandelbrot set.\n"
-"18 = 4D \"Mandelbulb\" Julia set."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Server / Singleplayer"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Server URL"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Server address"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Server description"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Server name"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Server port"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Server side occlusion culling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Serverlist URL"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Serverlist file"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Set the language. Leave empty to use the system language.\n"
-"A restart is required after changing this."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Set the maximum character length of a chat message sent by clients."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving leaves.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving liquids (like water).\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving plants.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Shader path"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Shaders allow advanced visual effects and may increase performance on some "
-"video\n"
-"cards.\n"
-"This only works with the OpenGL video backend."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
-"drawn."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
-"be drawn."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Shape of the minimap. Enabled = round, disabled = square."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Show debug info"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Show entity selection boxes"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Shutdown message"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n"
-"WARNING!: There is no benefit, and there are several dangers, in\n"
-"increasing this value above 5.\n"
-"Reducing this value increases cave and dungeon density.\n"
-"Altering this value is for special usage, leaving it unchanged is\n"
-"recommended."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Size of the MapBlock cache of the mesh generator. Increasing this will\n"
-"increase the cache hit %, reducing the data being copied from the main\n"
-"thread, thus reducing jitter."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Slice w"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Slope and fill work together to modify the heights."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Small cave maximum number"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Small cave minimum number"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Small-scale humidity variation for blending biomes on borders."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Small-scale temperature variation for blending biomes on borders."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Smooth lighting"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Smooths camera when looking around. Also called look or mouse smoothing.\n"
-"Useful for recording videos."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Smooths rotation of camera in cinematic mode. 0 to disable."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Smooths rotation of camera. 0 to disable."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Sneak key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Sneaking speed"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Sneaking speed, in nodes per second."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Sound"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Special key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Special key for climbing/descending"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Specifies URL from which client fetches media instead of using UDP.\n"
-"$filename should be accessible from $remote_media$filename via cURL\n"
-"(obviously, remote_media should end with a slash).\n"
-"Files that are not present will be fetched the usual way."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Specifies the default stack size of nodes, items and tools.\n"
-"Note that mods or games may explicitly set a stack for certain (or all) "
-"items."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Spread of light curve boost range.\n"
-"Controls the width of the range to be boosted.\n"
-"Standard deviation of the light curve boost Gaussian."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Static spawnpoint"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Steepness noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Step mountain size noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Step mountain spread noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Strength of 3D mode parallax."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Strength of light curve boost.\n"
-"The 3 'boost' parameters define a range of the light\n"
-"curve that is boosted in brightness."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Strict protocol checking"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Strip color codes"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Surface level of optional water placed on a solid floatland layer.\n"
-"Water is disabled by default and will only be placed if this value is set\n"
-"to above 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (the start of the\n"
-"upper tapering).\n"
-"***WARNING, POTENTIAL DANGER TO WORLDS AND SERVER PERFORMANCE***:\n"
-"When enabling water placement the floatlands must be configured and tested\n"
-"to be a solid layer by setting 'mgv7_floatland_density' to 2.0 (or other\n"
-"required value depending on 'mgv7_np_floatland'), to avoid\n"
-"server-intensive extreme water flow and to avoid vast flooding of the\n"
-"world surface below."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Synchronous SQLite"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Temperature variation for biomes."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Terrain alternative noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Terrain base noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Terrain height"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Terrain higher noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Terrain noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Terrain noise threshold for hills.\n"
-"Controls proportion of world area covered by hills.\n"
-"Adjust towards 0.0 for a larger proportion."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Terrain noise threshold for lakes.\n"
-"Controls proportion of world area covered by lakes.\n"
-"Adjust towards 0.0 for a larger proportion."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Terrain persistence noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Texture path"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Textures on a node may be aligned either to the node or to the world.\n"
-"The former mode suits better things like machines, furniture, etc., while\n"
-"the latter makes stairs and microblocks fit surroundings better.\n"
-"However, as this possibility is new, thus may not be used by older servers,\n"
-"this option allows enforcing it for certain node types. Note though that\n"
-"that is considered EXPERIMENTAL and may not work properly."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "The URL for the content repository"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"The default format in which profiles are being saved,\n"
-"when calling `/profiler save [format]` without format."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "The depth of dirt or other biome filler node."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"The file path relative to your worldpath in which profiles will be saved to."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "The identifier of the joystick to use"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "The length in pixels it takes for touch screen interaction to start."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"The maximum height of the surface of waving liquids.\n"
-"4.0 = Wave height is two nodes.\n"
-"0.0 = Wave doesn't move at all.\n"
-"Default is 1.0 (1/2 node).\n"
-"Requires waving liquids to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "The network interface that the server listens on."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"The privileges that new users automatically get.\n"
-"See /privs in game for a full list on your server and mod configuration."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"The radius of the volume of blocks around every player that is subject to "
-"the\n"
-"active block stuff, stated in mapblocks (16 nodes).\n"
-"In active blocks objects are loaded and ABMs run.\n"
-"This is also the minimum range in which active objects (mobs) are "
-"maintained.\n"
-"This should be configured together with active_object_send_range_blocks."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"The rendering back-end for Irrlicht.\n"
-"A restart is required after changing this.\n"
-"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
-"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"The sensitivity of the joystick axes for moving the\n"
-"ingame view frustum around."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"The strength (darkness) of node ambient-occlusion shading.\n"
-"Lower is darker, Higher is lighter. The valid range of values for this\n"
-"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n"
-"set to the nearest valid value."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"The time (in seconds) that the liquids queue may grow beyond processing\n"
-"capacity until an attempt is made to decrease its size by dumping old queue\n"
-"items. A value of 0 disables the functionality."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"The time in seconds it takes between repeated events\n"
-"when holding down a joystick button combination."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "The type of joystick"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n"
-"enabled. Also the vertical distance over which humidity drops by 10 if\n"
-"'altitude_dry' is enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Third of 4 2D noises that together define hill/mountain range height."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Time in seconds for item entity (dropped items) to live.\n"
-"Setting it to -1 disables the feature."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Time of day when a new world is started, in millihours (0-23999)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Time send interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Time speed"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Timeout for client to remove unused map data from memory."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"To reduce lag, block transfers are slowed down when a player is building "
-"something.\n"
-"This determines how long they are slowed down after placing or removing a "
-"node."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Toggle camera mode key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Tooltip delay"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Touch screen threshold"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Trees noise"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Trilinear filtering"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"True = 256\n"
-"False = 128\n"
-"Usable to make minimap smoother on slower machines."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Trusted mods"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "URL to the server list displayed in the Multiplayer Tab."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Undersampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Undersampling is similar to using a lower screen resolution, but it applies\n"
-"to the game world only, keeping the GUI intact.\n"
-"It should give a significant performance boost at the cost of less detailed "
-"image.\n"
-"Higher values result in a less detailed image."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Unlimited player transfer distance"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Unload unused server data"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Upper Y limit of dungeons."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Upper Y limit of floatlands."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Use 3D cloud look instead of flat."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Use a cloud animation for the main menu background."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Use anisotropic filtering when viewing at textures from an angle."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Use bilinear filtering when scaling textures."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Use mip mapping to scale textures. May slightly increase performance,\n"
-"especially when using a high resolution texture pack.\n"
-"Gamma correct downscaling is not supported."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Use trilinear filtering when scaling textures."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "VBO"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "VSync"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Valley depth"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Valley fill"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Valley profile"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Valley slope"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Variation of biome filler depth."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Variation of maximum mountain height (in nodes)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Variation of number of caves."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Variation of terrain vertical scale.\n"
-"When noise is < -0.55 terrain is near-flat."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Varies depth of biome surface nodes."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Varies roughness of terrain.\n"
-"Defines the 'persistence' value for terrain_base and terrain_alt noises."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Varies steepness of cliffs."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Vertical climbing speed, in nodes per second."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Vertical screen synchronization."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Video driver"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "View bobbing factor"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "View distance in nodes."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "View range decrease key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "View range increase key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "View zoom key"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Viewing range"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Virtual joystick triggers aux button"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Volume"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Volume of all sounds.\n"
-"Requires the sound system to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"W coordinate of the generated 3D slice of a 4D fractal.\n"
-"Determines which 3D slice of the 4D shape is generated.\n"
-"Alters the shape of the fractal.\n"
-"Has no effect on 3D fractals.\n"
-"Range roughly -2 to 2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Walking and flying speed, in nodes per second."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Walking speed"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Water level"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Water surface level of the world."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Waving Nodes"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Waving leaves"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Waving liquids"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Waving liquids wave height"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Waving liquids wave speed"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Waving liquids wavelength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Waving plants"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"When gui_scaling_filter is true, all GUI images need to be\n"
-"filtered in software, but some images are generated directly\n"
-"to hardware (e.g. render-to-texture for nodes in inventory)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"When gui_scaling_filter_txr2img is true, copy those images\n"
-"from hardware to software for scaling. When false, fall back\n"
-"to the old scaling method, for video drivers that don't\n"
-"properly support downloading textures back from hardware."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
-"can be blurred, so automatically upscale them with nearest-neighbor\n"
-"interpolation to preserve crisp pixels. This sets the minimum texture size\n"
-"for the upscaled textures; higher values look sharper, but require more\n"
-"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n"
-"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n"
-"enabled.\n"
-"This is also used as the base node texture size for world-aligned\n"
-"texture autoscaling."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Whether FreeType fonts are used, requires FreeType support to be compiled "
-"in.\n"
-"If disabled, bitmap and XML vectors fonts are used instead."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Whether node texture animations should be desynchronized per mapblock."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Whether players are shown to clients without any range limit.\n"
-"Deprecated, use the setting player_transfer_distance instead."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Whether to allow players to damage and kill each other."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Whether to ask clients to reconnect after a (Lua) crash.\n"
-"Set this to true if your server is set up to restart automatically."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Whether to fog out the end of the visible area."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Whether to mute sounds. You can unmute sounds at any time, unless the\n"
-"sound system is disabled (enable_sound=false).\n"
-"In-game, you can toggle the mute state with the mute key or by using the\n"
-"pause menu."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Whether to show the client debug info (has the same effect as hitting F5)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Width component of the initial window size."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Width of the selection box lines around nodes."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Windows systems only: Start Minetest with the command line window in the "
-"background.\n"
-"Contains the same information as the file debug.txt (default name)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"World directory (everything in the world is stored here).\n"
-"Not needed if starting from the main menu."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "World start time"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"World-aligned textures may be scaled to span several nodes. However,\n"
-"the server may not send the scale you want, especially if you use\n"
-"a specially-designed texture pack; with this option, the client tries\n"
-"to determine the scale automatically basing on the texture size.\n"
-"See also texture_min_size.\n"
-"Warning: This option is EXPERIMENTAL!"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "World-aligned textures mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Y of flat ground."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Y of mountain density gradient zero level. Used to shift mountains "
-"vertically."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Y of upper limit of large caves."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Y-distance over which caverns expand to full size."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Y-distance over which floatlands taper from full density to nothing.\n"
-"Tapering starts at this distance from the Y limit.\n"
-"For a solid floatland layer, this controls the height of hills/mountains.\n"
-"Must be less than or equal to half the distance between the Y limits."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Y-level of average terrain surface."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Y-level of cavern upper limit."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Y-level of higher terrain that creates cliffs."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Y-level of lower terrain and seabed."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Y-level of seabed."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "cURL file download timeout"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "cURL parallel limit"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "cURL timeout"
-msgstr ""
diff --git a/po/jbo/minetest.po b/po/jbo/minetest.po
index 016dd43ed..83ccdb9df 100644
--- a/po/jbo/minetest.po
+++ b/po/jbo/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Lojban (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-03-15 18:36+0000\n"
-"Last-Translator: Robin Townsend <iantownsend@disroot.org>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-13 08:50+0000\n"
+"Last-Translator: Wuzzy <almikes@aol.com>\n"
"Language-Team: Lojban <https://hosted.weblate.org/projects/minetest/minetest/"
"jbo/>\n"
"Language: jbo\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.0-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -24,7 +24,7 @@ msgstr ".i do morsi"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "fitytu'i"
#: builtin/fstk/ui.lua
#, fuzzy
@@ -49,10 +49,6 @@ msgstr "za'u re'u samjo'e"
msgid "The server has requested a reconnect:"
msgstr ".i le samtcise'u cu cpedu pa nu za'u re'u co'a samjo'e"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr ".i ca'o samymo'i"
-
#: builtin/mainmenu/common.lua
#, fuzzy
msgid "Protocol version mismatch. "
@@ -68,12 +64,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr ""
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-".i ko troci lo nu za'u re'u samymo'i lo liste be lo'i samse'u .i ko cipcta "
-"lo do te samjo'e"
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr ""
@@ -81,7 +71,8 @@ msgstr ""
msgid "We support protocol versions between version $1 and $2."
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -89,9 +80,10 @@ msgstr ""
#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
#: src/gui/guiPasswordChange.cpp
msgid "Cancel"
-msgstr "sisti"
+msgstr "fitytoltu'i"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "jai se nitcu"
@@ -166,14 +158,54 @@ msgid "enabled"
msgstr "katci"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr ".i ca'o samymo'i"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "se cmima ro bakfu"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "xruti fi tu'a le ralju liste"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "cfari fa lo nu kelci"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -196,6 +228,16 @@ msgid "Install"
msgstr "samtcise'a"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "samtcise'a"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "na'e se nitcu"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "se samtcise'a"
@@ -209,9 +251,24 @@ msgid "No results"
msgstr ".i no da ckaji lo se sisku"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "sisku"
+msgid "No updates"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
@@ -227,7 +284,11 @@ msgid "Update"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -260,7 +321,7 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caves"
-msgstr ""
+msgstr "kevzda"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
@@ -283,7 +344,7 @@ msgstr ".i ko kibycpa pa se kelci la'o zoi. minetest.net .zoi"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Dungeons"
-msgstr ""
+msgstr "kevdi'u"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
@@ -291,11 +352,12 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
-msgstr ""
+msgstr "lo tumla cu fulta lo tsani"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Floatlands (experimental)"
-msgstr ""
+msgstr "fulta tumla"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -340,7 +402,7 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mountains"
-msgstr ""
+msgstr "cmana"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
@@ -364,7 +426,7 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Rivers"
-msgstr ""
+msgstr "rirxe"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
@@ -372,9 +434,8 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
-#, fuzzy
msgid "Seed"
-msgstr "cunso jai krasi"
+msgstr "cunso namcu"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
@@ -528,6 +589,10 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "sisku"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "cuxna fi lu'i le datnyveimei"
@@ -644,6 +709,20 @@ msgstr ""
msgid "Unable to install a modpack as a $1"
msgstr ""
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr ".i ca'o samymo'i"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+".i ko troci lo nu za'u re'u samymo'i lo liste be lo'i samse'u .i ko cipcta "
+"lo do te samjo'e"
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -700,6 +779,17 @@ msgid "Credits"
msgstr "liste lu'i ro gunka"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "cuxna fi lu'i le datnyveimei"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "liste lu'i ro pu je nai ca gunka"
@@ -716,16 +806,12 @@ msgid "Bind Address"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "tcimi'e"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "finti se kelci"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
-msgstr ""
+msgstr "pilno lo selxai"
#: builtin/mainmenu/tab_local.lua
#, fuzzy
@@ -741,8 +827,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "cmene .i lerpoijaspu"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -753,6 +839,10 @@ msgid "No world created or selected!"
msgstr ".i do no munje cu cupra ja cu cuxna"
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "lo lerpoijaspu"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "co'a kelci"
@@ -761,6 +851,11 @@ msgid "Port"
msgstr "judrnporte"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr ".i ko cuxna fi lu'i le munje"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr ".i ko cuxna fi lu'i le munje"
@@ -774,25 +869,25 @@ msgstr "co'a kelci"
#: builtin/mainmenu/tab_online.lua
msgid "Address / Port"
-msgstr "judri .i judrnporte"
+msgstr "lo samjudri jo'u judrnporte"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "co'a samjo'e"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "finti se kelci"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "co'u cmima lu'i ro nelci se tcita"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "nelci se tcita"
@@ -800,16 +895,16 @@ msgstr "nelci se tcita"
msgid "Join Game"
msgstr "co'a kansa fi le ka kelci"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
-msgstr "cmene .i lerpoijaspu"
+msgstr "lo cmene .e lo lerpoijaspu"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ".pin. temci"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr ""
@@ -818,9 +913,8 @@ msgid "2x"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "3D Clouds"
-msgstr "le bliku dilnu"
+msgstr "cibyca'u dilnu"
#: builtin/mainmenu/tab_settings.lua
msgid "4x"
@@ -839,10 +933,6 @@ msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ".i xu do djica le nu xruti le do nonselkansa munje"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
@@ -850,11 +940,6 @@ msgstr ""
msgid "Bilinear Filter"
msgstr "puvyrelyli'iju'e"
-#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
-msgid "Bump Mapping"
-msgstr "lo puvrmipmepi"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr ""
@@ -870,31 +955,20 @@ msgid "Fancy Leaves"
msgstr "lo tolkli pezli"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Mipmap"
msgstr "lo puvrmipmepi"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Mipmap + Aniso. Filter"
msgstr "lo puvrmipmepi .e lo puvytolmanfyju'e"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "na go'i"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "No Mipmap"
-msgstr "lo puvrmipmepi"
+msgstr ""
#: builtin/mainmenu/tab_settings.lua
#, fuzzy
@@ -916,22 +990,12 @@ msgid "Opaque Leaves"
msgstr "lo tolkli pezli"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Opaque Water"
-msgstr "lo tolkli djacu"
-
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
+msgstr "tolkli djacu"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Particles"
-msgstr "lo kantu"
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "xruti le nonselkansa munje"
+msgstr "kantu"
#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
@@ -947,6 +1011,11 @@ msgstr "ti'orkemsamtci"
#: builtin/mainmenu/tab_settings.lua
#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "ti'orkemsamtci to na kakne toi"
+
+#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
msgid "Shaders (unavailable)"
msgstr "ti'orkemsamtci to na kakne toi"
@@ -996,22 +1065,6 @@ msgstr ".i ca'o samymo'i lo me la'o gy.node.gy."
msgid "Waving Plants"
msgstr "lo melbi pezli"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "go'i"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "ralju"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "co'a nonselkansa kelci"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr ""
@@ -1185,13 +1238,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1317,34 +1370,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1399,7 +1424,7 @@ msgstr "nonselkansa"
#: src/client/game.cpp
msgid "Sound Volume"
-msgstr ""
+msgstr "ni sance"
#: src/client/game.cpp
#, fuzzy
@@ -1437,7 +1462,7 @@ msgstr ""
#: src/client/game.cpp
#, c-format
msgid "Volume changed to %d%%"
-msgstr ""
+msgstr ".i fe lo ni sance cu cenba fi li %d ce'i"
#: src/client/game.cpp
msgid "Wireframe shown"
@@ -1548,9 +1573,8 @@ msgid "Insert"
msgstr ""
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Left"
-msgstr "za'i zu'e muvdu"
+msgstr "zu'e muvdu"
#: src/client/keycode.cpp
msgid "Left Button"
@@ -1676,9 +1700,8 @@ msgid "Return"
msgstr ""
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Right"
-msgstr "za'i ri'u muvdu"
+msgstr "ri'u muvdu"
#: src/client/keycode.cpp
msgid "Right Button"
@@ -1747,6 +1770,24 @@ msgstr "la'o gy.X Button 2.gy."
msgid "Zoom"
msgstr ""
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr ".i lu'i le re lerpoijaspu na simxu le ka mintu"
@@ -1783,9 +1824,8 @@ msgid "Automatic jumping"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Backward"
-msgstr "za'i ti'a muvdu"
+msgstr "ti'a muvdu"
#: src/gui/guiKeyChangeMenu.cpp
#, fuzzy
@@ -1810,21 +1850,19 @@ msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
msgid "Dec. volume"
-msgstr ""
+msgstr "jdikygau lo ni sance"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Double tap \"jump\" to toggle fly"
msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Drop"
-msgstr "mu'e falcru"
+msgstr "falcru"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Forward"
-msgstr "za'i ca'u muvdu"
+msgstr "ca'u muvdu"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Inc. range"
@@ -1832,7 +1870,7 @@ msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
msgid "Inc. volume"
-msgstr ""
+msgstr "zengau lo ni sance"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Inventory"
@@ -2010,12 +2048,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2044,9 +2076,8 @@ msgid "2D noise that locates the river valleys and channels."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "3D clouds"
-msgstr "le bliku dilnu"
+msgstr "cibyca'u dilnu"
#: src/settings_translation_file.cpp
msgid "3D mode"
@@ -2124,6 +2155,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2360,10 +2395,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2434,16 +2465,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2605,6 +2626,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "ranji"
@@ -2662,7 +2687,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2670,7 +2697,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2770,12 +2799,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2847,8 +2870,12 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
+msgid "Dig key"
+msgstr "za'i ri'u muvdu"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
-msgstr "lo kantu"
+msgstr "kakpa kantu"
#: src/settings_translation_file.cpp
#, fuzzy
@@ -2908,7 +2935,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2996,14 +3023,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -3013,18 +3032,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3041,12 +3048,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3056,7 +3057,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3360,10 +3361,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3417,8 +3414,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3886,6 +3883,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3967,6 +3968,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4066,6 +4074,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4624,11 +4639,6 @@ msgid "Main menu script"
msgstr "lo ralju"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "lo ralju"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4642,6 +4652,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4805,7 +4823,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4854,6 +4872,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -4963,7 +4988,6 @@ msgid "Minimum texture size"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mipmapping"
msgstr "lo puvrmipmepi"
@@ -5085,14 +5109,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5118,10 +5134,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5147,34 +5159,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5241,6 +5225,15 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "le nu finti kelci"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5398,10 +5391,6 @@ msgid "Right key"
msgstr "za'i ri'u muvdu"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5655,6 +5644,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5788,10 +5787,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5885,6 +5880,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5943,8 +5942,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5970,15 +5969,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6115,6 +6119,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6215,9 +6230,8 @@ msgid "Virtual joystick triggers aux button"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Volume"
-msgstr "lo ni sance "
+msgstr "lo ni sance"
#: src/settings_translation_file.cpp
msgid ""
@@ -6324,6 +6338,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6447,6 +6467,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6458,15 +6496,47 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr ".i xu do djica le nu xruti le do nonselkansa munje"
+
+#~ msgid "Back"
+#~ msgstr "xruti"
+
#, fuzzy
-#~ msgid "Enable VBO"
-#~ msgstr "selpli"
+#~ msgid "Bump Mapping"
+#~ msgstr "lo puvrmipmepi"
+
+#~ msgid "Configure"
+#~ msgstr "tcimi'e"
#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr ".i ca'o kibycpa la'o zoi. $1 .zoi je cu samtcise'a ri .i ko denpa"
-#~ msgid "Back"
-#~ msgstr "xruti"
+#, fuzzy
+#~ msgid "Enable VBO"
+#~ msgstr "selpli"
+
+#~ msgid "Main"
+#~ msgstr "ralju"
+
+#, fuzzy
+#~ msgid "Main menu style"
+#~ msgstr "lo ralju"
+
+#~ msgid "Name/Password"
+#~ msgstr "cmene .i lerpoijaspu"
+
+#~ msgid "No"
+#~ msgstr "na go'i"
#~ msgid "Ok"
#~ msgstr "je'e"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "xruti le nonselkansa munje"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "co'a nonselkansa kelci"
+
+#~ msgid "Yes"
+#~ msgstr "go'i"
diff --git a/po/kk/minetest.po b/po/kk/minetest.po
index 3f68fbc97..26fdf44e8 100644
--- a/po/kk/minetest.po
+++ b/po/kk/minetest.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Kazakh (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-07-06 21:41+0000\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-09-09 01:23+0000\n"
"Last-Translator: Fontan 030 <pomanfedurin@gmail.com>\n"
"Language-Team: Kazakh <https://hosted.weblate.org/projects/minetest/minetest/"
"kk/>\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -46,10 +46,6 @@ msgstr ""
msgid "The server has requested a reconnect:"
msgstr ""
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Жүктелуде..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr ""
@@ -63,10 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr ""
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr ""
@@ -74,7 +66,8 @@ msgstr ""
msgid "We support protocol versions between version $1 and $2."
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -84,7 +77,8 @@ msgstr ""
msgid "Cancel"
msgstr "Болдырмау"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr ""
@@ -156,14 +150,53 @@ msgid "enabled"
msgstr "қоÑылған"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Жүктелуде..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -185,6 +218,15 @@ msgid "Install"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Жою"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Модтар"
@@ -198,9 +240,25 @@ msgid "No results"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Іздеу"
+#, fuzzy
+msgid "No updates"
+msgstr "Жаңарту"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -215,7 +273,11 @@ msgid "Update"
msgstr "Жаңарту"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -510,6 +572,10 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Іздеу"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr ""
@@ -624,6 +690,18 @@ msgstr ""
msgid "Unable to install a modpack as a $1"
msgstr ""
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Жүктелуде..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -677,6 +755,16 @@ msgid "Credits"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr ""
@@ -693,14 +781,10 @@ msgid "Bind Address"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr ""
@@ -717,7 +801,7 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
+msgid "Name"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -729,6 +813,11 @@ msgid "No world created or selected!"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "ÒšÒ±Ð¿Ð¸Ñ Ñөзді өзгерту"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr ""
@@ -737,6 +826,10 @@ msgid "Port"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr ""
@@ -752,23 +845,23 @@ msgstr ""
msgid "Address / Port"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr ""
@@ -776,16 +869,16 @@ msgstr ""
msgid "Join Game"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr ""
@@ -814,20 +907,12 @@ msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
msgid "Bilinear Filter"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
+msgstr "БиÑызықты фильтрациÑ"
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
@@ -842,10 +927,6 @@ msgid "Fancy Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr ""
@@ -854,10 +935,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Жоқ"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr ""
@@ -875,7 +952,7 @@ msgstr ""
#: builtin/mainmenu/tab_settings.lua
msgid "None"
-msgstr ""
+msgstr "Жоқ"
#: builtin/mainmenu/tab_settings.lua
msgid "Opaque Leaves"
@@ -885,17 +962,9 @@ msgstr ""
msgid "Opaque Water"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr ""
+msgstr "Бөлшектер"
#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
@@ -910,6 +979,10 @@ msgid "Shaders"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr ""
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -923,7 +996,7 @@ msgstr ""
#: builtin/mainmenu/tab_settings.lua
msgid "Texturing:"
-msgstr ""
+msgstr "ТекÑтурлеу:"
#: builtin/mainmenu/tab_settings.lua
msgid "To enable shaders the OpenGL driver needs to be used."
@@ -939,7 +1012,7 @@ msgstr ""
#: builtin/mainmenu/tab_settings.lua
msgid "Trilinear Filter"
-msgstr ""
+msgstr "ҮшÑызықты фильтрациÑ"
#: builtin/mainmenu/tab_settings.lua
msgid "Waving Leaves"
@@ -953,22 +1026,6 @@ msgstr ""
msgid "Waving Plants"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Иә"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr ""
@@ -1098,7 +1155,7 @@ msgstr ""
#: src/client/game.cpp
msgid "Change Password"
-msgstr ""
+msgstr "ÒšÒ±Ð¿Ð¸Ñ Ñөзді өзгерту"
#: src/client/game.cpp
msgid "Cinematic mode disabled"
@@ -1128,13 +1185,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1256,34 +1313,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Миникарта жаÑырылды"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1675,6 +1704,24 @@ msgstr ""
msgid "Zoom"
msgstr ""
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Миникарта жаÑырылды"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr ""
@@ -1919,12 +1966,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2031,6 +2072,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2264,10 +2309,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2338,16 +2379,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2499,6 +2530,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2555,7 +2590,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2563,7 +2600,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2663,12 +2702,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2739,6 +2772,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2799,7 +2836,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2887,14 +2924,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2904,18 +2933,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2932,12 +2949,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -2947,7 +2958,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3249,10 +3260,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3306,8 +3313,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3774,6 +3781,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3854,6 +3865,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -3953,6 +3971,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4509,10 +4534,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4526,6 +4547,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4689,7 +4718,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4738,6 +4767,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -4967,14 +5003,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5000,10 +5028,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5029,34 +5053,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5122,6 +5118,14 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5277,10 +5281,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5532,6 +5532,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5661,10 +5671,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5758,6 +5764,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5816,8 +5826,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5843,15 +5853,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -5987,6 +6002,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6056,7 +6082,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Video driver"
-msgstr ""
+msgstr "Видеодрайвер"
#: src/settings_translation_file.cpp
msgid "View bobbing factor"
@@ -6111,7 +6137,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Walking speed"
-msgstr ""
+msgstr "Жүру жылдамдығы"
#: src/settings_translation_file.cpp
msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
@@ -6189,6 +6215,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6276,7 +6308,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Y of upper limit of large caves."
-msgstr ""
+msgstr "Үлкен үңгірлердің жоғарғы шегінің Y координаты."
#: src/settings_translation_file.cpp
msgid "Y-distance over which caverns expand to full size."
@@ -6311,6 +6343,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6321,3 +6371,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "cURL timeout"
msgstr ""
+
+#~ msgid "Main"
+#~ msgstr "БаÑты мәзір"
+
+#~ msgid "No"
+#~ msgstr "Жоқ"
+
+#~ msgid "Yes"
+#~ msgstr "Иә"
diff --git a/po/kn/minetest.po b/po/kn/minetest.po
index 91fc52c2a..d820e246c 100644
--- a/po/kn/minetest.po
+++ b/po/kn/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Kannada (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2019-11-10 15:04+0000\n"
-"Last-Translator: Krock <mk939@ymail.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-01-02 07:29+0000\n"
+"Last-Translator: Tejaswi Hegde <tejaswihegde1@gmail.com>\n"
"Language-Team: Kannada <https://hosted.weblate.org/projects/minetest/"
"minetest/kn/>\n"
"Language: kn\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 3.10-dev\n"
+"X-Generator: Weblate 4.4.1-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -24,17 +24,15 @@ msgstr "ನೀನೠಸತà³à²¤à³à²¹à³‹à²¦à³†"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "ಸರಿ"
#: builtin/fstk/ui.lua
-#, fuzzy
msgid "An error occurred in a Lua script:"
-msgstr "ಒಂದೠಲà³à²µà²¾ ಸà³à²•à³à²°à²¿à²ªà³à²Ÿà³ ನಲà³à²²à²¿ ತಪà³à²ªà²¾à²—ಿದೆ, ಉದಾಹರಣೆ ಮಾಡà³â€à²¨à²²à³à²²à²¿"
+msgstr "ಒಂದೠಲà³à²µà²¾ ಸà³à²•à³à²°à²¿à²ªà³à²Ÿà³ ನಲà³à²²à²¿ ತಪà³à²ªà²¾à²—ಿದೆ:"
#: builtin/fstk/ui.lua
-#, fuzzy
msgid "An error occurred:"
-msgstr "ಒಂದೠತಪà³à²ªà²¾à²—ಿದೆ:"
+msgstr "ದೋಷ ವೊಂದೠಸಂಭವಿಸಿದೆ:"
#: builtin/fstk/ui.lua
msgid "Main menu"
@@ -48,10 +46,6 @@ msgstr "ಮರà³à²¸à²‚ಪರà³à²•ಿಸà³"
msgid "The server has requested a reconnect:"
msgstr "ಸರà³à²µà²°à³ ಮರà³à²¸à²‚ಪರà³à²• ಮಾಡಲೠಕೇಳಿದೆ:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "ಲೋಡೠಆಗà³à²¤à³à²¤à²¿à²¦à³†..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "ಪà³à²°à³‹à²Ÿà³‹à²•ಾಲೠಆವೃತà³à²¤à²¿ ಹೊಂದಿಕೆಯಾಗಿಲà³à²². "
@@ -61,17 +55,8 @@ msgid "Server enforces protocol version $1. "
msgstr "ಸರà³à²µà²°à³ ಪà³à²°à³‹à²Ÿà³‹à²•ಾಲೠಆವೃತà³à²¤à²¿ $1 ಅನà³à²¨à³ ಜಾರಿಗೊಳಿಸà³à²¤à³à²¤à²¦à³†. "
#: builtin/mainmenu/common.lua
-#, fuzzy
msgid "Server supports protocol versions between $1 and $2. "
-msgstr ""
-"ಸರà³à²µà²°à³ $1 ಮತà³à²¤à³ $2 ನಡà³à²µà³†à²¯ ಪà³à²°à³‹à²Ÿà³‹à²•ಾಲೠ\n"
-"ಅವೃತà³à²¤à²¿à²—ಳನà³à²¨à³ ಬೆಂಬಲಿಸà³à²¤à³à²¤à²¦à³†. "
-
-#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"ಪಬà³à²²à²¿à²•ೠಸರà³à²µà²°à³à²²à²¿à²¸à³à²Ÿà³à²…ನà³à²¨à³ ರಿಎನೆಬಲೠಮಾಡಿ ಮತà³à²¤à³ ಅಂತರà³à²œà²¾à²² ಸಂಪರà³à²• \n"
-"ಪರಿಶೀಲಿಸಿ."
+msgstr "ಸರà³à²µà²°à³ $1 ಮತà³à²¤à³ $2 ನಡà³à²µà³†à²¯ ಪà³à²°à³‹à²Ÿà³‹à²•ಾಲೠಅವೃತà³à²¤à²¿à²—ಳನà³à²¨à³ ಬೆಂಬಲಿಸà³à²¤à³à²¤à²¦à³†. "
#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
@@ -81,7 +66,8 @@ msgstr "ನಾವೠ$ 1 ಪà³à²°à³‹à²Ÿà³‹à²•ಾಲೠಆವೃತà³à²¤à²¿à²¯
msgid "We support protocol versions between version $1 and $2."
msgstr "ಆವೃತà³à²¤à²¿ $1 ಮತà³à²¤à³ $2 ನಡà³à²µà²¿à²¨ ಪà³à²°à³‹à²Ÿà³‹à²•ಾಲೠಆವೃತà³à²¤à²¿à²¯à²¨à³à²¨à³ ನಾವೠಬೆಂಬಲಿಸà³à²¤à³à²¤à³‡à²µà³†."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -91,7 +77,8 @@ msgstr "ಆವೃತà³à²¤à²¿ $1 ಮತà³à²¤à³ $2 ನಡà³à²µà²¿à²¨ ಪà³à²°
msgid "Cancel"
msgstr "ರದà³à²¦à³à²®à²¾à²¡à²¿"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "ಅವಲಂಬನೆಗಳà³:"
@@ -101,7 +88,7 @@ msgstr "ಎಲà³à²²à²µà²¨à³à²¨à³‚ ನಿಷà³à²•à³à²°à²¿à²¯à³†à²—ೊಳà²
#: builtin/mainmenu/dlg_config_world.lua
msgid "Disable modpack"
-msgstr ""
+msgstr "ಮಾಡೠಪà³à²¯à²¾à²•ೠನಿಷà³à²•à³à²°à²¿à²¯à²—ೊಳಿಸಿ"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable all"
@@ -109,47 +96,43 @@ msgstr "ಎಲà³à²²à²µà²¨à³à²¨à³‚ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸಿ"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable modpack"
-msgstr ""
+msgstr "ಮಾಡೠಪà³à²¯à²¾à²•ೠಕà³à²°à²¿à²¯à²¾à²¤à³à²®à²•ಗೊಳಿಸಿ"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid ""
"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
"characters [a-z0-9_] are allowed."
msgstr ""
-"\"$1\" ಮಾಡೠಅನà³à²¨à³ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸಲಾಗಿಲà³à²² à²à²•ೆಂದರೆ ಅದೠಅನà³à²®à²¤à²¿à²¸à²¦ ಅಕà³à²·à²°à²—ಳನà³à²¨à³ ಒಳಗೊಂಡಿದೆ. "
-"ಮಾತà³à²° chararacters [a-z0-9_] ಅನà³à²®à²¤à²¿à²¸à²²à²¾à²—ಿದೆ."
+"ಅನà³à²®à²¤à²¿à²¸à²¦à³‡ ಇರà³à²µ ಅಕà³à²·à²°à²—ಳನà³à²¨à³ ಹೊಂದಿರà³à²µ à³à²¦à²°à²¿à²‚ದ mod \"$1\" ಅನà³à²¨à³ ಕà³à²°à²¿à²¯à²¾à²¤à³à²®à²•ಗೊಳಿಸಲೠ"
+"ವಿಫಲವಾಗಿದೆ. ಕೇವಲ ಅಕà³à²·à²°à²—ಳನà³à²¨à³ [a-z0-9_] ಗೆ ಮಾತà³à²° ಅನà³à²®à²¤à²¿à²¸à²²à²¾à²—à³à²¤à³à²¤à²¦à³†."
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "ಇನà³à²¨à²·à³à²Ÿà³ ಮಾಡೠಗಳನà³à²¨à³ ಹà³à²¡à³à²•ಿ"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
msgstr "ಮಾಡà³:"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No (optional) dependencies"
-msgstr "à²à²šà³à²›à²¿à²• ಅವಲಂಬನೆಗಳà³:"
+msgstr "(à²à²šà³à²›à²¿à²•) ಅವಲಂಬನೆಗಳೠಇಲà³à²²"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No game description provided."
msgstr "ಯಾವà³à²¦à³‡ ಆಟದ ವಿವರಣೆ ಒದಗಿಸಿಲà³à²²."
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No hard dependencies"
-msgstr "à²à²šà³à²›à²¿à²• ಅವಲಂಬನೆಗಳà³:"
+msgstr "ಯಾವà³à²¦à³‡ ಗಟà³à²Ÿà²¿ ಅವಲಂಬನೆಗಳಿಲà³à²²"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No modpack description provided."
msgstr "ಯಾವà³à²¦à³‡ ಮಾಡà³à²ªà³à²¯à²¾à²•ೠವಿವರಣೆ ಕೊಟà³à²Ÿà²¿à²²à³à²²."
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No optional dependencies"
-msgstr "à²à²šà³à²›à²¿à²• ಅವಲಂಬನೆಗಳà³:"
+msgstr "ಯಾವà³à²¦à³‡ à²à²šà³à²›à²¿à²• ಅವಲಂಬನೆಗಳಿಲà³à²²"
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
msgid "Optional dependencies:"
@@ -169,21 +152,59 @@ msgid "enabled"
msgstr "ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸಲಾಗಿದೆ"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "ಡೌನೠಲೋಡೠಆಗà³à²¤à³à²¤à²¿à²¦à³†..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "ಎಲà³à²²à²¾ ಪà³à²¯à²¾à²•ೇಜà³à²—ಳà³"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "ಮà³à²–à³à²¯ ಮೆನà³à²—ೆ ಹಿಂತಿರà³à²—ಿ"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "ContentDB is not available when Minetest was compiled without cURL"
+msgid "Base Game:"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
+msgid "ContentDB is not available when Minetest was compiled without cURL"
+msgstr "cURL ಇಲà³à²²à²¦à³† ಮೈನೠಟೆಸà³à²Ÿà³ ಅನà³à²¨à³ ಕಂಪೈಲೠಮಾಡಿದಾಗ ContentDB ಲಭà³à²¯à²µà²¿à²²à³à²²"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Downloading..."
-msgstr "ಲೋಡೠಆಗà³à²¤à³à²¤à²¿à²¦à³†..."
+msgstr "ಡೌನೠಲೋಡೠಆಗà³à²¤à³à²¤à²¿à²¦à³†..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
@@ -199,22 +220,48 @@ msgid "Install"
msgstr "ಇನà³à²¸à³à²Ÿà²¾à²²à³"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "ಇನà³à²¸à³à²Ÿà²¾à²²à³"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "à²à²šà³à²›à²¿à²• ಅವಲಂಬನೆಗಳà³:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "ಮಾಡà³â€à²—ಳà³"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No packages could be retrieved"
-msgstr ""
+msgstr "ಯಾವà³à²¦à³‡ ಪà³à²¯à²¾à²•ೇಜೠಗಳನà³à²¨à³ ಪಡೆಯಲಾಗಲಿಲà³à²²"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No results"
msgstr "ಫಲಿತಾಂಶಗಳಿಲà³à²²"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "ಹà³à²¡à³à²•à³"
+#, fuzzy
+msgid "No updates"
+msgstr "ನವೀಕರಿಸಿ"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -229,16 +276,20 @@ msgid "Update"
msgstr "ನವೀಕರಿಸಿ"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
-msgstr ""
+msgstr "\"$1\" ಹೆಸರಿನ ಒಂದೠಪà³à²°à²ªà²‚ಚವೠಈಗಾಗಲೇ ಇದೆ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "ಹೆಚà³à²šà³à²µà²°à²¿ ಭೂಪà³à²°à²¦à³‡à²¶"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
@@ -249,133 +300,149 @@ msgid "Altitude dry"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Biome blending"
-msgstr ""
+msgstr "ಪà³à²°à²¦à³‡à²¶ ಮಿಶà³à²°à²£"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Biomes"
-msgstr ""
+msgstr "ಪà³à²°à²¦à³‡à²¶à²—ಳà³"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Caverns"
-msgstr ""
+msgstr "ಗà³à²¹à³†à²—ಳà³"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Caves"
-msgstr ""
+msgstr "ಗà³à²¹à³†à²—ಳà³"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Create"
-msgstr ""
+msgstr "ರಚಿಸà³"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Decorations"
-msgstr ""
+msgstr "ಅಲಂಕಾರಗಳà³"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
-msgstr ""
+msgstr "minetest.net ನಿಂದ ಮೈನà³à²Ÿà³†à²¸à³à²Ÿà³ ಗೇಮೠನಂತಹ ಆಟವನà³à²¨à³ ಡೌನೠಲೋಡೠಮಾಡಿ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download one from minetest.net"
-msgstr ""
+msgstr "minetest.net ಇಂದ ಒಂದನà³à²¨à³ ಡೌನೠಲೋಡೠಮಾಡಿ"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Dungeons"
-msgstr ""
+msgstr "ಡಂಗೆನà³à²¸à³"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "ಸಮತಟà³à²Ÿà²¾à²¦ ಭೂಪà³à²°à²¦à³‡à²¶"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
-msgstr ""
+msgstr "ಆಕಾಶದಲà³à²²à²¿ ತೇಲà³à²¤à³à²¤à²¿à²°à³à²µ ಭೂಭಾಗಗಳà³"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Floatlands (experimental)"
-msgstr ""
+msgstr "ತೇಲà³à²µ ಭೂಮಿಗಳೠ(ಪà³à²°à²¾à²¯à³‹à²—ಿಕ)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
-msgstr ""
+msgstr "ಆಟ"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "ಫà³à²°à²¾à²•à³à²Ÿà²²à³ ಅಲà³à²²à²¦ ಭೂಪà³à²°à²¦à³‡à²¶ ಸೃಷà³à²Ÿà²¿à²¸à²¿: ಸಾಗರಗಳೠಮತà³à²¤à³ ಭೂಗರà³à²­"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "ಬೆಟà³à²Ÿà²—ಳà³"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Humid rivers"
-msgstr ""
+msgstr "ಆರà³à²¦à³à²° ನದಿಗಳà³"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "ನದಿಗಳ ಸà³à²¤à³à²¤ ತೇವಾಂಶ ವನà³à²¨à³ ಹೆಚà³à²šà²¿à²¸à³à²¤à³à²¤à²¦à³†"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "ಕೆರೆ"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "ಕಡಿಮೆ ಆರà³à²¦à³à²°à²¤à³† ಮತà³à²¤à³ ಅಧಿಕ ಶಾಖವೠಆಳವಿಲà³à²²à²¦ ಅಥವಾ ಶà³à²·à³à²• ನದಿಗಳನà³à²¨à³ ಉಂಟà³à²®à²¾à²¡à³à²¤à³à²¤à²¦à³†"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+#, fuzzy
msgid "Mapgen"
-msgstr ""
+msgstr "ಮà³à²¯à²¾à²ªà³à²œà³†à²¨à³"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+#, fuzzy
msgid "Mapgen flags"
-msgstr ""
+msgstr "ಮà³à²¯à²¾à²ªà³à²œà³†à²¨à³ ಧà³à²µà²œà²—ಳà³"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Mapgen-specific flags"
-msgstr ""
+msgstr "ಮà³à²¯à²¾à²ªà³à²œà³†à²¨à³-ನಿರà³à²¦à²¿à²·à³à²Ÿ ಧà³à²µà²œà²—ಳà³"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mountains"
-msgstr ""
+msgstr "ಪರà³à²µà²¤à²—ಳà³"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Mud flow"
-msgstr ""
+msgstr "ಮಣà³à²£à²¿à²¨ ಹರಿವà³"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "ಸà³à²°à²‚ಗಗಳೠಮತà³à²¤à³ ಗà³à²¹à³†à²—ಳ ಜಾಲ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
-msgstr ""
+msgstr "ಯಾವà³à²¦à³‡ ಆಟ ಆಯà³à²•ೆಯಾಗಿಲà³à²²"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "ಎತà³à²¤à²°à²¦à²²à³à²²à²¿ ಶಾಖವನà³à²¨à³ ಕಡಿಮೆ ಮಾಡà³à²¤à³à²¤à²¦à³†"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "ಎತà³à²¤à²°à²¦à²²à³à²²à²¿ ತೇವಾಂಶವನà³à²¨à³ ಕಡಿಮೆ ಮಾಡà³à²¤à³à²¤à²¦à³†"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Rivers"
-msgstr ""
+msgstr "ನದಿಗಳà³"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "ಸಮà³à²¦à³à²° ಮಟà³à²Ÿà²¦à²²à³à²²à²¿à²°à³à²µ ನದಿಗಳà³"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
+#, fuzzy
msgid "Seed"
-msgstr ""
+msgstr "ಬೀಜ"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "ಪà³à²°à²¦à³‡à²¶à²—ಳ ನಡà³à²µà³† ಸà³à²—ಮವಾದ ಸà³à²¥à²¿à²¤à³à²¯à²‚ತರ"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
@@ -524,6 +591,10 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "ಹà³à²¡à³à²•à³"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr ""
@@ -638,6 +709,18 @@ msgstr ""
msgid "Unable to install a modpack as a $1"
msgstr ""
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "ಲೋಡೠಆಗà³à²¤à³à²¤à²¿à²¦à³†..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr "ಪಬà³à²²à²¿à²•ೠಸರà³à²µà²°à³à²²à²¿à²¸à³à²Ÿà³à²…ನà³à²¨à³ ರಿಎನೆಬಲೠಮಾಡಿ ಮತà³à²¤à³ ಅಂತರà³à²œà²¾à²² ಸಂಪರà³à²• ಪರಿಶೀಲಿಸಿ."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -691,6 +774,16 @@ msgid "Credits"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr ""
@@ -707,14 +800,10 @@ msgid "Bind Address"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr ""
@@ -731,7 +820,7 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
+msgid "Name"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -743,6 +832,10 @@ msgid "No world created or selected!"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr ""
@@ -751,6 +844,10 @@ msgid "Port"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr ""
@@ -766,23 +863,23 @@ msgstr ""
msgid "Address / Port"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr ""
@@ -790,16 +887,16 @@ msgstr ""
msgid "Join Game"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr ""
@@ -828,10 +925,6 @@ msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
@@ -839,10 +932,6 @@ msgstr ""
msgid "Bilinear Filter"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr ""
@@ -856,10 +945,6 @@ msgid "Fancy Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr ""
@@ -868,10 +953,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr ""
@@ -899,19 +980,11 @@ msgstr ""
msgid "Opaque Water"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr ""
@@ -924,6 +997,11 @@ msgid "Shaders"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "ತೇಲà³à²µ ಭೂಮಿಗಳೠ(ಪà³à²°à²¾à²¯à³‹à²—ಿಕ)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -967,22 +1045,6 @@ msgstr ""
msgid "Waving Plants"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr ""
@@ -1142,13 +1204,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1270,34 +1332,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1689,6 +1723,24 @@ msgstr ""
msgid "Zoom"
msgstr ""
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr ""
@@ -1933,12 +1985,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2045,6 +2091,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2278,10 +2328,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2352,16 +2398,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2513,6 +2549,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2569,7 +2609,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2577,7 +2619,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2677,12 +2721,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2753,6 +2791,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2813,7 +2855,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2901,14 +2943,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2918,18 +2952,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2946,12 +2968,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -2961,7 +2977,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3263,10 +3279,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3320,8 +3332,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3788,6 +3800,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3868,6 +3884,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -3967,6 +3990,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4523,10 +4553,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4540,6 +4566,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4703,7 +4737,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4752,6 +4786,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -4981,14 +5022,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5014,10 +5047,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5043,34 +5072,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5136,6 +5137,14 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5291,10 +5300,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5546,6 +5551,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5675,10 +5690,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5772,6 +5783,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5830,8 +5845,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5857,15 +5872,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6001,6 +6021,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6203,6 +6234,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6325,6 +6362,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6336,11 +6391,15 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "$1 ಡೌನà³à²²à³‹à²¡à³ ಮತà³à²¤à³ ಇನà³à²¸à³à²Ÿà²¾à²²à³ ಮಾಡಲಾಗà³à²¤à³à²¤à²¿à²¦à³†, ದಯವಿಟà³à²Ÿà³ ನಿರೀಕà³à²·à²¿à²¸à²¿..."
-
#~ msgid "Back"
#~ msgstr "ಹಿಂದೆ"
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "$1 ಡೌನà³à²²à³‹à²¡à³ ಮತà³à²¤à³ ಇನà³à²¸à³à²Ÿà²¾à²²à³ ಮಾಡಲಾಗà³à²¤à³à²¤à²¿à²¦à³†, ದಯವಿಟà³à²Ÿà³ ನಿರೀಕà³à²·à²¿à²¸à²¿..."
+
#~ msgid "Ok"
#~ msgstr "ಸರಿ"
+
+#, fuzzy
+#~ msgid "View"
+#~ msgstr "ತೋರಿಸà³"
diff --git a/po/ko/minetest.po b/po/ko/minetest.po
index c28e410a4..d08dc7d72 100644
--- a/po/ko/minetest.po
+++ b/po/ko/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Korean (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-12-05 15:29+0000\n"
+"Last-Translator: HunSeongPark <gnstjd980831@naver.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/minetest/minetest/"
"ko/>\n"
"Language: ko\n"
@@ -12,28 +12,25 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.9-dev\n"
+"X-Generator: Weblate 4.4-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
msgstr "리스í°"
#: builtin/client/death_formspec.lua src/client/game.cpp
-#, fuzzy
msgid "You died"
-msgstr "사ë§í–ˆìŠµë‹ˆë‹¤."
+msgstr "사ë§í–ˆìŠµë‹ˆë‹¤"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "확ì¸"
#: builtin/fstk/ui.lua
-#, fuzzy
msgid "An error occurred in a Lua script:"
-msgstr "Lua 스í¬ë¦½íЏì—서 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 해당 모드:"
+msgstr "Lua 스í¬ë¦½íЏì—서 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤:"
#: builtin/fstk/ui.lua
-#, fuzzy
msgid "An error occurred:"
msgstr "오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤:"
@@ -49,10 +46,6 @@ msgstr "재접ì†"
msgid "The server has requested a reconnect:"
msgstr "ì„œë²„ì— ìž¬ì ‘ì† í•˜ì„¸ìš”:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "불러오는 중..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "프로토콜 ë²„ì „ì´ ì•Œë§žì§€ 않습니다. "
@@ -66,10 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "서버가 프로토콜 버전 $1와(ê³¼) $2 ë‘ ê°€ì§€ë¥¼ 제공합니다. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr "ì¸í„°ë„· ì—°ê²°ì„ í™•ì¸í•œ 후 서버 목ë¡ì„ 새로 ê³ ì³ë³´ì„¸ìš”."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "프로토콜 버전 $1만 제공합니다."
@@ -77,7 +66,8 @@ msgstr "프로토콜 버전 $1만 제공합니다."
msgid "We support protocol versions between version $1 and $2."
msgstr "프로토콜 버전 $1와(ê³¼) $2 사ì´ì˜ ë²„ì „ì„ ì œê³µí•©ë‹ˆë‹¤."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -87,73 +77,66 @@ msgstr "프로토콜 버전 $1와(ê³¼) $2 사ì´ì˜ ë²„ì „ì„ ì œê³µí•©ë‹ˆë‹¤."
msgid "Cancel"
msgstr "취소"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
-msgstr "필수ì ì¸ 모드:"
+msgstr "ì˜ì¡´:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Disable all"
-msgstr "ëª¨ë‘ ë¹„í™œì„±í™”"
+msgstr "ëª¨ë‘ ì‚¬ìš©ì•ˆí•¨"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "Disable modpack"
-msgstr "비활성화ë¨"
+msgstr "모드 팩 비활성화"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable all"
msgstr "ëª¨ë‘ í™œì„±í™”"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "Enable modpack"
-msgstr "모드 팩 ì´ë¦„ 바꾸기:"
+msgstr "모드 팩 활성화"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid ""
"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
"characters [a-z0-9_] are allowed."
msgstr ""
-"\"$1\"ì€(는) 사용할 수 없는 문ìžì´ê¸°ì— 모드를 활성화하지 못 했습니다. ì´ë¦„ì—"
-"는 [a-z0-9_]만 사용할 수 있습니다."
+"\"$1\"ì€(는) 사용할 수 없는 문ìžì´ê¸°ì— 모드를 활성화하지 못했습니다. ì´ë¦„ì—"
+"는 [a-z,0-9,_]만 사용할 수 있습니다."
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "ë” ë§Žì€ ëª¨ë“œ 찾기"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
msgstr "모드:"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No (optional) dependencies"
-msgstr "ì„ íƒì ì¸ 모드:"
+msgstr "종ì†ì„± ì—†ìŒ (옵션)"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No game description provided."
-msgstr "모드 ì„¤ëª…ì´ ì—†ìŠµë‹ˆë‹¤"
+msgstr "게임 ì„¤ëª…ì´ ì œê³µë˜ì§€ 않았습니다."
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No hard dependencies"
-msgstr "요구사항 ì—†ìŒ."
+msgstr "요구사항 ì—†ìŒ"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No modpack description provided."
-msgstr "모드 ì„¤ëª…ì´ ì—†ìŠµë‹ˆë‹¤"
+msgstr "모드 ì„¤ëª…ì´ ì œê³µë˜ì§€ 않았습니다."
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No optional dependencies"
-msgstr "ì„ íƒì ì¸ 모드:"
+msgstr "ì„ íƒë˜ì§€ ì•Šì€ ì¢…ì†ì„±"
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
msgid "Optional dependencies:"
-msgstr "ì„ íƒì ì¸ 모드:"
+msgstr "종ì†ì„± ì„ íƒ:"
#: builtin/mainmenu/dlg_config_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
@@ -169,27 +152,65 @@ msgid "enabled"
msgstr "활성화ë¨"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "다운 받는 중..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "모든 패키지"
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
+msgid "Already installed"
+msgstr "ì´ë¯¸ 사용하고 있는 키입니다"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
-msgstr "주 메뉴"
+msgstr "주 메뉴로 ëŒì•„가기"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "호스트 게임"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "cURL ì—†ì´ Minetest를 컴파ì¼í•œ 경우 ContentDB를 사용할 수 없습니다"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
-msgstr "불러오는 중..."
+msgstr "다운 받는 중..."
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Failed to download $1"
-msgstr "$1ì„ $2ì— ì„¤ì¹˜í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
+msgstr "$1ì„ ë‹¤ìš´ë¡œë“œí•˜ëŠ” ë°ì— 실패했습니다"
#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -201,6 +222,16 @@ msgid "Install"
msgstr "설치"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "설치"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "종ì†ì„± ì„ íƒ:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "모드"
@@ -214,100 +245,109 @@ msgid "No results"
msgstr "ê²°ê³¼ ì—†ìŒ"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "찾기"
+#, fuzzy
+msgid "No updates"
+msgstr "ì—…ë°ì´íЏ"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Texture packs"
-msgstr "í…ìŠ¤ì³ íŒ©"
+msgstr "í…스처 팩"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Uninstall"
-msgstr "설치"
+msgstr "제거"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Update"
msgstr "ì—…ë°ì´íЏ"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
-msgstr "\"$1\" ì´ë¦„ì˜ ì„¸ê³„ê°€ ì´ë¯¸ 존재합니다"
+msgstr "\"$1\" ì´ë¦„ì˜ ì„¸ê³„ì€(는) ì´ë¯¸ 존재합니다"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "추가 지형"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
-msgstr ""
+msgstr "한랭 ê³ ë„"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Altitude dry"
-msgstr ""
+msgstr "건조한 ê³ ë„"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biome blending"
-msgstr "강 소리"
+msgstr "혼합 ìƒë¬¼ 군계"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biomes"
-msgstr "강 소리"
+msgstr "ìƒë¬¼ 군계"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caverns"
-msgstr "ë™êµ´ ìž¡ìŒ #1"
+msgstr "ì„회ë™êµ´"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caves"
-msgstr "ë™êµ´ ìž¡ìŒ #1"
+msgstr "ë™êµ´"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
msgstr "만들기"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "모드 정보:"
+msgstr "장ì‹"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Download a game, such as Minetest Game, from minetest.net"
-msgstr "minetest.netì—서 minetest_game ê°™ì€ ì„œë¸Œ ê²Œìž„ì„ ë‹¤ìš´ë¡œë“œí•˜ì„¸ìš”."
+msgstr "minetest.netì—서 Minetest Game ê°™ì€ ì„œë¸Œ ê²Œìž„ì„ ë‹¤ìš´ë¡œë“œí•˜ì„¸ìš”"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download one from minetest.net"
msgstr "minetest.netì—서 다운로드 하세요"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Dungeons"
-msgstr "강 소리"
+msgstr "ë˜ì „"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "í‰í‰í•œ 지형"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floating landmasses in the sky"
-msgstr "Floatlandì˜ ì‚° 밀집ë„"
+msgstr "í•˜ëŠ˜ì— ë– ìžˆëŠ” 광대한 대지"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floatlands (experimental)"
-msgstr "Floatlandì˜ ë†’ì´"
+msgstr "í‰í‰í•œ ë•… (실험용)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -315,28 +355,27 @@ msgstr "게임"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "ì¶”ìƒì ì´ì§€ ì•Šì€ ì§€í˜• ìƒì„±: 바다와 지하"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "ì–¸ë•"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Humid rivers"
-msgstr "비디오 드ë¼ì´ë²„"
+msgstr "습한 강"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "ê°• ì£¼ë³€ì˜ ìŠµë„ ì¦ê°€"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "호수"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "ë‚®ì€ ìŠµë„와 ë†’ì€ ì—´ë¡œ ì¸í•´ 얕거나 건조한 ê°•ì´ ë°œìƒí•¨"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -344,46 +383,43 @@ msgstr "세계 ìƒì„±ê¸°"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen flags"
-msgstr ""
+msgstr "세계 ìƒì„±ê¸° 신호"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mapgen-specific flags"
-msgstr "Mapgen ì´ë¦„"
+msgstr "세계 ìƒì„±ê¸°-특정 신호"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mountains"
-msgstr ""
+msgstr "ì‚°"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "ì§„í™ í름"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "í„°ë„ê³¼ ë™êµ´ì˜ 네트워í¬"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "No game selected"
-msgstr "범위 ì„ íƒ"
+msgstr "ì„ íƒëœ ê²Œìž„ì´ ì—†ìŠµë‹ˆë‹¤"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "ê³ ë„ì— ë”°ë¥¸ ì—´ ê°ì†Œ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "ê³ ë„ì— ë”°ë¥¸ ìŠµë„ ê°ì†Œ"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Rivers"
-msgstr "ê°• í¬ê¸°"
+msgstr "ê°•"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "해수면 강"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -392,61 +428,58 @@ msgstr "시드"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "ìƒë¬¼ 군계 ê°„ 부드러운 전환"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
+"ì§€í˜•ì— ë‚˜íƒ€ë‚˜ëŠ” 구조물 (v6ì—서 만든 나무와 정글 ë° í’€ì—는 ì˜í–¥ì„ 주지 않ìŒ)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "ì§€í˜•ì— ë‚˜íƒ€ë‚˜ëŠ” 구조물(ì¼ë°˜ì ìœ¼ë¡œ 나무와 ì‹ë¬¼)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
-msgstr ""
+msgstr "온대, 사막"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgstr "온대, 사막, 정글"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "온대, 사막, 정글, 툰드ë¼(한대), 침엽수 삼림 지대"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Terrain surface erosion"
-msgstr "지형 높ì´"
+msgstr "침ì‹ëœ 지형"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "나무와 정글 , 풀"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Vary river depth"
-msgstr "ê°• 깊ì´"
+msgstr "ê°• ê¹Šì´ ë³€í™”"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "ì§€í•˜ì˜ í° ë™êµ´ì˜ ê¹Šì´ ë³€í™”"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Warning: The Development Test is meant for developers."
-msgstr "경고: 'minimal develop test'는 개발ìžë¥¼ 위한 것입니다."
+msgstr "경고: Development Test는 개발ìžë¥¼ 위한 모드입니다."
#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
msgstr "세계 ì´ë¦„"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "You have no games installed."
-msgstr "ì„œë¸Œê²Œìž„ì„ ì„¤ì¹˜í•˜ì§€ 않았습니다."
+msgstr "ê²Œìž„ì´ ì„¤ì¹˜ë˜ì–´ 있지 않습니다."
#: builtin/mainmenu/dlg_delete_content.lua
msgid "Are you sure you want to delete \"$1\"?"
@@ -459,14 +492,12 @@ msgid "Delete"
msgstr "삭제"
#: builtin/mainmenu/dlg_delete_content.lua
-#, fuzzy
msgid "pkgmgr: failed to delete \"$1\""
-msgstr "Modmgr: \"$1\"ì„(를) 삭제하지 못했습니다"
+msgstr "pkgmgr: \"$1\"ì„(를) 삭제하지 못했습니다"
#: builtin/mainmenu/dlg_delete_content.lua
-#, fuzzy
msgid "pkgmgr: invalid path \"$1\""
-msgstr "Modmgr: \"$1\"ì„(를) ì¸ì‹í•  수 없습니다"
+msgstr "pkgmgr: ìž˜ëª»ëœ ê²½ë¡œ\"$1\""
#: builtin/mainmenu/dlg_delete_world.lua
msgid "Delete World \"$1\"?"
@@ -485,15 +516,16 @@ msgid ""
"This modpack has an explicit name given in its modpack.conf which will "
"override any renaming here."
msgstr ""
+"ì´ ëª¨ë“œíŒ©ì—는 modpack.confì— ëª…ì‹œì ì¸ ì´ë¦„ì´ ë¶€ì—¬ë˜ì–´ 있으며, ì´ëŠ” 여기서 ì´"
+"ë¦„ì„ ë°”ê¾¸ëŠ” ê²ƒì„ ì ìš©í•˜ì§€ 않습니다."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "(No description of setting given)"
msgstr "(ì„¤ì •ì— ëŒ€í•œ ì„¤ëª…ì´ ì—†ìŠµë‹ˆë‹¤)"
#: builtin/mainmenu/dlg_settings_advanced.lua
-#, fuzzy
msgid "2D Noise"
-msgstr "소리"
+msgstr "2ì°¨ì› ì†ŒìŒ"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "< Back to Settings page"
@@ -516,20 +548,18 @@ msgid "Enabled"
msgstr "활성화ë¨"
#: builtin/mainmenu/dlg_settings_advanced.lua
-#, fuzzy
msgid "Lacunarity"
-msgstr "보안"
+msgstr "빈약ë„"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Octaves"
-msgstr ""
+msgstr "옥타브"
#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
msgid "Offset"
-msgstr ""
+msgstr "오프셋"
#: builtin/mainmenu/dlg_settings_advanced.lua
-#, fuzzy
msgid "Persistance"
msgstr "플레ì´ì–´ 전송 거리"
@@ -547,17 +577,19 @@ msgstr "기본값 ë³µì›"
#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
msgid "Scale"
-msgstr ""
+msgstr "스케ì¼"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "찾기"
#: builtin/mainmenu/dlg_settings_advanced.lua
-#, fuzzy
msgid "Select directory"
-msgstr "ì„ íƒí•œ 모드 파ì¼:"
+msgstr "경로를 ì„ íƒí•˜ì„¸ìš”"
#: builtin/mainmenu/dlg_settings_advanced.lua
-#, fuzzy
msgid "Select file"
-msgstr "ì„ íƒí•œ 모드 파ì¼:"
+msgstr "íŒŒì¼ ì„ íƒ"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@@ -573,27 +605,27 @@ msgstr "ê°’ì´ $1ì„ ì´ˆê³¼í•˜ë©´ 안 ë©ë‹ˆë‹¤."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "X"
-msgstr ""
+msgstr "X"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "X spread"
-msgstr ""
+msgstr "X ë¶„ì‚°"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Y"
-msgstr ""
+msgstr "Y"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Y spread"
-msgstr ""
+msgstr "Y ë¶„ì‚°"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Z"
-msgstr ""
+msgstr "Z"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Z spread"
-msgstr ""
+msgstr "Z ë¶„ì‚°"
#. ~ "absvalue" is a noise parameter flag.
#. It is short for "absolute value".
@@ -601,15 +633,14 @@ msgstr ""
#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "absvalue"
-msgstr ""
+msgstr "절댓값"
#. ~ "defaults" is a noise parameter flag.
#. It describes the default processing options
#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-#, fuzzy
msgid "defaults"
-msgstr "기본 게임"
+msgstr "기본값"
#. ~ "eased" is a noise parameter flag.
#. It is used to make the map smoother and
@@ -617,115 +648,110 @@ msgstr "기본 게임"
#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "eased"
-msgstr ""
+msgstr "맵 부드러움"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "$1 (Enabled)"
-msgstr "활성화ë¨"
+msgstr "$1 (활성화ë¨)"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "$1 mods"
-msgstr "3D 모드"
+msgstr "$1 모드"
#: builtin/mainmenu/pkgmgr.lua
msgid "Failed to install $1 to $2"
msgstr "$1ì„ $2ì— ì„¤ì¹˜í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "Install Mod: Unable to find real mod name for: $1"
msgstr "모드 설치: $1를(ì„) ì°¾ì„ ìˆ˜ 없습니다"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "Install Mod: Unable to find suitable folder name for modpack $1"
-msgstr "설치 모드: 모드 팩 $1 (ì´)ì˜ ì˜¬ë°”ë¥¸ í´ë”ì´ë¦„ì„ ì°¾ì„ ìˆ˜ 없습니다"
+msgstr "모드 설치: 모드 팩 $1 (ì´)ì˜ ì˜¬ë°”ë¥¸ í´ë”ì´ë¦„ì„ ì°¾ì„ ìˆ˜ 없습니다"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "Install: Unsupported file type \"$1\" or broken archive"
msgstr ""
-"\n"
-"모드 설치: \"$1\"는(ì€) ì§€ì› ë˜ì§€ 않는 íŒŒì¼ í˜•ì‹ ì´ê±°ë‚˜ 깨진 ì••ì¶• 파ì¼ìž…니다"
+"모드 설치: \"$1\"는(ì€) ì§€ì› ë˜ì§€ 않는 íŒŒì¼ í˜•ì‹ ì´ê±°ë‚˜ ì†ìƒëœ ì••ì¶• 파ì¼ìž…니"
+"다"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "Install: file: \"$1\""
msgstr "모드 설치: 파ì¼: \"$1\""
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "Unable to find a valid mod or modpack"
msgstr "설치 모드: 모드 팩 $1 (ì´)ì˜ ì˜¬ë°”ë¥¸ í´ë”ì´ë¦„ì„ ì°¾ì„ ìˆ˜ 없습니다"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "Unable to install a $1 as a texture pack"
-msgstr "$1ì„ $2ì— ì„¤ì¹˜í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
+msgstr "$1ì„ í…스ì³íŒ©ìœ¼ë¡œ 설치할 수 없습니다"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "Unable to install a game as a $1"
-msgstr "$1ì„ $2ì— ì„¤ì¹˜í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
+msgstr "$1ì„ ì„¤ì¹˜í•  수 없습니다"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "Unable to install a mod as a $1"
-msgstr "$1ì„ $2ì— ì„¤ì¹˜í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
+msgstr "$1 모드를 설치할 수 없습니다"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "Unable to install a modpack as a $1"
-msgstr "$1ì„ $2ì— ì„¤ì¹˜í•˜ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
+msgstr "$1 ëª¨ë“œíŒ©ì„ ì„¤ì¹˜í•  수 없습니다"
+
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "불러오는 중..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "í´ë¼ì´ì–¸íЏ 스í¬ë¦½íŠ¸ê°€ 비활성화ë¨"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr "ì¸í„°ë„· ì—°ê²°ì„ í™•ì¸í•œ 후 서버 목ë¡ì„ 새로 ê³ ì³ë³´ì„¸ìš”."
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "온ë¼ì¸ 컨í…츠 검색"
#: builtin/mainmenu/tab_content.lua
-#, fuzzy
msgid "Content"
-msgstr "계ì†"
+msgstr "컨í…츠"
#: builtin/mainmenu/tab_content.lua
-#, fuzzy
msgid "Disable Texture Pack"
-msgstr "ì„ íƒí•œ í…ìŠ¤ì³ íŒ©:"
+msgstr "ë¹„í™œì„±í™”ëœ í…ìŠ¤ì³ íŒ©"
#: builtin/mainmenu/tab_content.lua
-#, fuzzy
msgid "Information:"
-msgstr "모드 정보:"
+msgstr "ì •ë³´:"
#: builtin/mainmenu/tab_content.lua
-#, fuzzy
msgid "Installed Packages:"
-msgstr "설치한 모드:"
+msgstr "ì„¤ì¹˜ëœ íŒ¨í‚¤ì§€:"
#: builtin/mainmenu/tab_content.lua
msgid "No dependencies."
msgstr "요구사항 ì—†ìŒ."
#: builtin/mainmenu/tab_content.lua
-#, fuzzy
msgid "No package description available"
-msgstr "모드 ì„¤ëª…ì´ ì—†ìŠµë‹ˆë‹¤"
+msgstr "사용 가능한 패키지 ì„¤ëª…ì´ ì—†ìŠµë‹ˆë‹¤"
#: builtin/mainmenu/tab_content.lua
msgid "Rename"
msgstr "ì´ë¦„ 바꾸기"
#: builtin/mainmenu/tab_content.lua
-#, fuzzy
msgid "Uninstall Package"
-msgstr "ì„ íƒí•œ 모드 ì‚­ì œ"
+msgstr "패키지 삭제"
#: builtin/mainmenu/tab_content.lua
-#, fuzzy
msgid "Use Texture Pack"
-msgstr "í…ìŠ¤ì³ íŒ©"
+msgstr "í…ìŠ¤ì³ íŒ© 사용"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
@@ -740,6 +766,17 @@ msgid "Credits"
msgstr "만든ì´"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "경로를 ì„ íƒí•˜ì„¸ìš”"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "ì´ì „ 공헌ìžë“¤"
@@ -748,43 +785,36 @@ msgid "Previous Core Developers"
msgstr "ì´ì „ 코어 개발ìžë“¤"
#: builtin/mainmenu/tab_local.lua
-#, fuzzy
msgid "Announce Server"
-msgstr "서버 발표"
+msgstr "서버 알리기"
#: builtin/mainmenu/tab_local.lua
msgid "Bind Address"
msgstr "ë°”ì¸ë”© 주소"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "환경설정"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "í¬ë¦¬ì—ì´í‹°ë¸Œ 모드"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "ë°ë¯¸ì§€ 활성화"
#: builtin/mainmenu/tab_local.lua
-#, fuzzy
msgid "Host Game"
-msgstr "게임 호스트하기"
+msgstr "호스트 게임"
#: builtin/mainmenu/tab_local.lua
-#, fuzzy
msgid "Host Server"
-msgstr "서버 호스트하기"
+msgstr "호스트 서버"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "ContentDBì—서 게임 설치"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "ì´ë¦„/비밀번호"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -795,6 +825,11 @@ msgid "No world created or selected!"
msgstr "월드를 만들거나 ì„ íƒí•˜ì§€ 않았습니다!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "새로운 비밀번호"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "게임하기"
@@ -803,6 +838,11 @@ msgid "Port"
msgstr "í¬íЏ"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "월드 ì„ íƒ:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "월드 ì„ íƒ:"
@@ -811,49 +851,47 @@ msgid "Server Port"
msgstr "서버 í¬íЏ"
#: builtin/mainmenu/tab_local.lua
-#, fuzzy
msgid "Start Game"
-msgstr "게임 호스트하기"
+msgstr "게임 시작"
#: builtin/mainmenu/tab_online.lua
msgid "Address / Port"
msgstr "주소/í¬íЏ"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "ì—°ê²°"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "í¬ë¦¬ì—ì´í‹°ë¸Œ 모드"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "ë°ë¯¸ì§€ 활성화"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "ì¦ê²¨ì°¾ê¸° ì‚­ì œ"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "ì¦ê²¨ì°¾ê¸°"
#: builtin/mainmenu/tab_online.lua
-#, fuzzy
msgid "Join Game"
-msgstr "게임 호스트하기"
+msgstr "게임 참가"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "ì´ë¦„/비밀번호"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "í•‘"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP 가능"
@@ -874,20 +912,14 @@ msgid "8x"
msgstr "8 ë°°ì†"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "All Settings"
-msgstr "설정"
+msgstr "모든 설정"
#: builtin/mainmenu/tab_settings.lua
msgid "Antialiasing:"
msgstr "매ë„럽게 표현하기:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "싱글 플레ì´ì–´ 월드를 리셋하겠습니까?"
-
-#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Autosave Screen Size"
msgstr "스í¬ë¦° í¬ê¸° ìžë™ 저장"
@@ -895,10 +927,6 @@ msgstr "스í¬ë¦° í¬ê¸° ìžë™ 저장"
msgid "Bilinear Filter"
msgstr "ì´ì¤‘ 선형 í•„í„°"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "범프 매핑"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "키 변경"
@@ -912,11 +940,6 @@ msgid "Fancy Leaves"
msgstr "아름다운 나뭇잎 효과"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
-msgid "Generate Normal Maps"
-msgstr "Normalmaps ìƒì„±"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "ë°‰ ë§µ"
@@ -925,10 +948,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "밉맵 + Aniso. 필터"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "아니오"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "í•„í„° ì—†ìŒ"
@@ -956,22 +975,13 @@ msgstr "불투명한 나뭇잎 효과"
msgid "Opaque Water"
msgstr "불투명한 물 효과"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "시차 êµí•©"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "ìž…ìž íš¨ê³¼"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "싱글 플레ì´ì–´ 월드 초기화"
-
-#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Screen:"
-msgstr "스í¬ë¦°:"
+msgstr "화면:"
#: builtin/mainmenu/tab_settings.lua
msgid "Settings"
@@ -982,6 +992,11 @@ msgid "Shaders"
msgstr "ì‰ì´ë”"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "í‰í‰í•œ ë•… (실험용)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "ì‰ì´ë” (사용할 수 ì—†ìŒ)"
@@ -1006,9 +1021,8 @@ msgid "Tone Mapping"
msgstr "톤 매핑"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Touchthreshold: (px)"
-msgstr "터치임계값 (픽셀)"
+msgstr "터치 임계값: (픽셀)"
#: builtin/mainmenu/tab_settings.lua
msgid "Trilinear Filter"
@@ -1019,30 +1033,13 @@ msgid "Waving Leaves"
msgstr "움ì§ì´ëŠ” 나뭇잎 효과"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Waving Liquids"
-msgstr "움ì§ì´ëŠ” Node"
+msgstr "물 ë“±ì˜ ë¬¼ê²°íš¨ê³¼"
#: builtin/mainmenu/tab_settings.lua
msgid "Waving Plants"
msgstr "움ì§ì´ëŠ” ì‹ë¬¼ 효과"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "예"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "모드 설정"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "ë©”ì¸"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "싱글 플레ì´ì–´ 시작"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "ì—°ê²° ì‹œê°„ì´ ì´ˆê³¼í–ˆìŠµë‹ˆë‹¤."
@@ -1097,7 +1094,7 @@ msgstr "ì´ë¦„ì„ ì„ íƒí•˜ì„¸ìš”!"
#: src/client/clientlauncher.cpp
msgid "Provided password file failed to open: "
-msgstr ""
+msgstr "패스워드 파ì¼ì„ ì—¬ëŠ”ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: "
#: src/client/clientlauncher.cpp
msgid "Provided world path doesn't exist: "
@@ -1124,9 +1121,8 @@ msgstr ""
"ìžì„¸í•œ ë‚´ìš©ì€ debug.txtì„ í™•ì¸ í•©ë‹ˆë‹¤."
#: src/client/game.cpp
-#, fuzzy
msgid "- Address: "
-msgstr "ë°”ì¸ë”© 주소"
+msgstr "- 주소: "
#: src/client/game.cpp
msgid "- Creative Mode: "
@@ -1145,56 +1141,49 @@ msgid "- Port: "
msgstr "- í¬íЏ: "
#: src/client/game.cpp
-#, fuzzy
msgid "- Public: "
-msgstr "ì¼ë°˜"
+msgstr "- 공개: "
#. ~ PvP = Player versus Player
#: src/client/game.cpp
msgid "- PvP: "
-msgstr "- PvP: "
+msgstr "- Player vs Player: "
#: src/client/game.cpp
msgid "- Server Name: "
msgstr "- 서버 ì´ë¦„: "
#: src/client/game.cpp
-#, fuzzy
msgid "Automatic forward disabled"
-msgstr "앞으로 가는 키"
+msgstr "ìžë™ ì „ì§„ 비활성화"
#: src/client/game.cpp
-#, fuzzy
msgid "Automatic forward enabled"
-msgstr "앞으로 가는 키"
+msgstr "ìžë™ ì „ì§„ 활성화"
#: src/client/game.cpp
-#, fuzzy
msgid "Camera update disabled"
-msgstr "ì¹´ë©”ë¼ ì—…ë°ì´íЏ 토글 키"
+msgstr "ì¹´ë©”ë¼ ì—…ë°ì´íЏ 비활성화"
#: src/client/game.cpp
-#, fuzzy
msgid "Camera update enabled"
-msgstr "ì¹´ë©”ë¼ ì—…ë°ì´íЏ 토글 키"
+msgstr "ì¹´ë©”ë¼ ì—…ë°ì´íЏ 활성화"
#: src/client/game.cpp
msgid "Change Password"
msgstr "비밀번호 변경"
#: src/client/game.cpp
-#, fuzzy
msgid "Cinematic mode disabled"
-msgstr "시네마틱 모드 스위치"
+msgstr "시네마틱 모드 비활성화"
#: src/client/game.cpp
-#, fuzzy
msgid "Cinematic mode enabled"
-msgstr "시네마틱 모드 스위치"
+msgstr "시네마틱 모드 활성화"
#: src/client/game.cpp
msgid "Client side scripting is disabled"
-msgstr ""
+msgstr "í´ë¼ì´ì–¸íЏ 스í¬ë¦½íŠ¸ê°€ 비활성화ë¨"
#: src/client/game.cpp
msgid "Connecting to server..."
@@ -1212,26 +1201,30 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
-"기본 컨트롤:-WASD: ì´ë™\n"
-"-스페ì´ìФ: ì í”„/오르기\n"
-"-쉬프트:살금살금/내려가기\n"
-"-Q: ì•„ì´í…œ 드롭\n"
-"-I: ì¸ë²¤í† ë¦¬\n"
-"-마우스: ëŒì•„보기/보기\n"
-"-마우스 왼쪽: 파내기/공격\n"
-"-마우스 오른쪽: 배치/사용\n"
-"-마우스 휠: ì•„ì´í…œ ì„ íƒ\n"
-"-T: 채팅\n"
+"ì¡°ìž‘:\n"
+"-%s: 앞으로 ì´ë™\n"
+"-%s:뒤로 ì´ë™\n"
+"-%s:왼쪽으로 ì´ë™\n"
+"-%s:오른쪽으로 ì´ë™\n"
+"-%s: ì í”„/오르기\n"
+"-%s:조용히 걷기/내려가기\n"
+"-%s:ì•„ì´í…œ 버리기\n"
+"-%s:ì¸ë²¤í† ë¦¬\n"
+"-마우스: ëŒê¸°/보기\n"
+"-마우스 왼쪽 í´ë¦­: 땅파기/펀치\n"
+"-마우스 오른쪽 í´ë¦­: ë‘기/사용하기\n"
+"-마우스 휠:ì•„ì´í…œ ì„ íƒ\n"
+"-%s: 채팅\n"
#: src/client/game.cpp
msgid "Creating client..."
@@ -1243,16 +1236,15 @@ msgstr "서버 만드는 중..."
#: src/client/game.cpp
msgid "Debug info and profiler graph hidden"
-msgstr ""
+msgstr "디버그 ì •ë³´ ë° í”„ë¡œíŒŒì¼ëŸ¬ 그래프 숨기기"
#: src/client/game.cpp
-#, fuzzy
msgid "Debug info shown"
-msgstr "디버그 정보 토글 키"
+msgstr "디버그 정보 표시"
#: src/client/game.cpp
msgid "Debug info, profiler graph, and wireframe hidden"
-msgstr ""
+msgstr "디버그 ì •ë³´, 프로파ì¼ëŸ¬ 그래프 , ì„  표현 숨김"
#: src/client/game.cpp
msgid ""
@@ -1284,11 +1276,11 @@ msgstr ""
#: src/client/game.cpp
msgid "Disabled unlimited viewing range"
-msgstr ""
+msgstr "제한없는 시야 범위 비활성화"
#: src/client/game.cpp
msgid "Enabled unlimited viewing range"
-msgstr ""
+msgstr "제한없는 시야 범위 활성화"
#: src/client/game.cpp
msgid "Exit to Menu"
@@ -1299,42 +1291,36 @@ msgid "Exit to OS"
msgstr "게임 종료"
#: src/client/game.cpp
-#, fuzzy
msgid "Fast mode disabled"
-msgstr "ê³ ì† ëª¨ë“œ ì†ë„"
+msgstr "ê³ ì† ëª¨ë“œ 비활성화"
#: src/client/game.cpp
-#, fuzzy
msgid "Fast mode enabled"
-msgstr "ê³ ì† ëª¨ë“œ ì†ë„"
+msgstr "ê³ ì† ëª¨ë“œ 활성화"
#: src/client/game.cpp
msgid "Fast mode enabled (note: no 'fast' privilege)"
-msgstr ""
+msgstr "ê³ ì† ëª¨ë“œ 활성화(참고 : 'ê³ ì†'ì— ëŒ€í•œ 권한 ì—†ìŒ)"
#: src/client/game.cpp
-#, fuzzy
msgid "Fly mode disabled"
-msgstr "ê³ ì† ëª¨ë“œ ì†ë„"
+msgstr "비행 모드 비활성화"
#: src/client/game.cpp
-#, fuzzy
msgid "Fly mode enabled"
-msgstr "ë°ë¯¸ì§€ 활성화"
+msgstr "비행 모드 활성화"
#: src/client/game.cpp
msgid "Fly mode enabled (note: no 'fly' privilege)"
-msgstr ""
+msgstr "비행 모드 활성화 (참고 : '비행'ì— ëŒ€í•œ 권한 ì—†ìŒ)"
#: src/client/game.cpp
-#, fuzzy
msgid "Fog disabled"
-msgstr "비활성화ë¨"
+msgstr "안개 비활성화"
#: src/client/game.cpp
-#, fuzzy
msgid "Fog enabled"
-msgstr "활성화ë¨"
+msgstr "안개 활성화"
#: src/client/game.cpp
msgid "Game info:"
@@ -1345,9 +1331,8 @@ msgid "Game paused"
msgstr "게임 ì¼ì‹œì •ì§€"
#: src/client/game.cpp
-#, fuzzy
msgid "Hosting server"
-msgstr "서버 만드는 중..."
+msgstr "호스팅 서버"
#: src/client/game.cpp
msgid "Item definitions..."
@@ -1367,49 +1352,19 @@ msgstr "MiB/s"
#: src/client/game.cpp
msgid "Minimap currently disabled by game or mod"
-msgstr ""
-
-#: src/client/game.cpp
-#, fuzzy
-msgid "Minimap hidden"
-msgstr "미니맵 키"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
+msgstr "게임 ë˜ëŠ” ëª¨ë“œì— ì˜í•´ 현재 미니맵 비활성화"
#: src/client/game.cpp
msgid "Noclip mode disabled"
-msgstr ""
+msgstr "Noclip 모드 비활성화"
#: src/client/game.cpp
-#, fuzzy
msgid "Noclip mode enabled"
-msgstr "ë°ë¯¸ì§€ 활성화"
+msgstr "Noclip 모드 활성화"
#: src/client/game.cpp
msgid "Noclip mode enabled (note: no 'noclip' privilege)"
-msgstr ""
+msgstr "Noclip 모드 활성화 (참고 : 'noclip'ì— ëŒ€í•œ 권한 ì—†ìŒ)"
#: src/client/game.cpp
msgid "Node definitions..."
@@ -1425,20 +1380,19 @@ msgstr "켜기"
#: src/client/game.cpp
msgid "Pitch move mode disabled"
-msgstr ""
+msgstr "피치 ì´ë™ 모드 비활성화"
#: src/client/game.cpp
msgid "Pitch move mode enabled"
-msgstr ""
+msgstr "피치 ì´ë™ 모드 활성화"
#: src/client/game.cpp
msgid "Profiler graph shown"
-msgstr ""
+msgstr "프로파ì¼ëŸ¬ 그래프 ë³´ì´ê¸°"
#: src/client/game.cpp
-#, fuzzy
msgid "Remote server"
-msgstr "ì›ê²© í¬íЏ"
+msgstr "ì›ê²© 서버"
#: src/client/game.cpp
msgid "Resolving address..."
@@ -1457,88 +1411,83 @@ msgid "Sound Volume"
msgstr "볼륨 조절"
#: src/client/game.cpp
-#, fuzzy
msgid "Sound muted"
-msgstr "볼륨 조절"
+msgstr "ìŒì†Œê±°"
#: src/client/game.cpp
msgid "Sound system is disabled"
-msgstr ""
+msgstr "사운드 시스템 비활성화"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "본 빌드ì—서 ì§€ì›ë˜ì§€ 않는 사운드 시스템"
#: src/client/game.cpp
-#, fuzzy
msgid "Sound unmuted"
-msgstr "볼륨 조절"
+msgstr "ìŒì†Œê±° í•´ì œ"
#: src/client/game.cpp
-#, fuzzy, c-format
+#, c-format
msgid "Viewing range changed to %d"
-msgstr "시야 범위"
+msgstr "시야 범위 %d로 바꿈"
#: src/client/game.cpp
#, c-format
msgid "Viewing range is at maximum: %d"
-msgstr ""
+msgstr "시야 범위 최대치 : %d"
#: src/client/game.cpp
#, c-format
msgid "Viewing range is at minimum: %d"
-msgstr ""
+msgstr "시야 범위 최소치 : %d"
#: src/client/game.cpp
#, c-format
msgid "Volume changed to %d%%"
-msgstr ""
+msgstr "볼륨 %d%%로 바꿈"
#: src/client/game.cpp
msgid "Wireframe shown"
-msgstr ""
+msgstr "ì„  표면 ë³´ì´ê¸°"
#: src/client/game.cpp
msgid "Zoom currently disabled by game or mod"
-msgstr ""
+msgstr "게임 ë˜ëŠ” ëª¨ë“œì— ì˜í•´ 현재 확대 비활성화"
#: src/client/game.cpp
msgid "ok"
msgstr "확ì¸"
#: src/client/gameui.cpp
-#, fuzzy
msgid "Chat hidden"
-msgstr "채팅"
+msgstr "채팅 숨기기"
#: src/client/gameui.cpp
msgid "Chat shown"
-msgstr ""
+msgstr "채팅 ë³´ì´ê¸°"
#: src/client/gameui.cpp
msgid "HUD hidden"
-msgstr ""
+msgstr "HUD 숨기기"
#: src/client/gameui.cpp
msgid "HUD shown"
-msgstr ""
+msgstr "HUD ë³´ì´ê¸°"
#: src/client/gameui.cpp
-#, fuzzy
msgid "Profiler hidden"
-msgstr "프로파ì¼ëŸ¬"
+msgstr "프로파ì¼ëŸ¬ 숨기기"
#: src/client/gameui.cpp
#, c-format
msgid "Profiler shown (page %d of %d)"
-msgstr ""
+msgstr "프로파ì¼ëŸ¬ ë³´ì´ê¸° (%d중 %d 페ì´ì§€)"
#: src/client/keycode.cpp
msgid "Apps"
msgstr "애플리케ì´ì…˜"
#: src/client/keycode.cpp
-#, fuzzy
msgid "Backspace"
msgstr "뒤로"
@@ -1563,9 +1512,8 @@ msgid "End"
msgstr "ë"
#: src/client/keycode.cpp
-#, fuzzy
msgid "Erase EOF"
-msgstr "OEF를 지우기"
+msgstr "EOF 지우기"
#: src/client/keycode.cpp
msgid "Execute"
@@ -1589,7 +1537,7 @@ msgstr "IME 변환"
#: src/client/keycode.cpp
msgid "IME Escape"
-msgstr ""
+msgstr "IME 종료"
#: src/client/keycode.cpp
msgid "IME Mode Change"
@@ -1609,7 +1557,7 @@ msgstr "왼쪽"
#: src/client/keycode.cpp
msgid "Left Button"
-msgstr "ì™¼ìª½ëœ ë²„íŠ¼"
+msgstr "왼쪽 버튼"
#: src/client/keycode.cpp
msgid "Left Control"
@@ -1637,7 +1585,6 @@ msgid "Middle Button"
msgstr "ê°€ìš´ë° ë²„íŠ¼"
#: src/client/keycode.cpp
-#, fuzzy
msgid "Num Lock"
msgstr "Num Lock"
@@ -1703,20 +1650,19 @@ msgstr "ìˆ«ìž í‚¤íŒ¨ë“œ 9"
#: src/client/keycode.cpp
msgid "OEM Clear"
-msgstr ""
+msgstr "OEM 초기화"
#: src/client/keycode.cpp
msgid "Page down"
-msgstr ""
+msgstr "페ì´ì§€ 내리기"
#: src/client/keycode.cpp
msgid "Page up"
-msgstr ""
+msgstr "페ì´ì§€ 올리기"
#: src/client/keycode.cpp
-#, fuzzy
msgid "Pause"
-msgstr "ì¼ì‹œ 중지"
+msgstr "ì¼ì‹œ ì •ì§€"
#: src/client/keycode.cpp
msgid "Play"
@@ -1724,9 +1670,8 @@ msgstr "시작"
#. ~ "Print screen" key
#: src/client/keycode.cpp
-#, fuzzy
msgid "Print"
-msgstr "ì¸ì‡„"
+msgstr "출력"
#: src/client/keycode.cpp
msgid "Return"
@@ -1757,7 +1702,6 @@ msgid "Right Windows"
msgstr "오른쪽 창"
#: src/client/keycode.cpp
-#, fuzzy
msgid "Scroll Lock"
msgstr "스í¬ë¡¤ ë½"
@@ -1779,9 +1723,8 @@ msgid "Snapshot"
msgstr "스냅샷"
#: src/client/keycode.cpp
-#, fuzzy
msgid "Space"
-msgstr "스페ì´ìФ"
+msgstr "스페ì´ìŠ¤ë°”"
#: src/client/keycode.cpp
msgid "Tab"
@@ -1803,13 +1746,32 @@ msgstr "X 버튼 2"
msgid "Zoom"
msgstr "확대/축소"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "미니맵 숨김"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "ë ˆì´ë” ëª¨ë“œì˜ ë¯¸ë‹ˆë§µ, 1ë°° 확대"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "표면 ëª¨ë“œì˜ ë¯¸ë‹ˆë§µ, 1ë°° 확대"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "최소 í…스처 í¬ê¸°"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "비밀번호가 맞지 않습니다!"
#: src/gui/guiConfirmRegistration.cpp
msgid "Register and Join"
-msgstr ""
+msgstr "등ë¡í•˜ê³  참여"
#: src/gui/guiConfirmRegistration.cpp
#, c-format
@@ -1820,33 +1782,34 @@ msgid ""
"Please retype your password and click 'Register and Join' to confirm account "
"creation, or click 'Cancel' to abort."
msgstr ""
+"ë‹¹ì‹ ì€ ì²˜ìŒ \"%s\"ë¼ëŠ” ì´ë¦„으로 ì´ ì„œë²„ì— ì°¸ì—¬í•˜ë ¤ê³  합니다. \n"
+"계ì†í•œë‹¤ë©´, ìžê²©ì´ ê°–ì¶°ì§„ 새 ê³„ì •ì´ ì´ ì„œë²„ì— ìƒì„±ë©ë‹ˆë‹¤. \n"
+"비밀번호를 다시 입력하고 'ë“±ë¡ í•˜ê³  참여'를 누르거나 '취소'를 눌러 중단하십시"
+"오."
#: src/gui/guiFormSpecMenu.cpp
msgid "Proceed"
msgstr "계ì†í•˜ê¸°"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "\"Special\" = climb down"
-msgstr "\"Use\" = 내려가기"
+msgstr "\"특별함\" = 아래로 타고 내려가기"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Autoforward"
-msgstr "앞으로"
+msgstr "ìžë™ì „ì§„"
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Automatic jumping"
-msgstr ""
+msgstr "ìžë™ ì í”„"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Backward"
msgstr "뒤로"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Change camera"
-msgstr "키 변경"
+msgstr "ì¹´ë©”ë¼ ë³€ê²½"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Chat"
@@ -1861,9 +1824,8 @@ msgid "Console"
msgstr "콘솔"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Dec. range"
-msgstr "시야 범위"
+msgstr "범위 ê°ì†Œ"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Dec. volume"
@@ -1882,9 +1844,8 @@ msgid "Forward"
msgstr "앞으로"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Inc. range"
-msgstr "시야 범위"
+msgstr "범위 ì¦ê°€"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Inc. volume"
@@ -1908,9 +1869,8 @@ msgstr ""
"Keybindings. (ì´ ë©”ë‰´ë¥¼ 고정하려면 minetest.cofì—서 stuff를 제거해야합니다.)"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Local command"
-msgstr "채팅 명ë ì–´"
+msgstr "지역 명령어"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Mute"
@@ -1938,17 +1898,15 @@ msgstr "살금살금"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Special"
-msgstr ""
+msgstr "특별함"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Toggle HUD"
-msgstr "비행 스위치"
+msgstr "HUD 토글"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Toggle chat log"
-msgstr "ê³ ì† ìŠ¤ìœ„ì¹˜"
+msgstr "채팅 ê¸°ë¡ í† ê¸€"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fast"
@@ -1959,23 +1917,20 @@ msgid "Toggle fly"
msgstr "비행 스위치"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Toggle fog"
-msgstr "비행 스위치"
+msgstr "안개 토글"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Toggle minimap"
-msgstr "ìžìœ ì‹œì  스위치"
+msgstr "미니맵 토글"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle noclip"
msgstr "ìžìœ ì‹œì  스위치"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Toggle pitchmove"
-msgstr "ê³ ì† ìŠ¤ìœ„ì¹˜"
+msgstr "피치 ì´ë™ 토글"
#: src/gui/guiKeyChangeMenu.cpp
msgid "press key"
@@ -2002,7 +1957,6 @@ msgid "Exit"
msgstr "나가기"
#: src/gui/guiVolumeChange.cpp
-#, fuzzy
msgid "Muted"
msgstr "ìŒì†Œê±°"
@@ -2028,6 +1982,8 @@ msgid ""
"(Android) Fixes the position of virtual joystick.\n"
"If disabled, virtual joystick will center to first-touch's position."
msgstr ""
+"(Android) ê°€ìƒ ì¡°ì´ìŠ¤í‹±ì˜ ìœ„ì¹˜ë¥¼ 수정합니다.\n"
+"비활성화하면, ê°€ìƒ ì¡°ì´ìŠ¤í‹±ì´ ì²«ë²ˆì§¸ 터치 ìœ„ì¹˜ì˜ ì¤‘ì•™ì— ìœ„ì¹˜í•©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
msgid ""
@@ -2035,6 +1991,9 @@ msgid ""
"If enabled, virtual joystick will also tap \"aux\" button when out of main "
"circle."
msgstr ""
+"(Android) ê°€ìƒ ì¡°ì´ìŠ¤í‹±ì„ ì‚¬ìš©í•˜ì—¬ \"aux\"ë²„íŠ¼ì„ íŠ¸ë¦¬ê±°í•©ë‹ˆë‹¤.\n"
+"활성화 ëœ ê²½ìš° ê°€ìƒ ì¡°ì´ìŠ¤í‹±ì€ ë©”ì¸ ì„œí´ì—서 ë²—ì–´ë‚  때 \"aux\"ë²„íŠ¼ë„ íƒ­í•©ë‹ˆ"
+"다."
#: src/settings_translation_file.cpp
msgid ""
@@ -2047,6 +2006,15 @@ msgid ""
"situations.\n"
"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
msgstr ""
+"(X, Y, Z) '스케ì¼' 단위로 세계 ì¤‘ì‹¬ì„ ê¸°ì¤€ìœ¼ë¡œ 프랙탈 ì˜¤í”„ì…‹ì„ ì •í•©ë‹ˆë‹¤.\n"
+"ì›í•˜ëŠ” ì§€ì ì„ (0, 0)으로 ì´ë™í•˜ì—¬ ì í•©í•œ ìŠ¤í° ì§€ì ì„ 만들거나 \n"
+"'스케ì¼'ì„ ëŠ˜ë ¤ ì›í•˜ëŠ” ì§€ì ì—서 '확대'í•  수 있습니다.\n"
+"ê¸°ë³¸ê°’ì€ ê¸°ë³¸ 매개 변수가있는 Mandelbrot ì„¸íŠ¸ì— ì í•©í•œ ìŠ¤í° ì§€ì ì— 맞게 ì¡°ì •"
+"ë˜ì–´ 있으며 \n"
+"다른 ìƒí™©ì—서 변경해야 í•  ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. \n"
+"범위는 대략 -2 ~ 2입니다. \n"
+"ë…¸ë“œì˜ ì˜¤í”„ì…‹ì— ëŒ€í•´\n"
+"'스케ì¼'ì„ ê³±í•©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
msgid ""
@@ -2058,40 +2026,41 @@ msgid ""
"Default is for a vertically-squashed shape suitable for\n"
"an island, set all 3 numbers equal for the raw shape."
msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
+"노드ì—서 í”„ëž™íƒˆì˜ (X, Y, Z) 스케ì¼.\n"
+"실제 프랙탈 í¬ê¸°ëŠ” 2 ~ 3 ë°° ë” í½ë‹ˆë‹¤.\n"
+"ì´ ìˆ«ìžëŠ” 매우 í¬ê²Œ 만들 수 있으며 í”„ëž™íƒˆì€ ì„¸ê³„ì— ë§žì§€ 않아ë„ë©ë‹ˆë‹¤.\n"
+"í”„ëž™íƒˆì˜ ì„¸ë¶€ ì‚¬í•­ì„ '확대'하ë„ë¡ ëŠ˜ë¦¬ì‹­ì‹œì˜¤.\n"
+"ê¸°ë³¸ê°’ì€ ì„¬ì— ì í•©í•œ 수ì§ìœ¼ë¡œ 쪼개진 모양ì´ë©° \n"
+"기존 ëª¨ì–‘ì— ëŒ€í•´ 3 ê°œì˜ ìˆ«ìžë¥¼ \n"
+"ëª¨ë‘ ë™ì¼í•˜ê²Œ 설정합니다."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
-msgstr ""
+msgstr "ì‚°ì˜ ëª¨ì–‘ / í¬ê¸°ë¥¼ 제어하는 2D ë…¸ì´ì¦ˆ."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of rolling hills."
-msgstr ""
+msgstr "ì–¸ë•ì˜ ëª¨ì–‘ / í¬ê¸°ë¥¼ 제어하는 2D ë…¸ì´ì¦ˆ."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of step mountains."
-msgstr ""
+msgstr "계단 형태 ì‚°ì˜ ëª¨ì–‘ / í¬ê¸°ë¥¼ 제어하는 2D ë…¸ì´ì¦ˆ."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
-msgstr ""
+msgstr "능선 ì‚°ë§¥ì˜ í¬ê¸° / ë°œìƒì •ë„를 제어하는 2D ë…¸ì´ì¦ˆ."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the size/occurrence of rolling hills."
-msgstr ""
+msgstr "ì–¸ë•ì˜ í¬ê¸° / ë°œìƒì •ë„를 제어하는 2D ë…¸ì´ì¦ˆ."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the size/occurrence of step mountain ranges."
-msgstr ""
+msgstr "계단 í˜•íƒœì˜ ì‚°ë§¥ì˜ í¬ê¸° / ë°œìƒì •ë„를 제어하는 2D ë…¸ì´ì¦ˆ."
#: src/settings_translation_file.cpp
msgid "2D noise that locates the river valleys and channels."
-msgstr ""
+msgstr "ê°• 계곡과 채ë„ì— ìœ„ì¹˜í•œ 2D ë…¸ì´ì¦ˆ."
#: src/settings_translation_file.cpp
msgid "3D clouds"
@@ -2102,19 +2071,20 @@ msgid "3D mode"
msgstr "3D 모드"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "3D mode parallax strength"
-msgstr "Normalmaps ê°•ë„"
+msgstr "3D 모드 시차 ê°•ë„"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
-msgstr ""
+msgstr "거대한 ë™êµ´ì„ ì •ì˜í•˜ëŠ” 3D ë…¸ì´ì¦ˆ."
#: src/settings_translation_file.cpp
msgid ""
"3D noise defining mountain structure and height.\n"
"Also defines structure of floatland mountain terrain."
msgstr ""
+"ì‚°ì˜ êµ¬ì¡°ì™€ 높ì´ë¥¼ ì •ì˜í•˜ëŠ” 3D ë…¸ì´ì¦ˆ.\n"
+"ë˜í•œ ìˆ˜ìƒ ì§€í˜• ì‚°ì•… ì§€í˜•ì˜ êµ¬ì¡°ë¥¼ ì •ì˜í•©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
msgid ""
@@ -2123,25 +2093,30 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
+"í”Œë¡¯ëžœë“œì˜ êµ¬ì¡°ë¥¼ ì •ì˜í•˜ëŠ” 3D ë…¸ì´ì¦ˆ.\n"
+"기본값ì—서 변경하면 ë…¸ì´ì¦ˆ '스케ì¼'(기본값 0.7)ì´ í•„ìš”í•  수 있습니다.\n"
+"ì´ ì†ŒìŒì˜ ê°’ 범위가 약 -2.0 ~ 2.0 ì¼ ë•Œ 플로 트랜드 í…Œì´í¼ë§ì´ 가장 잘 ìž‘ë™í•˜"
+"므로 \n"
+"조정해야합니다."
#: src/settings_translation_file.cpp
msgid "3D noise defining structure of river canyon walls."
-msgstr ""
+msgstr "ê°• 협곡 ë²½ì˜ êµ¬ì¡°ë¥¼ ì •ì˜í•˜ëŠ” 3D ë…¸ì´ì¦ˆ."
#: src/settings_translation_file.cpp
msgid "3D noise defining terrain."
-msgstr ""
+msgstr "ì§€í˜•ì„ ì •ì˜í•˜ëŠ” 3D ë…¸ì´ì¦ˆ."
#: src/settings_translation_file.cpp
msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
msgstr ""
+"ì‚° ëŒì¶œë¶€, 절벽 ë“±ì— ëŒ€í•œ 3D ë…¸ì´ì¦ˆ. ì¼ë°˜ì ìœ¼ë¡œ ìž‘ì€ ë³€í™”ë¡œ 나타납니다."
#: src/settings_translation_file.cpp
msgid "3D noise that determines number of dungeons per mapchunk."
-msgstr ""
+msgstr "ë§µ 당 ë˜ì „ 수를 결정하는 3D ë…¸ì´ì¦ˆ."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"3D support.\n"
"Currently supported:\n"
@@ -2180,30 +2155,32 @@ msgid "A message to be displayed to all clients when the server shuts down."
msgstr "서버가 ë‹«íž ë•Œ 모든 사용ìžë“¤ì—게 표시 ë  ë©”ì‹œì§€ìž…ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "ABM interval"
-msgstr "맵 저장 간격"
+msgstr "ABM 간격"
#: src/settings_translation_file.cpp
-msgid "Absolute limit of queued blocks to emerge"
+msgid "ABM time budget"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Absolute limit of queued blocks to emerge"
+msgstr "ëŒ€ê¸°ì¤‘ì¸ ë¸”ë¡ì˜ 절대 한계"
+
+#: src/settings_translation_file.cpp
msgid "Acceleration in air"
msgstr "공중ì—서 ê°€ì†"
#: src/settings_translation_file.cpp
msgid "Acceleration of gravity, in nodes per second per second."
-msgstr ""
+msgstr "중력 ê°€ì†ë„, 노드는 초당 노드입니다."
#: src/settings_translation_file.cpp
msgid "Active Block Modifiers"
msgstr "ë¸”ë¡ ìˆ˜ì‹ì–´ 활성"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Active block management interval"
-msgstr "ë¸”ë¡ ê´€ë¦¬ 간격 활성"
+msgstr "ë¸”ë¡ ê´€ë¦¬ 간격 활성화"
#: src/settings_translation_file.cpp
msgid "Active block range"
@@ -2211,7 +2188,7 @@ msgstr "ë¸”ë¡ ë²”ìœ„ 활성"
#: src/settings_translation_file.cpp
msgid "Active object send range"
-msgstr ""
+msgstr "ê°ì²´ 전달 범위 활성화"
#: src/settings_translation_file.cpp
msgid ""
@@ -2219,17 +2196,20 @@ msgid ""
"Leave this blank to start a local server.\n"
"Note that the address field in the main menu overrides this setting."
msgstr ""
+"연결할 주소입니다.\n"
+"로컬 서버를 시작하려면 공백으로 ë‘십시오.\n"
+"주 ë©”ë‰´ì˜ ì£¼ì†Œ ê³µê°„ì€ ì´ ì„¤ì •ì— ì¤‘ë³µë©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Adds particles when digging a node."
-msgstr "node를 부술 ë•Œì˜ íŒŒí‹°í´ íš¨ê³¼ë¥¼ 추가합니다"
+msgstr "node를 부술 ë•Œì˜ íŒŒí‹°í´ íš¨ê³¼ë¥¼ 추가합니다."
#: src/settings_translation_file.cpp
msgid ""
"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
"screens."
msgstr ""
+"í™”ë©´ì— ë§žê²Œ dpi êµ¬ì„±ì„ ì¡°ì •í•©ë‹ˆë‹¤ (X11 ë¯¸ì§€ì› / Android ë§Œ 해당). 4k 화면 ìš©."
#: src/settings_translation_file.cpp
#, c-format
@@ -2240,6 +2220,11 @@ msgid ""
"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
"to be sure) creates a solid floatland layer."
msgstr ""
+"플롯랜드 ë ˆì´ì–´ì˜ ë°€ë„를 조정합니다.\n"
+"ë°€ë„를 높ì´ë ¤ë©´ ê°’ì„ ëŠ˜ë¦¬ì‹­ì‹œì˜¤. 양수 ë˜ëŠ” ìŒìˆ˜ìž…니다.\n"
+"ê°’ = 0.0 : ë¶€í”¼ì˜ 50 % oê°€ 플롯랜드입니다.\n"
+"ê°’ = 2.0 ( 'mgv7_np_floatland'ì— ë”°ë¼ ë” ë†’ì„ ìˆ˜ 있ìŒ, \n"
+"í•­ìƒ í™•ì‹¤í•˜ê²Œ 테스트 후 사용)는 단단한 플롯랜드 ë ˆì´ì–´ë¥¼ 만듭니다."
#: src/settings_translation_file.cpp
msgid "Advanced"
@@ -2253,59 +2238,63 @@ msgid ""
"This only has significant effect on daylight and artificial\n"
"light, it has very little effect on natural night light."
msgstr ""
+"'ê°ë§ˆ ë³´ì •'ì„ ì ìš©í•˜ì—¬ 조명 ê³¡ì„ ì„ ë³€ê²½í•©ë‹ˆë‹¤.\n"
+"ê°’ì´ ë†’ì„ìˆ˜ë¡ ì¤‘ê°„ ë° ë‚®ì€ ì¡°ëª… ìˆ˜ì¤€ì´ ë” ë°ì•„집니다.\n"
+"ê°’ '1.0'ì€ ì¡°ëª… ê³¡ì„ ì„ ë³€ê²½í•˜ì§€ 않습니다.\n"
+"ì´ê²ƒì€ ì¼ê´‘ ë° ì¸ê³µ 조명ì—ë§Œ 중요한 ì˜í–¥ì„ 미칩니다.\n"
+"ë¹›ì€, ìžì—°ì ì¸ 야간 ì¡°ëª…ì— ê±°ì˜ ì˜í–¥ì„ 미치지 않습니다."
#: src/settings_translation_file.cpp
msgid "Always fly and fast"
-msgstr "í•­ìƒ ë¹„í–‰í•˜ê³  빠르게"
+msgstr "í•­ìƒ ë¹„í–‰ ë° ê³ ì† ëª¨ë“œ"
#: src/settings_translation_file.cpp
msgid "Ambient occlusion gamma"
-msgstr ""
+msgstr "주변 occlusion ê°ë§ˆ"
#: src/settings_translation_file.cpp
msgid "Amount of messages a player may send per 10 seconds."
-msgstr ""
+msgstr "플레ì´ì–´ê°€ 10 초당 보낼 수있는 ë©”ì‹œì§€ì˜ ì–‘."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Amplifies the valleys."
-msgstr "계곡 ì¦í­"
+msgstr "계곡 ì¦í­."
#: src/settings_translation_file.cpp
msgid "Anisotropic filtering"
msgstr "ì´ë°©ì„± í•„í„°ë§"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Announce server"
-msgstr "서버 발표"
+msgstr "서버 공지"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Announce to this serverlist."
-msgstr "서버 발표"
+msgstr "ì´ ì„œë²„ 목ë¡ì— 알림."
#: src/settings_translation_file.cpp
msgid "Append item name"
-msgstr ""
+msgstr "ì•„ì´í…œ ì´ë¦„ 추가"
#: src/settings_translation_file.cpp
msgid "Append item name to tooltip."
-msgstr ""
+msgstr "툴íŒì— ì•„ì´í…œ ì´ë¦„ 추가."
#: src/settings_translation_file.cpp
msgid "Apple trees noise"
-msgstr ""
+msgstr "사과 나무 ë…¸ì´ì¦ˆ"
#: src/settings_translation_file.cpp
msgid "Arm inertia"
-msgstr ""
+msgstr "팔 관성"
#: src/settings_translation_file.cpp
msgid ""
"Arm inertia, gives a more realistic movement of\n"
"the arm when the camera moves."
msgstr ""
+"팔 관성,보다 현실ì ì¸ 움ì§ìž„ì„ ì œê³µí•©ë‹ˆë‹¤.\n"
+"ì¹´ë©”ë¼ê°€ 움ì§ì¼ 때 íŒ”ë„ í•¨ê»˜ 움ì§ìž…니다."
#: src/settings_translation_file.cpp
msgid "Ask to reconnect after crash"
@@ -2325,19 +2314,26 @@ msgid ""
"optimization.\n"
"Stated in mapblocks (16 nodes)."
msgstr ""
+"ì´ ê±°ë¦¬ì—서 서버는 í´ë¼ì´ì–¸íŠ¸ë¡œ 전송ë˜ëŠ” 블ë¡ì˜ 최ì í™”를\n"
+"활성화합니다.\n"
+"ìž‘ì€ ê°’ì€ ëˆˆì— ë„는 ë Œë”ë§ ê²°í•¨ì„ í†µí•´ \n"
+"잠재ì ìœ¼ë¡œ ì„±ëŠ¥ì„ í¬ê²Œ í–¥ìƒì‹œí‚µë‹ˆë‹¤ \n"
+"(ì¼ë¶€ 블ë¡ì€ 수중과 ë™êµ´, 때로는 육지ì—ì„œë„ ë Œë”ë§ë˜ì§€ 않습니다).\n"
+"ì´ ê°’ì„ max_block_send_distance보다 í° ê°’ìœ¼ë¡œ 설정하면 \n"
+"최ì í™”ê°€ 비활성화ë©ë‹ˆë‹¤.\n"
+"ë§µ ë¸”ë¡ (16 ê°œ 노드)ì— ëª…ì‹œë˜ì–´ 있습니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Automatic forward key"
-msgstr "앞으로 가는 키"
+msgstr "ìžë™ ì „ì§„ 키"
#: src/settings_translation_file.cpp
msgid "Automatically jump up single-node obstacles."
-msgstr ""
+msgstr "ë‹¨ì¼ ë…¸ë“œ ìž¥ì• ë¬¼ì— ëŒ€í•œ ìžë™ ì í”„."
#: src/settings_translation_file.cpp
msgid "Automatically report to the serverlist."
-msgstr ""
+msgstr "서버 목ë¡ì— ìžë™ìœ¼ë¡œ ë³´ê³ ."
#: src/settings_translation_file.cpp
msgid "Autosave screen size"
@@ -2345,38 +2341,35 @@ msgstr "스í¬ë¦° í¬ê¸° ìžë™ 저장"
#: src/settings_translation_file.cpp
msgid "Autoscaling mode"
-msgstr ""
+msgstr "ìžë™ 스케ì¼ë§ 모드"
#: src/settings_translation_file.cpp
msgid "Backward key"
msgstr "뒤로 ì´ë™í•˜ëŠ” 키"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Base ground level"
-msgstr "ë¬¼ì˜ ë†’ì´"
+msgstr "기본 지면 수준"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Base terrain height."
-msgstr "기본 지형 높ì´"
+msgstr "기본 지형 높ì´."
#: src/settings_translation_file.cpp
msgid "Basic"
msgstr "기본"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Basic privileges"
msgstr "기본 권한"
#: src/settings_translation_file.cpp
msgid "Beach noise"
-msgstr ""
+msgstr "í•´ë³€ ìž¡ìŒ"
#: src/settings_translation_file.cpp
msgid "Beach noise threshold"
-msgstr ""
+msgstr "í•´ë³€ ìž¡ìŒ ìž„ê³„ì¹˜"
#: src/settings_translation_file.cpp
msgid "Bilinear filtering"
@@ -2388,61 +2381,56 @@ msgstr "ë°”ì¸ë”© 주소"
#: src/settings_translation_file.cpp
msgid "Biome API temperature and humidity noise parameters"
-msgstr ""
+msgstr "Biome API ì˜¨ë„ ë° ìŠµë„ ì†ŒìŒ ë§¤ê°œ 변수"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Biome noise"
-msgstr "강 소리"
+msgstr "Biome ë…¸ì´ì¦ˆ"
#: src/settings_translation_file.cpp
msgid "Bits per pixel (aka color depth) in fullscreen mode."
msgstr "ì „ì²´ 화면 모드ì—서 (ì¼ëª… 색 ë†ë„) 픽셀 당 비트."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Block send optimize distance"
-msgstr "최대 ë¸”ë¡ ì „ì†¡ 거리"
+msgstr "ë¸”ë¡ ì „ì†¡ 최ì í™” 거리"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Bold and italic font path"
-msgstr "ê³ ì • í­ ê¸€ê¼´ 경로"
+msgstr "êµµì€ ê¸°ìš¸ìž„ ê¼´ 글꼴 경로"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Bold and italic monospace font path"
-msgstr "ê³ ì • í­ ê¸€ê¼´ 경로"
+msgstr "êµµì€ ê¸°ìš¸ìž„ ê¼´ ê³ ì • í­ ê¸€ê¼´ 경로"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Bold font path"
-msgstr "글꼴 경로"
+msgstr "êµµì€ ê¸€ê¼´ 경로"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Bold monospace font path"
-msgstr "ê³ ì • í­ ê¸€ê¼´ 경로"
+msgstr "êµµì€ ê³ ì • í­ ê¸€ê¼´ 경로"
#: src/settings_translation_file.cpp
msgid "Build inside player"
-msgstr ""
+msgstr "ë‚´ë¶€ ì‚¬ìš©ìž ë¹Œë“œ"
#: src/settings_translation_file.cpp
msgid "Builtin"
msgstr "기본 제공"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "범프맵핑"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
"Increasing can reduce artifacting on weaker GPUs.\n"
"0.1 = Default, 0.25 = Good value for weaker tablets."
msgstr ""
+"0ì—서 0.25 사ì´ì˜ 노드ì—서 ì¹´ë©”ë¼ 'ê¹Žì¸ í‰ë©´ 근처'거리는 GLES 플랫í¼ì—서만 ìž‘"
+"ë™í•©ë‹ˆë‹¤. \n"
+"ëŒ€ë¶€ë¶„ì˜ ì‚¬ìš©ìžëŠ” ì´ê²ƒì„ 변경할 필요가 없습니다.\n"
+"ê°’ì´ ì¦ê°€í•˜ë©´ 약한 GPUì—서 아티팩트를 ì¤„ì¼ ìˆ˜ 있습니다. \n"
+"0.1 = 기본값, 0.25 = 약한 íƒœë¸”ë¦¿ì— ì í•©í•œ ê°’."
#: src/settings_translation_file.cpp
msgid "Camera smoothing"
@@ -2457,9 +2445,8 @@ msgid "Camera update toggle key"
msgstr "ì¹´ë©”ë¼ ì—…ë°ì´íЏ 토글 키"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Cave noise"
-msgstr "ë™êµ´ ìž¡ìŒ #1"
+msgstr "ë™êµ´ ìž¡ìŒ"
#: src/settings_translation_file.cpp
msgid "Cave noise #1"
@@ -2474,85 +2461,68 @@ msgid "Cave width"
msgstr "ë™êµ´ 너비"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Cave1 noise"
-msgstr "ë™êµ´ ìž¡ìŒ #1"
+msgstr "ë™êµ´1 ìž¡ìŒ"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Cave2 noise"
-msgstr "ë™êµ´ ìž¡ìŒ #1"
+msgstr "ë™êµ´2 ìž¡ìŒ"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Cavern limit"
-msgstr "ë™êµ´ 너비"
+msgstr "ë™êµ´ 제한"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Cavern noise"
-msgstr "ë™êµ´ ìž¡ìŒ #1"
+msgstr "ë™êµ´ ìž¡ìŒ"
#: src/settings_translation_file.cpp
msgid "Cavern taper"
-msgstr ""
+msgstr "ë™êµ´ í…Œì´í¼"
#: src/settings_translation_file.cpp
msgid "Cavern threshold"
-msgstr ""
+msgstr "ë™êµ´ 임계치"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Cavern upper limit"
-msgstr "ë™êµ´ 너비"
+msgstr "ë™êµ´ ìƒí•œì„ "
#: src/settings_translation_file.cpp
msgid ""
"Center of light curve boost range.\n"
"Where 0.0 is minimum light level, 1.0 is maximum light level."
msgstr ""
+"빛 굴절 중심 범위 .\n"
+"0.0ì€ ìµœì†Œ 조명 수준ì´ê³  1.0ì€ ìµœëŒ€ 조명 수준입니다."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat font size"
-msgstr "글꼴 í¬ê¸°"
+msgstr "채팅 ê¸€ìž í¬ê¸°"
#: src/settings_translation_file.cpp
msgid "Chat key"
msgstr "채팅"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat log level"
-msgstr "디버그 로그 수준"
+msgstr "채팅 ê¸°ë¡ ìˆ˜ì¤€"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat message count limit"
-msgstr "ì ‘ì† ì‹œ status메시지"
+msgstr "채팅 메세지 수 제한"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat message format"
-msgstr "ì ‘ì† ì‹œ status메시지"
+msgstr "채팅 메세지 í¬ë§·"
#: src/settings_translation_file.cpp
msgid "Chat message kick threshold"
-msgstr ""
+msgstr "채팅 메세지 강제퇴장 임계값"
#: src/settings_translation_file.cpp
msgid "Chat message max length"
-msgstr ""
+msgstr "채팅 메세지 최대 길ì´"
#: src/settings_translation_file.cpp
msgid "Chat toggle key"
@@ -2575,7 +2545,6 @@ msgid "Cinematic mode key"
msgstr "시네마틱 모드 스위치"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Clean transparent textures"
msgstr "깨ë—하고 투명한 í…스처"
@@ -2592,13 +2561,12 @@ msgid "Client modding"
msgstr "í´ë¼ì´ì–¸íЏ 모딩"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Client side modding restrictions"
-msgstr "í´ë¼ì´ì–¸íЏ 모딩"
+msgstr "í´ë¼ì´ì–¸íЏ 측 모딩 제한"
#: src/settings_translation_file.cpp
msgid "Client side node lookup range restriction"
-msgstr ""
+msgstr "í´ë¼ì´ì–¸íЏ 측 노드 조회 범위 제한"
#: src/settings_translation_file.cpp
msgid "Climbing speed"
@@ -2634,14 +2602,20 @@ msgid ""
"These flags are independent from Minetest versions,\n"
"so see a full list at https://content.minetest.net/help/content_flags/"
msgstr ""
+"컨í…츠 저장소ì—서 쉼표로 êµ¬ë¶„ëœ ìˆ¨ê²¨ì§„ 플래그 목ë¡ìž…니다.\n"
+"\"nonfree\"는 Free Software Foundationì—서 ì •ì˜í•œëŒ€ë¡œ 'ìžìœ  소프트웨어'로 ë¶„"
+"류ë˜ì§€ 않는 패키지를 숨기는 ë° ì‚¬ìš©í•  수 있습니다,\n"
+"콘í…츠 ë“±ê¸‰ì„ ì§€ì •í•  ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.\n"
+"ì´ í”Œëž˜ê·¸ëŠ” Minetest 버전과 ë…립ì ì´ë¯€ë¡œ. \n"
+"https://content.minetest.net/help/content_flags/ì—서,\n"
+"ì „ì²´ 목ë¡ì„ 참조하십시오."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
"allow them to upload and download data to/from the internet."
msgstr ""
-"쉼표로 êµ¬ë¶„ëœ ëª¨ë“œì˜ ë¦¬ìŠ¤íŠ¸ëŠ” HTTP APIì— ì ‘ê·¼ í•  수 있습니다.\n"
+"쉼표로 êµ¬ë¶„ëœ ëª¨ë“œì˜ ë¦¬ìŠ¤íŠ¸ëŠ” HTTP APIì— ì ‘ê·¼ í•  수 있습니다,\n"
"ì¸í„°ë„·ì—서 ë°ì´í„°ë¥¼ 다운로드 하거나 업로드 í•  수 있습니다."
#: src/settings_translation_file.cpp
@@ -2649,6 +2623,9 @@ msgid ""
"Comma-separated list of trusted mods that are allowed to access insecure\n"
"functions even when mod security is on (via request_insecure_environment())."
msgstr ""
+"mod ë³´ì•ˆì´ ì¼œì ¸ìžˆëŠ” 경우ì—ë„ ì•ˆì „í•˜ì§€ ì•Šì€ ê¸°ëŠ¥ì— ì•¡ì„¸ìŠ¤ í•  수있는 쉼표로 구"
+"ë¶„ ëœ ì‹ ë¢° í•  수 있는 ëª¨ë“œì˜ ëª©ë¡ìž…니다\n"
+"(request_insecure_environment ()를 통해)."
#: src/settings_translation_file.cpp
msgid "Command key"
@@ -2664,7 +2641,7 @@ msgstr "외부 미디어 ì„œë²„ì— ì—°ê²°"
#: src/settings_translation_file.cpp
msgid "Connects glass if supported by node."
-msgstr ""
+msgstr "노드ì—서 ì§€ì›í•˜ëŠ” 경우 유리를 연결합니다."
#: src/settings_translation_file.cpp
msgid "Console alpha"
@@ -2680,40 +2657,45 @@ msgstr "콘솔 높ì´"
#: src/settings_translation_file.cpp
msgid "ContentDB Flag Blacklist"
+msgstr "콘í…츠DB 블랙리스트 플래그"
+
+#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "ContentDB URL"
-msgstr "계ì†"
+msgstr "ContentDB URL주소"
#: src/settings_translation_file.cpp
msgid "Continuous forward"
-msgstr ""
+msgstr "ì—°ì† ì „ì§„"
#: src/settings_translation_file.cpp
msgid ""
"Continuous forward movement, toggled by autoforward key.\n"
"Press the autoforward key again or the backwards movement to disable."
msgstr ""
+"ì—°ì† ì „ì§„ ì´ë™, ìžë™ ì „ì§„ 키로 전환.\n"
+"비활성화하려면 ìžë™ 앞으로 ì´ë™ 키를 다시 누르거나 뒤로 ì´ë™í•©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
msgid "Controls"
msgstr "컨트롤"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Controls length of day/night cycle.\n"
"Examples:\n"
"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged."
msgstr ""
"ë‚®/ë°¤ ì£¼ê¸°ì˜ ê¸¸ì´ë¥¼ 컨트롤.\n"
-"예: 72 = 20 분, 360 = 4 분, 1 = 24 시간, 0 = 낮/밤/바뀌지 않고 그대로."
+"예: \n"
+"72 = 20 분, 360 = 4 분, 1 = 24 시간, 0 = 낮/밤/바뀌지 않고 그대로."
#: src/settings_translation_file.cpp
msgid "Controls sinking speed in liquid."
-msgstr ""
+msgstr "ì•¡ì²´ì˜ í•˜ê°• ì†ë„ 제어."
#: src/settings_translation_file.cpp
msgid "Controls steepness/depth of lake depressions."
@@ -2729,6 +2711,9 @@ msgid ""
"Value >= 10.0 completely disables generation of tunnels and avoids the\n"
"intensive noise calculations."
msgstr ""
+"í„°ë„ ë„ˆë¹„ë¥¼ 제어하고 ê°’ì´ ìž‘ì„ìˆ˜ë¡ ë” ë„“ì€ í„°ë„ì´ ìƒì„±ë©ë‹ˆë‹¤.\n"
+"ê°’> = 10.0ì€ í„°ë„ ìƒì„±ì„ 완전히 비활성화하고 집중ì ì¸ ë…¸ì´ì¦ˆ ê³„ì‚°ì„ \n"
+"방지합니다."
#: src/settings_translation_file.cpp
msgid "Crash message"
@@ -2743,7 +2728,10 @@ msgid "Crosshair alpha"
msgstr "ì‹­ìžì„  투명ë„"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "ì‹­ìžì„  íˆ¬ëª…ë„ (불투명 함, 0ê³¼ 255 사ì´)."
#: src/settings_translation_file.cpp
@@ -2751,8 +2739,10 @@ msgid "Crosshair color"
msgstr "ì‹­ìžì„  색"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "ì‹­ìžì„  색 (빨, ì´ˆ, 파)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2767,9 +2757,8 @@ msgid "Debug info toggle key"
msgstr "디버그 정보 토글 키"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Debug log file size threshold"
-msgstr "디버그 로그 수준"
+msgstr "디버그 로그 íŒŒì¼ í¬ê¸° 임계치"
#: src/settings_translation_file.cpp
msgid "Debug log level"
@@ -2781,11 +2770,11 @@ msgstr "볼륨 낮추기 키"
#: src/settings_translation_file.cpp
msgid "Decrease this to increase liquid resistance to movement."
-msgstr ""
+msgstr "움ì§ìž„ì— ëŒ€í•œ ì•¡ì²´ ì €í•­ì„ ë†’ì´ë ¤ë©´ ì´ ê°’ì„ ì¤„ìž…ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
msgid "Dedicated server step"
-msgstr ""
+msgstr "전용 서버 단계"
#: src/settings_translation_file.cpp
msgid "Default acceleration"
@@ -2796,7 +2785,6 @@ msgid "Default game"
msgstr "기본 게임"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Default game when creating a new world.\n"
"This will be overridden when creating a world from the main menu."
@@ -2817,31 +2805,32 @@ msgid "Default report format"
msgstr "기본 보고서 형ì‹"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Default stack size"
-msgstr "기본 게임"
+msgstr "기본 ìŠ¤íƒ í¬ê¸°"
#: src/settings_translation_file.cpp
msgid ""
"Default timeout for cURL, stated in milliseconds.\n"
"Only has an effect if compiled with cURL."
msgstr ""
+"cURLì— ëŒ€í•œ 기본 제한 시간 (밀리 ì´ˆ 단위).\n"
+"cURL로 ì»´íŒŒì¼ ëœ ê²½ìš°ì—ë§Œ 효과가 있습니다."
#: src/settings_translation_file.cpp
msgid "Defines areas where trees have apples."
-msgstr ""
+msgstr "ë‚˜ë¬´ì— ì‚¬ê³¼ê°€ 있는 ì˜ì—­ ì •ì˜."
#: src/settings_translation_file.cpp
msgid "Defines areas with sandy beaches."
-msgstr ""
+msgstr "모래 í•´ë³€ì´ ìžˆëŠ” ì§€ì—­ì„ ì •ì˜í•©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
msgid "Defines distribution of higher terrain and steepness of cliffs."
-msgstr ""
+msgstr "ë†’ì€ ì§€í˜•ì˜ ë¶„í¬ì™€ ì ˆë²½ì˜ ê°€íŒŒë¥¸ ì •ë„를 ì •ì˜í•©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
msgid "Defines distribution of higher terrain."
-msgstr ""
+msgstr "ë” ë†’ì€ ì§€í˜•ì˜ ë¶„í¬ë¥¼ ì •ì˜í•©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
msgid "Defines full size of caverns, smaller values create larger caverns."
@@ -2856,15 +2845,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"í…ìŠ¤ì²˜ì˜ ìƒ˜í”Œë§ ë‹¨ê³„ë¥¼ ì •ì˜í•©ë‹ˆë‹¤.\n"
-"ì¼ë°˜ ë§µì— ë¶€ë“œëŸ½ê²Œ ë†’ì€ ê°’ì„ ë‚˜íƒ€ëƒ…ë‹ˆë‹¤."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2873,7 +2853,6 @@ msgid "Defines the depth of the river channel."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
msgstr "블ë¡ì— 최대 플레ì´ì–´ 전송 거리를 ì •ì˜ í•©ë‹ˆë‹¤ (0 = 무제한)."
@@ -2900,7 +2879,6 @@ msgid "Delay in sending blocks after building"
msgstr "ê±´ì¶• 후 ë¸”ë¡ ì „ì†¡ 지연"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Delay showing tooltips, stated in milliseconds."
msgstr "ë„구 설명 표시 지연, 1000ë¶„ì˜ 1ì´ˆ."
@@ -2909,12 +2887,10 @@ msgid "Deprecated Lua API handling"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Depth below which you'll find giant caverns."
msgstr "í° ë™êµ´ì„ 발견할 수 있는 깊ì´."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Depth below which you'll find large caves."
msgstr "í° ë™êµ´ì„ 발견할 수 있는 깊ì´."
@@ -2940,6 +2916,10 @@ msgstr "ë¸”ë¡ ì• ë‹ˆë©”ì´ì…˜ 비ë™ê¸°í™”"
#: src/settings_translation_file.cpp
#, fuzzy
+msgid "Dig key"
+msgstr "오른쪽 키"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "ìž…ìž íš¨ê³¼"
@@ -2968,7 +2948,6 @@ msgid "Drop item key"
msgstr "ì•„ì´í…œ ë“œëž í‚¤"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Dump the mapgen debug information."
msgstr "Mapgen 디버그 정보를 ë¤í”„ 합니다."
@@ -2981,9 +2960,8 @@ msgid "Dungeon minimum Y"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Dungeon noise"
-msgstr "강 소리"
+msgstr "ë˜ì „ ìž¡ìŒ"
#: src/settings_translation_file.cpp
msgid ""
@@ -3002,18 +2980,17 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "새로 만든 ë§µì—서 creative모드를 활성화시킵니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Enable joysticks"
-msgstr "ì¡°ì´ìŠ¤í‹± ì ìš©"
+msgstr "ì¡°ì´ìŠ¤í‹± 활성화"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Enable mod channels support."
-msgstr "모드 보안 ì ìš©"
+msgstr "모드 ì±„ë„ ì§€ì› í™œì„±í™”."
#: src/settings_translation_file.cpp
msgid "Enable mod security"
@@ -3052,7 +3029,8 @@ msgid ""
"expecting."
msgstr ""
"ì˜¤ëž˜ëœ í´ë¼ì´ì–¸íЏ ì—°ê²°ì„ í—ˆë½í•˜ì§€ ì•ŠëŠ”ê²ƒì„ ì‚¬ìš©.\n"
-"ì´ì „ í´ë¼ì´ì–¸íŠ¸ëŠ” 서버ì—서 ë‹¹ì‹ ì´ ê¸°ëŒ€í•˜ëŠ” 새로운 íŠ¹ì§•ë“¤ì„ ì§€ì›í•˜ì§€ 않는다면 "
+"ì´ì „ í´ë¼ì´ì–¸íŠ¸ëŠ” 서버ì—서 ë‹¹ì‹ ì´ ê¸°ëŒ€í•˜ëŠ” 새로운 íŠ¹ì§•ë“¤ì„ ì§€ì›í•˜ì§€ 않는다"
+"ë©´ \n"
"새로운 서버로 ì—°ê²°í•  때 ì¶©ëŒí•˜ì§€ ì•Šì„ ê²ƒìž…ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
@@ -3062,9 +3040,9 @@ msgid ""
"textures)\n"
"when connecting to the server."
msgstr ""
-"(만약 서버ì—서 제공한다면)ì›ê²© 미디어 서버 사용 가능.\n"
-"ì›ê²© ì„œë²„ë“¤ì€ ì„œë²„ì— ì—°ê²°í•  때 매우 빠르게 미디어를 다운로드 í•  수 있ë„ë¡ ì œ"
-"공합니다.(예: í…스처)"
+"ì›ê²© 미디어 서버 사용 가능(만약 서버ì—서 제공한다면).\n"
+"ì›ê²© ì„œë²„ë“¤ì€ ì„œë²„ì— ì—°ê²°í•  때 매우 빠르게 미디어를\n"
+"다운로드 í•  수 있ë„ë¡ ì œê³µí•©ë‹ˆë‹¤.(예: í…스처)"
#: src/settings_translation_file.cpp
msgid ""
@@ -3081,14 +3059,13 @@ msgstr ""
"예 : 0ì€ í™”ë©´ í”들림 ì—†ìŒ; 1.0ì€ ë…¸ë©€; 2.0ì€ ë”블."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Enable/disable running an IPv6 server.\n"
"Ignored if bind_address is set.\n"
"Needs enable_ipv6 to be enabled."
msgstr ""
-"IPv6 서버를 실행 활성화/비활성화. IPv6 서버는 IPv6 í´ë¼ì´ì–¸íЏ 시스템 êµ¬ì„±ì— "
-"ë”°ë¼ ì œí•œ ë  ìˆ˜ 있습니다.\n"
+"IPv6 서버를 실행 활성화/비활성화.\n"
+"IPv6 서버는 IPv6 í´ë¼ì´ì–¸íЏ 시스템 êµ¬ì„±ì— ë”°ë¼ ì œí•œ ë  ìˆ˜ 있습니다.\n"
"만약 Bind_addressê°€ 설정 ëœ ê²½ìš° 무시 ë©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
@@ -3104,17 +3081,6 @@ msgid "Enables animation of inventory items."
msgstr "ì¸ë²¤í† ë¦¬ ì•„ì´í…œì˜ 애니메ì´ì…˜ ì ìš©."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"í…ìŠ¤ì²˜ì— bumpmappingì„ í•  수 있습니다. Normalmaps는 í…ìŠ¤ì³ íŒ©ì—서 받거나 ìž"
-"ë™ ìƒì„±ë  필요가 있습니다.\n"
-"ì‰ì´ë”를 활성화 해야 합니다."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -3123,23 +3089,6 @@ msgid "Enables minimap."
msgstr "미니맵 ì ìš©."
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"비행 노멀맵 ìƒì„± ì ìš© (엠보스 효과).\n"
-"Bumpmapping를 활성화 해야 합니다."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"시차 êµí•© 맵핑 ì ìš©.\n"
-"ì‰ì´ë”를 활성화 해야 합니다."
-
-#: src/settings_translation_file.cpp
msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
@@ -3157,12 +3106,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3172,8 +3115,9 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "ì¼ì‹œì •ì§€ 메뉴ì—서 FPS"
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "ê²Œìž„ì´ ì¼ì‹œì •ì§€ë ë•Œì˜ 최대 FPS."
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3184,14 +3128,12 @@ msgid "Factor noise"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Fall bobbing factor"
msgstr "낙하 í”들림"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Fallback font path"
-msgstr "yes"
+msgstr "대체 글꼴 경로"
#: src/settings_translation_file.cpp
msgid "Fallback font shadow"
@@ -3222,13 +3164,12 @@ msgid "Fast movement"
msgstr "빠른 ì´ë™"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Fast movement (via the \"special\" key).\n"
"This requires the \"fast\" privilege on the server."
msgstr ""
-"빠른 ì´ë™('use'키 사용).\n"
-"서버ì—서는 \"fast\"ê¶Œí•œì´ ìš”êµ¬ë©ë‹ˆë‹¤."
+"빠른 ì´ë™ ( \"특수\"키 사용).\n"
+"ì´ë¥¼ 위해서는 ì„œë²„ì— ëŒ€í•œ \"빠른\"ê¶Œí•œì´ í•„ìš”í•©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
msgid "Field of view"
@@ -3239,15 +3180,15 @@ msgid "Field of view in degrees."
msgstr "ê°ë„ì— ëŒ€í•œ 시야."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"File in client/serverlist/ that contains your favorite servers displayed in "
"the\n"
"Multiplayer Tab."
-msgstr "í´ë¼ì´ì–¸íЏ/서버리스트/멀티플레ì´ì–´ 탭ì—서 ë‹¹ì‹ ì´ ê°€ìž¥ 좋아하는 서버"
+msgstr ""
+"멀티 플레ì´ì–´ íƒ­ì— í‘œì‹œë˜ëŠ” ì¦ê²¨ 찾는 서버가 í¬í•¨ ëœ \n"
+"client / serverlist /ì˜ íŒŒì¼ìž…니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Filler depth"
msgstr "ê°• 깊ì´"
@@ -3288,39 +3229,32 @@ msgid "Fixed virtual joystick"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland density"
-msgstr "Floatlandì˜ ì‚° 밀집ë„"
+msgstr "Floatlandì˜ ë°€ì§‘ë„"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland maximum Y"
-msgstr "Floatlandì˜ ì‚° 높ì´"
+msgstr "Floatlandì˜ Y 최대값"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland minimum Y"
-msgstr "Floatlandì˜ ì‚° 높ì´"
+msgstr "Floatlandì˜ Y 최소값"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland noise"
-msgstr "Floatlandì˜ ë†’ì´"
+msgstr "Floatland ë…¸ì´ì¦ˆ"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland taper exponent"
-msgstr "Floatlandì˜ ì‚° 밀집ë„"
+msgstr "Floatlandì˜ í…Œì´í¼ 지수"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland tapering distance"
-msgstr "Floatlandì˜ ì‚° 밀집ë„"
+msgstr "Floatlandì˜ í…Œì´í¼ë§ 거리"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland water level"
-msgstr "Floatlandì˜ ë†’ì´"
+msgstr "Floatlandì˜ ë¬¼ 높ì´"
#: src/settings_translation_file.cpp
msgid "Fly key"
@@ -3408,22 +3342,18 @@ msgid "Formspec Full-Screen Background Opacity"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Formspec default background color (R,G,B)."
-msgstr "게임 ë‚´ì—서 채팅 콘솔 ë°°ê²½ ìƒ‰ìƒ (빨,ì´ˆ,파)."
+msgstr "게임 ë‚´ì—서 채팅 콘솔 ë°°ê²½ ìƒ‰ìƒ (빨강, ì´ˆë¡, 파랑)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Formspec default background opacity (between 0 and 255)."
msgstr "게임 ë‚´ì—서 채팅 콘솔 ë°°ê²½ 알파 (불투명 함, 0와 255 사ì´)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Formspec full-screen background color (R,G,B)."
-msgstr "게임 ë‚´ì—서 채팅 콘솔 ë°°ê²½ ìƒ‰ìƒ (빨,ì´ˆ,파)."
+msgstr "게임 ë‚´ì—서 채팅 콘솔 ë°°ê²½ ìƒ‰ìƒ (빨강, ì´ˆë¡, 파랑)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Formspec full-screen background opacity (between 0 and 255)."
msgstr "게임 ë‚´ì—서 채팅 콘솔 ë°°ê²½ 알파 (불투명 함, 0와 255 사ì´)."
@@ -3444,7 +3374,6 @@ msgid "Fraction of the visible distance at which fog starts to be rendered"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "FreeType fonts"
msgstr "Freetype 글꼴"
@@ -3493,10 +3422,6 @@ msgid "GUI scaling filter txr2img"
msgstr "GUI í¬ê¸° ì¡°ì • í•„í„° txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Normalmaps ìƒì„±"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "글로벌 콜백"
@@ -3528,17 +3453,14 @@ msgid "Gravity"
msgstr "중력"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Ground level"
-msgstr "ë¬¼ì˜ ë†’ì´"
+msgstr "지면 수준"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Ground noise"
-msgstr "ë¬¼ì˜ ë†’ì´"
+msgstr "지면 ë…¸ì´ì¦ˆ"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "HTTP mods"
msgstr "HTTP 모드"
@@ -3553,8 +3475,8 @@ msgstr "HUD 토글 키"
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3572,18 +3494,16 @@ msgid "Heat blend noise"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Heat noise"
-msgstr "ë™êµ´ ìž¡ìŒ #1"
+msgstr "용암 ìž¡ìŒ"
#: src/settings_translation_file.cpp
msgid "Height component of the initial window size."
msgstr "초기 ì°½ í¬ê¸°ì˜ ë†’ì´ êµ¬ì„± 요소입니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Height noise"
-msgstr "오른쪽 창"
+msgstr "ë†’ì´ ë…¸ì´ì¦ˆ"
#: src/settings_translation_file.cpp
msgid "Height select noise"
@@ -3602,24 +3522,20 @@ msgid "Hill threshold"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hilliness1 noise"
-msgstr "ë™êµ´ ìž¡ìŒ #1"
+msgstr "ì–¸ë•1 ìž¡ìŒ"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hilliness2 noise"
-msgstr "ë™êµ´ ìž¡ìŒ #1"
+msgstr "ì–¸ë•2 ìž¡ìŒ"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hilliness3 noise"
-msgstr "ë™êµ´ ìž¡ìŒ #1"
+msgstr "ì–¸ë•3 ìž¡ìŒ"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hilliness4 noise"
-msgstr "ë™êµ´ ìž¡ìŒ #1"
+msgstr "ì–¸ë•4 ìž¡ìŒ"
#: src/settings_translation_file.cpp
msgid "Homepage of server, to be displayed in the serverlist."
@@ -3665,7 +3581,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Hotbar slot 12 key"
-msgstr ""
+msgstr "핫바 슬롯 키 12"
#: src/settings_translation_file.cpp
msgid "Hotbar slot 13 key"
@@ -3780,9 +3696,8 @@ msgid "Hotbar slot 9 key"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "How deep to make rivers."
-msgstr "얼마나 ê°•ì„ ê¹Šê²Œ 만들건가요"
+msgstr "제작할 ê°•ì˜ ê¹Šì´."
#: src/settings_translation_file.cpp
msgid ""
@@ -3798,9 +3713,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "How wide to make rivers."
-msgstr "ê²Œê³¡ì„ ì–¼ë§ˆë‚˜ 넓게 만들지"
+msgstr "제작할 ê°•ì˜ ë„ˆë¹„."
#: src/settings_translation_file.cpp
msgid "Humidity blend noise"
@@ -3852,12 +3766,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"If enabled, \"special\" key instead of \"sneak\" key is used for climbing "
"down and\n"
"descending."
-msgstr "활성화시, \"sneak\"키 대신 \"use\"키가 ë‚´ë ¤ê°€ëŠ”ë° ì‚¬ìš©ë©ë‹ˆë‹¤."
+msgstr ""
+"활성화시, \"sneak\"키 대신 \"특수\"키가 ë‚´ë ¤ê°€ëŠ”ë° \n"
+"사용ë©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
msgid ""
@@ -3886,12 +3801,13 @@ msgid "If enabled, new players cannot join with an empty password."
msgstr "ì ìš©í•  경우, 새로운 플레ì´ì–´ëŠ” 빈 암호로 가입 í•  수 없습니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"If enabled, you can place blocks at the position (feet + eye level) where "
"you stand.\n"
"This is helpful when working with nodeboxes in small areas."
-msgstr "활성화시, ë‹¹ì‹ ì´ ì„œ 있는 ìžë¦¬ì—ë„ ë¸”ë¡ì„ ë†“ì„ ìˆ˜ 있습니다."
+msgstr ""
+"활성화시,\n"
+"ë‹¹ì‹ ì´ ì„œ 있는 ìžë¦¬ì—ë„ ë¸”ë¡ì„ ë†“ì„ ìˆ˜ 있습니다."
#: src/settings_translation_file.cpp
msgid ""
@@ -3921,7 +3837,6 @@ msgid "In-Game"
msgstr "ì¸ê²Œìž„"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
msgstr "게임 ë‚´ì—서 채팅 콘솔 ë°°ê²½ 알파 (불투명 함, 0와 255 사ì´)."
@@ -3930,14 +3845,12 @@ msgid "In-game chat console background color (R,G,B)."
msgstr "게임 ë‚´ì—서 채팅 콘솔 ë°°ê²½ ìƒ‰ìƒ (빨,ì´ˆ,파)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
msgstr "게임 ë‚´ì—서 채팅 콘솔 ë°°ê²½ 알파 (불투명 함, 0와 255 사ì´)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Inc. volume key"
-msgstr "콘솔 키"
+msgstr "볼륨 ì¦ê°€ 키"
#: src/settings_translation_file.cpp
msgid "Initial vertical speed when jumping, in nodes per second."
@@ -4002,19 +3915,16 @@ msgid "Invert vertical mouse movement."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Italic font path"
-msgstr "ê³ ì • í­ ê¸€ê¼´ 경로"
+msgstr "기울임꼴 경로"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Italic monospace font path"
-msgstr "ê³ ì • í­ ê¸€ê¼´ 경로"
+msgstr "ê³ ì • í­ ê¸°ìš¸ìž„ 글꼴 경로"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Item entity TTL"
-msgstr "ì•„ì´í…œì˜ TTL(Time To Live)"
+msgstr "ì•„ì´í…œì˜ TTL(Time To Live)"
#: src/settings_translation_file.cpp
msgid "Iterations"
@@ -4037,6 +3947,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -4122,6 +4036,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"ì í”„키입니다.\n"
+"Http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4142,7 +4067,6 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for increasing the volume.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4173,14 +4097,14 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for moving the player backward.\n"
"Will also disable autoforward, when active.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"플레ì´ì–´ê°€ 뒤쪽으로 움ì§ì´ëŠ” 키입니다.\n"
+"플레ì´ì–´ê°€ \n"
+"뒤쪽으로 움ì§ì´ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
@@ -4215,7 +4139,6 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for muting the game.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4268,6 +4191,16 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"ì í”„키입니다.\n"
+"Http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4277,7 +4210,6 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 12th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4288,354 +4220,322 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 13th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"13번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 14th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"14번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 15th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"15번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 16th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"16번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 17th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"17번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 18th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"18번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 19th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"19번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 20th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"20번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 21st hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"21번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 22nd hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"22번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 23rd hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"23번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 24th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"24번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 25th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"25번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 26th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"26번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 27th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"27번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 28th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"28번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 29th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"29번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 30th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"30번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 31st hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"31번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 32nd hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"32번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the eighth hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"8번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the fifth hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"5번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the first hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"1번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the fourth hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"4번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the next item in the hotbar.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"ë‹¤ìŒ ì•„ì´í…œ hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the ninth hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"9번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the previous item in the hotbar.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"ì´ì „ ì•„ì´í…œ hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the second hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"2번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the seventh hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"7번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the sixth hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"6번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the tenth hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"10번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the third hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì¸ë²¤í† ë¦¬ë¥¼ 여는 키입니다.\n"
+"3번째 hotbar ìŠ¬ë¡¯ì„ ì„ íƒí•˜ëŠ” 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
@@ -4674,14 +4574,13 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ìžë™ìœ¼ë¡œ 달리는 ê¸°ëŠ¥ì„ ì¼œëŠ” 키입니다.\n"
-"http://irrlicht.sourceforge.net/docu/namespaceirr."
+"ìžë™ì „ì§„ í† ê¸€ì— ëŒ€í•œ 키입니다.\n"
+"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
@@ -4735,13 +4634,12 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for toggling pitch move mode.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ìžìœ ì‹œì  모드 스위치 키입니다.\n"
+"피치 ì´ë™ 모드 í† ê¸€ì— ëŒ€í•œ 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
@@ -4756,13 +4654,12 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for toggling the display of chat.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"채팅 스위치 키입니다.\n"
+"채팅 ë””ìŠ¤í”Œë ˆì´ í† ê¸€ 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
@@ -4777,13 +4674,12 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for toggling the display of fog.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"안개 스위치 키입니다.\n"
+"안개 ë””ìŠ¤í”Œë ˆì´ í† ê¸€ 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
@@ -4798,13 +4694,12 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for toggling the display of the large chat console.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"채팅 스위치 키입니다.\n"
+"채팅 콘솔 ë””ìŠ¤í”Œë ˆì´ í† ê¸€ 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
@@ -4826,13 +4721,12 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key to use view zoom when possible.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"ì í”„키입니다.\n"
+"가능한 경우 시야 확대를 사용하는 키입니다.\n"
"Http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3 참조"
@@ -4869,16 +4763,14 @@ msgid "Large cave proportion flooded"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Large chat console key"
-msgstr "콘솔 키"
+msgstr "í° ì±„íŒ… 콘솔 키"
#: src/settings_translation_file.cpp
msgid "Leaves style"
msgstr "나뭇잎 스타ì¼"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Leaves style:\n"
"- Fancy: all faces visible\n"
@@ -4902,7 +4794,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Length of liquid waves.\n"
"Requires waving liquids to be enabled."
@@ -4959,12 +4850,14 @@ msgid "Light curve low gradient"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n"
"Only mapchunks completely within the mapgen limit are generated.\n"
"Value is stored per-world."
-msgstr "(0,0,0)으로부터 6방향으로 뻗어나갈 ë§µ í¬ê¸°"
+msgstr ""
+"(0, 0, 0)ì—서 모든 6 ê°œ ë°©í–¥ì˜ ë…¸ë“œì—서 ë§µ ìƒì„± 제한.\n"
+"mapgen 제한 ë‚´ì— ì™„ì „ížˆ í¬í•¨ ëœ ë§µ ì²­í¬ ë§Œ ìƒì„±ë©ë‹ˆë‹¤.\n"
+"ê°’ì€ ì„¸ê³„ë³„ë¡œ 저장ë©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
msgid ""
@@ -4992,7 +4885,6 @@ msgid "Liquid queue purge time"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Liquid sinking"
msgstr "하강 ì†ë„"
@@ -5032,11 +4924,6 @@ msgid "Main menu script"
msgstr "주 메뉴 스í¬ë¦½íЏ"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "주 메뉴 스í¬ë¦½íЏ"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5050,6 +4937,14 @@ msgid "Makes all liquids opaque"
msgstr "모든 액체를 불투명하게 만들기"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -5113,14 +5008,12 @@ msgid "Mapblock limit"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapblock mesh generation delay"
-msgstr "ë§µ ìƒì„± 제한"
+msgstr "ë§µ ë¸”ë¡ ìƒì„± 지연"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapblock mesh generator's MapBlock cache size in MB"
-msgstr "ë§µ ìƒì„± 제한"
+msgstr "Mapblock 메시 ìƒì„±ê¸°ì˜ MapBlock ìºì‹œ í¬ê¸° (MB)"
#: src/settings_translation_file.cpp
msgid "Mapblock unload timeout"
@@ -5135,46 +5028,40 @@ msgid "Mapgen Carpathian specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Flat"
-msgstr "Mapgen ì´ë¦„"
+msgstr "Mapgen 플랫"
#: src/settings_translation_file.cpp
msgid "Mapgen Flat specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Fractal"
-msgstr "Mapgen ì´ë¦„"
+msgstr "Mapgen 형태"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Fractal specific flags"
-msgstr "Mapgen ì´ë¦„"
+msgstr "Mapgen 형태 ìƒì„¸ 플래그"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V5"
-msgstr "맵젠v5"
+msgstr "맵젠 V5"
#: src/settings_translation_file.cpp
msgid "Mapgen V5 specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V6"
-msgstr "세계 ìƒì„±ê¸°"
+msgstr "맵젠 V6"
#: src/settings_translation_file.cpp
msgid "Mapgen V6 specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V7"
-msgstr "세계 ìƒì„±ê¸°"
+msgstr "맵젠 V7"
#: src/settings_translation_file.cpp
msgid "Mapgen V7 specific flags"
@@ -5221,12 +5108,13 @@ msgid "Maximum FPS"
msgstr "최대 FPS"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "ê²Œìž„ì´ ì¼ì‹œì •ì§€ë ë•Œì˜ 최대 FPS."
#: src/settings_translation_file.cpp
msgid "Maximum forceloaded blocks"
-msgstr ""
+msgstr "최대 강제 로딩 블럭"
#: src/settings_translation_file.cpp
msgid "Maximum hotbar width"
@@ -5270,6 +5158,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5287,9 +5182,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Maximum number of players that can be connected simultaneously."
-msgstr "ë™ì‹œì ‘ì† í•  수 있는 최대 ì¸ì›ìˆ˜."
+msgstr "ë™ì‹œì ‘ì† í•  수 있는 최대 ì¸ì› 수."
#: src/settings_translation_file.cpp
msgid "Maximum number of recent chat messages to show"
@@ -5304,7 +5198,6 @@ msgid "Maximum objects per block"
msgstr "ë¸”ë¡ ë‹¹ 최대 개체"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Maximum proportion of current window to be used for hotbar.\n"
"Useful if there's something to be displayed right or left of hotbar."
@@ -5313,7 +5206,6 @@ msgstr ""
"hotbarì˜ ì˜¤ë¥¸ìª½ì´ë‚˜ ì™¼ìª½ì— ë¬´ì–¸ê°€ë¥¼ 나타낼 때 유용합니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Maximum simultaneous block sends per client"
msgstr "í´ë¼ì´ì–¸íЏ 당 최대 ë™ì‹œ ë¸”ë¡ ì „ì†¡"
@@ -5382,9 +5274,8 @@ msgid "Minimum limit of random number of small caves per mapchunk."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Minimum texture size"
-msgstr "í•„í„° 최소 í…스처 í¬ê¸°"
+msgstr "최소 í…스처 í¬ê¸°"
#: src/settings_translation_file.cpp
msgid "Mipmapping"
@@ -5419,9 +5310,8 @@ msgid "Mountain variation noise"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mountain zero level"
-msgstr "ë¬¼ì˜ ë†’ì´"
+msgstr "산 0 수준"
#: src/settings_translation_file.cpp
msgid "Mouse sensitivity"
@@ -5444,9 +5334,8 @@ msgstr ""
"예 : 0ì€ í™”ë©´ í”들림 ì—†ìŒ; 1.0ì€ ë…¸ë§; 2.0ì€ ë”블."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mute key"
-msgstr "키 사용"
+msgstr "ìŒì†Œê±° 키"
#: src/settings_translation_file.cpp
msgid "Mute sound"
@@ -5514,14 +5403,6 @@ msgid "Noises"
msgstr "소리"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Normalmaps 샘플ë§"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Normalmaps ê°•ë„"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5547,10 +5428,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "시차 êµí•© ë°˜ë³µì˜ ìˆ˜"
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5576,37 +5453,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "ì¼ë°˜ì ì¸ 규모/2ì˜ ì‹œì°¨ êµí•© íš¨ê³¼ì˜ ì „ë°˜ì ì¸ ë°”ì´ì–´ìФ."
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Overall scale of parallax occlusion effect."
-msgstr "시차 êµí•© íš¨ê³¼ì˜ ì „ì²´ 규모"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "시차 êµí•©"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "시차 êµí•© ë°”ì´ì–´ìФ"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "시차 êµí•© 반복"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion mode"
-msgstr "시차 êµí•© 모드"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "시차 êµí•© 규모"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5665,15 +5511,24 @@ msgid "Physics"
msgstr "물리학"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Pitch move key"
-msgstr "비행 키"
+msgstr "피치 ì´ë™ 키"
#: src/settings_translation_file.cpp
msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "비행 키"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "오른쪽 í´ë¦­ 반복 간격"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5690,12 +5545,10 @@ msgid "Player transfer distance"
msgstr "플레ì´ì–´ 전송 거리"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Player versus player"
msgstr "PVP"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Port to connect to (UDP).\n"
"Note that the port field in the main menu overrides this setting."
@@ -5710,12 +5563,10 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Prevent mods from doing insecure things like running shell commands."
msgstr "shell 명령어 실행 ê°™ì€ ì•ˆì „ 하지 ì•Šì€ ê²ƒìœ¼ë¡œë¶€í„° 모드를 보호합니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Print the engine's profiling data in regular intervals (in seconds).\n"
"0 = disable. Useful for developers."
@@ -5736,7 +5587,6 @@ msgid "Profiler toggle key"
msgstr "프로파ì¼ëŸ¬ 토글 키"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Profiling"
msgstr "프로 파ì¼ë§"
@@ -5766,12 +5616,10 @@ msgstr ""
"26보다 í° ìˆ˜ì¹˜ë“¤ì€ êµ¬ë¦„ì„ ì„ ëª…í•˜ê²Œ 만들고 모서리를 잘ë¼ë‚¼ 것입니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Raises terrain to make valleys around the rivers."
msgstr "ê°• ì£¼ë³€ì— ê³„ê³¡ì„ ë§Œë“¤ê¸° 위해 ì§€í˜•ì„ ì˜¬ë¦½ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Random input"
msgstr "ìž„ì˜ ìž…ë ¥"
@@ -5784,7 +5632,6 @@ msgid "Recent Chat Messages"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Regular font path"
msgstr "보고서 경로"
@@ -5803,12 +5650,10 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Replaces the default main menu with a custom one."
msgstr "기본 주 메뉴를 커스텀 메뉴로 바꿉니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Report path"
msgstr "보고서 경로"
@@ -5831,9 +5676,8 @@ msgid "Ridge mountain spread noise"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Ridge noise"
-msgstr "강 소리"
+msgstr "능선 ë…¸ì´ì¦ˆ"
#: src/settings_translation_file.cpp
msgid "Ridge underwater noise"
@@ -5848,41 +5692,30 @@ msgid "Right key"
msgstr "오른쪽 키"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "오른쪽 í´ë¦­ 반복 간격"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River channel depth"
msgstr "ê°• 깊ì´"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River channel width"
-msgstr "ê°• 깊ì´"
+msgstr "강 너비"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River depth"
msgstr "ê°• 깊ì´"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River noise"
msgstr "강 소리"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River size"
msgstr "ê°• í¬ê¸°"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River valley width"
-msgstr "ê°• 깊ì´"
+msgstr "ê°• 계곡 í­"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Rollback recording"
msgstr "롤백 레코딩"
@@ -5907,7 +5740,6 @@ msgid "Sandy beaches occur when np_beach exceeds this value."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Save the map received by the client on disk."
msgstr "디스í¬ì— í´ë¼ì´ì–¸íЏì—서 ë°›ì€ ë§µì„ ì €ìž¥ 합니다."
@@ -5959,9 +5791,8 @@ msgstr ""
"기본 í’ˆì§ˆì„ ì‚¬ìš©í•˜ë ¤ë©´ 0ì„ ì‚¬ìš© 합니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Seabed noise"
-msgstr "ë™êµ´ ìž¡ìŒ #1"
+msgstr "í•´ì € ë…¸ì´ì¦ˆ"
#: src/settings_translation_file.cpp
msgid "Second of 4 2D noises that together define hill/mountain range height."
@@ -5976,7 +5807,6 @@ msgid "Security"
msgstr "보안"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
msgstr "Http://www.sqlite.org/pragma.html#pragma_synchronous 참조"
@@ -5993,7 +5823,6 @@ msgid "Selection box width"
msgstr "ì„ íƒ ë°•ìŠ¤ 너비"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Selects one of 18 fractal types.\n"
"1 = 4D \"Roundy\" Mandelbrot set.\n"
@@ -6084,7 +5913,6 @@ msgid "Set the maximum character length of a chat message sent by clients."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Set to true to enable waving leaves.\n"
"Requires shaders to be enabled."
@@ -6093,16 +5921,14 @@ msgstr ""
"ì‰ì´ë”를 활성화 해야 합니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Set to true to enable waving liquids (like water).\n"
"Requires shaders to be enabled."
msgstr ""
"True로 설정하면 물결효과가 ì ìš©ë©ë‹ˆë‹¤.\n"
-"ì‰ì´ë”를 활성화해야 합니다.."
+"ì‰ì´ë”를 활성화해야 합니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Set to true to enable waving plants.\n"
"Requires shaders to be enabled."
@@ -6115,7 +5941,6 @@ msgid "Shader path"
msgstr "ì‰ì´ë” 경로"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Shaders allow advanced visual effects and may increase performance on some "
"video\n"
@@ -6124,17 +5949,16 @@ msgid ""
msgstr ""
"ì‰ì´ë”는 í™•ìž¥ëœ ì‹œê° íš¨ê³¼ë¥¼ 제공하고 몇몇 비디오 ì¹´ë“œì˜ ì„±ëŠ¥ì´ ì¦ê°€í•  ìˆ˜ë„ ìžˆ"
"습니다.\n"
-"ì´ê²ƒì€ OpenGL video backendì—서만 ì§ë™í•©ë‹ˆë‹¤."
+"ì´ê²ƒì€ OpenGL video backendì—서만 \n"
+"ìž‘ë™í•©ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
"drawn."
msgstr "글꼴 ê·¸ë¦¼ìž ì˜¤í”„ì…‹, 만약 0 ì´ë©´ 그림ìžëŠ” 나타나지 ì•Šì„ ê²ƒìž…ë‹ˆë‹¤."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
"be drawn."
@@ -6149,11 +5973,23 @@ msgid "Show debug info"
msgstr "디버그 정보 보기"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Show entity selection boxes"
msgstr "개체 ì„ íƒ ìƒìž 보기"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"언어 설정. 시스템 언어를 사용하려면 비워ë‘세요.\n"
+"설정 ì ìš© 후 ìž¬ì‹œìž‘ì´ í•„ìš”í•©ë‹ˆë‹¤."
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "서버닫힘 메시지"
@@ -6179,9 +6015,8 @@ msgid "Slice w"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Slope and fill work together to modify the heights."
-msgstr "ë†’ì´ ìˆ˜ì •ì„ ìœ„í•´ 기울기와 채우기를 함께 작용합니다"
+msgstr "ë†’ì´ ìˆ˜ì •ì„ ìœ„í•´ 기울기와 채우기를 함께 작용합니다."
#: src/settings_translation_file.cpp
msgid "Small cave maximum number"
@@ -6204,7 +6039,6 @@ msgid "Smooth lighting"
msgstr "부드러운 조명효과"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Smooths camera when looking around. Also called look or mouse smoothing.\n"
"Useful for recording videos."
@@ -6228,7 +6062,6 @@ msgid "Sneak key"
msgstr "살금살금걷기 키"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Sneaking speed"
msgstr "걷는 ì†ë„"
@@ -6241,14 +6074,12 @@ msgid "Sound"
msgstr "사운드"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Special key"
-msgstr "살금살금걷기 키"
+msgstr "특수 키"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Special key for climbing/descending"
-msgstr "오르기/내리기 ì— ì‚¬ìš©ë˜ëŠ” 키입니다"
+msgstr "오르기/내리기 ì— ì‚¬ìš©ë˜ëŠ” 특수키"
#: src/settings_translation_file.cpp
msgid ""
@@ -6281,24 +6112,18 @@ msgid "Steepness noise"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Step mountain size noise"
-msgstr "지형 높ì´"
+msgstr "ê³„ë‹¨ì‹ ì‚° 높ì´"
#: src/settings_translation_file.cpp
msgid "Step mountain spread noise"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Strength of 3D mode parallax."
msgstr "ìžë™ìœ¼ë¡œ ìƒì„±ë˜ëŠ” ë…¸ë©€ë§µì˜ ê°•ë„."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "ìžë™ìœ¼ë¡œ ìƒì„±ë˜ëŠ” ë…¸ë©€ë§µì˜ ê°•ë„."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6336,29 +6161,24 @@ msgid "Temperature variation for biomes."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain alternative noise"
msgstr "지형 높ì´"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain base noise"
-msgstr "지형 높ì´"
+msgstr "지형 기초 분산"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain height"
msgstr "지형 높ì´"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain higher noise"
-msgstr "지형 높ì´"
+msgstr "지형 ë†’ì´ ë¶„ì‚°"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain noise"
-msgstr "지형 높ì´"
+msgstr "지형 분산"
#: src/settings_translation_file.cpp
msgid ""
@@ -6397,15 +6217,18 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "The depth of dirt or other biome filler node."
-msgstr "í™ì´ë‚˜ 다른 ê²ƒì˜ ê¹Šì´"
+msgstr "í™ì´ë‚˜ 다른 ê²ƒì˜ ê¹Šì´."
#: src/settings_translation_file.cpp
msgid ""
@@ -6439,8 +6262,8 @@ msgid ""
"See /privs in game for a full list on your server and mod configuration."
msgstr ""
"새로운 유저가 ìžë™ìœ¼ë¡œ 얻는 권한입니다.\n"
-"게임ì—서 /privs를 입력하여 서버와 모드 í™˜ê²½ì„¤ì •ì˜ ì „ì²´ 권한\n"
-" 목ë¡ì„ 확ì¸í•˜ì„¸ìš”."
+"게임ì—서 /privs를 입력하여 서버와 모드 í™˜ê²½ì„¤ì •ì˜ ì „ì²´ 권한 목ë¡ì„ 확ì¸í•˜ì„¸"
+"ìš”."
#: src/settings_translation_file.cpp
msgid ""
@@ -6459,8 +6282,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6486,15 +6309,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6513,18 +6341,18 @@ msgid "Third of 4 2D noises that together define hill/mountain range height."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Time in seconds for item entity (dropped items) to live.\n"
"Setting it to -1 disables the feature."
-msgstr "드ëžëœ ì•„ì´í…œì´ ì‚´ì•„ 있는 시간입니다. -1ì„ ìž…ë ¥í•˜ì—¬ 비활성화합니다."
+msgstr ""
+"드ëžëœ ì•„ì´í…œì´ ì‚´ì•„ 있는 시간입니다.\n"
+"-1ì„ ìž…ë ¥í•˜ì—¬ 비활성화합니다."
#: src/settings_translation_file.cpp
msgid "Time of day when a new world is started, in millihours (0-23999)."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Time send interval"
msgstr "시간 전송 간격"
@@ -6533,7 +6361,6 @@ msgid "Time speed"
msgstr "시간 ì†ë„"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Timeout for client to remove unused map data from memory."
msgstr ""
"메모리ì—서 사용 하지 않는 ë§µ ë°ì´í„°ë¥¼ 제거하기 위해 í´ë¼ì´ì–¸íŠ¸ì— ëŒ€í•œ 시간 ì œ"
@@ -6550,17 +6377,14 @@ msgstr ""
"ì´ê²ƒì€ nodeê°€ 배치ë˜ê±°ë‚˜ ì œê±°ëœ í›„ 얼마나 오래 ëŠë ¤ì§€ëŠ”ì§€ë¥¼ 결정합니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Toggle camera mode key"
msgstr "ì¹´ë©”ë¼ëª¨ë“œ 스위치 키"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Tooltip delay"
msgstr "ë„구 설명 지연"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Touch screen threshold"
msgstr "터치임계값 (픽셀)"
@@ -6573,7 +6397,6 @@ msgid "Trilinear filtering"
msgstr "삼중 선형 í•„í„°ë§"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"True = 256\n"
"False = 128\n"
@@ -6592,7 +6415,6 @@ msgid "URL to the server list displayed in the Multiplayer Tab."
msgstr "멀티 íƒ­ì— í‘œì‹œ ëœ ì„œë²„ ëª©ë¡ URL입니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Undersampling"
msgstr "좌표표집(Undersampling)"
@@ -6606,7 +6428,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Unlimited player transfer distance"
msgstr "무제한 플레ì´ì–´ 전송 거리"
@@ -6631,7 +6452,6 @@ msgid "Use a cloud animation for the main menu background."
msgstr "주 메뉴 ë°°ê²½ì— êµ¬ë¦„ 애니메ì´ì…˜ì„ 사용 합니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Use anisotropic filtering when viewing at textures from an angle."
msgstr "ê°ë„ì— ë”°ë¼ í…스처를 ë³¼ 때 ì´ë°©ì„± í•„í„°ë§ì„ 사용 합니다."
@@ -6647,7 +6467,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "삼중 선형 í•„í„°ë§ì€ ì§ˆê° ìŠ¤ì¼€ì¼ë§ì„ í•  때 사용 합니다."
@@ -6656,27 +6486,22 @@ msgid "VBO"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "VSync"
msgstr "수ì§ë™ê¸°í™” V-Sync"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Valley depth"
msgstr "계곡 깊ì´"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Valley fill"
msgstr "계곡 채우기"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Valley profile"
msgstr "계곡 측면"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Valley slope"
msgstr "계곡 경사"
@@ -6690,7 +6515,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Variation of number of caves."
-msgstr ""
+msgstr "ìˆ«ìž ì˜ ë§ˆìš°ìŠ¤ 설정."
#: src/settings_translation_file.cpp
msgid ""
@@ -6709,7 +6534,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Varies steepness of cliffs."
msgstr "ì‚°ì˜ ë†’ì´/경사를 ì¡°ì ˆ."
@@ -6726,16 +6550,12 @@ msgid "Video driver"
msgstr "비디오 드ë¼ì´ë²„"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "View bobbing factor"
-msgstr "보기 만료"
+msgstr "ì‹œì•¼ì˜ í”들리는 ì •ë„"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "View distance in nodes."
-msgstr ""
-"nodeì˜ ë³´ì—¬ì§€ëŠ” 거리\n"
-"최소 = 20"
+msgstr "nodeì˜ ë³´ì—¬ì§€ëŠ” 거리(최소 = 20)."
#: src/settings_translation_file.cpp
msgid "View range decrease key"
@@ -6762,7 +6582,6 @@ msgid "Volume"
msgstr "볼륨"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Volume of all sounds.\n"
"Requires the sound system to be enabled."
@@ -6800,7 +6619,6 @@ msgid "Water surface level of the world."
msgstr "ì›”ë“œì˜ ë¬¼ 표면 높ì´."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving Nodes"
msgstr "움ì§ì´ëŠ” Node"
@@ -6809,22 +6627,18 @@ msgid "Waving leaves"
msgstr "í”들리는 나뭇잎 효과"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids"
-msgstr "움ì§ì´ëŠ” Node"
+msgstr "물 움ì§ìž„"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave height"
msgstr "물결 높ì´"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave speed"
msgstr "물결 ì†ë„"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wavelength"
msgstr "물결 길ì´"
@@ -6833,15 +6647,15 @@ msgid "Waving plants"
msgstr "í”들리는 ì‹ë¬¼ 효과"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"When gui_scaling_filter is true, all GUI images need to be\n"
"filtered in software, but some images are generated directly\n"
"to hardware (e.g. render-to-texture for nodes in inventory)."
msgstr ""
"Gui_scaling_filterì´ true ì´ë©´ 모든 GUI ì´ë¯¸ì§€ 소프트웨어ì—서 í•„í„°ë§ ë  í•„ìš”"
-"ê°€ 있습니다. 하지만 ì¼ë¶€ ì´ë¯¸ì§€ëŠ” 바로 í•˜ë“œì›¨ì–´ì— ìƒì„±ë©ë‹ˆë‹¤. (e.g. render-"
-"to-texture for nodes in inventory)."
+"가 있습니다. \n"
+"하지만 ì¼ë¶€ ì´ë¯¸ì§€ëŠ” 바로 í•˜ë“œì›¨ì–´ì— ìƒì„±ë©ë‹ˆë‹¤. \n"
+"(e.g. render-to-texture for nodes in inventory)."
#: src/settings_translation_file.cpp
msgid ""
@@ -6852,7 +6666,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
"can be blurred, so automatically upscale them with nearest-neighbor\n"
@@ -6864,12 +6677,16 @@ msgid ""
"This is also used as the base node texture size for world-aligned\n"
"texture autoscaling."
msgstr ""
-"ì´ì¤‘선형/삼중선형/ì´ë°©ì„± 필터를 사용할 때 저해ìƒë„ íƒìФì³ëŠ” í¬ë¯¸í•˜ê²Œ ë³´ì¼ ìˆ˜ "
-"있습니다.so automatically upscale them with nearest-neighbor interpolation "
-"to preserve crisp pixels. This sets the minimum texture size for the "
-"upscaled textures; ê°’ì´ ë†’ì„ìˆ˜ë¡ ì„ ëª…í•˜ê²Œ 보입니다. 하지만 ë§Žì€ ë©”ëª¨ë¦¬ê°€ í•„ìš”"
-"합니다. Powers of 2 are recommended. Setting this higher than 1 may not have "
-"a visible effect unless bilinear/trilinear/anisotropic filtering is enabled."
+"ì´ì¤‘선형/삼중선형/ì´ë°©ì„± 필터를 사용할 때 \n"
+"저해ìƒë„ íƒìФì³ëŠ” í¬ë¯¸í•˜ê²Œ ë³´ì¼ ìˆ˜ 있습니다.\n"
+"so automatically upscale them with nearest-neighbor interpolation to "
+"preserve crisp pixels. \n"
+"This sets the minimum texture size for the upscaled textures; \n"
+"ê°’ì´ ë†’ì„ìˆ˜ë¡ ì„ ëª…í•˜ê²Œ 보입니다. \n"
+"하지만 ë§Žì€ ë©”ëª¨ë¦¬ê°€ 필요합니다. \n"
+"Powers of 2 are recommended. \n"
+"Setting this higher than 1 may not have a visible effect\n"
+"unless bilinear/trilinear/anisotropic filtering is enabled."
#: src/settings_translation_file.cpp
msgid ""
@@ -6879,6 +6696,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6916,12 +6739,10 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Width component of the initial window size."
msgstr "í­ì€ 초기 ì°½ í¬ê¸°ë¡œ 구성ë˜ì–´ 있습니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Width of the selection box lines around nodes."
msgstr ""
"node 주위 “selectionbox'†or (if UTF-8 supported) “selectionbox’†ë¼ì¸ì˜ 너비"
@@ -6943,9 +6764,8 @@ msgstr ""
"주 메뉴ì—서 시작 하는 경우 í•„ìš” 하지 않습니다."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "World start time"
-msgstr "세계 ì´ë¦„"
+msgstr "세계 시작 시간"
#: src/settings_translation_file.cpp
msgid ""
@@ -6962,9 +6782,8 @@ msgid "World-aligned textures mode"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Y of flat ground."
-msgstr "í‰í‰í•œ ë•…ì˜ Yê°’"
+msgstr "í‰í‰í•œ ë•…ì˜ Yê°’."
#: src/settings_translation_file.cpp
msgid ""
@@ -7009,6 +6828,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -7020,57 +6857,207 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
-#~ msgid "Toggle Cinematic"
-#~ msgstr "시네마틱 스위치"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = 경사 정보가 존재 (빠름).\n"
+#~ "1 = 릴리프 매핑 (ë” ëŠë¦¬ê³  정확함)."
+
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "싱글 플레ì´ì–´ 월드를 리셋하겠습니까?"
+
+#~ msgid "Back"
+#~ msgstr "뒤로"
+
+#~ msgid "Bump Mapping"
+#~ msgstr "범프 매핑"
+
+#~ msgid "Bumpmapping"
+#~ msgstr "범프맵핑"
+
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "ë©”ì¸ ë©”ë‰´ UI 변경 :\n"
+#~ "-ì „ì²´ : 여러 싱글 플레ì´ì–´ 월드, 게임 ì„ íƒ, í…스처 팩 ì„ íƒê¸° 등.\n"
+#~ "-단순함 : ë‹¨ì¼ í”Œë ˆì´ì–´ 세계, 게임 ë˜ëŠ” í…스처 팩 ì„ íƒê¸°ê°€ 없습니다. \n"
+#~ "ìž‘ì€ í™”ë©´ì— í•„ìš”í•  수 있습니다."
+
+#~ msgid "Config mods"
+#~ msgstr "모드 설정"
+
+#~ msgid "Configure"
+#~ msgstr "환경설정"
+
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr "í„°ë„ ë„ˆë¹„ë¥¼ ì¡°ì ˆ, ìž‘ì€ ìˆ˜ì¹˜ëŠ” ë„“ì€ í„°ë„ì„ ë§Œë“­ë‹ˆë‹¤."
+
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "ì‹­ìžì„  색 (빨, ì´ˆ, 파)."
+
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "í…ìŠ¤ì²˜ì˜ ìƒ˜í”Œë§ ë‹¨ê³„ë¥¼ ì •ì˜í•©ë‹ˆë‹¤.\n"
+#~ "ì¼ë°˜ ë§µì— ë¶€ë“œëŸ½ê²Œ ë†’ì€ ê°’ì„ ë‚˜íƒ€ëƒ…ë‹ˆë‹¤."
#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "ì„ íƒí•œ 모드 파ì¼:"
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "$1 를(ì„) 다운로드중입니다. 기다려주세요..."
-#~ msgid "Waving Water"
-#~ msgstr "물결 효과"
+#~ msgid "Enable VBO"
+#~ msgstr "VBO ì ìš©"
-#~ msgid "Waving water"
-#~ msgstr "물결 효과"
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "í…ìŠ¤ì²˜ì— bumpmappingì„ í•  수 있습니다. \n"
+#~ "Normalmaps는 í…ìŠ¤ì³ íŒ©ì—서 받거나 ìžë™ ìƒì„±ë  필요가 있습니다.\n"
+#~ "ì‰ì´ë”를 활성화 해야 합니다."
+
+#~ msgid ""
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
+#~ msgstr ""
+#~ "비행 노멀맵 ìƒì„± ì ìš© (엠보스 효과).\n"
+#~ "Bumpmapping를 활성화 해야 합니다."
+
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "시차 êµí•© 맵핑 ì ìš©.\n"
+#~ "ì‰ì´ë”를 활성화 해야 합니다."
+
+#~ msgid "FPS in pause menu"
+#~ msgstr "ì¼ì‹œì •ì§€ 메뉴ì—서 FPS"
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "ì´ ê¸€ê¼´ì€ íŠ¹ì • ì–¸ì–´ì— ì‚¬ìš© ë©ë‹ˆë‹¤."
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "글꼴 ê·¸ë¦¼ìž íˆ¬ëª…ë„ (불투명 함, 0ê³¼ 255 사ì´)."
-#~ msgid "Shadow limit"
-#~ msgstr "ê·¸ë¦¼ìž ì œí•œ"
+#~ msgid "Gamma"
+#~ msgstr "ê°ë§ˆ"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "TrueTypeFont ë˜ëŠ” ë¹„íŠ¸ë§µì˜ ê²½ë¡œìž…ë‹ˆë‹¤."
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Normal maps ìƒì„±"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Normalmaps ìƒì„±"
#, fuzzy
#~ msgid "Lava depth"
#~ msgstr "í° ë™êµ´ 깊ì´"
-#~ msgid "Gamma"
-#~ msgstr "ê°ë§ˆ"
+#~ msgid "Main"
+#~ msgstr "ë©”ì¸"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "글꼴 ê·¸ë¦¼ìž íˆ¬ëª…ë„ (불투명 함, 0ê³¼ 255 사ì´)."
+#~ msgid "Main menu style"
+#~ msgstr "주 메뉴 스í¬ë¦½íЏ"
-#~ msgid "Enable VBO"
-#~ msgstr "VBO ì ìš©"
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "ë ˆì´ë” ëª¨ë“œì˜ ë¯¸ë‹ˆë§µ, 2ë°° 확대"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
-#~ msgstr "í„°ë„ ë„ˆë¹„ë¥¼ ì¡°ì ˆ, ìž‘ì€ ìˆ˜ì¹˜ëŠ” ë„“ì€ í„°ë„ì„ ë§Œë“­ë‹ˆë‹¤."
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "ë ˆì´ë” ëª¨ë“œì˜ ë¯¸ë‹ˆë§µ, 4ë°° 확대"
-#~ msgid "Path to save screenshots at."
-#~ msgstr "스í¬ë¦°ìƒ· 저장 경로입니다."
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "표면 ëª¨ë“œì˜ ë¯¸ë‹ˆë§µ, 2ë°° 확대"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "표면 ëª¨ë“œì˜ ë¯¸ë‹ˆë§µ, 4ë°° 확대"
+
+#~ msgid "Name/Password"
+#~ msgstr "ì´ë¦„/비밀번호"
+
+#~ msgid "No"
+#~ msgstr "아니오"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Normalmaps 샘플ë§"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Normalmaps ê°•ë„"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "시차 êµí•© ë°˜ë³µì˜ ìˆ˜."
+
+#~ msgid "Ok"
+#~ msgstr "확ì¸"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "ì¼ë°˜ì ì¸ 규모/2ì˜ ì‹œì°¨ êµí•© íš¨ê³¼ì˜ ì „ë°˜ì ì¸ ë°”ì´ì–´ìФ."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "시차 êµí•© íš¨ê³¼ì˜ ì „ì²´ 규모."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "시차 êµí•©"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "시차 êµí•©"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "시차 êµí•© ë°”ì´ì–´ìФ"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "시차 êµí•© 반복"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "시차 êµí•© 모드"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "시차 êµí•© 규모"
#, fuzzy
#~ msgid "Parallax occlusion strength"
#~ msgstr "시차 êµí•© ê°•ë„"
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "TrueTypeFont ë˜ëŠ” ë¹„íŠ¸ë§µì˜ ê²½ë¡œìž…ë‹ˆë‹¤."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "스í¬ë¦°ìƒ· 저장 경로입니다."
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "싱글 플레ì´ì–´ 월드 초기화"
+
#, fuzzy
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "$1 를(ì„) 다운로드중입니다. 기다려주세요..."
+#~ msgid "Select Package File:"
+#~ msgstr "ì„ íƒí•œ 모드 파ì¼:"
-#~ msgid "Back"
-#~ msgstr "뒤로"
+#~ msgid "Shadow limit"
+#~ msgstr "ê·¸ë¦¼ìž ì œí•œ"
-#~ msgid "Ok"
-#~ msgstr "확ì¸"
+#~ msgid "Start Singleplayer"
+#~ msgstr "싱글 플레ì´ì–´ 시작"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "ìžë™ìœ¼ë¡œ ìƒì„±ë˜ëŠ” ë…¸ë©€ë§µì˜ ê°•ë„."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "ì´ ê¸€ê¼´ì€ íŠ¹ì • ì–¸ì–´ì— ì‚¬ìš© ë©ë‹ˆë‹¤."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "시네마틱 스위치"
+
+#~ msgid "View"
+#~ msgstr "보기"
+
+#~ msgid "Waving Water"
+#~ msgstr "물결 효과"
+
+#~ msgid "Waving water"
+#~ msgstr "물결 효과"
+
+#~ msgid "Yes"
+#~ msgstr "예"
diff --git a/po/ky/minetest.po b/po/ky/minetest.po
index 1d4de9d90..91c6e11b8 100644
--- a/po/ky/minetest.po
+++ b/po/ky/minetest.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Kyrgyz (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: 2019-11-10 15:04+0000\n"
"Last-Translator: Krock <mk939@ymail.com>\n"
"Language-Team: Kyrgyz <https://hosted.weblate.org/projects/minetest/minetest/"
@@ -49,10 +49,6 @@ msgstr "Туташуу"
msgid "The server has requested a reconnect:"
msgstr ""
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Жүктөлүүдө..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr ""
@@ -66,10 +62,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr ""
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr ""
@@ -77,7 +69,8 @@ msgstr ""
msgid "We support protocol versions between version $1 and $2."
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -87,7 +80,8 @@ msgstr ""
msgid "Cancel"
msgstr "Жокко чыгаруу"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
#, fuzzy
msgid "Dependencies:"
msgstr "көз карандылыктары:"
@@ -166,15 +160,55 @@ msgid "enabled"
msgstr "күйгүзүлгөн"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Жүктөлүүдө..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
msgid "Back to Main Menu"
msgstr "Башкы меню"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Оюн"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -199,6 +233,14 @@ msgid "Install"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr ""
@@ -212,8 +254,23 @@ msgid "No results"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
+msgid "No updates"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
@@ -229,7 +286,11 @@ msgid "Update"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -528,6 +589,10 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr ""
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select directory"
msgstr "Дүйнөнү тандаңыз:"
@@ -651,6 +716,18 @@ msgstr "Дүйнөнү инициалдаштыруу катаÑÑ‹"
msgid "Unable to install a modpack as a $1"
msgstr "Дүйнөнү инициалдаштыруу катаÑÑ‹"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Жүктөлүүдө..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -706,6 +783,17 @@ msgid "Credits"
msgstr "Ðлкыштар"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Дүйнөнү тандаңыз:"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr ""
@@ -722,14 +810,10 @@ msgid "Bind Address"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "ЫраÑтоо"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Жаратуу режими"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Убалды күйгүзүү"
@@ -747,8 +831,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Ðты/ÑырÑөзү"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -760,6 +844,11 @@ msgstr ""
#: builtin/mainmenu/tab_local.lua
#, fuzzy
+msgid "Password"
+msgstr "Жаңы ÑырÑөз"
+
+#: builtin/mainmenu/tab_local.lua
+#, fuzzy
msgid "Play Game"
msgstr "Оюнду баштоо/туташуу"
@@ -768,6 +857,11 @@ msgid "Port"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Дүйнөнү тандаңыз:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Дүйнөнү тандаңыз:"
@@ -785,26 +879,26 @@ msgstr "Оюн"
msgid "Address / Port"
msgstr "Дареги/порту"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Туташуу"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
#, fuzzy
msgid "Creative mode"
msgstr "Жаратуу режими"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
#, fuzzy
msgid "Damage enabled"
msgstr "күйгүзүлгөн"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
#, fuzzy
msgid "Del. Favorite"
msgstr "Тандалмалар:"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
#, fuzzy
msgid "Favorite"
msgstr "Тандалмалар:"
@@ -814,17 +908,17 @@ msgstr "Тандалмалар:"
msgid "Join Game"
msgstr "Оюн"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
#, fuzzy
msgid "Name / Password"
msgstr "Ðты/ÑырÑөзү"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
#, fuzzy
msgid "PvP enabled"
msgstr "күйгүзүлгөн"
@@ -856,11 +950,6 @@ msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Бир кишилик"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
@@ -869,11 +958,6 @@ msgstr ""
msgid "Bilinear Filter"
msgstr "ЭкиÑызык чыпкалооÑу"
-#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
-msgid "Bump Mapping"
-msgstr "Mip-текÑтуралоо"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
#, fuzzy
msgid "Change Keys"
@@ -890,10 +974,6 @@ msgid "Fancy Leaves"
msgstr "Күңүрт Ñуу"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "Mipmap"
msgstr "Mip-текÑтуралоо"
@@ -903,10 +983,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Жок"
-
-#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "No Filter"
msgstr "ÐÐ½Ð¸Ð·Ð°Ñ‚Ñ€Ð¾Ð¿Ð¸Ñ Ñ‡Ñ‹Ð¿ÐºÐ°Ð»Ð¾Ð¾Ñу"
@@ -940,10 +1016,6 @@ msgstr "Күңүрт Ñуу"
msgid "Opaque Water"
msgstr "Күңүрт Ñуу"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "Particles"
@@ -951,11 +1023,6 @@ msgstr "Баарын күйгүзүү"
#: builtin/mainmenu/tab_settings.lua
#, fuzzy
-msgid "Reset singleplayer world"
-msgstr "Бир кишилик"
-
-#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Screen:"
msgstr "Тез Ñүрөт"
@@ -968,6 +1035,10 @@ msgid "Shaders"
msgstr "Көлөкөлөгүчтөр"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr ""
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -1018,25 +1089,6 @@ msgstr "Кооз бактар"
msgid "Waving Plants"
msgstr "Кооз бактар"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Ооба"
-
-#: builtin/mainmenu/tab_simple_main.lua
-#, fuzzy
-msgid "Config mods"
-msgstr "ЫраÑтоо"
-
-#: builtin/mainmenu/tab_simple_main.lua
-#, fuzzy
-msgid "Main"
-msgstr "Башкы меню"
-
-#: builtin/mainmenu/tab_simple_main.lua
-#, fuzzy
-msgid "Start Singleplayer"
-msgstr "Бир кишилик"
-
#: src/client/client.cpp
#, fuzzy
msgid "Connection timed out."
@@ -1210,13 +1262,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1359,34 +1411,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1788,6 +1812,24 @@ msgstr ""
msgid "Zoom"
msgstr "МаÑштаб"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "СырÑөздөр дал келген жок!"
@@ -2044,12 +2086,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2157,6 +2193,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2396,11 +2436,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Bumpmapping"
-msgstr "Mip-текÑтуралоо"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2471,16 +2506,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2646,6 +2671,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "Улантуу"
@@ -2705,7 +2734,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2713,7 +2744,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2815,12 +2848,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2892,6 +2919,11 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
+msgid "Dig key"
+msgstr "Оң меню"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Digging particles"
msgstr "Баарын күйгүзүү"
@@ -2953,7 +2985,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3041,14 +3073,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -3059,18 +3083,6 @@ msgstr "Убалды күйгүзүү"
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3087,12 +3099,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3102,7 +3108,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3406,10 +3412,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3463,8 +3465,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3935,6 +3937,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -4016,6 +4022,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4115,6 +4128,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4674,11 +4694,6 @@ msgid "Main menu script"
msgstr "Башкы меню"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Башкы меню"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4692,6 +4707,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4855,7 +4878,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4904,6 +4927,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5136,14 +5166,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5169,10 +5191,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5198,34 +5216,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5292,6 +5282,15 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Жаратуу режими"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5450,10 +5449,6 @@ msgid "Right key"
msgstr "Оң меню"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5712,6 +5707,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5845,10 +5850,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5942,6 +5943,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6000,8 +6005,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6027,15 +6032,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6172,6 +6182,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6380,6 +6401,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6503,6 +6530,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6515,20 +6560,64 @@ msgid "cURL timeout"
msgstr ""
#, fuzzy
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Тез баÑууга которуу"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Бир кишилик"
+
+#~ msgid "Back"
+#~ msgstr "Ðртка"
#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "Дүйнөнү тандаңыз:"
+#~ msgid "Bump Mapping"
+#~ msgstr "Mip-текÑтуралоо"
#, fuzzy
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Убалды күйгүзүү"
+#~ msgid "Bumpmapping"
+#~ msgstr "Mip-текÑтуралоо"
+
+#, fuzzy
+#~ msgid "Config mods"
+#~ msgstr "ЫраÑтоо"
+
+#~ msgid "Configure"
+#~ msgstr "ЫраÑтоо"
#, fuzzy
#~ msgid "Enable VBO"
#~ msgstr "Баарын күйгүзүү"
-#~ msgid "Back"
-#~ msgstr "Ðртка"
+#, fuzzy
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Убалды күйгүзүү"
+
+#, fuzzy
+#~ msgid "Main"
+#~ msgstr "Башкы меню"
+
+#, fuzzy
+#~ msgid "Main menu style"
+#~ msgstr "Башкы меню"
+
+#~ msgid "Name/Password"
+#~ msgstr "Ðты/ÑырÑөзү"
+
+#~ msgid "No"
+#~ msgstr "Жок"
+
+#, fuzzy
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Бир кишилик"
+
+#, fuzzy
+#~ msgid "Select Package File:"
+#~ msgstr "Дүйнөнү тандаңыз:"
+
+#, fuzzy
+#~ msgid "Start Singleplayer"
+#~ msgstr "Бир кишилик"
+
+#, fuzzy
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Тез баÑууга которуу"
+
+#~ msgid "Yes"
+#~ msgstr "Ооба"
diff --git a/po/lt/minetest.po b/po/lt/minetest.po
index c4c658629..98bcff78d 100644
--- a/po/lt/minetest.po
+++ b/po/lt/minetest.po
@@ -2,40 +2,36 @@ msgid ""
msgstr ""
"Project-Id-Version: Lithuanian (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-05-10 12:32+0000\n"
-"Last-Translator: restcoser <restcoser.mail@gmail.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-23 15:50+0000\n"
+"Last-Translator: Kornelijus TvarijanaviÄius <kornelitvari@protonmail.com>\n"
"Language-Team: Lithuanian <https://hosted.weblate.org/projects/minetest/"
"minetest/lt/>\n"
"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > "
-"19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? "
-"1 : 2);\n"
-"X-Generator: Weblate 4.1-dev\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
+"%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Weblate 4.5\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
msgstr "Prisikelti"
#: builtin/client/death_formspec.lua src/client/game.cpp
-#, fuzzy
msgid "You died"
-msgstr "Jūs numirėte."
+msgstr "Jūs numirėte"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
msgstr ""
#: builtin/fstk/ui.lua
-#, fuzzy
msgid "An error occurred in a Lua script:"
-msgstr "Klaida įvyko Lua scenarijuje, tokiame kaip papildinys:"
+msgstr "Įvyko klaida Lua skripte:"
#: builtin/fstk/ui.lua
-#, fuzzy
msgid "An error occurred:"
msgstr "Įvyko klaida:"
@@ -51,10 +47,6 @@ msgstr "Prisijungti iš naujo"
msgid "The server has requested a reconnect:"
msgstr "Serveris paprašė prisijungti iš naujo:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Įkeliama..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Neatitinka protokolo versija. "
@@ -68,20 +60,15 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Serveris palaiko protokolo versijas nuo $1 iki $2 "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Pabandykite dar kart įjungti viešą serverių sąrašą ir patikrinkite savo "
-"interneto ryšį."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Mes palaikome tik $1 protokolo versijÄ…."
#: builtin/mainmenu/common.lua
msgid "We support protocol versions between version $1 and $2."
-msgstr "Mes palaikome protokolo versijas nuo $1 iki $2."
+msgstr "Mes palaikome protokolo versijas tarp $1 ir $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -89,20 +76,18 @@ msgstr "Mes palaikome protokolo versijas nuo $1 iki $2."
#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
#: src/gui/guiPasswordChange.cpp
msgid "Cancel"
-msgstr "Atsisakyti"
+msgstr "Atšaukti"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
-#, fuzzy
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
-msgstr "Priklauso:"
+msgstr "Priklauso nuo:"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "Disable all"
-msgstr "Išjungti papildinį"
+msgstr "Išjungti visus papildinius"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "Disable modpack"
msgstr "Išjungti papildinį"
@@ -111,9 +96,8 @@ msgid "Enable all"
msgstr "Įjungti visus"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "Enable modpack"
-msgstr "Pervadinti papildinių paką:"
+msgstr "Aktyvuoti papildinį"
#: builtin/mainmenu/dlg_config_world.lua
#, fuzzy
@@ -137,19 +121,16 @@ msgid "No (optional) dependencies"
msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No game description provided."
-msgstr "Papildinio aprašymas nepateiktas"
+msgstr "Nepateiktas žaidimo aprašymas."
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No hard dependencies"
-msgstr "Priklauso:"
+msgstr "Nėra būtinų priklausomybių"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No modpack description provided."
-msgstr "Papildinio aprašymas nepateiktas"
+msgstr "Nepateiktas papildinio aprašymas."
#: builtin/mainmenu/dlg_config_world.lua
msgid "No optional dependencies"
@@ -173,15 +154,55 @@ msgid "enabled"
msgstr "įjungtas"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 atsiunÄiama..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
+msgid "Already installed"
+msgstr "Klavišas jau naudojamas"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
msgid "Back to Main Menu"
msgstr "Pagrindinis meniu"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "SlÄ—pti vidinius"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -205,6 +226,16 @@ msgid "Install"
msgstr "Įdiegti"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Įdiegti"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Inicijuojami mazgai"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Papildiniai"
@@ -218,9 +249,25 @@ msgid "No results"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Ieškoti"
+#, fuzzy
+msgid "No updates"
+msgstr "Atnaujinti"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
@@ -237,7 +284,11 @@ msgid "Update"
msgstr "Atnaujinti"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -277,9 +328,8 @@ msgid "Create"
msgstr "Sukurti"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "Papildinio informacija:"
+msgstr "Dekoracijos"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -543,14 +593,16 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
-#, fuzzy
+msgid "Search"
+msgstr "Ieškoti"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
-msgstr "Pasirinkite papildinio failÄ…:"
+msgstr "Pasirinkite aplankÄ…"
#: builtin/mainmenu/dlg_settings_advanced.lua
-#, fuzzy
msgid "Select file"
-msgstr "Pasirinkite papildinio failÄ…:"
+msgstr "Pasirinkite failÄ…"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@@ -639,11 +691,9 @@ msgstr ""
"paketui $1"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "Install: Unsupported file type \"$1\" or broken archive"
msgstr ""
-"\n"
-"Papildinio diegimas: nepalaikomas failo tipas „$1“, arba sugadintas archyvas"
+"Papildinio diegimas: nepalaikomas failo tipas „$1“ arba sugadintas archyvas"
#: builtin/mainmenu/pkgmgr.lua
#, fuzzy
@@ -677,6 +727,20 @@ msgstr "Nepavyko įdiegti $1 į $2"
msgid "Unable to install a modpack as a $1"
msgstr "Nepavyko įdiegti $1 į $2"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Įkeliama..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Pabandykite dar kart įjungti viešą serverių sąrašą ir patikrinkite savo "
+"interneto ryšį."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -687,9 +751,8 @@ msgid "Content"
msgstr "Tęsti"
#: builtin/mainmenu/tab_content.lua
-#, fuzzy
msgid "Disable Texture Pack"
-msgstr "Pasirinkite tekstūros paketą:"
+msgstr "Pasirinkite tekstūros paketą"
#: builtin/mainmenu/tab_content.lua
#, fuzzy
@@ -737,6 +800,17 @@ msgid "Credits"
msgstr "PadÄ—kos"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Pasirinkite aplankÄ…"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Ankstesni bendradarbiai"
@@ -753,14 +827,10 @@ msgid "Bind Address"
msgstr "Susieti adresÄ…"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Konfigūruoti"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Kūrybinė veiksena"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Leisti sužeidimus"
@@ -779,8 +849,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Vardas/slaptažodis"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -792,6 +862,11 @@ msgstr "Nesukurtas ar pasirinktas joks pasaulis!"
#: builtin/mainmenu/tab_local.lua
#, fuzzy
+msgid "Password"
+msgstr "Naujas slaptažodis"
+
+#: builtin/mainmenu/tab_local.lua
+#, fuzzy
msgid "Play Game"
msgstr "Pradėti žaidimą"
@@ -800,6 +875,11 @@ msgid "Port"
msgstr "Prievadas"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Pasirinkite pasaulį:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Pasirinkite pasaulį:"
@@ -813,28 +893,26 @@ msgid "Start Game"
msgstr "SlÄ—pti vidinius"
#: builtin/mainmenu/tab_online.lua
-#, fuzzy
msgid "Address / Port"
-msgstr "Adresas / Prievadas :"
+msgstr "Adresas / Prievadas"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Jungtis"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Kūrybinė veiksena"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Žalojimas įjungtas"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-#, fuzzy
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
-msgstr "MÄ—giami:"
+msgstr "Pašalinti iš mėgiamų"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
#, fuzzy
msgid "Favorite"
msgstr "MÄ—giami:"
@@ -844,17 +922,16 @@ msgstr "MÄ—giami:"
msgid "Join Game"
msgstr "SlÄ—pti vidinius"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-#, fuzzy
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
-msgstr "Vardas / Slaptažodis :"
+msgstr "Vardas / Slaptažodis"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP įjungtas"
@@ -884,11 +961,6 @@ msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Atstatyti vieno žaidėjo pasaulį"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
@@ -896,10 +968,6 @@ msgstr ""
msgid "Bilinear Filter"
msgstr "„Bilinear“ filtras"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Nustatyti klavišus"
@@ -915,10 +983,6 @@ msgid "Fancy Leaves"
msgstr "Nepermatomi lapai"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr ""
@@ -927,10 +991,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Ne"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr ""
@@ -960,21 +1020,12 @@ msgstr "Nepermatomi lapai"
msgid "Opaque Water"
msgstr "Nepermatomas vanduo"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "ParalaksinÄ— okliuzija"
-
#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "Particles"
msgstr "Įjungti visus"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
-msgid "Reset singleplayer world"
-msgstr "Atstatyti vieno žaidėjo pasaulį"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr ""
@@ -987,6 +1038,10 @@ msgid "Shaders"
msgstr "Šešėliavimai"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr ""
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -1034,22 +1089,6 @@ msgstr "Nepermatomi lapai"
msgid "Waving Plants"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Taip"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Konfigūruoti papildinius"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Pagrindinis"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Atstatyti vieno žaidėjo pasaulį"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "BaigÄ—si prijungimo laikas."
@@ -1132,33 +1171,28 @@ msgstr ""
"Patikrinkite debug.txt dÄ—l papildomos informacijos."
#: src/client/game.cpp
-#, fuzzy
msgid "- Address: "
-msgstr "Susieti adresÄ…"
+msgstr "- Adresas: "
#: src/client/game.cpp
-#, fuzzy
msgid "- Creative Mode: "
-msgstr "Kūrybinė veiksena"
+msgstr "- Kūrybinis režimas "
#: src/client/game.cpp
-#, fuzzy
msgid "- Damage: "
-msgstr "Leisti sužeidimus"
+msgstr "- Sužeidimai: "
#: src/client/game.cpp
msgid "- Mode: "
msgstr ""
#: src/client/game.cpp
-#, fuzzy
msgid "- Port: "
-msgstr "Prievadas"
+msgstr "- Prievadas: "
#: src/client/game.cpp
-#, fuzzy
msgid "- Public: "
-msgstr "Viešas"
+msgstr "- Viešas: "
#. ~ PvP = Player versus Player
#: src/client/game.cpp
@@ -1166,9 +1200,8 @@ msgid "- PvP: "
msgstr ""
#: src/client/game.cpp
-#, fuzzy
msgid "- Server Name: "
-msgstr "Serveris"
+msgstr "- Serverio pavadinimas: "
#: src/client/game.cpp
#, fuzzy
@@ -1223,27 +1256,30 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
"Numatytas valdymas:\n"
-"- WASD: judÄ—ti\n"
-"- Tarpas: šokti/lipti\n"
-"- Lyg2: leistis/eiti žemyn\n"
-"- Q: išmesti elementą\n"
-"- I: inventorius\n"
+"- %s: judėti į priekį\n"
+"- %s: judÄ—ti atgal\n"
+"- %s: judėti į kairę\n"
+"- %s: judėti į dešinę\n"
+"- %s: šokti/lipti\n"
+"- %s: leistis/eiti žemyn\n"
+"- %s: išmesti daiktą\n"
+"- %s: inventorius\n"
"- Pelė: sukti/žiūrėti\n"
"- PelÄ—s kairys: kasti/smugiuoti\n"
"- Pelės dešinys: padėti/naudoti\n"
"- PelÄ—s ratukas: pasirinkti elementÄ…\n"
-"- T: kalbÄ—tis\n"
+"- %s: kalbÄ—tis\n"
#: src/client/game.cpp
msgid "Creating client..."
@@ -1357,9 +1393,8 @@ msgid "Game paused"
msgstr "Žaidimo pavadinimas"
#: src/client/game.cpp
-#, fuzzy
msgid "Hosting server"
-msgstr "Kuriamas serveris...."
+msgstr "Kuriamas serveris"
#: src/client/game.cpp
msgid "Item definitions..."
@@ -1382,34 +1417,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1812,6 +1819,24 @@ msgstr "X mygtukas 2"
msgid "Zoom"
msgstr "Pritraukti"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Slaptažodžiai nesutampa!"
@@ -2022,7 +2047,7 @@ msgstr "Garso lygis: "
#. Don't forget the space.
#: src/gui/modalMenu.cpp
msgid "Enter "
-msgstr "Įvesti"
+msgstr "Įvesti "
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string which needs to contain the translation's
@@ -2068,12 +2093,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2181,6 +2200,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2273,9 +2296,8 @@ msgid "Announce server"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Announce to this serverlist."
-msgstr "Paskelbti Serverį"
+msgstr "Paskelbti tai serverių sąrašui"
#: src/settings_translation_file.cpp
msgid "Append item name"
@@ -2418,10 +2440,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2492,16 +2510,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2641,9 +2649,8 @@ msgid "Connect glass"
msgstr "Jungtis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Connect to external media server"
-msgstr "Jungiamasi prie serverio..."
+msgstr "Prisijungti prie išorinio medijos serverio"
#: src/settings_translation_file.cpp
msgid "Connects glass if supported by node."
@@ -2667,6 +2674,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "Tęsti"
@@ -2726,7 +2737,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2734,7 +2747,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2838,12 +2853,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2915,6 +2924,11 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
+msgid "Dig key"
+msgstr "Dešinėn"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Digging particles"
msgstr "Įjungti visus"
@@ -2975,7 +2989,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2983,9 +2997,8 @@ msgid "Enable joysticks"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Enable mod channels support."
-msgstr "Papildiniai internete"
+msgstr "Įjungti papildinių kanalų palaikymą."
#: src/settings_translation_file.cpp
#, fuzzy
@@ -3065,33 +3078,12 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Enables minimap."
-msgstr "Leisti sužeidimus"
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
+msgstr "Įjungia minimapą."
#: src/settings_translation_file.cpp
msgid ""
@@ -3111,12 +3103,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3126,7 +3112,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3429,10 +3415,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3487,8 +3469,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3959,6 +3941,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -4040,6 +4026,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4139,6 +4132,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4698,11 +4698,6 @@ msgid "Main menu script"
msgstr "Pagrindinis meniu"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Pagrindinis meniu"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4716,6 +4711,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4888,7 +4891,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4937,6 +4940,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5168,14 +5178,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5201,10 +5203,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5230,35 +5228,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "ParalaksinÄ— okliuzija"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5325,6 +5294,15 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Kūrybinė veiksena"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5481,10 +5459,6 @@ msgid "Right key"
msgstr "Dešinėn"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5746,6 +5720,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5879,10 +5863,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5976,6 +5956,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6034,8 +6018,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6061,15 +6045,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6205,6 +6194,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6411,6 +6411,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6534,6 +6540,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6545,27 +6569,66 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Įjungti kinematografinį"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Ar tikrai norite perkurti savo lokalų pasaulį?"
-#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "Pasirinkite papildinio failÄ…:"
+#~ msgid "Back"
+#~ msgstr "Atgal"
+
+#~ msgid "Config mods"
+#~ msgstr "Konfigūruoti papildinius"
+
+#~ msgid "Configure"
+#~ msgstr "Konfigūruoti"
#, fuzzy
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Leisti sužeidimus"
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "AtsiunÄiama $1, praÅ¡ome palaukti..."
#, fuzzy
#~ msgid "Enable VBO"
#~ msgstr "Įjungti papildinį"
#, fuzzy
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "AtsiunÄiama $1, praÅ¡ome palaukti..."
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Leisti sužeidimus"
-#~ msgid "Back"
-#~ msgstr "Atgal"
+#~ msgid "Main"
+#~ msgstr "Pagrindinis"
+
+#, fuzzy
+#~ msgid "Main menu style"
+#~ msgstr "Pagrindinis meniu"
+
+#~ msgid "Name/Password"
+#~ msgstr "Vardas/slaptažodis"
+
+#~ msgid "No"
+#~ msgstr "Ne"
#~ msgid "Ok"
#~ msgstr "Gerai"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "ParalaksinÄ— okliuzija"
+
+#, fuzzy
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "ParalaksinÄ— okliuzija"
+
+#, fuzzy
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Atstatyti vieno žaidėjo pasaulį"
+
+#, fuzzy
+#~ msgid "Select Package File:"
+#~ msgstr "Pasirinkite papildinio failÄ…:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Atstatyti vieno žaidėjo pasaulį"
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Įjungti kinematografinį"
+
+#~ msgid "Yes"
+#~ msgstr "Taip"
diff --git a/po/lv/minetest.po b/po/lv/minetest.po
index 5e63284a3..e1b4de861 100644
--- a/po/lv/minetest.po
+++ b/po/lv/minetest.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-04 16:41+0000\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-07-12 17:41+0000\n"
"Last-Translator: Uko Koknevics <TheZeus121@gmail.com>\n"
"Language-Team: Latvian <https://hosted.weblate.org/projects/minetest/"
"minetest/lv/>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= "
"19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.2-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -52,10 +52,6 @@ msgstr "Atjaunot savienojumu"
msgid "The server has requested a reconnect:"
msgstr "Serveris ir pieprasījis savienojuma atjaunošanu:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "IelÄde..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Protokola versiju neatbilstība. "
@@ -69,12 +65,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Serveris atbalsta protokola versijas starp $1 un $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Pamēģiniet atkÄrtoti ieslÄ“gt publisko serveru sarakstu un pÄrbaudiet "
-"interneta savienojumu."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Mēs atbalstam tikai protokola versiju $1."
@@ -82,7 +72,8 @@ msgstr "Mēs atbalstam tikai protokola versiju $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Mēs atbalstam protokola versijas starp $1 un $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -92,7 +83,8 @@ msgstr "Mēs atbalstam protokola versijas starp $1 un $2."
msgid "Cancel"
msgstr "Atcelt"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Atkarības:"
@@ -166,14 +158,55 @@ msgid "enabled"
msgstr "iespējots"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "IelÄde..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Visi papildinÄjumi"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Šis taustiņš jau tiek izmantots"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Atpakaļ uz Galveno Izvēlni"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "SpÄ“lÄ“t (kÄ serveris)"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -196,6 +229,16 @@ msgid "Install"
msgstr "Instalēt"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Instalēt"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "NeobligÄtÄs atkarÄ«bas:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Modi"
@@ -209,9 +252,25 @@ msgid "No results"
msgstr "Nav resultÄtu"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Meklēt"
+#, fuzzy
+msgid "No updates"
+msgstr "Atjaunot"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -226,7 +285,11 @@ msgid "Update"
msgstr "Atjaunot"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -267,9 +330,8 @@ msgid "Create"
msgstr "Izveidot"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "InformÄcija:"
+msgstr "DekorÄcijas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -527,6 +589,10 @@ msgid "Scale"
msgstr "Mērogs"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Meklēt"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Izvēlēties mapi"
@@ -643,6 +709,21 @@ msgstr "NeizdevÄs instalÄ“t modu kÄ $1"
msgid "Unable to install a modpack as a $1"
msgstr "NeizdevÄs instalÄ“t modu komplektu kÄ $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "IelÄde..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Klienta puses skriptēšana ir atspējota"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Pamēģiniet atkÄrtoti ieslÄ“gt publisko serveru sarakstu un pÄrbaudiet "
+"interneta savienojumu."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "PÄrlÅ«kot tieÅ¡saistes saturu"
@@ -696,6 +777,17 @@ msgid "Credits"
msgstr "Pateicības"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Izvēlēties mapi"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Bijušie dalībnieki"
@@ -712,14 +804,10 @@ msgid "Bind Address"
msgstr "Piesaistes adrese"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Iestatīt"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Radošais režīms"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "IespÄ“jot bojÄjumus"
@@ -736,8 +824,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "VÄrds/Parole"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -748,6 +836,11 @@ msgid "No world created or selected!"
msgstr "Pasaule nav ne izveidota, ne izvēlēta!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "JaunÄ parole"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Spēlēt"
@@ -756,6 +849,11 @@ msgid "Port"
msgstr "Ports"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Izvēlieties pasauli:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Izvēlieties pasauli:"
@@ -771,23 +869,23 @@ msgstr "SÄkt spÄ“li"
msgid "Address / Port"
msgstr "Adrese / Ports"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Pieslēgties"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Radošais režīms"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "BojÄjumi iespÄ“joti"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Izdzēst no izlases"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Pievienot izlasei"
@@ -795,16 +893,16 @@ msgstr "Pievienot izlasei"
msgid "Join Game"
msgstr "Pievienoties spēlei"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "VÄrds / Parole"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Pings"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP iespējots"
@@ -833,11 +931,6 @@ msgid "Antialiasing:"
msgstr "GludinÄÅ¡ana:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
-"Vai esat pÄrliecinÄts, ka vÄ“laties atiestatÄ«t savu viena spÄ“lÄ“tÄja pasauli?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "AtcerÄ“ties ekrÄna izmÄ“ru"
@@ -845,10 +938,6 @@ msgstr "AtcerÄ“ties ekrÄna izmÄ“ru"
msgid "Bilinear Filter"
msgstr "BilineÄrais filtrs"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "“Bump Mappingâ€"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Nomainīt kontroles"
@@ -862,10 +951,6 @@ msgid "Fancy Leaves"
msgstr "Skaistas lapas"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Izveidot normÄl-kartes"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "“Mipmapâ€"
@@ -874,10 +959,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "“Mipmap†+ anizotr. filtrs"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "NÄ“"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Bez filtra"
@@ -905,19 +986,11 @@ msgstr "Necaurredzamas lapas"
msgid "Opaque Water"
msgstr "Necaurredzams ūdens"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Tekstūru dziļums"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Daļiņas"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "AtiestatÄ«t viena spÄ“lÄ“tÄja pasauli"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "EkrÄns:"
@@ -930,6 +1003,11 @@ msgid "Shaders"
msgstr "Å eideri"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Å eideri (nepieejami)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Å eideri (nepieejami)"
@@ -973,22 +1051,6 @@ msgstr "Viļņojoši šķidrumi"
msgid "Waving Plants"
msgstr "Viļņojoši augi"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "JÄ"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Iestatīt modus"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "GalvenÄ izvÄ“lne"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "SÄkt viena spÄ“lÄ“tÄja spÄ“li"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Savienojuma noildze."
@@ -1143,20 +1205,20 @@ msgid "Continue"
msgstr "TurpinÄt"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1305,34 +1367,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Minikarte šobrīd atspējota vai nu spēlei, vai modam"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Minikarte paslēpta"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Minikarte radara režīmÄ, palielinÄjums x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Minikarte radara režīmÄ, palielinÄjums x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Minikarte radara režīmÄ, palielinÄjums x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Minikarte virsmas režīmÄ, palielinÄjums x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Minikarte virsmas režīmÄ, palielinÄjums x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Minikarte virsmas režīmÄ, palielinÄjums x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "“Noclip†režīms izslēgts"
@@ -1724,6 +1758,25 @@ msgstr "X Poga 2"
msgid "Zoom"
msgstr "Zoom"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Minikarte paslēpta"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Minikarte radara režīmÄ, palielinÄjums x1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Minikarte virsmas režīmÄ, palielinÄjums x1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Minikarte virsmas režīmÄ, palielinÄjums x1"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Paroles nesakrīt!"
@@ -1976,12 +2029,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2088,6 +2135,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2321,10 +2372,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2395,16 +2442,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2556,6 +2593,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2612,7 +2653,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2620,7 +2663,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2720,12 +2765,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2796,6 +2835,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2856,7 +2899,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2944,14 +2987,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2961,18 +2996,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2989,12 +3012,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3004,7 +3021,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3306,10 +3323,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3363,8 +3376,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3835,6 +3848,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3915,6 +3932,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4014,6 +4038,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4570,10 +4601,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4587,6 +4614,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4750,7 +4785,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4799,6 +4834,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5028,14 +5070,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5061,10 +5095,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5090,34 +5120,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5183,6 +5185,14 @@ msgid "Pitch move mode"
msgstr "KustÄ«ba uz augÅ¡u/leju pÄ“c skatīšanÄs virziena"
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5340,10 +5350,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5595,6 +5601,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5724,10 +5740,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5821,6 +5833,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5879,8 +5895,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5906,15 +5922,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6050,6 +6071,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6252,6 +6284,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6374,6 +6412,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6385,11 +6441,61 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr ""
+#~ "Vai esat pÄrliecinÄts, ka vÄ“laties atiestatÄ«t savu viena spÄ“lÄ“tÄja "
+#~ "pasauli?"
+
#~ msgid "Back"
#~ msgstr "Atpakaļ"
+#~ msgid "Bump Mapping"
+#~ msgstr "“Bump Mappingâ€"
+
+#~ msgid "Config mods"
+#~ msgstr "Iestatīt modus"
+
+#~ msgid "Configure"
+#~ msgstr "Iestatīt"
+
#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr "LejuplÄdÄ“jas un instalÄ“jas $1, lÅ«dzu uzgaidiet..."
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Izveidot normÄl-kartes"
+
+#~ msgid "Main"
+#~ msgstr "GalvenÄ izvÄ“lne"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Minikarte radara režīmÄ, palielinÄjums x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Minikarte radara režīmÄ, palielinÄjums x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Minikarte virsmas režīmÄ, palielinÄjums x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Minikarte virsmas režīmÄ, palielinÄjums x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "VÄrds/Parole"
+
+#~ msgid "No"
+#~ msgstr "NÄ“"
+
#~ msgid "Ok"
#~ msgstr "Ok"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Tekstūru dziļums"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "AtiestatÄ«t viena spÄ“lÄ“tÄja pasauli"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "SÄkt viena spÄ“lÄ“tÄja spÄ“li"
+
+#~ msgid "Yes"
+#~ msgstr "JÄ"
diff --git a/po/minetest.pot b/po/minetest.pot
index 3f343389a..9881f5032 100644
--- a/po/minetest.pot
+++ b/po/minetest.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -49,14 +49,6 @@ msgstr ""
msgid "An error occurred:"
msgstr ""
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr ""
-
-#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-
#: builtin/mainmenu/common.lua
msgid "Server supports protocol versions between $1 and $2. "
msgstr ""
@@ -105,7 +97,8 @@ msgstr ""
msgid "Optional dependencies:"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr ""
@@ -118,7 +111,8 @@ msgstr ""
msgid "Save"
msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -185,8 +179,55 @@ msgid "Failed to download $1"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
+msgid "Already installed"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
@@ -194,6 +235,24 @@ msgid "Back to Main Menu"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "No updates"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "No results"
msgstr ""
@@ -206,7 +265,7 @@ msgid "Downloading..."
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Install"
+msgid "Queued"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
@@ -218,7 +277,7 @@ msgid "Uninstall"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -564,6 +623,10 @@ msgid "Select file"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr ""
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "< Back to Settings page"
msgstr ""
@@ -627,6 +690,18 @@ msgstr ""
msgid "$1 mods"
msgstr ""
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
#: builtin/mainmenu/tab_content.lua
msgid "Installed Packages:"
msgstr ""
@@ -687,12 +762,22 @@ msgstr ""
msgid "Previous Contributors"
msgstr ""
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr ""
+
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
+msgid "Select Mods"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -703,11 +788,11 @@ msgstr ""
msgid "Select World:"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Creative Mode"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr ""
@@ -724,7 +809,11 @@ msgid "Announce Server"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
+msgid "Name"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
+msgid "Password"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -755,36 +844,36 @@ msgstr ""
msgid "Address / Port"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr ""
@@ -853,18 +942,6 @@ msgid "8x"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Smooth Lighting"
msgstr ""
@@ -905,11 +982,11 @@ msgid "Shaders"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Shaders (unavailable)"
+msgid "Shaders (experimental)"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
+msgid "Shaders (unavailable)"
msgstr ""
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
@@ -924,23 +1001,11 @@ msgstr ""
msgid "Touchthreshold: (px)"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
msgid "Tone Mapping"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Waving Liquids"
msgstr ""
@@ -960,18 +1025,6 @@ msgstr ""
msgid "Settings"
msgstr ""
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr ""
@@ -1001,10 +1054,6 @@ msgid "Main Menu"
msgstr ""
#: src/client/clientlauncher.cpp
-msgid "Player name too long."
-msgstr ""
-
-#: src/client/clientlauncher.cpp
msgid "Connection error (timed out?)"
msgstr ""
@@ -1017,6 +1066,10 @@ msgid "Please choose a name!"
msgstr ""
#: src/client/clientlauncher.cpp
+msgid "Player name too long."
+msgstr ""
+
+#: src/client/clientlauncher.cpp
msgid "No world selected and no address provided. Nothing to do."
msgstr ""
@@ -1174,34 +1227,6 @@ msgid "Automatic forward disabled"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Minimap currently disabled by game or mod"
msgstr ""
@@ -1292,13 +1317,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1678,6 +1703,24 @@ msgstr ""
msgid "OEM Clear"
msgstr ""
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp
#, c-format
msgid ""
@@ -2014,14 +2057,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
+msgid "Place repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -2116,6 +2158,14 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -2195,6 +2245,28 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Inventory key"
msgstr ""
@@ -2892,6 +2964,16 @@ msgid "Basic"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "VBO"
msgstr ""
@@ -3045,8 +3127,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
msgstr ""
#: src/settings_translation_file.cpp
@@ -3093,90 +3180,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Waving Nodes"
msgstr ""
@@ -3269,11 +3272,11 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -3446,8 +3449,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3584,7 +3587,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3592,7 +3597,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3763,6 +3770,12 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Menus"
msgstr ""
@@ -4345,6 +4358,19 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Default game"
msgstr ""
@@ -4414,7 +4440,7 @@ msgid "Creative"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -4777,8 +4803,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -4820,6 +4846,19 @@ msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Dedicated server step"
msgstr ""
@@ -4847,6 +4886,16 @@ msgid "Length of time between Active Block Modifier (ABM) execution cycles"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "NodeTimer interval"
msgstr ""
@@ -5200,20 +5249,6 @@ msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Main menu script"
msgstr ""
@@ -6324,3 +6359,14 @@ msgid ""
"These flags are independent from Minetest versions,\n"
"so see a full list at https://content.minetest.net/help/content_flags/"
msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
diff --git a/po/ms/minetest.po b/po/ms/minetest.po
index fb3989a3f..d35e063cc 100644
--- a/po/ms/minetest.po
+++ b/po/ms/minetest.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Malay (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-07-08 20:47+0000\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-01 05:52+0000\n"
"Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat "
"Yasuyoshi <translation@mnh48.moe>\n"
"Language-Team: Malay <https://hosted.weblate.org/projects/minetest/minetest/"
@@ -13,7 +13,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -45,11 +45,7 @@ msgstr "Sambung semula"
#: builtin/fstk/ui.lua
msgid "The server has requested a reconnect:"
-msgstr "Pelayan permainan meminta anda untuk menyambung semula:"
-
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Sedang memuatkan..."
+msgstr "Pelayan meminta anda untuk menyambung semula:"
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
@@ -57,17 +53,11 @@ msgstr "Versi protokol tidak serasi. "
#: builtin/mainmenu/common.lua
msgid "Server enforces protocol version $1. "
-msgstr "Pelayan permainan menguatkuasakan protokol versi $1. "
+msgstr "Pelayan menguatkuasakan protokol versi $1. "
#: builtin/mainmenu/common.lua
msgid "Server supports protocol versions between $1 and $2. "
-msgstr "Pelayan permainan menyokong protokol versi $1 hingga $2. "
-
-#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Cuba aktifkan semula senarai pelayan awam dan periksa sambungan internet "
-"anda."
+msgstr "Pelayan menyokong protokol versi $1 hingga $2. "
#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
@@ -77,7 +67,8 @@ msgstr "Kami hanya menyokong protokol versi $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Kami menyokong protokol versi $1 hingga $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -87,7 +78,8 @@ msgstr "Kami menyokong protokol versi $1 hingga $2."
msgid "Cancel"
msgstr "Batal"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Kebergantungan:"
@@ -161,14 +153,54 @@ msgid "enabled"
msgstr "Dibolehkan"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" sudah wujud. Adakah anda ingin tulis gantinya?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "Kebergantungan $1 dan $2 akan dipasangkan."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 oleh $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 sedang muat turun,\n"
+"$2 menunggu giliran"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 memuat turun..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "$1 memerlukan kebergantungan yang tidak dijumpai."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 akan dipasangkan, dan kebergantungan $2 akan dilangkau."
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Semua pakej"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Sudah dipasang"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Kembali ke Menu Utama"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Permainan Asas:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr "ContentDB tidak tersedia apabila Minetest dikompil tanpa cURL"
@@ -190,6 +222,14 @@ msgid "Install"
msgstr "Pasang"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "Pasang $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "Pasang kebergantungan yang hilang"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mods"
@@ -203,9 +243,24 @@ msgid "No results"
msgstr "Tiada hasil"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Cari"
+msgid "No updates"
+msgstr "Tiada kemas kini"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "Tidak dijumpai"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Tulis ganti"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "Sila semak dan pastikan permainan asas itu betul."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "Menunggu giliran"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -220,8 +275,12 @@ msgid "Update"
msgstr "Kemas kini"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "Lihat"
+msgid "Update All [$1]"
+msgstr "Kemas Kini Semua [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Lihat maklumat lanjut dalam pelayar sesawang"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -519,6 +578,10 @@ msgid "Scale"
msgstr "Skala"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Cari"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Pilih direktori"
@@ -633,6 +696,21 @@ msgstr "Gagal memasang mods sebagai $1"
msgid "Unable to install a modpack as a $1"
msgstr "Gagal memasang pek mods sebagai $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Sedang memuatkan..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Skrip pihak klien dilumpuhkan"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Cuba aktifkan semula senarai pelayan awam dan periksa sambungan internet "
+"anda."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Layari kandungan dalam talian"
@@ -686,6 +764,18 @@ msgid "Credits"
msgstr "Penghargaan"
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr "Buka Direktori Data Pengguna"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Membuka direktori yang mengandungi dunia, permainan, mods, dan pek\n"
+"tekstur yang disediakan oleh pengguna, dalam pengurus / pelayar fail."
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Penyumbang Terdahulu"
@@ -702,14 +792,10 @@ msgid "Bind Address"
msgstr "Alamat Ikatan"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Konfigurasi"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Mod Kreatif"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Boleh Cedera"
@@ -726,8 +812,8 @@ msgid "Install games from ContentDB"
msgstr "Pasangkan permainan daripada ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Nama/Kata laluan"
+msgid "Name"
+msgstr "Nama"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -738,6 +824,10 @@ msgid "No world created or selected!"
msgstr "Tiada dunia dicipta atau dipilih!"
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "Kata Laluan"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Mula Main"
@@ -746,6 +836,10 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "Pilih Mods"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Pilih Dunia:"
@@ -761,23 +855,23 @@ msgstr "Mulakan Permainan"
msgid "Address / Port"
msgstr "Alamat / Port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Sambung"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Mod Kreatif"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Boleh Cedera"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Padam Kegemaran"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Kegemaran"
@@ -785,16 +879,16 @@ msgstr "Kegemaran"
msgid "Join Game"
msgstr "Sertai Permainan"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Nama / Kata laluan"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "Boleh Berlawan PvP"
@@ -823,10 +917,6 @@ msgid "Antialiasing:"
msgstr "Antialias:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Adakah anda mahu set semula dunia pemain perseorangan?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Autosimpan Saiz Skrin"
@@ -834,10 +924,6 @@ msgstr "Autosimpan Saiz Skrin"
msgid "Bilinear Filter"
msgstr "Penapisan Bilinear"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Pemetaan Benggol"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Tukar Kekunci"
@@ -851,10 +937,6 @@ msgid "Fancy Leaves"
msgstr "Daun Beragam"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Jana Peta Normal"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Peta Mip"
@@ -863,10 +945,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Peta Mip + Penapisan Aniso"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Tidak"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Tiada Tapisan"
@@ -894,19 +972,11 @@ msgstr "Daun Legap"
msgid "Opaque Water"
msgstr "Air Legap"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Oklusi Paralaks"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Partikel"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Set semula dunia pemain perseorangan"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Skrin:"
@@ -919,6 +989,10 @@ msgid "Shaders"
msgstr "Pembayang"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr "Pembayang (dalam ujikaji)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Pembayang (tidak tersedia)"
@@ -962,22 +1036,6 @@ msgstr "Cecair Bergelora"
msgid "Waving Plants"
msgstr "Tumbuhan Bergoyang"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Ya"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Konfigurasi mods"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Utama"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Mula Main Seorang"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Sambungan tamat tempoh."
@@ -1140,28 +1198,28 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
-"Kawalan:\n"
+"Controls:\n"
"- %s: bergerak ke depan\n"
"- %s: bergerak ke belakang\n"
"- %s: bergerak ke kiri\n"
"- %s: bergerak ke kanan\n"
"- %s: lompat/naik atas\n"
+"- %s: gali/ketuk\n"
+"- %s: letak/guna\n"
"- %s: selinap/turun bawah\n"
"- %s: jatuhkan item\n"
"- %s: inventori\n"
"- Tetikus: pusing/lihat sekeliling\n"
-"- Tetikus kiri: gali/ketuk\n"
-"- Tetikus kanan: letak/guna\n"
"- Roda tetikus: pilih item\n"
"- %s: sembang\n"
@@ -1296,34 +1354,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Peta mini dilumpuhkan oleh permainan atau mods"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Peta mini disembunyikan"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Peta mini dalam mod radar, Zum 1x"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Peta mini dalam mod radar, Zum 2x"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Peta mini dalam mod radar, Zum 4x"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Peta mini dalam mod permukaan, Zum 1x"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Peta mini dalam mod permukaan, Zum 2x"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Peta mini dalam mod permukaan, Zum 4x"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Mod tembus blok dilumpuhkan"
@@ -1715,6 +1745,24 @@ msgstr "Butang X 2"
msgid "Zoom"
msgstr "Zum"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Peta mini disembunyikan"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Peta mini dalam mod radar, Zum x%d"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Peta mini dalam mod permukaan, Zum x%d"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "Peta mini dalam mod tekstur"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Kata laluan tidak padan!"
@@ -1987,14 +2035,6 @@ msgstr ""
"tetapkan kesemua 3 nombor yang sama untuk bentuk mentah."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = oklusi paralaks dengan maklumat cerun (lebih cepat).\n"
-"1 = pemetaan bentuk muka bumi (lebih lambat, lebih tepat)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "Hingar 2D yang mengawal bentuk/saiz gunung rabung."
@@ -2120,12 +2160,16 @@ msgid "ABM interval"
msgstr "Selang masa ABM"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr "Peruntukan masa ABM"
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
-msgstr "Had mutlak untuk blok dibarisgilirkan untuk timbul"
+msgstr "Had mutlak untuk blok menunggu giliran untuk timbul"
#: src/settings_translation_file.cpp
msgid "Acceleration in air"
-msgstr "Pecutan dalam udara"
+msgstr "Pecutan di udara"
#: src/settings_translation_file.cpp
msgid "Acceleration of gravity, in nodes per second per second."
@@ -2154,7 +2198,7 @@ msgid ""
"Note that the address field in the main menu overrides this setting."
msgstr ""
"Alamat untuk menyambung.\n"
-"Biar kosong untuk memulakan pelayan permainan tempatan.\n"
+"Biar kosong untuk memulakan pelayan tempatan.\n"
"Ambil perhatian bahawa medan alamat dalam menu utama mengatasi tetapan ini."
#: src/settings_translation_file.cpp
@@ -2225,11 +2269,11 @@ msgstr "Penapisan anisotropik"
#: src/settings_translation_file.cpp
msgid "Announce server"
-msgstr "Mengumumkan pelayan permainan"
+msgstr "Umumkan pelayan"
#: src/settings_translation_file.cpp
msgid "Announce to this serverlist."
-msgstr "Mengumumkan ke senarai pelayan ini."
+msgstr "Umumkan ke senarai pelayan ini."
#: src/settings_translation_file.cpp
msgid "Append item name"
@@ -2277,8 +2321,8 @@ msgstr ""
"akan dihantar kepada klien.\n"
"Nilai lebih kecil berkemungkinan boleh meningkatkan prestasi dengan banyak,\n"
"dengan mengorbankan glic penerjemahan tampak (sesetengah blok tidak akan\n"
-"diterjemah di bawah air dan dalam gua, kekadang turut berlaku atas daratan)."
-"\n"
+"diterjemah di bawah air dan dalam gua, kekadang turut berlaku atas "
+"daratan).\n"
"Menetapkan nilai ini lebih bear daripada nilai max_block_send_distance akan\n"
"melumpuhkan pengoptimunan ini.\n"
"Nyatakan dalam unit blokpeta (16 nod)."
@@ -2380,10 +2424,6 @@ msgid "Builtin"
msgstr "Terbina dalam"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Pemetaan timbul"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2461,22 +2501,6 @@ msgstr ""
"Di mana 0.0 ialah aras cahaya minimum, 1.0 ialah maksimum."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Mengubah antara muka menu utama:\n"
-"- Penuh: Banyak dunia pemain perseorangan, pilihan permainan, pek "
-"tekstur, dll.\n"
-"- Mudah: Satu dunia pemain perseorangan, tiada pilihan permainan atau pek "
-"tekstur.\n"
-"Mungkin diperlukan untuk skrin yang lebih kecil."
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr "Saiz fon sembang"
@@ -2643,6 +2667,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "Senarai Hitam Bendera ContentDB"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "Muat Turun Serempak Maksimum ContentDB"
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "URL ContentDB"
@@ -2709,16 +2737,24 @@ msgid "Crosshair alpha"
msgstr "Nilai alfa rerambut silang"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr "Nilai alfa rerambut silang (kelegapan, antara 0 dan 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Nilai alfa rerambut silang (kelegapan, antara 0 dan 255).\n"
+"Juga mengawal warna rerambut silang objek"
#: src/settings_translation_file.cpp
msgid "Crosshair color"
msgstr "Warna rerambut silang"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Warna bagi kursor rerambut silang (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Warna rerambut silang (R,G,B).\n"
+"Juga mengawal warna rerambut silang objek"
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2823,14 +2859,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Mentakrifkan kedudukan dan rupa bumi bukit dan tasik pilihan."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Mentakrifkan tahap persampelan tekstur.\n"
-"Nilai lebih tinggi menghasilakn peta normal lebih lembut."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Mentakrifkan aras tanah asas."
@@ -2891,8 +2919,8 @@ msgid ""
"Description of server, to be displayed when players join and in the "
"serverlist."
msgstr ""
-"Perihal pelayan permainan, untuk dipaparkan apabila pemain masuk dan juga "
-"dalam senarai pelayan."
+"Perihal pelayan, untuk dipaparkan apabila pemain masuk dan juga dalam "
+"senarai pelayan."
#: src/settings_translation_file.cpp
msgid "Desert noise threshold"
@@ -2911,6 +2939,10 @@ msgid "Desynchronize block animation"
msgstr "Menyahsegerakkan animasi blok"
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr "Kekunci gali"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Partikel ketika menggali"
@@ -2924,9 +2956,7 @@ msgstr "Menolak kata laluan kosong"
#: src/settings_translation_file.cpp
msgid "Domain name of server, to be displayed in the serverlist."
-msgstr ""
-"Nama domain pelayan permainan, untuk dipaparkan dalam senarai pelayan "
-"permainan."
+msgstr "Nama domain pelayan, untuk dipaparkan dalam senarai pelayan."
#: src/settings_translation_file.cpp
msgid "Double tap jump for fly"
@@ -2978,7 +3008,8 @@ msgid "Enable console window"
msgstr "Membolehkan tetingkap konsol"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Membolehkan mod kreatif untuk peta baru dicipta."
#: src/settings_translation_file.cpp
@@ -3091,18 +3122,6 @@ msgid "Enables animation of inventory items."
msgstr "Membolehkan animasi item dalam inventori."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Membolehkan pemetaan timbul pada tekstur. Peta normal perlu disediakan oleh "
-"pek\n"
-"tekstur atau perlu dijana secara automatik.\n"
-"Perlukan pembayang dibolehkan."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Membolehkan pengagregatan jejaring yang diputar di paksi Y (facedir)."
@@ -3112,22 +3131,6 @@ msgstr "Membolehkan peta mini."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Membolehkan penjanaan peta normal secara layang (Kesan cetak timbul).\n"
-"Perlukan pemetaan timbul untuk dibolehkan."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Membolehkan pemetaan oklusi paralaks.\n"
-"Memerlukan pembayang untuk dibolehkan."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3148,14 +3151,6 @@ msgstr "Kaedah entiti"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Pilihan percubaan, mungkin menampakkan ruang yang nyata di\n"
-"antara blok apabila ditetapkan dengan nombor lebih besar daripada 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3171,8 +3166,8 @@ msgstr ""
"bahagian tanah yang lebih rata, sesuai untuk lapisan tanah terapung pejal."
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS di menu jeda"
+msgid "FPS when unfocused or paused"
+msgstr "Bingkai per saat (FPS) apabila permainan hilang fokus atau dijedakan"
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3224,8 +3219,7 @@ msgid ""
"This requires the \"fast\" privilege on the server."
msgstr ""
"Bergerak pantas (dengan kekunci \"istimewa\").\n"
-"Ini memerlukan keistimewaan \"pergerakan pantas\" dalam pelayan permainan "
-"tersebut."
+"Ini memerlukan keistimewaan \"pergerakan pantas\" dalam pelayan tersebut."
#: src/settings_translation_file.cpp
msgid "Field of view"
@@ -3241,9 +3235,8 @@ msgid ""
"the\n"
"Multiplayer Tab."
msgstr ""
-"Fail dalam laluan client/serverlist/ yang mengandungi senarai pelayan "
-"kegemaran\n"
-"yang dipaparkan dalam Tab Pemain Ramai."
+"Fail dalam laluan client/serverlist/ yang mengandungi senarai\n"
+"pelayan kegemaran yang dipaparkan dalam Tab Pemain Ramai."
#: src/settings_translation_file.cpp
msgid "Filler depth"
@@ -3363,15 +3356,15 @@ msgstr "Saiz fon"
#: src/settings_translation_file.cpp
msgid "Font size of the default font in point (pt)."
-msgstr "Saiz fon bagi fon lalai dalan unit poin (pt)."
+msgstr "Saiz fon bagi fon lalai dalan unit titik (pt)."
#: src/settings_translation_file.cpp
msgid "Font size of the fallback font in point (pt)."
-msgstr "Saiz fon bagi fon berbalik dalam unit poin (pt)."
+msgstr "Saiz fon bagi fon berbalik dalam unit titik (pt)."
#: src/settings_translation_file.cpp
msgid "Font size of the monospace font in point (pt)."
-msgstr "Saiz fon bagi fon monospace dalam unit poin (pt)."
+msgstr "Saiz fon bagi fon monospace dalam unit titik (pt)."
#: src/settings_translation_file.cpp
msgid ""
@@ -3508,10 +3501,6 @@ msgid "GUI scaling filter txr2img"
msgstr "Penapis skala GUI txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Jana peta normal"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Panggil balik sejagat"
@@ -3573,16 +3562,15 @@ msgstr "Kekunci menogol papar pandu (HUD)"
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Cara pengendalian panggilan API Lua yang terkecam:\n"
-"- legacy: (cuba untuk) meniru tingkah laku yang lama (lalai untuk "
-"terbitan).\n"
-"- log: meniru dan menulis log runut balik kesemua panggilan terkecam "
-"(lalai untuk nyahpepijat).\n"
-"- error: gugurkan penggunaan panggilan terkecam (dicadangkan untuk "
+"- none: Jangan log panggilan terkecam\n"
+"- log: meniru dan menulis log runut balik bagi panggilan terkecam "
+"(lalai).\n"
+"- error: gugurkan penggunaan panggilan terkecam (digalakkan untuk "
"pembangun mods)."
#: src/settings_translation_file.cpp
@@ -3649,9 +3637,7 @@ msgstr "Hingar kebukitan4"
#: src/settings_translation_file.cpp
msgid "Homepage of server, to be displayed in the serverlist."
-msgstr ""
-"Laman utama pelayan permainan, untuk dipaparkan dalam senarai pelayan "
-"permainan."
+msgstr "Laman utama pelayan, untuk dipaparkan dalam senarai pelayan."
#: src/settings_translation_file.cpp
msgid ""
@@ -3899,7 +3885,7 @@ msgid ""
msgstr ""
"Jika dibolehkan bersama mod terbang, pemain boleh terbang menerusi nod "
"pepejal.\n"
-"Ini memerlukan keistimewaan \"tembus blok\" dalam pelayan permainan tersebut."
+"Ini memerlukan keistimewaan \"tembus blok\" dalam pelayan tersebut."
#: src/settings_translation_file.cpp
msgid ""
@@ -3995,7 +3981,7 @@ msgstr "Dalam Permainan"
#: src/settings_translation_file.cpp
msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
msgstr ""
-"Nilai alfa latar belakang konsol sembang dalam permainan (kelehapan, antara "
+"Nilai alfa latar belakang konsol sembang dalam permainan (kelegapan, antara "
"0 dan 255)."
#: src/settings_translation_file.cpp
@@ -4117,6 +4103,10 @@ msgid "Joystick button repetition interval"
msgstr "Selang masa pengulangan butang kayu bedik"
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr "Zon mati kayu bedik"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Kepekaan frustum kayu bedik"
@@ -4220,6 +4210,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Kekunci untuk menggali.\n"
+"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4362,6 +4362,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Kekunci untuk meletak.\n"
+"Lihat http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4943,7 +4953,7 @@ msgid ""
"- Opaque: disable transparency"
msgstr ""
"Gaya daun:\n"
-"- Beragam: semua susu kelihatan\n"
+"- Beragam: semua sisi kelihatan\n"
"- Ringkas: hanya sisi luar kelihatan, jika special_tiles yang ditentukan "
"digunakan\n"
"- Legap: melumpuhkan lut sinar"
@@ -5110,10 +5120,6 @@ msgid "Main menu script"
msgstr "Skrip menu utama"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Gaya menu utama"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5130,6 +5136,14 @@ msgid "Makes all liquids opaque"
msgstr "Buatkan semua cecair menjadi legap"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr "Tahap Pemampatan Peta untuk Simpanan Cakera"
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr "Tahap Pemampatan Peta untuk Pemindahan Rangkaian"
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Direktori peta"
@@ -5312,8 +5326,10 @@ msgid "Maximum FPS"
msgstr "FPS maksima"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
-msgstr "Bingkai per saat (FPS) maksima apabila permainan dijedakan."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
+msgstr ""
+"Bingkai per saat (FPS) maksimum apabila tetingkap tidak difokuskan, atau "
+"apabila permainan dijedakan."
#: src/settings_translation_file.cpp
msgid "Maximum forceloaded blocks"
@@ -5351,14 +5367,14 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum number of blocks that can be queued for loading."
-msgstr "Jumlah maksimum blok yang boleh dibaris gilirkan untuk dimuatkan."
+msgstr "Jumlah maksimum blok yang boleh menunggu giliran untuk dimuatkan."
#: src/settings_translation_file.cpp
msgid ""
"Maximum number of blocks to be queued that are to be generated.\n"
"This limit is enforced per player."
msgstr ""
-"Jumlah maksimum blok untuk dibarisgilirkan untuk dijana.\n"
+"Jumlah maksimum blok untuk menunggu giliran untuk dijana.\n"
"Had ini dikuatkuasakan per pemain."
#: src/settings_translation_file.cpp
@@ -5366,10 +5382,20 @@ msgid ""
"Maximum number of blocks to be queued that are to be loaded from file.\n"
"This limit is enforced per player."
msgstr ""
-"Jumlah maksimum blok untuk dibarisgilirkan untuk dimuatkan daripada fail.\n"
+"Jumlah maksimum blok untuk menunggu giliran untuk dimuatkan daripada fail.\n"
"Had ini dikuatkuasakan per pemain."
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+"Jumlah maksimum muat turun serempak. Muat turun melebihi had ini akan "
+"ditunggu giliran.\n"
+"Ini mestilah lebih rendah dari curl_parallel_limit."
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr "Jumlah maksimum blokpeta yang dipaksa muat."
@@ -5378,7 +5404,7 @@ msgid ""
"Maximum number of mapblocks for client to be kept in memory.\n"
"Set to -1 for unlimited amount."
msgstr ""
-"Jumlah peta blok maksima yang klien boleh simpan dalam memori.\n"
+"Jumlah blok peta maksimum yang klien boleh simpan dalam memori.\n"
"Tetapkan kepada -1 untuk jumlah tanpa had."
#: src/settings_translation_file.cpp
@@ -5582,8 +5608,8 @@ msgstr ""
msgid ""
"Name of the server, to be displayed when players join and in the serverlist."
msgstr ""
-"Nama pelayan permainan, untuk dipaparkan apabila pemain masuk dan juga dalam "
-"senarai pelayan."
+"Nama pelayan, untuk dipaparkan apabila pemain masuk dan juga dalam senarai "
+"pelayan."
#: src/settings_translation_file.cpp
msgid "Near plane"
@@ -5626,14 +5652,6 @@ msgid "Noises"
msgstr "Hingar"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Persampelan peta normal"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Kekuatan peta normal"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "Jumlah jalur keluar"
@@ -5677,10 +5695,6 @@ msgstr ""
"dan penggunaan memori (Kebiasaannya, 4096=100MB)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "Jumlah lelaran oklusi paralaks."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Repositori Kandungan Dalam Talian"
@@ -5708,35 +5722,6 @@ msgstr ""
"Tidak jeda jika formspec dibuka."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-"Pengaruh kesan oklusi paralaks pada keseluruhannya, kebiasaannya skala/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Skala keseluruhan kesan oklusi paralaks."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Oklusi paralaks"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Pengaruh oklusi paralaks"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Lelaran oklusi paralaks"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Mod oklusi paralaks"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "Skala oklusi paralaks"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5822,12 +5807,20 @@ msgid "Pitch move mode"
msgstr "Mod pergerakan pic"
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr "Kekunci letak"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr "Selang pengulangan perbuatan letak"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
msgstr ""
"Pemain boleh terbang tanpa terkesan dengan graviti.\n"
-"Ini memerlukan keistimewaan \"terbang\" dalam pelayan permainan tersebut."
+"Ini memerlukan keistimewaan \"terbang\" dalam pelayan tersebut."
#: src/settings_translation_file.cpp
msgid "Player name"
@@ -6012,10 +6005,6 @@ msgid "Right key"
msgstr "Kekunci ke kanan"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Selang pengulangan klik kanan"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "Kedalaman saluran sungai"
@@ -6073,7 +6062,7 @@ msgstr "Simpan saiz tetingkap secara automatik ketika diubah."
#: src/settings_translation_file.cpp
msgid "Saving map received from server"
-msgstr "Simpan peta diterima dari pelayan permainan"
+msgstr "Simpan peta diterima dari pelayan"
#: src/settings_translation_file.cpp
msgid ""
@@ -6197,27 +6186,27 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Server / Singleplayer"
-msgstr "Pelayan permainan / Pemain perseorangan"
+msgstr "Pelayan / Pemain perseorangan"
#: src/settings_translation_file.cpp
msgid "Server URL"
-msgstr "URL pelayan permainan"
+msgstr "URL pelayan"
#: src/settings_translation_file.cpp
msgid "Server address"
-msgstr "Alamat pelayan permainan"
+msgstr "Alamat pelayan"
#: src/settings_translation_file.cpp
msgid "Server description"
-msgstr "Perihal pelayan permainan"
+msgstr "Perihal pelayan"
#: src/settings_translation_file.cpp
msgid "Server name"
-msgstr "Nama pelayan permainan"
+msgstr "Nama pelayan"
#: src/settings_translation_file.cpp
msgid "Server port"
-msgstr "Port pelayan permainan"
+msgstr "Port pelayan"
#: src/settings_translation_file.cpp
msgid "Server side occlusion culling"
@@ -6256,15 +6245,15 @@ msgid ""
"Set to true to enable waving liquids (like water).\n"
"Requires shaders to be enabled."
msgstr ""
-"Tetapkan ke \"true\" untuk membolehkan cecair bergelora (macam air).\n"
-"Memerlukan pembayang dibolehkan."
+"Tetapkan kepada \"true\" untuk membolehkan cecair bergelora (macam air).\n"
+"Memerlukan pembayang untuk dibolehkan."
#: src/settings_translation_file.cpp
msgid ""
"Set to true to enable waving plants.\n"
"Requires shaders to be enabled."
msgstr ""
-"Tetapkan ke \"true\" untuk membolehkan tumbuhan bergoyang.\n"
+"Tetapkan kepada \"true\" untuk membolehkan tumbuhan bergoyang.\n"
"Memerlukan pembayang untuk dibolehkan."
#: src/settings_translation_file.cpp
@@ -6311,6 +6300,19 @@ msgid "Show entity selection boxes"
msgstr "Tunjukkan kotak pemilihan entiti"
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Tunjuk kotak pemilihan entiti\n"
+"Anda perlu mulakan semula selepas mengubah tetapan ini."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Fon tebal secara lalainya"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Mesej penutupan"
@@ -6465,10 +6467,6 @@ msgid "Strength of 3D mode parallax."
msgstr "Kekuatan paralaks mod 3D."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Kekuatan peta normal yang dijana."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6480,7 +6478,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Strict protocol checking"
-msgstr "Pemeriksaan protokal ketat"
+msgstr "Pemeriksaan protokol ketat"
#: src/settings_translation_file.cpp
msgid "Strip color codes"
@@ -6597,6 +6595,10 @@ msgid "The URL for the content repository"
msgstr "URL untuk repositori kandungan"
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr "Zon mati bagi kayu bedik yang digunakan"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6638,7 +6640,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "The network interface that the server listens on."
-msgstr "Antaramuka rangkaian yang pelayan permainan dengar."
+msgstr "Antaramuka rangkaian yang pelayan dengar."
#: src/settings_translation_file.cpp
msgid ""
@@ -6672,17 +6674,15 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
"Terjemahan bahagian belakang untuk Irrlicht.\n"
"Anda perlu memulakan semula selepas mengubah tetapan ini.\n"
-"Nota: Di Android, kekalkan dengan OGLES1 jika tidak pasti! Aplikasi mungkin "
-"tidak\n"
-"boleh dimulakan jika menggunakan tetapan lain. Di platform lain, OpenGL "
-"disyorkan,\n"
-"dan ia ialah satu-satunya pemacu yang mempunyai sokongan pembayang ketika "
-"ini."
+"Nota: Di Android, kekalkan dengan OGLES1 jika tidak pasti! Apl mungkin gagal "
+"dimulakan jika ditukar.\n"
+"Di platform lain, OpenGL digalakkan.\n"
+"Pembayang disokong oleh OpenGL (komputer sahaja) dan OGLES2 (dalam ujikaji)"
#: src/settings_translation_file.cpp
msgid ""
@@ -6718,6 +6718,14 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+"Peruntukan masa yang dibenarkan untuk ABM dilakukan di setiap langkah\n"
+"(sebagai pecahan dari selang masa ABM)"
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6726,13 +6734,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
-"Jumlah masa dalam saat diambil untuk melakukan klik kanan yang berulang "
-"apabila\n"
-"pemain menekan butang tetikus kanan tanpa melepaskannya."
+"Jumlah masa dalam saat diambil untuk meletakan nod yang berulang apabila\n"
+"pemain menekan butang letak tanpa melepaskannya."
#: src/settings_translation_file.cpp
msgid "The type of joystick"
@@ -6890,6 +6896,25 @@ msgstr ""
"tinggi. Penyesuai-turun gama secara tepat tidak disokong."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+"Gunakan antialias pelbagai sampel (MSAA) untuk melembutkan sisi bongkah.\n"
+"Algoritma ini melembutkan port pandangan 3D sambil mengekalkan ketajaman "
+"imej,\n"
+"tetapi ia tidak memberi kesan bahagian dalam sesuatu tekstur\n"
+"(yang mana ia tampak lebih nyata dengan tekstur lutsinar).\n"
+"Ruangan kosong akan kelihatan di antara nod apabila pembayang dilumpuhkan.\n"
+"Jika ditetapkan ke 0, MSAA akan dilumpuhkan.\n"
+"Anda perlu mulakan semula selepas mengubah pilihan ini."
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "Gunakan penapisan trilinear apabila menyesuaikan tekstur."
@@ -7080,7 +7105,7 @@ msgstr ""
"semua\n"
"imej GUI perlu ditapis dalam perisian, tetapi sesetengah imej dijana secara "
"terus\n"
-"ke perkakasan (contohnya, render-to-texture untuk nod dalam inventori)."
+"ke perkakasan (contohnya, penerjemahan-ke-tekstur untuk nod dalam inventori)."
#: src/settings_translation_file.cpp
msgid ""
@@ -7118,7 +7143,8 @@ msgstr ""
"saiz tekstur minima untuk tekstur penyesuai-naikkan; nilai lebih tinggi "
"tampak\n"
"lebih tajam, tetapi memerlukan memori yang lebih banyak. Nilai kuasa 2\n"
-"disyorkan. Menetapkan nilai ini lebih tinggi dari 1 tidak akan menampakkan\n"
+"digalakkan. Menetapkan nilai ini lebih tinggi dari 1 tidak akan "
+"menampakkan\n"
"kesan yang nyata melainkan tapisan bilinear/trilinear/anisotropik "
"dibolehkan.\n"
"Ini juga digunakan sebagai saiz tekstur nod asas untuk autopenyesuaian\n"
@@ -7135,6 +7161,12 @@ msgstr ""
"digunakan."
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
"Sama ada animasi tekstur nod perlu dinyahsegerakkan pada setiap blok peta."
@@ -7160,8 +7192,8 @@ msgid ""
msgstr ""
"Tetapan sama ada untuk meminta klien menyambung semula selepas berlakunya "
"keruntuhan (Lua).\n"
-"Tetapkan kepada benar jika pelayan anda ditetapkan untuk mula semula secara "
-"automatik."
+"Tetapkan kepada \"true\" jika pelayan anda ditetapkan untuk mula semula "
+"secara automatik."
#: src/settings_translation_file.cpp
msgid "Whether to fog out the end of the visible area."
@@ -7291,6 +7323,35 @@ msgid "Y-level of seabed."
msgstr "Aras Y untuk dasar laut."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Tahap pemampatan ZLib untuk digunakan apabila menyimpan blokpeta ke cakera.\n"
+"-1 - tahap pemampatan lalai Zlib\n"
+"0 - tiada pemampatan, paling laju\n"
+"9 - pemampatan terbaik, paling lambat\n"
+"(tahap 1-3 menggunakan kaedah \"fast\" Zlib, 4-9 menggunakan kaedah biasa)"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Tahap pemampatan ZLib untuk digunakan apabila menghantar blokpeta kepada "
+"klien.\n"
+"-1 - tahap pemampatan lalai Zlib\n"
+"0 - tiada pemampatan, paling laju\n"
+"9 - pemampatan terbaik, paling lambat\n"
+"(tahap 1-3 menggunakan kaedah \"fast\" Zlib, 4-9 menggunakan kaedah biasa)"
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "Had masa muat turun fail cURL"
@@ -7302,83 +7363,93 @@ msgstr "Had cURL selari"
msgid "cURL timeout"
msgstr "Had masa cURL"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Togol Sinematik"
-
-#~ msgid "Select Package File:"
-#~ msgstr "Pilih Fail Pakej:"
-
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Had Y pengatas lava dalam gua besar."
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = oklusi paralaks dengan maklumat cerun (lebih cepat).\n"
+#~ "1 = pemetaan bentuk muka bumi (lebih lambat, lebih tepat)."
-#~ msgid "Waving Water"
-#~ msgstr "Air Bergelora"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "Laraskan pengekodan gama untuk jadual cahaya. Nombor lebih tinggi lebih "
+#~ "cerah.\n"
+#~ "Tetapan ini hanya untuk klien dan diabaikan oleh pelayan permainan."
-#~ msgid "Whether dungeons occasionally project from the terrain."
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
#~ msgstr ""
-#~ "Sama ada kurungan bawah tanah kadang-kala terlunjur daripada rupa bumi."
+#~ "Ubah cara tanah terapung jenis gunung menirus di atas dan bawah titik "
+#~ "tengah."
-#~ msgid "Projecting dungeons"
-#~ msgstr "Kurungan bawah tanah melunjur"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Adakah anda mahu set semula dunia pemain perseorangan?"
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Aras Y di mana bayang tanah terapung diperluaskan."
+#~ msgid "Back"
+#~ msgstr "Backspace"
-#~ msgid "Y-level of floatland midpoint and lake surface."
-#~ msgstr "Aras Y untuk titik tengah tanah terapung dan permukaan tasik."
+#~ msgid "Bump Mapping"
+#~ msgstr "Pemetaan Bertompok"
-#~ msgid "Waving water"
-#~ msgstr "Air bergelora"
+#~ msgid "Bumpmapping"
+#~ msgstr "Pemetaan bertompok"
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
-#~ msgstr ""
-#~ "Variasi ketinggian bukit dan kedalaman tasik rupa bumi lembut tanah "
-#~ "terapung."
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "Titik tengah tolakan-tengah lengkung cahaya."
#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
#~ msgstr ""
-#~ "Ketinggian maksimum biasa, di atas dan bawah titik tengah, untuk gunung "
-#~ "tanah terapung."
-
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Fon ini akan digunakan untuk sesetengah bahasa."
-
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "Kekuatan tolakan tengah lengkung cahaya."
+#~ "Mengubah antara muka menu utama:\n"
+#~ "- Penuh: Banyak dunia pemain perseorangan, pilihan permainan, pek "
+#~ "tekstur, dll.\n"
+#~ "- Mudah: Satu dunia pemain perseorangan, tiada pilihan permainan atau "
+#~ "pek tekstur.\n"
+#~ "Mungkin diperlukan untuk skrin yang lebih kecil."
-#~ msgid "Shadow limit"
-#~ msgstr "Had bayang"
-
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "Laluan ke fon TrueType atau peta bit."
-
-#~ msgid "Lightness sharpness"
-#~ msgstr "Ketajaman pencahayaan"
+#~ msgid "Config mods"
+#~ msgstr "Konfigurasi mods"
-#~ msgid "Lava depth"
-#~ msgstr "Kedalaman lava"
-
-#~ msgid "IPv6 support."
-#~ msgstr "Sokongan IPv6."
+#~ msgid "Configure"
+#~ msgstr "Konfigurasi"
-#~ msgid "Gamma"
-#~ msgstr "Gama"
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "Mengawal ketumpatan rupa bumi tanah terapung bergunung.\n"
+#~ "Nilainya ialah ofset yang menambah kepada nilai hingar 'mgv7_np_mountain'."
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Nilai alfa bayang fon (kelegapan, antara 0 dan 255)."
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Mengawal lebar terowong, nilai lebih kecil mencipta terowong lebih lebar."
-#~ msgid "Floatland mountain height"
-#~ msgstr "Ketinggian gunung tanah terapung"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Warna bagi kursor rerambut silang (R,G,B)."
-#~ msgid "Floatland base height noise"
-#~ msgstr "Hingar ketinggian asas tanah terapung"
+#~ msgid "Darkness sharpness"
+#~ msgstr "Ketajaman kegelapan"
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Membolehkan pemetaan tona sinematik"
+#~ msgid ""
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
+#~ msgstr ""
+#~ "Mentakrifkan kawasan rupa bumi lembut tanah terapung.\n"
+#~ "Tanag terapung lembut berlaku apabila hingar > 0."
-#~ msgid "Enable VBO"
-#~ msgstr "Membolehkan VBO"
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Mentakrifkan tahap persampelan tekstur.\n"
+#~ "Nilai lebih tinggi menghasilkan peta normal lebih lembut."
#~ msgid ""
#~ "Deprecated, define and locate cave liquids using biome definitions "
@@ -7389,58 +7460,209 @@ msgstr "Had masa cURL"
#~ "pentakrifan biom menggantikan cara asal.\n"
#~ "Had Y atasan lava di gua-gua besar."
-#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
-#~ msgstr ""
-#~ "Mentakrifkan kawasan rupa bumi lembut tanah terapung.\n"
-#~ "Tanag terapung lembut berlaku apabila hingar > 0."
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Sedang muat turun dan memasang $1, sila tunggu..."
-#~ msgid "Darkness sharpness"
-#~ msgstr "Ketajaman kegelapan"
+#~ msgid "Enable VBO"
+#~ msgstr "Membolehkan VBO"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Mengawal lebar terowong, nilai lebih kecil mencipta terowong lebih lebar."
+#~ "Membolehkan pemetaan bertompok pada tekstur. Peta normal perlu disediakan "
+#~ "oleh pek\n"
+#~ "tekstur atau perlu dijana secara automatik.\n"
+#~ "Perlukan pembayang dibolehkan."
+
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Membolehkan pemetaan tona sinematik"
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Mengawal ketumpatan rupa bumi tanah terapung bergunung.\n"
-#~ "Nilainya ialah ofset yang menambah kepada nilai hingar 'mgv7_np_mountain'."
-
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "Titik tengah tolakan-tengah lengkung cahaya."
+#~ "Membolehkan penjanaan peta normal secara layang (Kesan cetak timbul).\n"
+#~ "Perlukan pemetaan bertompok untuk dibolehkan."
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Ubah cara tanah terapung jenis gunung menirus di atas dan bawah titik "
-#~ "tengah."
+#~ "Membolehkan pemetaan oklusi paralaks.\n"
+#~ "Memerlukan pembayang untuk dibolehkan."
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
#~ msgstr ""
-#~ "Laraskan pengekodan gama untuk jadual cahaya. Nombor lebih tinggi lebih "
-#~ "cerah.\n"
-#~ "Tetapan ini hanya untuk klien dan diabaikan oleh pelayan permainan."
+#~ "Pilihan percubaan, mungkin menampakkan ruang yang nyata di\n"
+#~ "antara blok apabila ditetapkan dengan nombor lebih besar daripada 0."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Laluan untuk simpan tangkap layar."
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS di menu jeda"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "Kekuatan oklusi paralaks"
+#~ msgid "Floatland base height noise"
+#~ msgstr "Hingar ketinggian asas tanah terapung"
+
+#~ msgid "Floatland mountain height"
+#~ msgstr "Ketinggian gunung tanah terapung"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Nilai alfa bayang fon (kelegapan, antara 0 dan 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "Gama"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Jana Peta Normal"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Jana peta normal"
+
+#~ msgid "IPv6 support."
+#~ msgstr "Sokongan IPv6."
+
+#~ msgid "Lava depth"
+#~ msgstr "Kedalaman lava"
+
+#~ msgid "Lightness sharpness"
+#~ msgstr "Ketajaman pencahayaan"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "Had baris hilir keluar pada cakera"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Sedang muat turun dan memasang $1, sila tunggu..."
+#~ msgid "Main"
+#~ msgstr "Utama"
-#~ msgid "Back"
-#~ msgstr "Backspace"
+#~ msgid "Main menu style"
+#~ msgstr "Gaya menu utama"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Peta mini dalam mod radar, Zum 2x"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Peta mini dalam mod radar, Zum 4x"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Peta mini dalam mod permukaan, Zum 2x"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Peta mini dalam mod permukaan, Zum 4x"
+
+#~ msgid "Name/Password"
+#~ msgstr "Nama/Kata laluan"
+
+#~ msgid "No"
+#~ msgstr "Tidak"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Persampelan peta normal"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Kekuatan peta normal"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "Jumlah lelaran oklusi paralaks."
#~ msgid "Ok"
#~ msgstr "Ok"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr ""
+#~ "Pengaruh kesan oklusi paralaks pada keseluruhannya, kebiasaannya skala/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Skala keseluruhan kesan oklusi paralaks."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Oklusi Paralaks"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Oklusi paralaks"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Pengaruh oklusi paralaks"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Lelaran oklusi paralaks"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Mod oklusi paralaks"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Skala oklusi paralaks"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "Kekuatan oklusi paralaks"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "Laluan ke fon TrueType atau peta bit."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Laluan untuk simpan tangkap layar."
+
+#~ msgid "Projecting dungeons"
+#~ msgstr "Kurungan bawah tanah melunjur"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Set semula dunia pemain perseorangan"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Pilih Fail Pakej:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "Had bayang"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Mula Main Seorang"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Kekuatan peta normal yang dijana."
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "Kekuatan tolakan tengah lengkung cahaya."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Fon ini akan digunakan untuk sesetengah bahasa."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Togol Sinematik"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr ""
+#~ "Ketinggian maksimum biasa, di atas dan bawah titik tengah, untuk gunung "
+#~ "tanah terapung."
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr ""
+#~ "Variasi ketinggian bukit dan kedalaman tasik rupa bumi lembut tanah "
+#~ "terapung."
+
+#~ msgid "View"
+#~ msgstr "Lihat"
+
+#~ msgid "Waving Water"
+#~ msgstr "Air Bergelora"
+
+#~ msgid "Waving water"
+#~ msgstr "Air bergelora"
+
+#~ msgid "Whether dungeons occasionally project from the terrain."
+#~ msgstr ""
+#~ "Sama ada kurungan bawah tanah kadang-kala terlunjur daripada rupa bumi."
+
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Had Y pengatas lava dalam gua besar."
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr "Aras Y untuk titik tengah tanah terapung dan permukaan tasik."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Aras Y di mana bayang tanah terapung diperluaskan."
+
+#~ msgid "Yes"
+#~ msgstr "Ya"
diff --git a/po/ms_Arab/minetest.po b/po/ms_Arab/minetest.po
index e7e4c7167..42d758b7d 100644
--- a/po/ms_Arab/minetest.po
+++ b/po/ms_Arab/minetest.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-07-08 20:47+0000\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-10-20 18:26+0000\n"
"Last-Translator: Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat "
"Yasuyoshi <translation@mnh48.moe>\n"
"Language-Team: Malay (Jawi) <https://hosted.weblate.org/projects/minetest/"
@@ -18,79 +18,103 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.2-dev\n"
-
-#: builtin/client/death_formspec.lua src/client/game.cpp
-msgid "You died"
-msgstr "اندا تله منيڠݢل"
+"X-Generator: Weblate 4.3.1\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
msgstr "لاهير سمولا"
+#: builtin/client/death_formspec.lua src/client/game.cpp
+msgid "You died"
+msgstr "اندا تله منيڠݢل"
+
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
msgstr "OK"
#: builtin/fstk/ui.lua
-msgid "The server has requested a reconnect:"
-msgstr "ڤلاين ڤرماءينن ممينت اندا اونتوق مڽمبوڠ سمولا:"
+msgid "An error occurred in a Lua script:"
+msgstr "برلاکوڽ رالت دالم سکريڤ Lua:"
#: builtin/fstk/ui.lua
-msgid "Reconnect"
-msgstr "سمبوڠ سمولا"
+msgid "An error occurred:"
+msgstr "تله برلاکوڽ رالت:"
#: builtin/fstk/ui.lua
msgid "Main menu"
msgstr "مينو اوتام"
#: builtin/fstk/ui.lua
-msgid "An error occurred in a Lua script:"
-msgstr "برلاکوڽ رالت دالم سکريڤ Lua:"
+msgid "Reconnect"
+msgstr "سمبوڠ سمولا"
#: builtin/fstk/ui.lua
-msgid "An error occurred:"
-msgstr "تله برلاکوڽ رالت:"
+msgid "The server has requested a reconnect:"
+msgstr "ڤلاين ڤرماٴينن ممينت اندا اونتوق مڽمبوڠ سمولا:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "سدڠ ممواتکن..."
+#: builtin/mainmenu/common.lua
+msgid "Protocol version mismatch. "
+msgstr "ÛØ±Ø³ÙŠ Ú¤Ø±ÙˆØªÙˆÚ©ÙˆÙ„ تيدق سراسي. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr "چوب اکتيÙÚ©Ù† سمولا سناراي ڤلاين عوام ÙØ§Ù† ڤريقسا سمبوڠن اينترنيت اندا."
+msgid "Server enforces protocol version $1. "
+msgstr "ڤلاين ڤرماٴينن مڠواتکواساکن ڤروتوکول ÛØ±Ø³ÙŠ $1. "
#: builtin/mainmenu/common.lua
msgid "Server supports protocol versions between $1 and $2. "
-msgstr "ڤلاين ڤرماءينن Ù…Ú½ÙˆÚ©ÙˆÚ  ڤروتوکول ÛØ±Ø³ÙŠ $1 هيڠݢ $2. "
+msgstr "ڤلاين ڤرماٴينن Ù…Ú½ÙˆÚ©ÙˆÚ  ڤروتوکول ÛØ±Ø³ÙŠ $1 هيڠݢ $2. "
#: builtin/mainmenu/common.lua
-msgid "Server enforces protocol version $1. "
-msgstr "ڤلاين ڤرماءينن مڠواتکواساکن ڤروتوکول ÛØ±Ø³ÙŠ $1. "
+msgid "We only support protocol version $1."
+msgstr "کامي هاڽ Ù…Ú½ÙˆÚ©ÙˆÚ  ڤروتوکول ÛØ±Ø³ÙŠ $1."
#: builtin/mainmenu/common.lua
msgid "We support protocol versions between version $1 and $2."
msgstr "کامي Ù…Ú½ÙˆÚ©ÙˆÚ  ڤروتوکول ÛØ±Ø³ÙŠ $1 هيڠݢ $2."
-#: builtin/mainmenu/common.lua
-msgid "We only support protocol version $1."
-msgstr "کامي هاڽ Ù…Ú½ÙˆÚ©ÙˆÚ  ڤروتوکول ÛØ±Ø³ÙŠ $1."
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_delete_content.lua
+#: builtin/mainmenu/dlg_delete_world.lua
+#: builtin/mainmenu/dlg_rename_modpack.lua
+#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp
+#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
+#: src/gui/guiPasswordChange.cpp
+msgid "Cancel"
+msgstr "باتل"
-#: builtin/mainmenu/common.lua
-msgid "Protocol version mismatch. "
-msgstr "ÛØ±Ø³ÙŠ Ú¤Ø±ÙˆØªÙˆÚ©ÙˆÙ„ تيدق سراسي. "
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
+msgid "Dependencies:"
+msgstr "کبرݢنتوڠن:"
#: builtin/mainmenu/dlg_config_world.lua
-msgid "World:"
-msgstr "دنيا:"
+msgid "Disable all"
+msgstr "لومڤوهکن سموا"
#: builtin/mainmenu/dlg_config_world.lua
-msgid "No modpack description provided."
-msgstr "تيادا ڤريهل ڤيک مودس ترسديا."
+msgid "Disable modpack"
+msgstr "لومڤوهکن ڤيک مودس"
#: builtin/mainmenu/dlg_config_world.lua
-msgid "No game description provided."
-msgstr "تيادا ڤريهل ڤرماءينن ترسديا."
+msgid "Enable all"
+msgstr "ممبوليهکن سموا"
+
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "Enable modpack"
+msgstr "بوليهکن ڤيک مودس"
+
+#: builtin/mainmenu/dlg_config_world.lua
+msgid ""
+"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
+"characters [a-z0-9_] are allowed."
+msgstr ""
+"ݢاݢل اونتوق ممبوليهکن مودس \"$1\" کران اي مڠندوڠي اکسارا يڠ تيدق دبنرکن. هاڽ "
+"اکسارا [a-z0-9_] سهاج يڠ دبنرکن."
+
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "Find More Mods"
+msgstr "چاري مودس لاٴين"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -101,80 +125,117 @@ msgid "No (optional) dependencies"
msgstr "تيادا کبرݢنتوڠن (ڤيليهن)"
#: builtin/mainmenu/dlg_config_world.lua
+msgid "No game description provided."
+msgstr "تيادا ڤريهل ڤرماٴينن ترسديا."
+
+#: builtin/mainmenu/dlg_config_world.lua
msgid "No hard dependencies"
msgstr "تيادا کبرݢنتوڠن واجب"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
-msgid "Optional dependencies:"
-msgstr "کبرݢنتوڠن ڤيليهن:"
-
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
-msgid "Dependencies:"
-msgstr "کبرݢنتوڠن:"
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "No modpack description provided."
+msgstr "تيادا ڤريهل ڤيک مودس ترسديا."
#: builtin/mainmenu/dlg_config_world.lua
msgid "No optional dependencies"
msgstr "تيادا کبرݢنتوڠن ڤيليهن"
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+msgid "Optional dependencies:"
+msgstr "کبرݢنتوڠن ڤيليهن:"
+
#: builtin/mainmenu/dlg_config_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
msgid "Save"
msgstr "سيمڤن"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
-#: builtin/mainmenu/dlg_delete_content.lua
-#: builtin/mainmenu/dlg_delete_world.lua
-#: builtin/mainmenu/dlg_rename_modpack.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp
-#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
-#: src/gui/guiPasswordChange.cpp
-msgid "Cancel"
-msgstr "باتل"
-
#: builtin/mainmenu/dlg_config_world.lua
-msgid "Find More Mods"
-msgstr "چاري مودس لاءين"
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Disable modpack"
-msgstr "لومڤوهکن ڤيک مودس"
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Enable modpack"
-msgstr "بوليهکن ڤيک مودس"
+msgid "World:"
+msgstr "دنيا:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "enabled"
msgstr "دبوليهکن"
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Disable all"
-msgstr "لومڤوهکن سموا"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Enable all"
-msgstr "ممبوليهکن سموا"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
-#: builtin/mainmenu/dlg_config_world.lua
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid ""
-"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
-"characters [a-z0-9_] are allowed."
+"$1 downloading,\n"
+"$2 queued"
msgstr ""
-"ݢاݢل اونتوق ممبوليهکن مودس \"$1\" کران اي مڠندوڠي اکسارا يڠ تيدق دبنرکن. هاڽ "
-"اکسارا [a-z0-9_] سهاج يڠ دبنرکن."
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr "سيستم ContentDB تيدق ترسديا اڤابيلا Minetest دکومڤيل تنڤ cURL"
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "مموات تورون..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "سموا ڤاکيج"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "ککونچي تله دݢوناکن اونتوق Ùوڠسي لاٴين"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Back to Main Menu"
+msgstr "کمبالي کمينو اوتام"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "هوس ڤرماٴينن"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "ContentDB is not available when Minetest was compiled without cURL"
+msgstr "سيستم ContentDB تيدق ترسديا اڤابيلا Minetest دکومڤيل تنڤ cURL"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Downloading..."
+msgstr "مموات تورون..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Failed to download $1"
+msgstr "ݢاݢل مموات تورون $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
-msgstr "ڤرماءينن"
+msgstr "ڤرماٴينن"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install"
+msgstr "ڤاسڠ"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "ڤاسڠ"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "کبرݢنتوڠن ڤيليهن:"
#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -182,173 +243,199 @@ msgid "Mods"
msgstr "مودس"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Texture packs"
-msgstr "ڤيک تيکستور"
+msgid "No packages could be retrieved"
+msgstr "تيادا ڤاکيج يڠ بوليه دامبيل"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Failed to download $1"
-msgstr "ݢاݢل مموات تورون $1"
+msgid "No results"
+msgstr "تيادا حاصيل"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "چاري"
+#, fuzzy
+msgid "No updates"
+msgstr "کمس کيني"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Back to Main Menu"
-msgstr "کمبالي کمينو اوتام"
+#, fuzzy
+msgid "Not found"
+msgstr "بيسوکن بوڽي"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "No results"
-msgstr "تيادا حاصيل"
+msgid "Overwrite"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "No packages could be retrieved"
-msgstr "تيادا ڤاکيج يڠ بوليه دامبيل"
+msgid "Please check that the base game is correct."
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Downloading..."
-msgstr "مموات تورون..."
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Install"
-msgstr "ڤاسڠ"
+msgid "Texture packs"
+msgstr "ڤيک تيکستور"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Uninstall"
+msgstr "ڽهڤاسڠ"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Update"
msgstr "کمس کيني"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Uninstall"
-msgstr "ڽهڤاسڠ"
+msgid "Update All [$1]"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "ليهت"
+msgid "View more information in a web browser"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Caverns"
-msgstr "ݢوا بسر"
+msgid "A world named \"$1\" already exists"
+msgstr "دنيا برنام \"$1\" تله وجود"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Very large caverns deep in the underground"
-msgstr "ݢوا ݢرݢاسي يڠ ساڠت مندالم باواه تانه"
+msgid "Additional terrain"
+msgstr "روڤ بومي تمبهن"
+
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Altitude chill"
+msgstr "کديڠينن التيتود"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Sea level rivers"
-msgstr "سوڠاي ارس لاءوت"
+msgid "Altitude dry"
+msgstr "ککريڠن التيتود"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Rivers"
-msgstr "سوڠاي"
+msgid "Biome blending"
+msgstr "ڤڽباتين بيوم"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mountains"
-msgstr "ݢونوڠ"
+msgid "Biomes"
+msgstr "بيوم"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Floatlands (experimental)"
-msgstr "تانه تراڤوڠ (دالم اوجيکاجي)"
+msgid "Caverns"
+msgstr "ݢوا بسر"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Floating landmasses in the sky"
-msgstr "جيسيم بومي تراڤوڠ اتس لاڠيت"
+msgid "Caves"
+msgstr "ݢوا"
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Altitude chill"
-msgstr "کديڠينن التيتود"
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Create"
+msgstr "چيڤت"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Reduces heat with altitude"
-msgstr "کورڠکن هاب مڠيکوت التيتود"
+msgid "Decorations"
+msgstr "هياسن"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Altitude dry"
-msgstr "ککريڠن التيتود"
+msgid "Download a game, such as Minetest Game, from minetest.net"
+msgstr "موات تورون ڤرماٴينن⹠چونتوهڽ Minetest Game⹠دري minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Reduces humidity with altitude"
-msgstr "کورڠکن کلمبڤن مڠيکوت التيتود"
+msgid "Download one from minetest.net"
+msgstr "موات تورون ساتو دري minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Humid rivers"
-msgstr "سوڠاي لمبڤ"
+msgid "Dungeons"
+msgstr "کوروڠن باواه تانه"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Increases humidity around rivers"
-msgstr "تيڠکتکن کلمبڤن سکيتر سوڠاي"
+msgid "Flat terrain"
+msgstr "روڤ بومي رات"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Vary river depth"
-msgstr "کدالمن سوڠاي برباݢاي"
+msgid "Floating landmasses in the sky"
+msgstr "جيسيم بومي تراڤوڠ اتس لاڠيت"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr "کلمبڤن رنده دان هاب تيڠݢي مڽببکن سوڠاي چيتيق اتاو کريڠ"
+msgid "Floatlands (experimental)"
+msgstr "تانه تراڤوڠ (دالم اوجيکاجي)"
+
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Game"
+msgstr "ڤرماٴينن"
+
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Generate non-fractal terrain: Oceans and underground"
+msgstr "جان روڤ بومي بوکن-ÙØ±Ø§Ú©ØªÙ„: لاٴوتن دان باواه تانه"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
msgstr "بوکيت"
#: builtin/mainmenu/dlg_create_world.lua
+msgid "Humid rivers"
+msgstr "سوڠاي لمبڤ"
+
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Increases humidity around rivers"
+msgstr "تيڠکتکن کلمبڤن سکيتر سوڠاي"
+
+#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
msgstr "تاسيق"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Additional terrain"
-msgstr "روڤ بومي تمبهن"
+msgid "Low humidity and high heat causes shallow or dry rivers"
+msgstr "کلمبڤن رنده دان هاب تيڠݢي مڽببکن سوڠاي چيتيق اتاو کريڠ"
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr "جان روڤ بومي بوکن-ÙØ±Ø§Ú©ØªÙ„: لاءوتن دان باواه تانه"
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Mapgen"
+msgstr "جاناٴن ڤتا"
+
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Mapgen flags"
+msgstr "بنديرا جان ڤتا"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Trees and jungle grass"
-msgstr "ڤوکوق دان رومڤوت هوتن"
+msgid "Mapgen-specific flags"
+msgstr "بنديرا خصوص جان ڤتا"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Flat terrain"
-msgstr "روڤ بومي رات"
+msgid "Mountains"
+msgstr "ݢونوڠ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
msgstr "اليرن لومڤور"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Terrain surface erosion"
-msgstr "هاکيسن ڤرموکاءن روڤ بومي"
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr "اقليم سدرهان⹠ݢورون⹠هوتن⹠توندرا⹠تايݢ"
+msgid "Network of tunnels and caves"
+msgstr "جاريڠن تروووڠ دان ݢوا"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert, Jungle"
-msgstr "اقليم سدرهان⹠ݢورون⹠هوتن"
+msgid "No game selected"
+msgstr "تيادا ڤرماٴينن دڤيليه"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert"
-msgstr "اقليم سدرهان⹠ݢورون"
+msgid "Reduces heat with altitude"
+msgstr "کورڠکن هاب مڠيکوت التيتود"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "You have no games installed."
-msgstr "اندا تيدق مماسڠ سبارڠ ڤرماءينن."
+msgid "Reduces humidity with altitude"
+msgstr "کورڠکن کلمبڤن مڠيکوت التيتود"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Download one from minetest.net"
-msgstr "موات تورون ساتو دري minetest.net"
+msgid "Rivers"
+msgstr "سوڠاي"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Caves"
-msgstr "ݢوا"
+msgid "Sea level rivers"
+msgstr "سوڠاي ارس لاٴوت"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Dungeons"
-msgstr "کوروڠن باواه تانه"
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Seed"
+msgstr "بنيه"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Decorations"
-msgstr "هياسن"
+msgid "Smooth transition between biomes"
+msgstr "ڤراليهن لمبوت دانتارا بيوم"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
@@ -363,65 +450,44 @@ msgid "Structures appearing on the terrain, typically trees and plants"
msgstr "ستروکتور يڠ مونچول اتس روڤ بومي⹠بياساڽ ڤوکوق دان تومبوهن"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Network of tunnels and caves"
-msgstr "جاريڠن تروووڠ دان ݢوا"
+msgid "Temperate, Desert"
+msgstr "اقليم سدرهان⹠ݢورون"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Biomes"
-msgstr "بيوم"
+msgid "Temperate, Desert, Jungle"
+msgstr "اقليم سدرهان⹠ݢورون⹠هوتن"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Biome blending"
-msgstr "ڤڽباتين بيوم"
+msgid "Temperate, Desert, Jungle, Tundra, Taiga"
+msgstr "اقليم سدرهان⹠ݢورون⹠هوتن⹠توندرا⹠تايݢ"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Smooth transition between biomes"
-msgstr "ڤراليهن لمبوت دانتارا بيوم"
+msgid "Terrain surface erosion"
+msgstr "هاکيسن ڤرموکاٴن روڤ بومي"
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Mapgen flags"
-msgstr "بنديرا جان ڤتا"
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Trees and jungle grass"
+msgstr "ڤوکوق دان رومڤوت هوتن"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mapgen-specific flags"
-msgstr "بنديرا خصوص جان ڤتا"
+msgid "Vary river depth"
+msgstr "کدالمن سوڠاي برباݢاي"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Warning: The Development Test is meant for developers."
-msgstr "امرن: The Development Test هاڽله اونتوق کݢوناءن ڤمباڠون."
+msgid "Very large caverns deep in the underground"
+msgstr "ݢوا ݢرݢاسي يڠ ساڠت مندالم باواه تانه"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Download a game, such as Minetest Game, from minetest.net"
-msgstr "موات تورون ڤرماءينن⹠چونتوهڽ Minetest Game⹠دري minetest.net"
+msgid "Warning: The Development Test is meant for developers."
+msgstr "امرن: The Development Test هاڽله اونتوق کݢوناٴن ڤمباڠون."
#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
msgstr "نام دنيا"
#: builtin/mainmenu/dlg_create_world.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Seed"
-msgstr "بنيه"
-
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Mapgen"
-msgstr "جاناءن ڤتا"
-
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Game"
-msgstr "ڤرماءينن"
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Create"
-msgstr "چيڤت"
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "A world named \"$1\" already exists"
-msgstr "دنيا برنام \"$1\" تله وجود"
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "No game selected"
-msgstr "تيادا ڤرماءينن دڤيليه"
+msgid "You have no games installed."
+msgstr "اندا تيدق مماسڠ سبارڠ ڤرماٴينن."
#: builtin/mainmenu/dlg_delete_content.lua
msgid "Are you sure you want to delete \"$1\"?"
@@ -450,107 +516,92 @@ msgid "Accept"
msgstr "تريما"
#: builtin/mainmenu/dlg_rename_modpack.lua
+msgid "Rename Modpack:"
+msgstr "نامکن سمولا ڤيک مودس:"
+
+#: builtin/mainmenu/dlg_rename_modpack.lua
msgid ""
"This modpack has an explicit name given in its modpack.conf which will "
"override any renaming here."
msgstr ""
-"Ú¤ÙŠÚ© مودس اين ممڤوڽاءي نام خصوص دبريکن دالم ÙØ§ÙŠÙ„ modpack.conf ميليقڽ ÙŠÚ  اکن "
-"مڠاتسي سبارڠ ڤناماءن سمولا دسين."
+"Ú¤ÙŠÚ© مودس اين ممڤوڽاٴي نام خصوص دبريکن دالم ÙØ§ÙŠÙ„ modpack.conf ميليقڽ ÙŠÚ  اکن "
+"مڠاتسي سبارڠ ڤناماٴن سمولا دسين."
-#: builtin/mainmenu/dlg_rename_modpack.lua
-msgid "Rename Modpack:"
-msgstr "نامکن سمولا ڤيک مودس:"
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "(No description of setting given)"
+msgstr "(تيادا ڤريهل اونتوق تتڤن يڠ دبري)"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Disabled"
-msgstr "دلومڤوهکن"
+msgid "2D Noise"
+msgstr "هيڠر 2D"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Enabled"
-msgstr "دبوليهکن"
+msgid "< Back to Settings page"
+msgstr "< کمبالي کهلامن تتڤن"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr "لاير"
-#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
-msgid "Offset"
-msgstr "Ø§ÙˆÙØ³ÙŠØª"
-
-#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
-msgid "Scale"
-msgstr "سکال"
-
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "X spread"
-msgstr "سيبرن X"
+msgid "Disabled"
+msgstr "دلومڤوهکن"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Y spread"
-msgstr "سيبرن Y"
+msgid "Edit"
+msgstr "ايديت"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "2D Noise"
-msgstr "هيڠر 2D"
+msgid "Enabled"
+msgstr "دبوليهکن"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Z spread"
-msgstr "سيبرن Z"
+msgid "Lacunarity"
+msgstr "لاکوناريتي"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Octaves"
msgstr "اوکتÙ"
+#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
+msgid "Offset"
+msgstr "Ø§ÙˆÙØ³ÙŠØª"
+
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Persistance"
msgstr "ڤنروسن"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Lacunarity"
-msgstr "لاکوناريتي"
+msgid "Please enter a valid integer."
+msgstr "سيلا ماسوقکن اينتيݢر يڠ صح."
-#. ~ "defaults" is a noise parameter flag.
-#. It describes the default processing options
-#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "defaults"
-msgstr "لالاي"
-
-#. ~ "eased" is a noise parameter flag.
-#. It is used to make the map smoother and
-#. can be enabled in noise settings in
-#. main menu -> "All Settings".
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "eased"
-msgstr "تومڤول"
+msgid "Please enter a valid number."
+msgstr "سيلا ماسوقکن نومبور يڠ صح."
-#. ~ "absvalue" is a noise parameter flag.
-#. It is short for "absolute value".
-#. It can be enabled in noise settings in
-#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "absvalue"
-msgstr "نيلاي مطلق"
+msgid "Restore Default"
+msgstr "ڤوليهکن تتڤن اصل"
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "X"
-msgstr "X"
+#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
+msgid "Scale"
+msgstr "سکال"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Y"
-msgstr "Y"
+msgid "Search"
+msgstr "چاري"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Z"
-msgstr "Z"
+msgid "Select directory"
+msgstr "ڤيليه ديريکتوري"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "(No description of setting given)"
-msgstr "(تيادا ڤريهل اونتوق تتڤن يڠ دبري)"
+msgid "Select file"
+msgstr "ڤيليه ÙØ§ÙŠÙ„"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Please enter a valid integer."
-msgstr "سيلا ماسوقکن اينتيݢر يڠ صح."
+msgid "Show technical names"
+msgstr "تونجوقکن نام تيکنيکل"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "The value must be at least $1."
@@ -561,285 +612,338 @@ msgid "The value must not be larger than $1."
msgstr "نيلاي مستيله تيدق لبيه درڤد $1."
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Please enter a valid number."
-msgstr "سيلا ماسوقکن نومبور يڠ صح."
+msgid "X"
+msgstr "X"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Select directory"
-msgstr "ڤيليه ديريکتوري"
+msgid "X spread"
+msgstr "سيبرن X"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Select file"
-msgstr "ڤيليه ÙØ§ÙŠÙ„"
+msgid "Y"
+msgstr "Y"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "< Back to Settings page"
-msgstr "< کمبالي کهلامن تتڤن"
+msgid "Y spread"
+msgstr "سيبرن Y"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Edit"
-msgstr "ايديت"
+msgid "Z"
+msgstr "Z"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Restore Default"
-msgstr "ڤوليهکن تتڤن اصل"
+msgid "Z spread"
+msgstr "سيبرن Z"
+#. ~ "absvalue" is a noise parameter flag.
+#. It is short for "absolute value".
+#. It can be enabled in noise settings in
+#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Show technical names"
-msgstr "تونجوقکن نام تيکنيکل"
+msgid "absvalue"
+msgstr "نيلاي مطلق"
+
+#. ~ "defaults" is a noise parameter flag.
+#. It describes the default processing options
+#. for noise settings in main menu -> "All Settings".
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "defaults"
+msgstr "لالاي"
+
+#. ~ "eased" is a noise parameter flag.
+#. It is used to make the map smoother and
+#. can be enabled in noise settings in
+#. main menu -> "All Settings".
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "eased"
+msgstr "تومڤول"
#: builtin/mainmenu/pkgmgr.lua
msgid "$1 (Enabled)"
msgstr "$1 (دبوليهکن)"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a $1 as a texture pack"
-msgstr "ݢاݢل مماسڠ $1 سباݢاي ڤيک تيکستور"
+msgid "$1 mods"
+msgstr "$1 مودس"
#: builtin/mainmenu/pkgmgr.lua
msgid "Failed to install $1 to $2"
msgstr "ݢاݢل مماسڠ $1 ڤد $2"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to find a valid mod or modpack"
-msgstr "تيدق جومڤ مودس اتاو ڤيک مودس يڠ صح"
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a modpack as a $1"
-msgstr "ݢاݢل مماسڠ ڤيک مودس سباݢاي $1"
+msgid "Install Mod: Unable to find real mod name for: $1"
+msgstr "ڤاسڠ مودس: ݢاݢل منچاري نام مودس سبنر اونتوق: $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install Mod: Unable to find suitable folder name for modpack $1"
msgstr "ڤاسڠ مودس: تيدق جومڤ نام Ùولدر ÙŠÚ  سسواي اونتوق Ú¤ÙŠÚ© مودس $1"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a mod as a $1"
-msgstr "ݢاݢل مماسڠ مودس سباݢاي $1"
+msgid "Install: Unsupported file type \"$1\" or broken archive"
+msgstr "ڤاسڠ: جنيس ÙØ§ÙŠÙ„ \"$1\" تيدق دسوکوڠ اتاو ارکيب روسق"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install Mod: Unable to find real mod name for: $1"
-msgstr "ڤاسڠ مودس: ݢاݢل منچاري نام مودس سبنر اونتوق: $1"
+msgid "Install: file: \"$1\""
+msgstr "ڤاسڠ: ÙØ§ÙŠÙ„: \"$1\""
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a game as a $1"
-msgstr "ݢاݢل مماسڠ ڤرماءينن سباݢاي $1"
+msgid "Unable to find a valid mod or modpack"
+msgstr "تيدق جومڤ مودس اتاو ڤيک مودس يڠ صح"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install: file: \"$1\""
-msgstr "ڤاسڠ: ÙØ§ÙŠÙ„: \"$1\""
+msgid "Unable to install a $1 as a texture pack"
+msgstr "ݢاݢل مماسڠ $1 سباݢاي ڤيک تيکستور"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install: Unsupported file type \"$1\" or broken archive"
-msgstr "ڤاسڠ: جنيس ÙØ§ÙŠÙ„ \"$1\" تيدق دسوکوڠ اتاو ارکيب روسق"
+msgid "Unable to install a game as a $1"
+msgstr "ݢاݢل مماسڠ ڤرماٴينن سباݢاي $1"
#: builtin/mainmenu/pkgmgr.lua
-msgid "$1 mods"
-msgstr "$1 مودس"
+msgid "Unable to install a mod as a $1"
+msgstr "ݢاݢل مماسڠ مودس سباݢاي $1"
-#: builtin/mainmenu/tab_content.lua
-msgid "Installed Packages:"
-msgstr "ڤاکيج دڤاسڠ:"
+#: builtin/mainmenu/pkgmgr.lua
+msgid "Unable to install a modpack as a $1"
+msgstr "ݢاݢل مماسڠ ڤيک مودس سباݢاي $1"
+
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "سدڠ ممواتکن..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "سکريڤ ڤيهق کليئن دلومڤوهکن"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr "چوب اکتيÙÚ©Ù† سمولا سناراي ڤلاين عوام ÙØ§Ù† ڤريقسا سمبوڠن اينترنيت اندا."
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "لايري کندوڠن دالم تالين"
#: builtin/mainmenu/tab_content.lua
-msgid "No package description available"
-msgstr "تيادا ڤريهل ڤاکيج ترسديا"
+msgid "Content"
+msgstr "کندوڠن"
#: builtin/mainmenu/tab_content.lua
-msgid "Rename"
-msgstr "نامکن سمولا"
+msgid "Disable Texture Pack"
+msgstr "لومڤوهکن ڤيک تيکستور"
#: builtin/mainmenu/tab_content.lua
-msgid "No dependencies."
-msgstr "تيادا کبرݢنتوڠن."
+msgid "Information:"
+msgstr "معلومت:"
#: builtin/mainmenu/tab_content.lua
-msgid "Disable Texture Pack"
-msgstr "لومڤوهکن ڤيک تيکستور"
+msgid "Installed Packages:"
+msgstr "ڤاکيج دڤاسڠ:"
#: builtin/mainmenu/tab_content.lua
-msgid "Use Texture Pack"
-msgstr "ݢونا ڤيک تيکستور"
+msgid "No dependencies."
+msgstr "تيادا کبرݢنتوڠن."
#: builtin/mainmenu/tab_content.lua
-msgid "Information:"
-msgstr "معلومت:"
+msgid "No package description available"
+msgstr "تيادا ڤريهل ڤاکيج ترسديا"
+
+#: builtin/mainmenu/tab_content.lua
+msgid "Rename"
+msgstr "نامکن سمولا"
#: builtin/mainmenu/tab_content.lua
msgid "Uninstall Package"
msgstr "ڽهڤاسڠ ڤاکيج"
#: builtin/mainmenu/tab_content.lua
-msgid "Content"
-msgstr "کندوڠن"
+msgid "Use Texture Pack"
+msgstr "ݢونا ڤيک تيکستور"
#: builtin/mainmenu/tab_credits.lua
-msgid "Credits"
-msgstr "ڤڠهرݢاءن"
+msgid "Active Contributors"
+msgstr "ڤڽومبڠ اکتيÙ"
#: builtin/mainmenu/tab_credits.lua
msgid "Core Developers"
msgstr "ڤمباڠون تراس"
#: builtin/mainmenu/tab_credits.lua
-msgid "Active Contributors"
-msgstr "ڤڽومبڠ اکتيÙ"
+msgid "Credits"
+msgstr "ڤڠهرݢاٴن"
#: builtin/mainmenu/tab_credits.lua
-msgid "Previous Core Developers"
-msgstr "ڤمباڠون تراس تردهولو"
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "ڤيليه ديريکتوري"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "ڤڽومبڠ تردهولو"
-#: builtin/mainmenu/tab_local.lua
-msgid "Install games from ContentDB"
-msgstr "ڤاسڠکن ڤرماءينن درڤد ContentDB"
+#: builtin/mainmenu/tab_credits.lua
+msgid "Previous Core Developers"
+msgstr "ڤمباڠون تراس تردهولو"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "کونÙيݢوراسي"
+msgid "Announce Server"
+msgstr "اومومکن ڤلاين"
#: builtin/mainmenu/tab_local.lua
-msgid "New"
-msgstr "بوات بارو"
+msgid "Bind Address"
+msgstr "علامت ايکتن"
#: builtin/mainmenu/tab_local.lua
-msgid "Select World:"
-msgstr "ڤيليه دنيا:"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "مود کرياتيÙ"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "بوليه چدرا"
#: builtin/mainmenu/tab_local.lua
+msgid "Host Game"
+msgstr "هوس ڤرماٴينن"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Host Server"
msgstr "هوس ڤلاين"
#: builtin/mainmenu/tab_local.lua
-msgid "Host Game"
-msgstr "هوس ڤرماءينن"
+msgid "Install games from ContentDB"
+msgstr "ڤاسڠکن ڤرماٴينن درڤد ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Announce Server"
-msgstr "اومومکن ڤلاين"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "نام\\کات لالوان"
+msgid "New"
+msgstr "بوات بارو"
#: builtin/mainmenu/tab_local.lua
-msgid "Bind Address"
-msgstr "علامت ايکتن"
+msgid "No world created or selected!"
+msgstr "تيادا دنيا دچيڤت اتاو دڤيليه!"
+
+#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "کات لالوان لام"
+
+#: builtin/mainmenu/tab_local.lua
+msgid "Play Game"
+msgstr "مولا ماٴين"
#: builtin/mainmenu/tab_local.lua
msgid "Port"
msgstr "ڤورت"
#: builtin/mainmenu/tab_local.lua
-msgid "Server Port"
-msgstr "ڤورت ڤلاين"
+#, fuzzy
+msgid "Select Mods"
+msgstr "ڤيليه دنيا:"
#: builtin/mainmenu/tab_local.lua
-msgid "Play Game"
-msgstr "مولا ماءين"
+msgid "Select World:"
+msgstr "ڤيليه دنيا:"
#: builtin/mainmenu/tab_local.lua
-msgid "No world created or selected!"
-msgstr "تيادا دنيا دچيڤت اتاو دڤيليه!"
+msgid "Server Port"
+msgstr "ڤورت ڤلاين"
#: builtin/mainmenu/tab_local.lua
msgid "Start Game"
-msgstr "مولاکن ڤرماءينن"
+msgstr "مولاکن ڤرماٴينن"
#: builtin/mainmenu/tab_online.lua
msgid "Address / Port"
msgstr "علامت \\ ڤورت"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Name / Password"
-msgstr "نام \\ کات لالوان"
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "سمبوڠ"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
+msgid "Creative mode"
+msgstr "مود کرياتيÙ"
+
+#: builtin/mainmenu/tab_online.lua
+msgid "Damage enabled"
+msgstr "بوليه چدرا"
+
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "ڤادم کݢمرن"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "کݢمرن"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Ping"
-msgstr "Ú¤ÙŠÚ "
+#: builtin/mainmenu/tab_online.lua
+msgid "Join Game"
+msgstr "سرتاٴي ڤرماٴينن"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Creative mode"
-msgstr "مود کرياتيÙ"
+#: builtin/mainmenu/tab_online.lua
+msgid "Name / Password"
+msgstr "نام \\ کات لالوان"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Damage enabled"
-msgstr "بوليه چدرا"
+#: builtin/mainmenu/tab_online.lua
+msgid "Ping"
+msgstr "Ú¤ÙŠÚ "
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "بوليه برلاوان PvP"
-#: builtin/mainmenu/tab_online.lua
-msgid "Join Game"
-msgstr "سرتاءي ڤرماءينن"
-
#: builtin/mainmenu/tab_settings.lua
-msgid "Opaque Leaves"
-msgstr "داون لݢڤ"
+msgid "2x"
+msgstr "2x"
#: builtin/mainmenu/tab_settings.lua
-msgid "Simple Leaves"
-msgstr "داون ريڠکس"
+msgid "3D Clouds"
+msgstr "اوان 3D"
#: builtin/mainmenu/tab_settings.lua
-msgid "Fancy Leaves"
-msgstr "داون براݢم"
+msgid "4x"
+msgstr "4x"
#: builtin/mainmenu/tab_settings.lua
-msgid "Node Outlining"
-msgstr "کرڠک نود"
+msgid "8x"
+msgstr "8x"
#: builtin/mainmenu/tab_settings.lua
-msgid "Node Highlighting"
-msgstr "تونجولن نود"
+msgid "All Settings"
+msgstr "سموا تتڤن"
#: builtin/mainmenu/tab_settings.lua
-msgid "None"
-msgstr "تيادا"
+msgid "Antialiasing:"
+msgstr "انتيالياس:"
#: builtin/mainmenu/tab_settings.lua
-msgid "No Filter"
-msgstr "تيادا تاڤيسن"
+msgid "Autosave Screen Size"
+msgstr "اٴوتوسيمڤن ساٴيز سکرين"
#: builtin/mainmenu/tab_settings.lua
msgid "Bilinear Filter"
msgstr "ڤناڤيسن بيلينيار"
+#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
+msgid "Change Keys"
+msgstr "توکر ککونچي"
+
#: builtin/mainmenu/tab_settings.lua
-msgid "Trilinear Filter"
-msgstr "ڤناڤيسن تريلينيار"
+msgid "Connected Glass"
+msgstr "کاچ برسمبوڠن"
#: builtin/mainmenu/tab_settings.lua
-msgid "No Mipmap"
-msgstr "تيادا ڤتا ميڤ"
+msgid "Fancy Leaves"
+msgstr "داون براݢم"
#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
@@ -850,196 +954,157 @@ msgid "Mipmap + Aniso. Filter"
msgstr "ڤتا ميڤ + ڤناڤيسن انيسو"
#: builtin/mainmenu/tab_settings.lua
-msgid "2x"
-msgstr "2x"
+msgid "No Filter"
+msgstr "تيادا تاڤيسن"
#: builtin/mainmenu/tab_settings.lua
-msgid "4x"
-msgstr "4x"
+msgid "No Mipmap"
+msgstr "تيادا ڤتا ميڤ"
#: builtin/mainmenu/tab_settings.lua
-msgid "8x"
-msgstr "8x"
+msgid "Node Highlighting"
+msgstr "تونجولن نود"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "اداکه اندا ماهو سيت سمولا دنيا ڤماءين ڤرساورڠن؟"
+msgid "Node Outlining"
+msgstr "کرڠک نود"
#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "ياء"
+msgid "None"
+msgstr "تيادا"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "تيدق"
+msgid "Opaque Leaves"
+msgstr "داون لݢڤ"
#: builtin/mainmenu/tab_settings.lua
-msgid "Smooth Lighting"
-msgstr "ڤنچهاياءن لمبوت"
+msgid "Opaque Water"
+msgstr "اٴير لݢڤ"
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "ڤرتيکل"
#: builtin/mainmenu/tab_settings.lua
-msgid "3D Clouds"
-msgstr "اوان 3D"
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Opaque Water"
-msgstr "اءير لݢڤ"
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Connected Glass"
-msgstr "کاچ برسمبوڠن"
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Texturing:"
-msgstr "جالينن:"
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Antialiasing:"
-msgstr "انتيالياس:"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "سکرين:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Autosave Screen Size"
-msgstr "اءوتوسيمڤن سايز سکرين"
+msgid "Settings"
+msgstr "تتڤن"
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
msgid "Shaders"
msgstr "ڤمبايڠ"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "تانه تراڤوڠ (دالم اوجيکاجي)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "ڤمبايڠ (تيدق ترسديا)"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "سيت سمولا دنيا ڤماءين ڤرساورڠن"
-
-#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
-msgid "Change Keys"
-msgstr "توکر ککونچي"
+msgid "Simple Leaves"
+msgstr "داون ريڠکس"
#: builtin/mainmenu/tab_settings.lua
-msgid "All Settings"
-msgstr "سموا تتڤن"
+msgid "Smooth Lighting"
+msgstr "ڤنچهاياٴن لمبوت"
#: builtin/mainmenu/tab_settings.lua
-msgid "Touchthreshold: (px)"
-msgstr "نيلاي امبڠ سنتوهن: (px)"
+msgid "Texturing:"
+msgstr "جالينن:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "ڤمتاءن بيڠݢول"
+msgid "To enable shaders the OpenGL driver needs to be used."
+msgstr "اونتوق ممبوليهکن ڤمبايڠ⹠ڤماچو OpenGL مستي دݢوناکن."
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
msgid "Tone Mapping"
-msgstr "ڤمتاءن تونا"
+msgstr "ڤمتاٴن تونا"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "جان ڤتا نورمل"
-
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "اوکلوسي ڤارالکس"
+msgid "Touchthreshold: (px)"
+msgstr "نيلاي امبڠ سنتوهن: (px)"
#: builtin/mainmenu/tab_settings.lua
-msgid "Waving Liquids"
-msgstr "چچاءير برݢلورا"
+msgid "Trilinear Filter"
+msgstr "ڤناڤيسن تريلينيار"
#: builtin/mainmenu/tab_settings.lua
msgid "Waving Leaves"
-msgstr "داءون برݢويڠ"
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Waving Plants"
-msgstr "تومبوهن برݢويڠ"
+msgstr "داٴون برݢويڠ"
#: builtin/mainmenu/tab_settings.lua
-msgid "To enable shaders the OpenGL driver needs to be used."
-msgstr "اونتوق ممبوليهکن ڤمبايڠ⹠ڤماچو OpenGL مستي دݢوناکن."
+msgid "Waving Liquids"
+msgstr "چچاٴير برݢلورا"
#: builtin/mainmenu/tab_settings.lua
-msgid "Settings"
-msgstr "تتڤن"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "مولا ماءين ساورڠ"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "کونÙيݢوراسي مودس"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "اوتام"
+msgid "Waving Plants"
+msgstr "تومبوهن برݢويڠ"
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "سمبوڠن تامت تيمڤوه."
#: src/client/client.cpp
-msgid "Loading textures..."
-msgstr "سدڠ ممواتکن تيکستور..."
+msgid "Done!"
+msgstr "سلساي!"
#: src/client/client.cpp
-msgid "Rebuilding shaders..."
-msgstr "سدڠ ممبينا سمولا ڤمبايڠ..."
+msgid "Initializing nodes"
+msgstr "مڠاولکن نود"
#: src/client/client.cpp
msgid "Initializing nodes..."
msgstr "سدڠ مڠاولکن نود..."
#: src/client/client.cpp
-msgid "Initializing nodes"
-msgstr "مڠاولکن نود"
+msgid "Loading textures..."
+msgstr "سدڠ ممواتکن تيکستور..."
#: src/client/client.cpp
-msgid "Done!"
-msgstr "سلساي!"
-
-#: src/client/clientlauncher.cpp
-msgid "Main Menu"
-msgstr "مينو اوتام"
-
-#: src/client/clientlauncher.cpp
-msgid "Player name too long."
-msgstr "نام ڤماءين ترلالو ڤنجڠ."
+msgid "Rebuilding shaders..."
+msgstr "سدڠ ممبينا سمولا ڤمبايڠ..."
#: src/client/clientlauncher.cpp
msgid "Connection error (timed out?)"
msgstr "رالت دالم ڤڽمبوڠن (تامت تيمڤوه؟)"
#: src/client/clientlauncher.cpp
-msgid "Provided password file failed to open: "
-msgstr "ÙØ§ÙŠÙ„ کات لالوان ÙŠÚ  دسدياکن ݢاݢل دبوک: "
+msgid "Could not find or load game \""
+msgstr "تيدق جومڤ اتاو تيدق بوليه مواتکن ڤرماٴينن \""
#: src/client/clientlauncher.cpp
-msgid "Please choose a name!"
-msgstr "سيلا ڤيليه سواتو نام!"
+msgid "Invalid gamespec."
+msgstr "سڤيسيÙيکاسي ڤرماٴينن تيدق صح."
+
+#: src/client/clientlauncher.cpp
+msgid "Main Menu"
+msgstr "مينو اوتام"
#: src/client/clientlauncher.cpp
msgid "No world selected and no address provided. Nothing to do."
msgstr "تيادا دنيا دڤيليه اتاو تيادا علامت دبري. تيادا اڤ بوليه دلاکوکن."
#: src/client/clientlauncher.cpp
-msgid "Provided world path doesn't exist: "
-msgstr "لالوان دنيا دبري تيدق وجود: "
+msgid "Player name too long."
+msgstr "نام ڤماٴين ترلالو ڤنجڠ."
#: src/client/clientlauncher.cpp
-msgid "Could not find or load game \""
-msgstr "تيدق جومڤ اتاو تيدق بوليه مواتکن ڤرماءينن \""
+msgid "Please choose a name!"
+msgstr "سيلا ڤيليه سواتو نام!"
#: src/client/clientlauncher.cpp
-msgid "Invalid gamespec."
-msgstr "سڤيسيÙيکاسي ڤرماءينن تيدق صح."
+msgid "Provided password file failed to open: "
+msgstr "ÙØ§ÙŠÙ„ کات لالوان ÙŠÚ  دسدياکن ݢاݢل دبوک: "
+
+#: src/client/clientlauncher.cpp
+msgid "Provided world path doesn't exist: "
+msgstr "لالوان دنيا دبري تيدق وجود: "
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string. Put either "no" or "yes"
@@ -1054,165 +1119,206 @@ msgid "needs_fallback_font"
msgstr "yes"
#: src/client/game.cpp
-msgid "Shutting down..."
-msgstr "سدڠ منوتوڤ..."
-
-#: src/client/game.cpp
-msgid "Creating server..."
-msgstr "سدڠ منچيڤت ڤلاين..."
-
-#: src/client/game.cpp
-msgid "Creating client..."
-msgstr "سدڠ منچيڤت کليئن..."
-
-#: src/client/game.cpp
-msgid "Resolving address..."
-msgstr "سدڠ مڽلسايکن علامت..."
-
-#: src/client/game.cpp
-msgid "Connecting to server..."
-msgstr "سدڠ مڽمبوڠ کڤد ڤلاين..."
+msgid ""
+"\n"
+"Check debug.txt for details."
+msgstr ""
+"\n"
+"ڤريقسا ÙØ§ÙŠÙ„ debug.txt اونتوق معلومت لنجوت."
#: src/client/game.cpp
-msgid "Item definitions..."
-msgstr "سدڠ منتعريÙÚ©Ù† ايتم..."
+msgid "- Address: "
+msgstr "- علامت: "
#: src/client/game.cpp
-msgid "Node definitions..."
-msgstr "سدڠ منتعريÙÚ©Ù† نود..."
+msgid "- Creative Mode: "
+msgstr "- مود کرياتيÙ: "
#: src/client/game.cpp
-msgid "Media..."
-msgstr "سدڠ ممواتکن ميديا..."
+msgid "- Damage: "
+msgstr "- بوليه چدرا "
#: src/client/game.cpp
-msgid "KiB/s"
-msgstr "KiB/s"
+msgid "- Mode: "
+msgstr "- مود: "
#: src/client/game.cpp
-msgid "MiB/s"
-msgstr "MiB/s"
+msgid "- Port: "
+msgstr "- ڤورت: "
#: src/client/game.cpp
-msgid "Client side scripting is disabled"
-msgstr "سکريڤ ڤيهق کليئن دلومڤوهکن"
+msgid "- Public: "
+msgstr "- عوام: "
+#. ~ PvP = Player versus Player
#: src/client/game.cpp
-msgid "Sound muted"
-msgstr "بوڽي دبيسوکن"
+msgid "- PvP: "
+msgstr "- PvP: "
#: src/client/game.cpp
-msgid "Sound unmuted"
-msgstr "بوڽي دڽهبيسوکن"
+msgid "- Server Name: "
+msgstr "- نام ڤلاين: "
#: src/client/game.cpp
-msgid "Sound system is disabled"
-msgstr "سيستم بوڽي دلومڤوهکن"
+msgid "Automatic forward disabled"
+msgstr "ڤرݢرقن اٴوتوماتيک دلومڤوهکن"
#: src/client/game.cpp
-#, c-format
-msgid "Volume changed to %d%%"
-msgstr "ککواتن بوڽي داوبه کڤد %d%%"
+msgid "Automatic forward enabled"
+msgstr "ڤرݢرقن اٴوتوماتيک دبوليهکن"
#: src/client/game.cpp
-msgid "Sound system is not supported on this build"
-msgstr "سيستم بوڽي تيدق دسوکوڠ دبيناءن اين"
+msgid "Camera update disabled"
+msgstr "کمس کيني کاميرا دلومڤوهکن"
#: src/client/game.cpp
-msgid "ok"
-msgstr "اوکي"
+msgid "Camera update enabled"
+msgstr "کمس کيني کاميرا دبوليهکن"
#: src/client/game.cpp
-msgid "Fly mode enabled"
-msgstr "مود تربڠ دبوليهکن"
+msgid "Change Password"
+msgstr "توکر کات لالوان"
#: src/client/game.cpp
-msgid "Fly mode enabled (note: no 'fly' privilege)"
-msgstr "مود تربڠ دبوليهکن (نوت: تيادا کأيستيميواءن 'تربڠ')"
+msgid "Cinematic mode disabled"
+msgstr "مود سينماتيک دلومڤوهکن"
#: src/client/game.cpp
-msgid "Fly mode disabled"
-msgstr "مود تربڠ دلومڤوهکن"
+msgid "Cinematic mode enabled"
+msgstr "مود سينماتيک دبوليهکن"
#: src/client/game.cpp
-msgid "Pitch move mode enabled"
-msgstr "مود ڤرݢرقن ڤيچ دبوليهکن"
+msgid "Client side scripting is disabled"
+msgstr "سکريڤ ڤيهق کليئن دلومڤوهکن"
#: src/client/game.cpp
-msgid "Pitch move mode disabled"
-msgstr "مود ڤرݢرقن ڤيچ دلومڤوهکن"
+msgid "Connecting to server..."
+msgstr "سدڠ مڽمبوڠ کڤد ڤلاين..."
#: src/client/game.cpp
-msgid "Fast mode enabled"
-msgstr "مود ڤرݢرقن ڤنتس دبوليهکن"
+msgid "Continue"
+msgstr "تروسکن"
#: src/client/game.cpp
-msgid "Fast mode enabled (note: no 'fast' privilege)"
-msgstr "مود ڤرݢرقن ڤنتس دبوليهکن (نوت: تيادا کأيستيميواءن 'ڤرݢرقن ڤنتس')"
+#, fuzzy, c-format
+msgid ""
+"Controls:\n"
+"- %s: move forwards\n"
+"- %s: move backwards\n"
+"- %s: move left\n"
+"- %s: move right\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
+"- %s: drop item\n"
+"- %s: inventory\n"
+"- Mouse: turn/look\n"
+"- Mouse wheel: select item\n"
+"- %s: chat\n"
+msgstr ""
+"کاولن:\n"
+"- %s: برݢرق کدڤن\n"
+"- %s: برݢرق کبلاکڠ\n"
+"- %s: برݢرق ککيري\n"
+"- %s: برݢرق ککانن\n"
+"- %s: لومڤت\\ناٴيق اتس\n"
+"- %s: سلينڤ\\تورون باواه\n"
+"- %s: جاتوهکن ايتم\n"
+"- %s: اينÛينتوري\n"
+"- تتيکوس: ڤوسيڠ\\ليهت سکليليڠ\n"
+"- تتيکوس کيري: ݢالي\\کتوق\n"
+"- تتيکوس کانن: لتق\\ݢونا\n"
+"- رودا تتيکوس: ڤيليه ايتم\n"
+"- %s: سيمبڠ\n"
#: src/client/game.cpp
-msgid "Fast mode disabled"
-msgstr "مود ڤرݢرقن ڤنتس دلومڤوهکن"
+msgid "Creating client..."
+msgstr "سدڠ منچيڤت کليئن..."
#: src/client/game.cpp
-msgid "Noclip mode enabled"
-msgstr "مود تمبوس بلوک دبوليهکن"
+msgid "Creating server..."
+msgstr "سدڠ منچيڤت ڤلاين..."
#: src/client/game.cpp
-msgid "Noclip mode enabled (note: no 'noclip' privilege)"
-msgstr "مود تمبوس بلوک دبوليهکن (نوت: تيادا کأيستيميواءن 'تمبوس بلوک')"
+msgid "Debug info and profiler graph hidden"
+msgstr "معلومت ڽهڤڤيجت دان ݢرا٠ڤمبوکه دسمبوڽيکن"
#: src/client/game.cpp
-msgid "Noclip mode disabled"
-msgstr "مود تمبوس بلوک دلومڤوهکن"
+msgid "Debug info shown"
+msgstr "معلومت ڽهڤڤيجت دتونجوقکن"
#: src/client/game.cpp
-msgid "Cinematic mode enabled"
-msgstr "مود سينماتيک دبوليهکن"
+msgid "Debug info, profiler graph, and wireframe hidden"
+msgstr "معلومت ڽهڤڤيجت⹠ݢرا٠ڤمبوکه⹠دان رڠک داواي دسمبوڽيکن"
#: src/client/game.cpp
-msgid "Cinematic mode disabled"
-msgstr "مود سينماتيک دلومڤوهکن"
+msgid ""
+"Default Controls:\n"
+"No menu visible:\n"
+"- single tap: button activate\n"
+"- double tap: place/use\n"
+"- slide finger: look around\n"
+"Menu/Inventory visible:\n"
+"- double tap (outside):\n"
+" -->close\n"
+"- touch stack, touch slot:\n"
+" --> move stack\n"
+"- touch&drag, tap 2nd finger\n"
+" --> place single item to slot\n"
+msgstr ""
+"کاولن اصل:\n"
+"تيادا مينو کليهتن:\n"
+"- تکن سکالي: اکتيÙÚ©Ù† بوتڠ\n"
+"- تکن دوا کالي: لتق بارڠ\\ݢونا سسواتو\n"
+"- تاريق دڠن جاري: ليهت سکليليڠ\n"
+"مينو\\اينÛينتوري کليهتن:\n"
+"- تکن برݢندا (لوار کاوسن اينÛينتوري):\n"
+" -->توتوڤ\n"
+"- تکن تيندنن⹠تکن سلوت:\n"
+" --> ڤينده تيندنن\n"
+"- سنتوه دان تاريق⹠تکن سکرين ڤاکاي جاري کدوا\n"
+" --> لتق ساتو ايتم دري تيندنن کدالم سلوت\n"
#: src/client/game.cpp
-msgid "Automatic forward enabled"
-msgstr "ڤرݢرقن اءوتوماتيک دبوليهکن"
+msgid "Disabled unlimited viewing range"
+msgstr "جارق ڤندڠ تنڤ حد دلومڤوهکن"
#: src/client/game.cpp
-msgid "Automatic forward disabled"
-msgstr "ڤرݢرقن اءوتوماتيک دلومڤوهکن"
+msgid "Enabled unlimited viewing range"
+msgstr "جارق ڤندڠ تنڤ حد دبوليهکن"
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "ڤتا ميني دالم مود ڤرموکاءن⹠زوم 1x"
+msgid "Exit to Menu"
+msgstr "کلوار کمينو"
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "ڤتا ميني دالم مود ڤرموکاءن⹠زوم 2x"
+msgid "Exit to OS"
+msgstr "کلوار تروس ڤرماٴينن"
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "ڤتا ميني دالم مود ڤرموکاءن⹠زوم 4x"
+msgid "Fast mode disabled"
+msgstr "مود ڤرݢرقن ڤنتس دلومڤوهکن"
#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "ڤتا ميني دالم مود رادر⹠زوم 1x"
+msgid "Fast mode enabled"
+msgstr "مود ڤرݢرقن ڤنتس دبوليهکن"
#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "ڤتا ميني دالم مود رادر⹠زوم 2x"
+msgid "Fast mode enabled (note: no 'fast' privilege)"
+msgstr "مود ڤرݢرقن ڤنتس دبوليهکن (نوت: تيادا کأيستيميواٴن 'ڤرݢرقن ڤنتس')"
#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "ڤتا ميني دالم مود رادر⹠زوم 4x"
+msgid "Fly mode disabled"
+msgstr "مود تربڠ دلومڤوهکن"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "ڤتا ميني دسمبوڽيکن"
+msgid "Fly mode enabled"
+msgstr "مود تربڠ دبوليهکن"
#: src/client/game.cpp
-msgid "Minimap currently disabled by game or mod"
-msgstr "ڤتا ميني دلومڤوهکن اوليه ڤرماءينن اتاو مودس"
+msgid "Fly mode enabled (note: no 'fly' privilege)"
+msgstr "مود تربڠ دبوليهکن (نوت: تيادا کأيستيميواٴن 'تربڠ')"
#: src/client/game.cpp
msgid "Fog disabled"
@@ -1223,361 +1329,290 @@ msgid "Fog enabled"
msgstr "کابوت دبوليهکن"
#: src/client/game.cpp
-msgid "Debug info shown"
-msgstr "معلومت ڽهڤڤيجت دتونجوقکن"
-
-#: src/client/game.cpp
-msgid "Profiler graph shown"
-msgstr "ݢرا٠ڤمبوکه دتونجوقکن"
-
-#: src/client/game.cpp
-msgid "Wireframe shown"
-msgstr "رڠک داواي دتونجوقکن"
+msgid "Game info:"
+msgstr "معلومت ڤرماٴينن:"
#: src/client/game.cpp
-msgid "Debug info, profiler graph, and wireframe hidden"
-msgstr "معلومت ڽهڤڤيجت⹠ݢرا٠ڤمبوکه⹠دان رڠک داواي دسمبوڽيکن"
+msgid "Game paused"
+msgstr "ڤرماٴينن دجيداکن"
#: src/client/game.cpp
-msgid "Debug info and profiler graph hidden"
-msgstr "معلومت ڽهڤڤيجت دان ݢرا٠ڤمبوکه دسمبوڽيکن"
+msgid "Hosting server"
+msgstr "مڠهوس ڤلاين"
#: src/client/game.cpp
-msgid "Camera update disabled"
-msgstr "کمس کيني کاميرا دلومڤوهکن"
+msgid "Item definitions..."
+msgstr "سدڠ منتعريÙÚ©Ù† ايتم..."
#: src/client/game.cpp
-msgid "Camera update enabled"
-msgstr "کمس کيني کاميرا دبوليهکن"
+msgid "KiB/s"
+msgstr "KiB/s"
#: src/client/game.cpp
-#, c-format
-msgid "Viewing range is at maximum: %d"
-msgstr "جارق ڤندڠ براد دتاهڤ مکسيموم: %d"
+msgid "Media..."
+msgstr "سدڠ ممواتکن ميديا..."
#: src/client/game.cpp
-#, c-format
-msgid "Viewing range changed to %d"
-msgstr "جارق ڤندڠ دتوکر ک%d"
+msgid "MiB/s"
+msgstr "MiB/s"
#: src/client/game.cpp
-#, c-format
-msgid "Viewing range is at minimum: %d"
-msgstr "جارق ڤندڠ براد دتاهڤ مينيموم: %d"
+msgid "Minimap currently disabled by game or mod"
+msgstr "ڤتا ميني دلومڤوهکن اوليه ڤرماٴينن اتاو مودس"
#: src/client/game.cpp
-msgid "Enabled unlimited viewing range"
-msgstr "جارق ڤندڠ تنڤ حد دبوليهکن"
+msgid "Noclip mode disabled"
+msgstr "مود تمبوس بلوک دلومڤوهکن"
#: src/client/game.cpp
-msgid "Disabled unlimited viewing range"
-msgstr "جارق ڤندڠ تنڤ حد دلومڤوهکن"
+msgid "Noclip mode enabled"
+msgstr "مود تمبوس بلوک دبوليهکن"
#: src/client/game.cpp
-msgid "Zoom currently disabled by game or mod"
-msgstr "زوم سدڠ دلومڤوهکن اوليه ڤرماءينن اتاو مودس"
+msgid "Noclip mode enabled (note: no 'noclip' privilege)"
+msgstr "مود تمبوس بلوک دبوليهکن (نوت: تيادا کأيستيميواٴن 'تمبوس بلوک')"
#: src/client/game.cpp
-msgid ""
-"Default Controls:\n"
-"No menu visible:\n"
-"- single tap: button activate\n"
-"- double tap: place/use\n"
-"- slide finger: look around\n"
-"Menu/Inventory visible:\n"
-"- double tap (outside):\n"
-" -->close\n"
-"- touch stack, touch slot:\n"
-" --> move stack\n"
-"- touch&drag, tap 2nd finger\n"
-" --> place single item to slot\n"
-msgstr ""
-"کاولن اصل:\n"
-"تيادا مينو کليهتن:\n"
-"- تکن سکالي: اکتيÙÚ©Ù† بوتڠ\n"
-"- تکن دوا کالي: لتق بارڠ\\ݢونا سسواتو\n"
-"- تاريق دڠن جاري: ليهت سکليليڠ\n"
-"مينو\\اينÛينتوري کليهتن:\n"
-"- تکن برݢندا (لوار کاوسن اينÛينتوري):\n"
-" -->توتوڤ\n"
-"- تکن تيندنن⹠تکن سلوت:\n"
-" --> ڤينده تيندنن\n"
-"- سنتوه دان تاريق⹠تکن سکرين ڤاکاي جاري کدوا\n"
-" --> لتق ساتو ايتم دري تيندنن کدالم سلوت\n"
+msgid "Node definitions..."
+msgstr "سدڠ منتعريÙÚ©Ù† نود..."
#: src/client/game.cpp
-#, c-format
-msgid ""
-"Controls:\n"
-"- %s: move forwards\n"
-"- %s: move backwards\n"
-"- %s: move left\n"
-"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
-"- %s: drop item\n"
-"- %s: inventory\n"
-"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
-"- Mouse wheel: select item\n"
-"- %s: chat\n"
-msgstr ""
-"کاولن:\n"
-"- %s: برݢرق کدڤن\n"
-"- %s: برݢرق کبلاکڠ\n"
-"- %s: برݢرق ککيري\n"
-"- %s: برݢرق ککانن\n"
-"- %s: لومڤت\\ناءيق اتس\n"
-"- %s: سلينڤ\\تورون باواه\n"
-"- %s: جاتوهکن ايتم\n"
-"- %s: اينÛينتوري\n"
-"- تتيکوس: ڤوسيڠ\\ليهت سکليليڠ\n"
-"- تتيکوس کيري: ݢالي\\کتوق\n"
-"- تتيکوس کانن: لتق\\ݢونا\n"
-"- رودا تتيکوس: ڤيليه ايتم\n"
-"- %s: سيمبڠ\n"
+msgid "Off"
+msgstr "توتوڤ"
#: src/client/game.cpp
-msgid "Continue"
-msgstr "تروسکن"
+msgid "On"
+msgstr "بوک"
#: src/client/game.cpp
-msgid "Change Password"
-msgstr "توکر کات لالوان"
+msgid "Pitch move mode disabled"
+msgstr "مود ڤرݢرقن ڤيچ دلومڤوهکن"
#: src/client/game.cpp
-msgid "Game paused"
-msgstr "ڤرماءينن دجيداکن"
+msgid "Pitch move mode enabled"
+msgstr "مود ڤرݢرقن ڤيچ دبوليهکن"
#: src/client/game.cpp
-msgid "Sound Volume"
-msgstr "ککواتن بوڽي"
+msgid "Profiler graph shown"
+msgstr "ݢرا٠ڤمبوکه دتونجوقکن"
#: src/client/game.cpp
-msgid "Exit to Menu"
-msgstr "کلوار کمينو"
+msgid "Remote server"
+msgstr "ڤلاين جارق جاٴوه"
#: src/client/game.cpp
-msgid "Exit to OS"
-msgstr "کلوار تروس ڤرماءينن"
+msgid "Resolving address..."
+msgstr "سدڠ مڽلسايکن علامت..."
#: src/client/game.cpp
-msgid "Game info:"
-msgstr "معلومت ڤرماءينن:"
+msgid "Shutting down..."
+msgstr "سدڠ منوتوڤ..."
#: src/client/game.cpp
-msgid "- Mode: "
-msgstr "- مود: "
+msgid "Singleplayer"
+msgstr "ڤماٴين ڤرسأورڠن"
#: src/client/game.cpp
-msgid "Remote server"
-msgstr "ڤلاين جارق جاءوه"
+msgid "Sound Volume"
+msgstr "ککواتن بوڽي"
#: src/client/game.cpp
-msgid "- Address: "
-msgstr "- علامت: "
+msgid "Sound muted"
+msgstr "بوڽي دبيسوکن"
#: src/client/game.cpp
-msgid "Hosting server"
-msgstr "مڠهوس ڤلاين"
+msgid "Sound system is disabled"
+msgstr "سيستم بوڽي دلومڤوهکن"
#: src/client/game.cpp
-msgid "- Port: "
-msgstr "- ڤورت: "
+msgid "Sound system is not supported on this build"
+msgstr "سيستم بوڽي تيدق دسوکوڠ دبيناٴن اين"
#: src/client/game.cpp
-msgid "Singleplayer"
-msgstr "ڤماءين ڤرسأورڠن"
+msgid "Sound unmuted"
+msgstr "بوڽي دڽهبيسوکن"
#: src/client/game.cpp
-msgid "On"
-msgstr "بوک"
+#, c-format
+msgid "Viewing range changed to %d"
+msgstr "جارق ڤندڠ دتوکر ک%d"
#: src/client/game.cpp
-msgid "Off"
-msgstr "توتوڤ"
+#, c-format
+msgid "Viewing range is at maximum: %d"
+msgstr "جارق ڤندڠ براد دتاهڤ مکسيموم: %d"
#: src/client/game.cpp
-msgid "- Damage: "
-msgstr "- بوليه چدرا "
+#, c-format
+msgid "Viewing range is at minimum: %d"
+msgstr "جارق ڤندڠ براد دتاهڤ مينيموم: %d"
#: src/client/game.cpp
-msgid "- Creative Mode: "
-msgstr "- مود کرياتيÙ: "
+#, c-format
+msgid "Volume changed to %d%%"
+msgstr "ککواتن بوڽي داوبه کڤد %d%%"
-#. ~ PvP = Player versus Player
#: src/client/game.cpp
-msgid "- PvP: "
-msgstr "- PvP: "
+msgid "Wireframe shown"
+msgstr "رڠک داواي دتونجوقکن"
#: src/client/game.cpp
-msgid "- Public: "
-msgstr "- عوام: "
+msgid "Zoom currently disabled by game or mod"
+msgstr "زوم سدڠ دلومڤوهکن اوليه ڤرماٴينن اتاو مودس"
#: src/client/game.cpp
-msgid "- Server Name: "
-msgstr "- نام ڤلاين: "
+msgid "ok"
+msgstr "اوکي"
-#: src/client/game.cpp
-msgid ""
-"\n"
-"Check debug.txt for details."
-msgstr ""
-"\n"
-"ڤريقسا ÙØ§ÙŠÙ„ debug.txt اونتوق معلومت لنجوت."
+#: src/client/gameui.cpp
+msgid "Chat hidden"
+msgstr "سيمبڠ دسمبوڽيکن"
#: src/client/gameui.cpp
msgid "Chat shown"
msgstr "سيمبڠ دتونجوقکن"
#: src/client/gameui.cpp
-msgid "Chat hidden"
-msgstr "سيمبڠ دسمبوڽيکن"
+msgid "HUD hidden"
+msgstr "ڤاڤر ڤندو (HUD) دسمبوڽيکن"
#: src/client/gameui.cpp
msgid "HUD shown"
msgstr "ڤاڤر ڤندو (HUD) دتونجوقکن"
#: src/client/gameui.cpp
-msgid "HUD hidden"
-msgstr "ڤاڤر ڤندو (HUD) دسمبوڽيکن"
+msgid "Profiler hidden"
+msgstr "ڤمبوکه دسمبوڽيکن"
#: src/client/gameui.cpp
#, c-format
msgid "Profiler shown (page %d of %d)"
msgstr "ڤمبوکه دتونجوقکن (هلامن %d دري %d)"
-#: src/client/gameui.cpp
-msgid "Profiler hidden"
-msgstr "ڤمبوکه دسمبوڽيکن"
-
-#: src/client/keycode.cpp
-msgid "Left Button"
-msgstr "بوتڠ کيري"
-
-#: src/client/keycode.cpp
-msgid "Right Button"
-msgstr "بوتڠ کانن"
-
-#: src/client/keycode.cpp
-msgid "Middle Button"
-msgstr "بوتڠ تڠه"
-
#: src/client/keycode.cpp
-msgid "X Button 1"
-msgstr "بوتڠ X نومبور 1"
-
-#: src/client/keycode.cpp
-msgid "X Button 2"
-msgstr "بوتڠ X نومبور 2"
+msgid "Apps"
+msgstr "اڤليکاسي"
#: src/client/keycode.cpp
msgid "Backspace"
msgstr "Backspace"
#: src/client/keycode.cpp
-msgid "Tab"
-msgstr "Tab"
+msgid "Caps Lock"
+msgstr "کونچي حرو٠بسر"
#: src/client/keycode.cpp
msgid "Clear"
msgstr "ڤادم"
#: src/client/keycode.cpp
-msgid "Return"
-msgstr "Enter"
+msgid "Control"
+msgstr "Ctrl"
#: src/client/keycode.cpp
-msgid "Shift"
-msgstr "Shift"
+msgid "Down"
+msgstr "باواه"
#: src/client/keycode.cpp
-msgid "Control"
-msgstr "Ctrl"
+msgid "End"
+msgstr "End"
-#. ~ Key name, common on Windows keyboards
#: src/client/keycode.cpp
-msgid "Menu"
-msgstr "Menu"
+msgid "Erase EOF"
+msgstr "ڤادم EOF"
#: src/client/keycode.cpp
-msgid "Pause"
-msgstr "Pause"
+msgid "Execute"
+msgstr "لاکوکن"
#: src/client/keycode.cpp
-msgid "Caps Lock"
-msgstr "کونچي حرو٠بسر"
+msgid "Help"
+msgstr "بنتوان"
#: src/client/keycode.cpp
-msgid "Space"
-msgstr "سلاڠ"
+msgid "Home"
+msgstr "Home"
#: src/client/keycode.cpp
-msgid "Page up"
-msgstr "Page up"
+msgid "IME Accept"
+msgstr "IME - تريما"
#: src/client/keycode.cpp
-msgid "Page down"
-msgstr "Page down"
+msgid "IME Convert"
+msgstr "IME - توکر"
#: src/client/keycode.cpp
-msgid "End"
-msgstr "End"
+msgid "IME Escape"
+msgstr "IME - کلوار"
#: src/client/keycode.cpp
-msgid "Home"
-msgstr "Home"
+msgid "IME Mode Change"
+msgstr "IME - توکر مود"
+
+#: src/client/keycode.cpp
+msgid "IME Nonconvert"
+msgstr "IME - تيدقتوکر"
+
+#: src/client/keycode.cpp
+msgid "Insert"
+msgstr "Insert"
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
msgid "Left"
msgstr "ککيري"
#: src/client/keycode.cpp
-msgid "Up"
-msgstr "اتس"
+msgid "Left Button"
+msgstr "بوتڠ کيري"
-#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
-msgid "Right"
-msgstr "ککانن"
+#: src/client/keycode.cpp
+msgid "Left Control"
+msgstr "Ctrl کيري"
#: src/client/keycode.cpp
-msgid "Down"
-msgstr "باواه"
+msgid "Left Menu"
+msgstr "مينو کيري"
-#. ~ Key name
#: src/client/keycode.cpp
-msgid "Select"
-msgstr "Select"
+msgid "Left Shift"
+msgstr "Shift کيري"
-#. ~ "Print screen" key
#: src/client/keycode.cpp
-msgid "Print"
-msgstr "Print Screen"
+msgid "Left Windows"
+msgstr "Windows کيري"
+#. ~ Key name, common on Windows keyboards
#: src/client/keycode.cpp
-msgid "Execute"
-msgstr "لاکوکن"
+msgid "Menu"
+msgstr "Menu"
#: src/client/keycode.cpp
-msgid "Snapshot"
-msgstr "تڠکڤ ݢمبر سکرين"
+msgid "Middle Button"
+msgstr "بوتڠ تڠه"
#: src/client/keycode.cpp
-msgid "Insert"
-msgstr "Insert"
+msgid "Num Lock"
+msgstr "کونچي اڠک"
#: src/client/keycode.cpp
-msgid "Help"
-msgstr "بنتوان"
+msgid "Numpad *"
+msgstr "ڤد اڠک *"
#: src/client/keycode.cpp
-msgid "Left Windows"
-msgstr "Windows کيري"
+msgid "Numpad +"
+msgstr "ڤد اڠک +"
#: src/client/keycode.cpp
-msgid "Right Windows"
-msgstr "Windows کانن"
+msgid "Numpad -"
+msgstr "ڤد اڠک -"
+
+#: src/client/keycode.cpp
+msgid "Numpad ."
+msgstr "ڤد اڠک ."
+
+#: src/client/keycode.cpp
+msgid "Numpad /"
+msgstr "ڤد اڠک /"
#: src/client/keycode.cpp
msgid "Numpad 0"
@@ -1620,100 +1655,129 @@ msgid "Numpad 9"
msgstr "ڤد اڠک 9"
#: src/client/keycode.cpp
-msgid "Numpad *"
-msgstr "ڤد اڠک *"
+msgid "OEM Clear"
+msgstr "ڤادم OEM"
#: src/client/keycode.cpp
-msgid "Numpad +"
-msgstr "ڤد اڠک +"
+msgid "Page down"
+msgstr "Page down"
#: src/client/keycode.cpp
-msgid "Numpad ."
-msgstr "ڤد اڠک ."
+msgid "Page up"
+msgstr "Page up"
#: src/client/keycode.cpp
-msgid "Numpad -"
-msgstr "ڤد اڠک -"
+msgid "Pause"
+msgstr "Pause"
#: src/client/keycode.cpp
-msgid "Numpad /"
-msgstr "ڤد اڠک /"
+msgid "Play"
+msgstr "مولا ماٴين"
+#. ~ "Print screen" key
#: src/client/keycode.cpp
-msgid "Num Lock"
-msgstr "کونچي اڠک"
+msgid "Print"
+msgstr "Print Screen"
#: src/client/keycode.cpp
-msgid "Scroll Lock"
-msgstr "کونچي تاتل"
+msgid "Return"
+msgstr "Enter"
+
+#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
+msgid "Right"
+msgstr "ککانن"
#: src/client/keycode.cpp
-msgid "Left Shift"
-msgstr "Shift کيري"
+msgid "Right Button"
+msgstr "بوتڠ کانن"
#: src/client/keycode.cpp
-msgid "Right Shift"
-msgstr "Shift کانن"
+msgid "Right Control"
+msgstr "Ctrl کانن"
#: src/client/keycode.cpp
-msgid "Left Control"
-msgstr "Ctrl کيري"
+msgid "Right Menu"
+msgstr "مينو کانن"
#: src/client/keycode.cpp
-msgid "Right Control"
-msgstr "Ctrl کانن"
+msgid "Right Shift"
+msgstr "Shift کانن"
#: src/client/keycode.cpp
-msgid "Left Menu"
-msgstr "مينو کيري"
+msgid "Right Windows"
+msgstr "Windows کانن"
#: src/client/keycode.cpp
-msgid "Right Menu"
-msgstr "مينو کانن"
+msgid "Scroll Lock"
+msgstr "کونچي تاتل"
+#. ~ Key name
#: src/client/keycode.cpp
-msgid "IME Escape"
-msgstr "IME - کلوار"
+msgid "Select"
+msgstr "Select"
#: src/client/keycode.cpp
-msgid "IME Convert"
-msgstr "IME - توکر"
+msgid "Shift"
+msgstr "Shift"
#: src/client/keycode.cpp
-msgid "IME Nonconvert"
-msgstr "IME - تيدقتوکر"
+msgid "Sleep"
+msgstr "تيدور"
#: src/client/keycode.cpp
-msgid "IME Accept"
-msgstr "IME - تريما"
+msgid "Snapshot"
+msgstr "تڠکڤ ݢمبر سکرين"
#: src/client/keycode.cpp
-msgid "IME Mode Change"
-msgstr "IME - توکر مود"
+msgid "Space"
+msgstr "سلاڠ"
#: src/client/keycode.cpp
-msgid "Apps"
-msgstr "اڤليکاسي"
+msgid "Tab"
+msgstr "Tab"
#: src/client/keycode.cpp
-msgid "Sleep"
-msgstr "تيدور"
+msgid "Up"
+msgstr "اتس"
#: src/client/keycode.cpp
-msgid "Erase EOF"
-msgstr "ڤادم EOF"
+msgid "X Button 1"
+msgstr "بوتڠ X نومبور 1"
#: src/client/keycode.cpp
-msgid "Play"
-msgstr "مولا ماءين"
+msgid "X Button 2"
+msgstr "بوتڠ X نومبور 2"
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
msgid "Zoom"
msgstr "زوم"
-#: src/client/keycode.cpp
-msgid "OEM Clear"
-msgstr "ڤادم OEM"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "ڤتا ميني دسمبوڽيکن"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "ڤتا ميني دالم مود رادر⹠زوم 1x"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "ڤتا ميني دالم مود ڤرموکاٴن⹠زوم 1x"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "سايز تيکستور مينيموم"
+
+#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
+msgid "Passwords do not match!"
+msgstr "کات لالوان تيدق ڤادن!"
+
+#: src/gui/guiConfirmRegistration.cpp
+msgid "Register and Join"
+msgstr "Ø¯ÙØªØ± دان سرتاٴي"
#: src/gui/guiConfirmRegistration.cpp
#, c-format
@@ -1724,187 +1788,175 @@ msgid ""
"Please retype your password and click 'Register and Join' to confirm account "
"creation, or click 'Cancel' to abort."
msgstr ""
-"اندا اکن سرتاءي ڤلاين دڠن نام \"%s\" اونتوق کالي ڤرتام.\n"
-"جيک اندا تروسکن⹠اکاءون بهارو دڠن معلومت اندا اکن دچيڤت دڤلاين اين.\n"
-"سيلا تايڤ سمولا کات لالوان اندا دان کليک 'Ø¯ÙØªØ± دان سرتاءي' اونتوق صحکن "
-"ڤنچيڤتاءن اکاءون⹠اتاو کليک 'باتل' اونتوق ممباتلکن."
-
-#: src/gui/guiConfirmRegistration.cpp
-msgid "Register and Join"
-msgstr "Ø¯ÙØªØ± دان سرتاءي"
-
-#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
-msgid "Passwords do not match!"
-msgstr "کات لالوان تيدق ڤادن!"
+"اندا اکن سرتاٴي ڤلاين دڠن نام \"%s\" اونتوق کالي ڤرتام.\n"
+"جيک اندا تروسکن⹠اکاٴون بهارو دڠن معلومت اندا اکن دچيڤت دڤلاين اين.\n"
+"سيلا تايڤ سمولا کات لالوان اندا دان کليک 'Ø¯ÙØªØ± دان سرتاٴي' اونتوق صحکن "
+"ڤنچيڤتاٴن اکاٴون⹠اتاو کليک 'باتل' اونتوق ممباتلکن."
#: src/gui/guiFormSpecMenu.cpp
msgid "Proceed"
msgstr "تروسکن"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
-msgstr ""
-"ايکتن ککونچي. (جيک مينو اين برسليرق⹠ڤادم سستڠه بندا دري ÙØ§ÙŠÙ„ minetest.conf)"
-
-#: src/gui/guiKeyChangeMenu.cpp
msgid "\"Special\" = climb down"
msgstr "\"ايستيميوا\" = ڤنجت تورون"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Double tap \"jump\" to toggle fly"
-msgstr "تکن دوا کالي \"لومڤت\" اونتوق منوݢول تربڠ"
+msgid "Autoforward"
+msgstr "أوتوڤرݢرقن"
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Automatic jumping"
msgstr "لومڤت أوتوماتيک"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Key already in use"
-msgstr "ککونچي تله دݢوناکن اونتوق Ùوڠسي لاءين"
+msgid "Backward"
+msgstr "کبلاکڠ"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "press key"
-msgstr "تکن ککونچي"
+msgid "Change camera"
+msgstr "توکر کاميرا"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Forward"
-msgstr "کدڤن"
+msgid "Chat"
+msgstr "سيمبڠ"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Backward"
-msgstr "کبلاکڠ"
+msgid "Command"
+msgstr "ارهن"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Special"
-msgstr "ايستيميوا"
+msgid "Console"
+msgstr "کونسول"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Jump"
-msgstr "لومڤت"
+msgid "Dec. range"
+msgstr "کورڠکن جارق"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Sneak"
-msgstr "سلينڤ"
+msgid "Dec. volume"
+msgstr "ڤرلاهنکن بوڽي"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Drop"
-msgstr "جاتوهکن"
+msgid "Double tap \"jump\" to toggle fly"
+msgstr "تکن دوا کالي \"لومڤت\" اونتوق منوݢول تربڠ"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inventory"
-msgstr "اينÛينتوري"
+msgid "Drop"
+msgstr "جاتوهکن"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Prev. item"
-msgstr "ايتم سبلومڽ"
+msgid "Forward"
+msgstr "کدڤن"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Next item"
-msgstr "ايتم ستروسڽ"
+msgid "Inc. range"
+msgstr "ناٴيقکن جارق"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Change camera"
-msgstr "توکر کاميرا"
+msgid "Inc. volume"
+msgstr "کواتکن بوڽي"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle minimap"
-msgstr "توݢول ڤتا ميني"
+msgid "Inventory"
+msgstr "اينÛينتوري"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fly"
-msgstr "توݢول تربڠ"
+msgid "Jump"
+msgstr "لومڤت"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle pitchmove"
-msgstr "توݢول ڤرݢرقن منچورم"
+msgid "Key already in use"
+msgstr "ککونچي تله دݢوناکن اونتوق Ùوڠسي لاٴين"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fast"
-msgstr "توݢول ڤرݢرقن ڤنتس"
+msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
+msgstr ""
+"ايکتن ککونچي. (جيک مينو اين برسليرق⹠ڤادم سستڠه بندا دري ÙØ§ÙŠÙ„ minetest.conf)"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle noclip"
-msgstr "توݢول تمبوس بلوک"
+msgid "Local command"
+msgstr "ارهن تمڤتن"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Mute"
msgstr "بيسو"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Dec. volume"
-msgstr "ڤرلاهنکن بوڽي"
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inc. volume"
-msgstr "کواتکن بوڽي"
+msgid "Next item"
+msgstr "ايتم ستروسڽ"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Autoforward"
-msgstr "أوتوڤرݢرقن"
+msgid "Prev. item"
+msgstr "ايتم سبلومڽ"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Chat"
-msgstr "سيمبڠ"
+msgid "Range select"
+msgstr "جارق ڤميليهن"
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
msgstr "تڠکڤ لاير"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Range select"
-msgstr "جارق ڤميليهن"
+msgid "Sneak"
+msgstr "سلينڤ"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Dec. range"
-msgstr "کورڠکن جارق"
+msgid "Special"
+msgstr "ايستيميوا"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inc. range"
-msgstr "ناءيقکن جارق"
+msgid "Toggle HUD"
+msgstr "توݢول ڤاڤر ڤندو (HUD)"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Console"
-msgstr "کونسول"
+msgid "Toggle chat log"
+msgstr "توݢول لوݢ سيمبڠ"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Command"
-msgstr "ارهن"
+msgid "Toggle fast"
+msgstr "توݢول ڤرݢرقن ڤنتس"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Local command"
-msgstr "ارهن تمڤتن"
+msgid "Toggle fly"
+msgstr "توݢول تربڠ"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle HUD"
-msgstr "توݢول ڤاڤر ڤندو (HUD)"
+msgid "Toggle fog"
+msgstr "توݢول کابوت"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle chat log"
-msgstr "توݢول لوݢ سيمبڠ"
+msgid "Toggle minimap"
+msgstr "توݢول ڤتا ميني"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fog"
-msgstr "توݢول کابوت"
+msgid "Toggle noclip"
+msgstr "توݢول تمبوس بلوک"
-#: src/gui/guiPasswordChange.cpp
-msgid "Old Password"
-msgstr "کات لالوان لام"
+#: src/gui/guiKeyChangeMenu.cpp
+msgid "Toggle pitchmove"
+msgstr "توݢول ڤرݢرقن منچورم"
+
+#: src/gui/guiKeyChangeMenu.cpp
+msgid "press key"
+msgstr "تکن ککونچي"
#: src/gui/guiPasswordChange.cpp
-msgid "New Password"
-msgstr "کات لالوان بارو"
+msgid "Change"
+msgstr "توکر"
#: src/gui/guiPasswordChange.cpp
msgid "Confirm Password"
msgstr "صحکن کات لالوان"
#: src/gui/guiPasswordChange.cpp
-msgid "Change"
-msgstr "توکر"
+msgid "New Password"
+msgstr "کات لالوان بارو"
-#: src/gui/guiVolumeChange.cpp
-msgid "Sound Volume: "
-msgstr "ککواتن بوڽي: "
+#: src/gui/guiPasswordChange.cpp
+msgid "Old Password"
+msgstr "کات لالوان لام"
#: src/gui/guiVolumeChange.cpp
msgid "Exit"
@@ -1914,6 +1966,10 @@ msgstr "کلوار"
msgid "Muted"
msgstr "دبيسوکن"
+#: src/gui/guiVolumeChange.cpp
+msgid "Sound Volume: "
+msgstr "ککواتن بوڽي: "
+
#. ~ Imperative, as in "Enter/type in text".
#. Don't forget the space.
#: src/gui/modalMenu.cpp
@@ -1928,1420 +1984,1069 @@ msgid "LANG_CODE"
msgstr "ms_Arab"
#: src/settings_translation_file.cpp
-msgid "Controls"
-msgstr "کاولن"
-
-#: src/settings_translation_file.cpp
-msgid "Build inside player"
-msgstr "بينا دالم ڤماءين"
-
-#: src/settings_translation_file.cpp
msgid ""
-"If enabled, you can place blocks at the position (feet + eye level) where "
-"you stand.\n"
-"This is helpful when working with nodeboxes in small areas."
+"(Android) Fixes the position of virtual joystick.\n"
+"If disabled, virtual joystick will center to first-touch's position."
msgstr ""
-"جيک دبوليهکن⹠اندا بوليه ملتق بلوک دکدودوقن برديري (کاکي + ارس مات).\n"
-"اين ساڠت برݢونا اڤابيلا بکرجا دڠن کوتق نود دکاوسن يڠ کچيل."
-
-#: src/settings_translation_file.cpp
-msgid "Flying"
-msgstr "تربڠ"
+"(Android) منتڤکن کدودوقن کايو بديق ماي.\n"
+"جيک دلومڤوهکن⹠کدودوقن تڠه اونتوق کايو بديق ماي اکن دتنتوکن برداسرکن کدودوقن "
+"سنتوهن ڤرتام."
#: src/settings_translation_file.cpp
msgid ""
-"Player is able to fly without being affected by gravity.\n"
-"This requires the \"fly\" privilege on the server."
+"(Android) Use virtual joystick to trigger \"aux\" button.\n"
+"If enabled, virtual joystick will also tap \"aux\" button when out of main "
+"circle."
msgstr ""
-"ڤماءين بوليه تربڠ تنڤ ترکسن دڠن ݢراÛيتي.\n"
-"اين ممرلوکن کأيستيميواءن \"تربڠ\" دالم ڤلاين ڤرماءينن ترسبوت."
-
-#: src/settings_translation_file.cpp
-msgid "Pitch move mode"
-msgstr "مود ڤرݢرقن ڤيچ"
+"(Android) ݢوناکن کايو بديق ماي اونتوق ڤيچو بوتڠ \"aux\".\n"
+"جيک دبوليهکن⹠کايو بديق ماي جوݢ اکن منکن بوتڠ \"aux\" اڤابيلا براد دلوار "
+"بولتن اوتام."
#: src/settings_translation_file.cpp
msgid ""
-"If enabled, makes move directions relative to the player's pitch when flying "
-"or swimming."
+"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
+"Can be used to move a desired point to (0, 0) to create a\n"
+"suitable spawn point, or to allow 'zooming in' on a desired\n"
+"point by increasing 'scale'.\n"
+"The default is tuned for a suitable spawn point for Mandelbrot\n"
+"sets with default parameters, it may need altering in other\n"
+"situations.\n"
+"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
msgstr ""
-"جيک دبوليهکن⹠اي ممبواتکن اره ڤرݢرقن ريلاتي٠دڠن ڤيچ ڤماءين اڤابيلا تربڠ "
-"اتاو برنڠ."
-
-#: src/settings_translation_file.cpp
-msgid "Fast movement"
-msgstr "ڤرݢرقن ڤنتس"
+"(X,Y,Z) Ø§ÙˆÙØ³ÙŠØª ÙØ±Ø§Ú©ØªÙ„ دري ڤوست دنيا دالم اونيت 'سکال'.\n"
+"بوليه ݢونا اونتوق ڤيندهکن تيتيق يڠ دايڠيني ک(0, 0)\n"
+"اونتوق چيڤت تيتيق کلاهيرن يڠ سسواي⹠اتاو اونتوق\n"
+"ممبوليهکن 'زوم ماسوق' ڤد تيتيق يڠ دايڠينکن\n"
+"دڠن مناٴيقکن 'سکال'.\n"
+"نيلاي لالاي دسسوايکن اونتوق تيتيق کلاهيرن سسواي اونتوق سيت Mandelbrot\n"
+"دڠن ڤاراميتر لالاي⹠اي موڠکين ڤرلو داوبه اونتوق سيتواسي يڠ لاٴين.\n"
+"جولت کاسرڽ -2 سهيڠݢ 2. داربکن دڠن 'سکال' اونتوق Ø§ÙˆÙØ³ÙŠØª دالم نود."
#: src/settings_translation_file.cpp
msgid ""
-"Fast movement (via the \"special\" key).\n"
-"This requires the \"fast\" privilege on the server."
+"(X,Y,Z) scale of fractal in nodes.\n"
+"Actual fractal size will be 2 to 3 times larger.\n"
+"These numbers can be made very large, the fractal does\n"
+"not have to fit inside the world.\n"
+"Increase these to 'zoom' into the detail of the fractal.\n"
+"Default is for a vertically-squashed shape suitable for\n"
+"an island, set all 3 numbers equal for the raw shape."
msgstr ""
-"برݢرق ڤنتس (دڠن ککونچي \"ايستيميوا\").\n"
-"اين ممرلوکن کأيستيميواءن \"ڤرݢرقن ڤنتس\" دالم ڤلاين ڤرماءينن ترسبوت."
-
-#: src/settings_translation_file.cpp
-msgid "Noclip"
-msgstr "تمبوس بلوک"
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled together with fly mode, player is able to fly through solid "
-"nodes.\n"
-"This requires the \"noclip\" privilege on the server."
+msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
-"جيک دبوليهکن برسام مود تربڠ⹠ڤماءين بوليه تربڠ منروسي نود ڤڤجل.\n"
-"اين ممرلوکن کأيستيميواءن \"تمبوس بلوک\" دالم ڤلاين ڤرماءينن ترسبوت."
-
-#: src/settings_translation_file.cpp
-msgid "Cinematic mode"
-msgstr "مود سينماتيک"
#: src/settings_translation_file.cpp
-msgid ""
-"Smooths camera when looking around. Also called look or mouse smoothing.\n"
-"Useful for recording videos."
+msgid "2D noise that controls the shape/size of rolling hills."
msgstr ""
-"ملمبوتکن کاميرا اڤابيلا مليهت سکليليڠ. جوݢ دکنلي سباݢاي ڤلمبوتن ڤڠليهتن اتاو "
-"ڤلمبوتن تتيکوس.\n"
-"برݢونا اونتوق مراکم Ûيديو."
#: src/settings_translation_file.cpp
-msgid "Camera smoothing"
-msgstr "ڤلمبوتن کاميرا"
+msgid "2D noise that controls the shape/size of step mountains."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Smooths rotation of camera. 0 to disable."
-msgstr "ملمبوتکن ڤموترن کاميرا. سيت سباݢاي 0 اونتوق ملومڤوهکنڽ."
+msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Camera smoothing in cinematic mode"
-msgstr "ڤلمبوتن کاميرا دالم مود سينماتيک"
+msgid "2D noise that controls the size/occurrence of rolling hills."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Smooths rotation of camera in cinematic mode. 0 to disable."
+msgid "2D noise that controls the size/occurrence of step mountain ranges."
msgstr ""
-"ملمبوتکن ڤموترن کاميرا دالم مود سينماتيک. سيت سباݢاي 0 اونتوق ملومڤوهکنڽ."
#: src/settings_translation_file.cpp
-msgid "Invert mouse"
-msgstr "تتيکوس سوڠسڠ"
+msgid "2D noise that locates the river valleys and channels."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Invert vertical mouse movement."
-msgstr "مڽوڠسڠکن ڤرݢرقن تتيکوس منݢق."
+msgid "3D clouds"
+msgstr "اون 3D"
#: src/settings_translation_file.cpp
-msgid "Mouse sensitivity"
-msgstr "کڤيکاءن تتيکوس"
+msgid "3D mode"
+msgstr "مود 3D"
#: src/settings_translation_file.cpp
-msgid "Mouse sensitivity multiplier."
-msgstr "ڤندارب کڤيکاءن تتيکوس."
+msgid "3D mode parallax strength"
+msgstr "ککواتن ڤارالکس مود 3D"
#: src/settings_translation_file.cpp
-msgid "Special key for climbing/descending"
-msgstr "ککونچي اونتوق ممنجت\\منورون"
+msgid "3D noise defining giant caverns."
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"If enabled, \"special\" key instead of \"sneak\" key is used for climbing "
-"down and\n"
-"descending."
+"3D noise defining mountain structure and height.\n"
+"Also defines structure of floatland mountain terrain."
msgstr ""
-"جيک دبوليهکن⹠ککونچي \"ايستيميوا\" اکن دݢوناکن اونتوق ڤنجت کباوه دان\n"
-"تورون دالم مود تربڠ⹠مڠݢنتيکن ککونچي \"سلينڤ\"."
-
-#: src/settings_translation_file.cpp
-msgid "Double tap jump for fly"
-msgstr "تکن \"لومڤت\" دوا کالي اونتوق تربڠ"
-
-#: src/settings_translation_file.cpp
-msgid "Double-tapping the jump key toggles fly mode."
-msgstr "تکن بوتڠ \"لومڤت\" سچارا چڤت دوا کالي اونتوق منوݢول مود تربڠ."
-
-#: src/settings_translation_file.cpp
-msgid "Always fly and fast"
-msgstr "سنتياس تربڠ دان برݢرق ڤنتس"
#: src/settings_translation_file.cpp
msgid ""
-"If disabled, \"special\" key is used to fly fast if both fly and fast mode "
-"are\n"
-"enabled."
+"3D noise defining structure of floatlands.\n"
+"If altered from the default, the noise 'scale' (0.7 by default) may need\n"
+"to be adjusted, as floatland tapering functions best when this noise has\n"
+"a value range of approximately -2.0 to 2.0."
msgstr ""
-"جيک دلومڤوهکن⹠ککونچي \"ايستيميوا\" اکن دݢوناکن اونتوق تربڠ لاجو\n"
-"سکيراڽ کدوا-دوا مود تربڠ دان مود ڤرݢرقن ڤنتس دبوليهکن."
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "سلڠ ڤڠاولڠن کليک کانن"
+msgid "3D noise defining structure of river canyon walls."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+msgid "3D noise defining terrain."
msgstr ""
-"جومله ماس دالم ساءت دامبيل اونتوق ملاکوکن کليک کانن يڠ براولڠ اڤابيلا\n"
-"ڤماءين منکن بوتڠ تتيکوس کانن تنڤ ملڤسکنڽ."
#: src/settings_translation_file.cpp
-msgid "Automatically jump up single-node obstacles."
-msgstr "لومڤت هالڠن ساتو-نود سچارا أوروماتيک."
+msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Safe digging and placing"
-msgstr "ڤڠݢالين دان ڤلتقن سلامت"
+msgid "3D noise that determines number of dungeons per mapchunk."
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Prevent digging and placing from repeating when holding the mouse buttons.\n"
-"Enable this when you dig or place too often by accident."
+"3D support.\n"
+"Currently supported:\n"
+"- none: no 3d output.\n"
+"- anaglyph: cyan/magenta color 3d.\n"
+"- interlaced: odd/even line based polarisation screen support.\n"
+"- topbottom: split screen top/bottom.\n"
+"- sidebyside: split screen side by side.\n"
+"- crossview: Cross-eyed 3d\n"
+"- pageflip: quadbuffer based 3d.\n"
+"Note that the interlaced mode requires shaders to be enabled."
msgstr ""
-"منچݢه ݢالي دان ڤلتقن درڤد براولڠ کتيک تروس منکن بوتڠ تتيکوس.\n"
-"بوليهکن تتڤن اين اڤابيلا اندا ݢالي اتاو لتق سچارا تيدق سڠاج ترلالو کرڤ."
-
-#: src/settings_translation_file.cpp
-msgid "Random input"
-msgstr "اينڤوت راوق"
-
-#: src/settings_translation_file.cpp
-msgid "Enable random user input (only used for testing)."
-msgstr "ممبوليهکن اينڤوت ڤڠݢونا سچارا راوق (هاڽ اونتوق ڤرچوباءن)."
-
-#: src/settings_translation_file.cpp
-msgid "Continuous forward"
-msgstr "کدڤن برتروسن"
+"سوکوڠن 3D.\n"
+"يڠ دسوکوڠ ڤد ماس اين:\n"
+"- تيادا: تيادا اٴوتڤوت 3D.\n"
+"- اناݢليÙ: 3D ورنا بيرو\\موره.\n"
+"- سلڠ-سلي: ݢاريس ݢنڤ\\ݢنجيل برداسرکن سوکوڠن سکرين ڤولاريساسي.\n"
+"- اتس-باوه: ڤيسه سکرين اتس\\باوه.\n"
+"- کيري-کانن: ڤيسه سکرين کيري\\کانن.\n"
+"- سيلڠ ليهت: 3D مات برسيلڠ\n"
+"- سيلق هلامن: 3D براساسکن ڤنيمبل کواد.\n"
+"امبيل ڤرهاتين بهاوا مود سلڠ-سلي ممرلوکن ڤمبايڠ."
#: src/settings_translation_file.cpp
msgid ""
-"Continuous forward movement, toggled by autoforward key.\n"
-"Press the autoforward key again or the backwards movement to disable."
+"A chosen map seed for a new map, leave empty for random.\n"
+"Will be overridden when creating a new world in the main menu."
msgstr ""
-"ڤرݢرقن کدڤن برتروسن⹠دتوݢول اوليه ککونچي أوتوڤرݢرقن.\n"
-"تکن ککونچي أوتوڤرݢرقن لاݢي اتاو ڤرݢرقن کبلاکڠ اونتوق ملومڤوهکنڽ."
-
-#: src/settings_translation_file.cpp
-msgid "Touch screen threshold"
-msgstr "نيلاي امبڠ سکرين سنتوه"
+"بنيه ڤتا يڠ دڤيليه اونتوق ڤتا بارو⹠بيارکن کوسوڠ اونتوق بنيه راوق.\n"
+"تيدق دݢوناڤاکاي سکيراڽ منچيڤتا دنيا بارو ملالوٴي مينو اوتام."
#: src/settings_translation_file.cpp
-msgid "The length in pixels it takes for touch screen interaction to start."
-msgstr "ڤنجڠ دالم ڤيکسيل اونتوق ممولاکن اينتراکسي سکرين سنتوه."
+msgid "A message to be displayed to all clients when the server crashes."
+msgstr "ميسيج يڠ اکن دڤاڤرکن کڤد سموا کليئن اڤابيلا ڤلاين رونتوه."
#: src/settings_translation_file.cpp
-msgid "Fixed virtual joystick"
-msgstr "کايو بديق ماي تتڤ"
+msgid "A message to be displayed to all clients when the server shuts down."
+msgstr "ميسيج يڠ اکن دڤاڤرکن دکت سموا کليئن اڤابيلا ڤلاين دتوتوڤ."
#: src/settings_translation_file.cpp
-msgid ""
-"(Android) Fixes the position of virtual joystick.\n"
-"If disabled, virtual joystick will center to first-touch's position."
+msgid "ABM interval"
msgstr ""
-"(Android) منتڤکن کدودوقن کايو بديق ماي.\n"
-"جيک دلومڤوهکن⹠کدودوقن تڠه اونتوق کايو بديق ماي اکن دتنتوکن برداسرکن کدودوقن "
-"سنتوهن ڤرتام."
#: src/settings_translation_file.cpp
-msgid "Virtual joystick triggers aux button"
-msgstr "کايو بديق ماي مميچو بوتڠ aux"
+msgid "ABM time budget"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"(Android) Use virtual joystick to trigger \"aux\" button.\n"
-"If enabled, virtual joystick will also tap \"aux\" button when out of main "
-"circle."
+msgid "Absolute limit of queued blocks to emerge"
msgstr ""
-"(Android) ݢوناکن کايو بديق ماي اونتوق ڤيچو بوتڠ \"aux\".\n"
-"جيک دبوليهکن⹠کايو بديق ماي جوݢ اکن منکن بوتڠ \"aux\" اڤابيلا براد دلوار "
-"بولتن اوتام."
#: src/settings_translation_file.cpp
-msgid "Enable joysticks"
-msgstr "ممبوليهکن کايو بديق"
+msgid "Acceleration in air"
+msgstr "ڤچوتن دأودارا"
#: src/settings_translation_file.cpp
-msgid "Joystick ID"
-msgstr "ID کايو بديق"
+msgid "Acceleration of gravity, in nodes per second per second."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "The identifier of the joystick to use"
-msgstr "ڤڠنل ڤستي کايو بديق يڠ دݢوناکن"
+msgid "Active Block Modifiers"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "Joystick type"
-msgstr "جنيس کايو بديق"
+msgid "Active block management interval"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid "The type of joystick"
-msgstr "جنيس کايو بديق"
+msgid "Active block range"
+msgstr "جارق بلوک اکتيÙ"
#: src/settings_translation_file.cpp
-msgid "Joystick button repetition interval"
-msgstr "سلڠ ماس ڤڠاولڠن بوتڠ کايو بديق"
+msgid "Active object send range"
+msgstr "جارق ڤڠهنترن اوبجيک اکتيÙ"
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated events\n"
-"when holding down a joystick button combination."
+"Address to connect to.\n"
+"Leave this blank to start a local server.\n"
+"Note that the address field in the main menu overrides this setting."
msgstr ""
-"سلڠ ماس دالم ساءت⹠دامبيل انتارا ڤريستيوا يڠ براولڠن\n"
-"اڤابيلا منکن کومبيناسي بوتڠ کايو بديق."
+"علامت اونتوق مڽمبوڠ.\n"
+"بيار کوسوڠ اونتوق ممولاکن ڤلاين ڤرماٴينن تمڤتن.\n"
+"امبيل ڤرهاتيان بهاوا ميدن علامت دالم مينو اوتام مڠاتسي تتڤن اين."
#: src/settings_translation_file.cpp
-msgid "Joystick frustum sensitivity"
-msgstr "کڤيکاءن ÙØ±ÙˆØ³ØªÙˆÙ… کايو بديق"
+msgid "Adds particles when digging a node."
+msgstr "منمبه ڤرتيکل اڤابيلا مڠݢالي نود."
#: src/settings_translation_file.cpp
msgid ""
-"The sensitivity of the joystick axes for moving the\n"
-"ingame view frustum around."
+"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
+"screens."
msgstr ""
-"کڤيکاءن ڤکسي کايو بديق اونتوق مڠݢرقکن\n"
-"ÙØ±ÙˆØ³ØªÙˆÙ… ڤڠليهتن دالم ڤرماءينن."
-
-#: src/settings_translation_file.cpp
-msgid "Forward key"
-msgstr "ککونچي کدڤن"
+"لارسکن کونÙيݢوراسي DPI کسکرين اندا (بوکن X11/Android سهاج) چونتوه اونتوق "
+"سکرين 4K."
#: src/settings_translation_file.cpp
+#, c-format
msgid ""
-"Key for moving the player forward.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Adjusts the density of the floatland layer.\n"
+"Increase value to increase density. Can be positive or negative.\n"
+"Value = 0.0: 50% of volume is floatland.\n"
+"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
+"to be sure) creates a solid floatland layer."
msgstr ""
-"ککونچي اونتوق مڠݢرقکن ڤماءين کدڤن.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Backward key"
-msgstr "ککونچي کبلاکڠ"
+msgid "Advanced"
+msgstr "تتڤن مندالم"
#: src/settings_translation_file.cpp
msgid ""
-"Key for moving the player backward.\n"
-"Will also disable autoforward, when active.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Alters the light curve by applying 'gamma correction' to it.\n"
+"Higher values make middle and lower light levels brighter.\n"
+"Value '1.0' leaves the light curve unaltered.\n"
+"This only has significant effect on daylight and artificial\n"
+"light, it has very little effect on natural night light."
msgstr ""
-"ککونچي اونتوق مڠݢرقکن ڤماءين کبلاکڠ.\n"
-"جوݢ اکن ملومڤوهکن أوتوڤرݢرقن⹠اڤابيلا اکتيÙ.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"اوبه لڠکوڠ چهاي دڠن مڠناکن 'ڤمبتولن ݢام'.\n"
+"نيلاي تيڠݢي بواتکن اساس چهاي تڠه دان رنده لبيه تراڠ.\n"
+"نيلاي '1.0' اکن بيارکن لڠکوڠ چهاي اصل تيدق براوبه.\n"
+"تتڤن اين هاڽ ممبري کسن مندالم ڤد چهاي ماتاهاري\n"
+"دان چهاي بواتن⹠کسنڽ ڤد چهاي مالم امت رنده."
#: src/settings_translation_file.cpp
-msgid "Left key"
-msgstr "ککونچي ککيري"
+msgid "Always fly and fast"
+msgstr "سنتياس تربڠ دان برݢرق ڤنتس"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving the player left.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مڠݢرقکن ڤماءين ککيري.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Ambient occlusion gamma"
+msgstr "ݢام اوکلوسي سکيتر"
#: src/settings_translation_file.cpp
-msgid "Right key"
-msgstr "ککومچي ککانن"
+msgid "Amount of messages a player may send per 10 seconds."
+msgstr "جومله ميسيج ڤماٴين بوليه هنتر ستياڤ 10 ساٴت."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving the player right.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Amplifies the valleys."
msgstr ""
-"ککونچي اونتوق مڠݢرقکن ڤماءين ککانن.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Jump key"
-msgstr "ککونچي لومڤت"
+msgid "Anisotropic filtering"
+msgstr "ڤناڤيسن انيسوتروڤيک"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for jumping.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق ملومڤت.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Announce server"
+msgstr "عمومکن ڤلاين"
#: src/settings_translation_file.cpp
-msgid "Sneak key"
-msgstr "ککونچي سلينڤ"
+msgid "Announce to this serverlist."
+msgstr "عمومکن کسناراي ڤلاين اين."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for sneaking.\n"
-"Also used for climbing down and descending in water if aux1_descends is "
-"disabled.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مڽلينڤ.\n"
-"جوݢ دݢوناکن اونتوق تورون باواه کتيک ممنجت دان دالم اءير جيک تتڤن "
-"aux1_descends دلومڤوهکن.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Append item name"
+msgstr "تمبه نام ايتم"
#: src/settings_translation_file.cpp
-msgid "Inventory key"
-msgstr "ککونچي اينÛينتوري"
+msgid "Append item name to tooltip."
+msgstr "تمبه نام ايتم کتيڤ التن."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the inventory.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Apple trees noise"
msgstr ""
-"ککونچي اونتوق ممبوک اينÛينتوري.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Special key"
-msgstr "ککونچي ايستيميوا"
+msgid "Arm inertia"
+msgstr "اينرسيا لڠن"
#: src/settings_translation_file.cpp
msgid ""
-"Key for moving fast in fast mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Arm inertia, gives a more realistic movement of\n"
+"the arm when the camera moves."
msgstr ""
-"ککونچي اونتوق برݢرق ڤنتس دالم مود ڤرݢرقن ڤنتس.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"اينرسيا لڠن⹠ممبريکن ڤرݢرقن لڠن يڠ\n"
+"لبيه رياليستيک اڤابيلا کاميرا دݢرقکن."
#: src/settings_translation_file.cpp
-msgid "Chat key"
-msgstr "ککونچي سيمبڠ"
+msgid "Ask to reconnect after crash"
+msgstr "مينتا سمبوڠ سمولا سلڤس کرونتوهن"
#: src/settings_translation_file.cpp
msgid ""
-"Key for opening the chat window.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"At this distance the server will aggressively optimize which blocks are sent "
+"to\n"
+"clients.\n"
+"Small values potentially improve performance a lot, at the expense of "
+"visible\n"
+"rendering glitches (some blocks will not be rendered under water and in "
+"caves,\n"
+"as well as sometimes on land).\n"
+"Setting this to a value greater than max_block_send_distance disables this\n"
+"optimization.\n"
+"Stated in mapblocks (16 nodes)."
msgstr ""
-"ککونچي اونتوق ممبوک تتيڠکڤ سيمبڠ.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Command key"
-msgstr "ککونچي ارهن"
+msgid "Automatic forward key"
+msgstr "ککونچي أوتوڤرݢرقن"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window to type commands.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق ممبوک تتيڠکڤ سيمبڠ اونتوق مناءيڤ ارهن.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Automatically jump up single-node obstacles."
+msgstr "لومڤت هالڠن ساتو-نود سچارا أوروماتيک."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window to type local commands.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق ممبوک تتيڠکڤ سيمبڠ اونتوق مناءيڤ ارهن تمڤتن.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Automatically report to the serverlist."
+msgstr "ملاڤورکن کڤد سناراي ڤلاين سچارا اٴوتوماتيک."
#: src/settings_translation_file.cpp
-msgid "Range select key"
-msgstr "ککونچي جارق ڤميليهن"
+msgid "Autosave screen size"
+msgstr "أوتوسيمڤن سايز سکرين"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling unlimited view range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق منوݢول جارق ڤندڠن تيادا حد.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Autoscaling mode"
+msgstr "مود سکال أوتوماتيک"
#: src/settings_translation_file.cpp
-msgid "Fly key"
-msgstr "ککونچي تربڠ"
+msgid "Backward key"
+msgstr "ککونچي کبلاکڠ"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling flying.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Base ground level"
msgstr ""
-"ککونچي اونتوق منوݢول مود تربڠ.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Pitch move key"
-msgstr "ککونچي ڤرݢرقن ڤيچ"
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling pitch move mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Base terrain height."
msgstr ""
-"ککونچي اونتوق منوݢول مود ڤرݢرقن ڤيچ.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Fast key"
-msgstr "ککونچي ڤرݢرقن ڤنتس"
+msgid "Basic"
+msgstr "اساس"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling fast mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق منوݢول مود ڤرݢرقن ڤنتس.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Basic privileges"
+msgstr "کأيستيميواٴن اساس"
#: src/settings_translation_file.cpp
-msgid "Noclip key"
-msgstr "ککونچي تمبوس بلوک"
+msgid "Beach noise"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling noclip mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Beach noise threshold"
msgstr ""
-"ککونچي اونتوق منوݢول مود تمبوس بلوک.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar next key"
-msgstr "ککونچي ايتم ستروسڽ دالم هوتبر"
+msgid "Bilinear filtering"
+msgstr "ڤناڤيسن بيلينيار"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the next item in the hotbar.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه ايتم ستروسڽ ددالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Bind address"
+msgstr "علامت ايکتن"
#: src/settings_translation_file.cpp
-msgid "Hotbar previous key"
-msgstr "ککونچي ايتم سبلومڽ دالم هوتبر"
+msgid "Biome API temperature and humidity noise parameters"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the previous item in the hotbar.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Biome noise"
msgstr ""
-"ککونچي اونتوق مميليه بارڠ سبلومڽ دهوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Mute key"
-msgstr "ککونچي بيسو"
+msgid "Bits per pixel (aka color depth) in fullscreen mode."
+msgstr "بيت ڤر ڤيکسيل (اتاو کدالمن ورنا) دالم مود سکرين ڤنوه."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for muting the game.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Block send optimize distance"
msgstr ""
-"ککونچي اونتوق ممبيسوکن ڤرماءينن.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Inc. volume key"
-msgstr "ککونچي کواتکن بوڽي"
+msgid "Bold and italic font path"
+msgstr "لالوان Ùون تبل دان ايتاليک"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for increasing the volume.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مڠواتکن بوڽي.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Bold and italic monospace font path"
+msgstr "لالوان Ùون monospace تبل دان ايتاليک"
#: src/settings_translation_file.cpp
-msgid "Dec. volume key"
-msgstr "ککونچي ڤرلاهنکن بوڽي"
+msgid "Bold font path"
+msgstr "لالوان Ùون تبل"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for decreasing the volume.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق ممڤرلاهنکن بوڽي.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Bold monospace font path"
+msgstr "لالوان Ùون monospace تبل"
#: src/settings_translation_file.cpp
-msgid "Automatic forward key"
-msgstr "ککونچي أوتوڤرݢرقن"
+msgid "Build inside player"
+msgstr "بينا دالم ڤماٴين"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling autoforward.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Builtin"
msgstr ""
-"ککونچي اونتوق منوݢول أوتوڤرݢرقن.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-
-#: src/settings_translation_file.cpp
-msgid "Cinematic mode key"
-msgstr "ککونچي مود سينماتيک"
#: src/settings_translation_file.cpp
msgid ""
-"Key for toggling cinematic mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
+"Only works on GLES platforms. Most users will not need to change this.\n"
+"Increasing can reduce artifacting on weaker GPUs.\n"
+"0.1 = Default, 0.25 = Good value for weaker tablets."
msgstr ""
-"ککونچي اونتوق منوݢول مود سينماتيک.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"جارق کاميرا 'برهمڤيرن ساته کتيڤن' دالم نيلاي نود⹠انتارا 0 دان 0.5.\n"
+"هاڽ برکسن دڤلاتÙورم GLES. کباڽقن ڤڠݢونا تيدق ڤرلو مڠاوبه نيلاي اين.\n"
+"مناٴيقکن نيلاي بوليه کورڠکن ارتيÙÚ© ڤد GPU ÙŠÚ  لبيه لمه.\n"
+"0.1 = اصل⹠0.25 = نيلاي باݢوس اونتوق تابليت يڠ لبيه لمه."
#: src/settings_translation_file.cpp
-msgid "Minimap key"
-msgstr "ککونچي ڤتا ميني"
+msgid "Camera smoothing"
+msgstr "ڤلمبوتن کاميرا"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling display of minimap.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق منوݢول ڤاڤرن ڤتا ميني.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Camera smoothing in cinematic mode"
+msgstr "ڤلمبوتن کاميرا دالم مود سينماتيک"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for taking screenshots.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق منڠکڤ ݢمبر لاير.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Camera update toggle key"
+msgstr "ککونچي توݢول کمس کيني کاميرا"
#: src/settings_translation_file.cpp
-msgid "Drop item key"
-msgstr "ککونچي جاتوهکن ايتم"
+msgid "Cave noise"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for dropping the currently selected item.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cave noise #1"
msgstr ""
-"ککونچي اونتوق منجاتوهکن ايتم يڠ سدڠ دڤيليه.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "View zoom key"
-msgstr "ککونچي زوم ڤندڠن"
+msgid "Cave noise #2"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key to use view zoom when possible.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cave width"
msgstr ""
-"ککونچي اونتوق مڠݢوناکن ڤندڠن زوم اڤابيلا دبنرکن.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 1 key"
-msgstr "ککونچي سلوت هوتبر 1"
+msgid "Cave1 noise"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the first hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cave2 noise"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ڤرتام دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 2 key"
-msgstr "ککونچي سلوت هوتبر 2"
+msgid "Cavern limit"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the second hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cavern noise"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-2 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 3 key"
-msgstr "ککونچي سلوت هوتبر 3"
+msgid "Cavern taper"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the third hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cavern threshold"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-3 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 4 key"
-msgstr "ککونچي سلوت هوتبر 4"
+msgid "Cavern upper limit"
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the fourth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Center of light curve boost range.\n"
+"Where 0.0 is minimum light level, 1.0 is maximum light level."
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-4 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"ڤرتڠهن جولت تولقن لڠکوڠ چهاي.\n"
+"دمان 0.0 اياله ارس چهاي مينيموم⹠1.0 اياله مکسيموم."
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 5 key"
-msgstr "ککونچي سلوت هوتبر 5"
+msgid "Chat font size"
+msgstr "سايز Ùون سيمبڠ"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the fifth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chat key"
+msgstr "ککونچي سيمبڠ"
+
+#: src/settings_translation_file.cpp
+msgid "Chat log level"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-5 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 6 key"
-msgstr "ککونچي سلوت هوتبر 6"
+msgid "Chat message count limit"
+msgstr "حد کيراٴن ميسيج سيمبڠ"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the sixth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-6 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chat message format"
+msgstr "Ùورمت ميسيج سيمبڠ"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 7 key"
-msgstr "ککونچي سلوت هوتبر 7"
+msgid "Chat message kick threshold"
+msgstr "نيلاي امبڠ تندڠ ميسيج سيمبڠ"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the seventh hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-7 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chat message max length"
+msgstr "ڤنجڠ مکسيموم ميسيج سيمبڠ"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 8 key"
-msgstr "ککونچي سلوت هوتبر 8"
+msgid "Chat toggle key"
+msgstr "ککونچي توݢول سيمبڠ"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the eighth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Chatcommands"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-8 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 9 key"
-msgstr "ککونچي سلوت هوتبر 9"
+msgid "Chunk size"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the ninth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-9 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Cinematic mode"
+msgstr "مود سينماتيک"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 10 key"
-msgstr "ککونچي سلوت هوتبر 10"
+msgid "Cinematic mode key"
+msgstr "ککونچي مود سينماتيک"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the tenth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-10 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Clean transparent textures"
+msgstr "برسيهکن تيکستور لوت سينر"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 11 key"
-msgstr "ککونچي سلوت هوتبر 11"
+msgid "Client"
+msgstr "کليئن"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 11th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Client and Server"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-11 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 12 key"
-msgstr "ککونچي سلوت هوتبر 12"
+msgid "Client modding"
+msgstr "مودس کليئن"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 12th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Client side modding restrictions"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-12 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 13 key"
-msgstr "ککونچي سلوت هوتبر 13"
+msgid "Client side node lookup range restriction"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 13th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Climbing speed"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-13 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 14 key"
-msgstr "ککونچي سلوت هوتبر 14"
+msgid "Cloud radius"
+msgstr "ججاري اون"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 14th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-14 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Clouds"
+msgstr "اون"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 15 key"
-msgstr "ککونچي سلوت هوتبر 15"
+msgid "Clouds are a client side effect."
+msgstr "اون ايت ايÙÙŠÚ© ڤد ڤيهق کليئن."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 15th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-15 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Clouds in menu"
+msgstr "اون دالم مينو"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 16 key"
-msgstr "ککونچي سلوت هوتبر 16"
+msgid "Colored fog"
+msgstr "کابوت برورنا"
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 16th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Comma-separated list of flags to hide in the content repository.\n"
+"\"nonfree\" can be used to hide packages which do not qualify as 'free "
+"software',\n"
+"as defined by the Free Software Foundation.\n"
+"You can also specify content ratings.\n"
+"These flags are independent from Minetest versions,\n"
+"so see a full list at https://content.minetest.net/help/content_flags/"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-16 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 17 key"
-msgstr "ککونچي سلوت هوتبر 17"
+msgid ""
+"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
+"allow them to upload and download data to/from the internet."
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 17th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Comma-separated list of trusted mods that are allowed to access insecure\n"
+"functions even when mod security is on (via request_insecure_environment())."
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-17 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 18 key"
-msgstr "ککونچي سلوت هوتبر 18"
+msgid "Command key"
+msgstr "ککونچي ارهن"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 18th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-18 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Connect glass"
+msgstr "سمبوڠ کاچ"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 19 key"
-msgstr "ککونچي سلوت هوتبر 19"
+msgid "Connect to external media server"
+msgstr "سمبوڠ کڤلاين ميديا لوارن"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 19th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-19 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Connects glass if supported by node."
+msgstr "سمبوڠکن کاچ جيک دسوکوڠ اوليه نود."
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 20 key"
-msgstr "ککونچي سلوت هوتبر 20"
+msgid "Console alpha"
+msgstr "نيلاي الڤا کونسول"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 20th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-20 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Console color"
+msgstr "ورنا کونسول"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 21 key"
-msgstr "ککونچي سلوت هوتبر 21"
+msgid "Console height"
+msgstr "کتيڠݢين کونسول"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 21st hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "ContentDB Flag Blacklist"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-21 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 22 key"
-msgstr "ککونچي سلوت هوتبر 22"
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 22nd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "ContentDB URL"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-22 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 23 key"
-msgstr "ککونچي سلوت هوتبر 23"
+msgid "Continuous forward"
+msgstr "کدڤن برتروسن"
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 23rd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Continuous forward movement, toggled by autoforward key.\n"
+"Press the autoforward key again or the backwards movement to disable."
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-23 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"ڤرݢرقن کدڤن برتروسن⹠دتوݢول اوليه ککونچي أوتوڤرݢرقن.\n"
+"تکن ککونچي أوتوڤرݢرقن لاݢي اتاو ڤرݢرقن کبلاکڠ اونتوق ملومڤوهکنڽ."
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 24 key"
-msgstr "ککونچي سلوت هوتبر 24"
+msgid "Controls"
+msgstr "کاولن"
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 24th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Controls length of day/night cycle.\n"
+"Examples:\n"
+"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged."
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-24 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"مڠاول ڤنجڠ کيترن سياڠ\\مالم.\n"
+"چونتوهڽ:\n"
+"72 اونتوق 20 مينيت⹠360 اونتوق 4 مينيت⹠1 اونتوق 24 جم⹠0 اونتوق سياڠ\\مالم"
+"\\لاٴين٢ ککل تيدق بروبه."
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 25 key"
-msgstr "ککونچي سلوت هوتبر 25"
+msgid "Controls sinking speed in liquid."
+msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 25th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Controls steepness/depth of lake depressions."
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-25 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 26 key"
-msgstr "ککونچي سلوت هوتبر 26"
+msgid "Controls steepness/height of hills."
+msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 26th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Controls width of tunnels, a smaller value creates wider tunnels.\n"
+"Value >= 10.0 completely disables generation of tunnels and avoids the\n"
+"intensive noise calculations."
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-26 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 27 key"
-msgstr "ککونچي سلوت هوتبر 27"
+msgid "Crash message"
+msgstr "ميسيج کرونتوهن"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 27th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-27 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Creative"
+msgstr "کرياتيÙ"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 28 key"
-msgstr "ککونچي سلوت هوتبر 28"
+msgid "Crosshair alpha"
+msgstr "نيلاي Ø§Ù„ÙØ§ ررمبوت سيلڠ"
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
-"Key for selecting the 28th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-28 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
+msgstr "نيلاي Ø§Ù„ÙØ§ ررمبوت سيلڠ (کلݢڤن⹠انتارا 0 دان 255)."
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 29 key"
-msgstr "ککونچي سلوت هوتبر 29"
+msgid "Crosshair color"
+msgstr "ورنا ررمبوت سيلڠ"
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 29th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-29 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 30 key"
-msgstr "ککونچي سلوت هوتبر 30"
+msgid "DPI"
+msgstr "DPI"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 30th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-30 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Damage"
+msgstr "بوليه چدرا"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 31 key"
-msgstr "ککونچي سلوت هوتبر 31"
+msgid "Debug info toggle key"
+msgstr "ککونچي توݢول معلومت ڽهڤڤيجت"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 31st hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Debug log file size threshold"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-31 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 32 key"
-msgstr "ککونچي سلوت هوتبر 32"
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 32nd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Debug log level"
msgstr ""
-"ککونچي اونتوق مميليه سلوت ک-32 دالم هوتبر.\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "HUD toggle key"
-msgstr "ککونچي منوݢول ڤاڤر ڤندو (HUD)"
+msgid "Dec. volume key"
+msgstr "ککونچي ڤرلاهنکن بوڽي"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the HUD.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Decrease this to increase liquid resistance to movement."
msgstr ""
-"ککونچي اونتوق منوݢول ڤاڤر ڤندو (HUD).\n"
-"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Chat toggle key"
+msgid "Dedicated server step"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of chat.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Default acceleration"
+msgstr "ڤچوتن لالاي"
#: src/settings_translation_file.cpp
-msgid "Large chat console key"
-msgstr ""
+msgid "Default game"
+msgstr "ڤرماٴينن لالاي"
#: src/settings_translation_file.cpp
msgid ""
-"Key for toggling the display of the large chat console.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Default game when creating a new world.\n"
+"This will be overridden when creating a world from the main menu."
msgstr ""
+"ڤرماٴينن لالاي يڠ اکن دݢوناکن کتيک منچيڤتا دنيا بارو.\n"
+"تتڤن اين اکن دأتسي اڤابيلا ممبوات دنيا دري مينو اوتام."
#: src/settings_translation_file.cpp
-msgid "Fog toggle key"
-msgstr ""
+msgid "Default password"
+msgstr "کات لالوان لالاي"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of fog.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Default privileges"
+msgstr "کأيستيميواٴن لالاي"
#: src/settings_translation_file.cpp
-msgid "Camera update toggle key"
+msgid "Default report format"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the camera update. Only used for development\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Default stack size"
+msgstr "ساٴيز تيندنن لالاي"
#: src/settings_translation_file.cpp
-msgid "Debug info toggle key"
+msgid ""
+"Default timeout for cURL, stated in milliseconds.\n"
+"Only has an effect if compiled with cURL."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of debug info.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines areas where trees have apples."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Profiler toggle key"
+msgid "Defines areas with sandy beaches."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the profiler. Used for development.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines distribution of higher terrain and steepness of cliffs."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Toggle camera mode key"
+msgid "Defines distribution of higher terrain."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for switching between first- and third-person camera.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines full size of caverns, smaller values create larger caverns."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "View range increase key"
+msgid "Defines large-scale river channel structure."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for increasing the viewing range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "View range decrease key"
+msgid "Defines the base ground level."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Key for decreasing the viewing range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines the depth of the river channel."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Graphics"
+msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
msgstr ""
+"منتعريÙÚ©Ù† جارق مکسيموم اونتوق ڤميندهن ڤماٴين دالم اونيت بلوک (0 = تيادا حد)."
#: src/settings_translation_file.cpp
-msgid "In-Game"
+msgid "Defines the width of the river channel."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Basic"
+msgid "Defines the width of the river valley."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "VBO"
+msgid "Defines tree areas and tree density."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable vertex buffer objects.\n"
-"This should greatly improve graphics performance."
+"Delay between mesh updates on the client in ms. Increasing this will slow\n"
+"down the rate of mesh updates, thus reducing jitter on slower clients."
msgstr ""
+"لڠه ماس دانتارا کمسکيني ججاريڠ دکت کليئن دالم اونيت ميليساٴت (ms). مناٴيقکن "
+"نيلاي\n"
+"اين اکن مڠورڠکن کادر کمسکيني ججاريڠ⹠لالو مڠورڠکن کترن دکت کليئن يڠ لبيه "
+"ڤرلاهن."
#: src/settings_translation_file.cpp
-msgid "Fog"
-msgstr ""
+msgid "Delay in sending blocks after building"
+msgstr "لڠه ڤڠهنترن بلوک سلڤس ڤمبيناٴن"
#: src/settings_translation_file.cpp
-msgid "Whether to fog out the end of the visible area."
-msgstr ""
+msgid "Delay showing tooltips, stated in milliseconds."
+msgstr "جومله لڠه اونتوق منونجوقکن تيڤ التن⹠دڽاتاکن دالم ميليساٴت."
#: src/settings_translation_file.cpp
-msgid "Leaves style"
+msgid "Deprecated Lua API handling"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Leaves style:\n"
-"- Fancy: all faces visible\n"
-"- Simple: only outer faces, if defined special_tiles are used\n"
-"- Opaque: disable transparency"
+msgid "Depth below which you'll find giant caverns."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Connect glass"
+msgid "Depth below which you'll find large caves."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Connects glass if supported by node."
+msgid ""
+"Description of server, to be displayed when players join and in the "
+"serverlist."
msgstr ""
+"ڤريهل ڤلاين ڤرماٴينن⹠اونتوق دڤاڤرکن اڤابيلا ڤماٴين ماسوق دان جوݢ دالم "
+"سناراٴي ڤلاين."
#: src/settings_translation_file.cpp
-msgid "Smooth lighting"
+msgid "Desert noise threshold"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable smooth lighting with simple ambient occlusion.\n"
-"Disable for speed or for different looks."
+"Deserts occur when np_biome exceeds this value.\n"
+"When the 'snowbiomes' flag is enabled, this is ignored."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Clouds"
-msgstr ""
+msgid "Desynchronize block animation"
+msgstr "مڽهسݢرقکن انيماسي بلوک"
#: src/settings_translation_file.cpp
-msgid "Clouds are a client side effect."
-msgstr ""
+#, fuzzy
+msgid "Dig key"
+msgstr "ککومچي ککانن"
#: src/settings_translation_file.cpp
-msgid "3D clouds"
-msgstr ""
+msgid "Digging particles"
+msgstr "ڤرتيکل کتيک مڠݢالي"
#: src/settings_translation_file.cpp
-msgid "Use 3D cloud look instead of flat."
-msgstr ""
+msgid "Disable anticheat"
+msgstr "ملومڤوهکن انتيتيڤو"
#: src/settings_translation_file.cpp
-msgid "Node highlighting"
-msgstr ""
+msgid "Disallow empty passwords"
+msgstr "منولق کات لالوان کوسوڠ"
#: src/settings_translation_file.cpp
-msgid "Method used to highlight selected object."
-msgstr ""
+msgid "Domain name of server, to be displayed in the serverlist."
+msgstr "نام دوماٴين ڤلاين ڤرماٴينن⹠اونتوق دڤاڤرکن دالم سناراي ڤلاين ڤرماٴينن."
#: src/settings_translation_file.cpp
-msgid "Digging particles"
-msgstr ""
+msgid "Double tap jump for fly"
+msgstr "تکن \"لومڤت\" دوا کالي اونتوق تربڠ"
#: src/settings_translation_file.cpp
-msgid "Adds particles when digging a node."
-msgstr ""
+msgid "Double-tapping the jump key toggles fly mode."
+msgstr "تکن بوتڠ \"لومڤت\" سچارا چڤت دوا کالي اونتوق منوݢول مود تربڠ."
#: src/settings_translation_file.cpp
-msgid "Filtering"
-msgstr ""
+msgid "Drop item key"
+msgstr "ککونچي جاتوهکن ايتم"
#: src/settings_translation_file.cpp
-msgid "Mipmapping"
+msgid "Dump the mapgen debug information."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Use mip mapping to scale textures. May slightly increase performance,\n"
-"especially when using a high resolution texture pack.\n"
-"Gamma correct downscaling is not supported."
+msgid "Dungeon maximum Y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Anisotropic filtering"
+msgid "Dungeon minimum Y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use anisotropic filtering when viewing at textures from an angle."
+msgid "Dungeon noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bilinear filtering"
+msgid ""
+"Enable IPv6 support (for both client and server).\n"
+"Required for IPv6 connections to work at all."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use bilinear filtering when scaling textures."
+msgid ""
+"Enable Lua modding support on client.\n"
+"This support is experimental and API can change."
msgstr ""
+"ممبوليهکن سوکوڠن ڤمبواتن مودس Lua دکت کليئن.\n"
+"سوکوڠن اين دالم اوجيکاجي دان API بوليه براوبه."
#: src/settings_translation_file.cpp
-msgid "Trilinear filtering"
-msgstr ""
+msgid "Enable console window"
+msgstr "ممبوليهکن تتيڠکڤ کونسول"
#: src/settings_translation_file.cpp
-msgid "Use trilinear filtering when scaling textures."
-msgstr ""
+#, fuzzy
+msgid "Enable creative mode for all players"
+msgstr "ممبوليهکن مود کرياتي٠اونتوق ڤتا بارو دچيڤتا."
#: src/settings_translation_file.cpp
-msgid "Clean transparent textures"
-msgstr ""
+msgid "Enable joysticks"
+msgstr "ممبوليهکن کايو بديق"
#: src/settings_translation_file.cpp
-msgid ""
-"Filtered textures can blend RGB values with fully-transparent neighbors,\n"
-"which PNG optimizers usually discard, sometimes resulting in a dark or\n"
-"light edge to transparent textures. Apply this filter to clean that up\n"
-"at texture load time."
-msgstr ""
+msgid "Enable mod channels support."
+msgstr "ممبوليهکن سوکوڠن سالوران مودس."
#: src/settings_translation_file.cpp
-msgid "Minimum texture size"
+msgid "Enable mod security"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
-"can be blurred, so automatically upscale them with nearest-neighbor\n"
-"interpolation to preserve crisp pixels. This sets the minimum texture size\n"
-"for the upscaled textures; higher values look sharper, but require more\n"
-"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n"
-"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n"
-"enabled.\n"
-"This is also used as the base node texture size for world-aligned\n"
-"texture autoscaling."
-msgstr ""
+msgid "Enable players getting damage and dying."
+msgstr "ممبوليهکن ڤماٴين منريما کچدراٴن دان ماتي."
#: src/settings_translation_file.cpp
-msgid "FSAA"
-msgstr ""
+msgid "Enable random user input (only used for testing)."
+msgstr "ممبوليهکن اينڤوت ڤڠݢونا سچارا راوق (هاڽ اونتوق ڤرچوباٴن)."
+
+#: src/settings_translation_file.cpp
+msgid "Enable register confirmation"
+msgstr "بوليهکن ڤڠصحن Ú¤Ù†Ø¯ÙØªØ±Ù†"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
+"Enable register confirmation when connecting to server.\n"
+"If disabled, new account will be registered automatically."
msgstr ""
+"ممبوليهکن ڤڠصحن Ú¤Ù†Ø¯ÙØªØ±Ù† اڤابيلا مڽمبوڠ کڤد ڤلاين.\n"
+"جک دلومڤوهکن⹠اکاٴون بارو اکن Ø¯Ø¯ÙØªØ±Ú©Ù† سچارا اٴوتوماتيک."
#: src/settings_translation_file.cpp
-msgid "Undersampling"
+msgid ""
+"Enable smooth lighting with simple ambient occlusion.\n"
+"Disable for speed or for different looks."
msgstr ""
+"ممبوليهکن ڤنچهاياٴن لمبوت دڠن اوکلوسي سکيتر يڠ ريڠکس.\n"
+"لومڤوهکنڽ اونتوق کلاجوان اتاو اونتوق کليهتن بربيذا."
#: src/settings_translation_file.cpp
msgid ""
-"Undersampling is similar to using a lower screen resolution, but it applies\n"
-"to the game world only, keeping the GUI intact.\n"
-"It should give a significant performance boost at the cost of less detailed "
-"image.\n"
-"Higher values result in a less detailed image."
+"Enable to disallow old clients from connecting.\n"
+"Older clients are compatible in the sense that they will not crash when "
+"connecting\n"
+"to new servers, but they may not support all new features that you are "
+"expecting."
msgstr ""
+"بوليهکن تتڤن اونتوق ملارڠ کليئن لام درڤد مڽمبوڠ.\n"
+"کليئن لام ماسيه سسواي دݢوناکن جک مريک تيدق رونتوه (کريش) اڤابيلا چوبا اونتوق "
+"مڽمبوڠ کڤلاين بهاروâ¹\n"
+"تتاڤي مريک موڠکين تيدق ممڤو Ù…Ú½ÙˆÚ©ÙˆÚ  سموا ØµÙŠÙØª بهارو ÙŠÚ  اندا سڠکاکن."
#: src/settings_translation_file.cpp
msgid ""
-"Shaders allow advanced visual effects and may increase performance on some "
-"video\n"
-"cards.\n"
-"This only works with the OpenGL video backend."
+"Enable usage of remote media server (if provided by server).\n"
+"Remote servers offer a significantly faster way to download media (e.g. "
+"textures)\n"
+"when connecting to the server."
msgstr ""
+"ممبوليهکن ڤڠݢوناٴن ڤلاين ميديا جارق جاٴوه (جک دبريکن اوليه ڤلاين).\n"
+"ڤلاين جارق جاٴوه مناورکن چارا لبيه چڤت اونتوق موات تورون ميديا (چونتوه "
+"تيکستور)\n"
+"اڤابيلا مڽمبوڠ کڤلاين ڤرماٴينن."
#: src/settings_translation_file.cpp
-msgid "Shader path"
+msgid ""
+"Enable vertex buffer objects.\n"
+"This should greatly improve graphics performance."
msgstr ""
+"ممبوليهکن اوبجيک ڤنيمبل بوچو.\n"
+"اي ڤاتوت منيڠکتکن ڤريستاسي ݢراÙÙŠÚ© دڠن باڽق."
#: src/settings_translation_file.cpp
msgid ""
-"Path to shader directory. If no path is defined, default location will be "
-"used."
+"Enable view bobbing and amount of view bobbing.\n"
+"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
msgstr ""
+"ڤندارب اونتوق ڤڠاڤوڠن ڤندڠن.\n"
+"چونتوهڽ: 0 اونتوق تيادا اڤوڠنâ 1.0 اونتوق بياساâ 2.0 اونتوق دوا کالي ݢندا."
#: src/settings_translation_file.cpp
-msgid "Filmic tone mapping"
+msgid ""
+"Enable/disable running an IPv6 server.\n"
+"Ignored if bind_address is set.\n"
+"Needs enable_ipv6 to be enabled."
msgstr ""
+"ممبوليهکن\\ملومڤوهکن ڤنجالنن ڤلاين IPv6.\n"
+"دأبايکن جک تتڤن bind_address دتتڤکن.\n"
+"ممرلوکن تتڤن enable_ipv6 دبوليهکن."
#: src/settings_translation_file.cpp
msgid ""
@@ -3350,2138 +3055,2577 @@ msgid ""
"appearance of high dynamic range images. Mid-range contrast is slightly\n"
"enhanced, highlights and shadows are gradually compressed."
msgstr ""
+"ممبوليهکن ڤمتاٴن تونا سينماتيک 'Uncharted 2' (انچرتد ثو) اوليه Hable "
+"(هيبل).\n"
+"مڽلاکوکن Ù„Ú Ú©ÙˆÚ  تونا Ùيلم ÙوتوݢراÙÙŠ دان چارا اي مڠاڠݢرکن ڤنمڤيلن ايميج جارق\n"
+"ديناميک تيڠݢي. بيذا جلس ڤرتڠهن جولت دتيڠکتکن سديکيت⹠تونجولن دان بايڠن\n"
+"دممڤتکن سچارا برانسور."
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
+msgid "Enables animation of inventory items."
+msgstr "ممبوليهکن انيماسي ايتم دالم اينÛينتوري."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
+msgid "Enables caching of facedir rotated meshes."
+msgstr "ممبوليهکن ڤڠاݢريݢتن ججاريڠ يڠ دڤوتر دڤکسي Y ايايت (facedir)."
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
+msgid "Enables minimap."
+msgstr "ممبوليهکن ڤتا ميني."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
+"Enables the sound system.\n"
+"If disabled, this completely disables all sounds everywhere and the in-game\n"
+"sound controls will be non-functional.\n"
+"Changing this setting requires a restart."
msgstr ""
+"ممبوليهکن سيستم بوڽي.\n"
+"جک دلومڤوهکن⹠اي اکن ملومڤوهکن کسموا بوڽي دسموا تمڤت\n"
+"دان کاولن بوڽي دالم ڤرماٴينن تيدق اکن برÙوڠسي.\n"
+"ڤڠوبهن تتڤن اين ممرلوکن ڤرمولاٴن سمولا."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
+msgid "Engine profiling data print interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
+msgid "Entity methods"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
+"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
+"Value = 1.0 creates a uniform, linear tapering.\n"
+"Values > 1.0 create a smooth tapering suitable for the default separated\n"
+"floatlands.\n"
+"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
+"flatter lowlands, suitable for a solid floatland layer."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "بيڠکاي ڤر ساٴت (FPS) مکسيما اڤابيلا ڤرماٴينن دجيداکن."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
+msgid "FSAA"
+msgstr "FSAA"
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
+msgid "Factor noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
+msgid "Fall bobbing factor"
+msgstr "Ùکتور اڤوڠن کجاتوهن"
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
+msgid "Fallback font path"
+msgstr "لالوان Ùون برباليق"
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
+msgid "Fallback font shadow"
+msgstr "بايڠ Ùون برباليق"
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
+msgid "Fallback font shadow alpha"
+msgstr "نيلاي Ø§Ù„ÙØ§ بايڠ Ùون برباليق"
#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
+msgid "Fallback font size"
+msgstr "سايز Ùون برباليق"
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
+msgid "Fast key"
+msgstr "ککونچي ڤرݢرقن ڤنتس"
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
+msgid "Fast mode acceleration"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving Nodes"
+msgid "Fast mode speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving liquids"
-msgstr ""
+msgid "Fast movement"
+msgstr "ڤرݢرقن ڤنتس"
#: src/settings_translation_file.cpp
msgid ""
-"Set to true to enable waving liquids (like water).\n"
-"Requires shaders to be enabled."
+"Fast movement (via the \"special\" key).\n"
+"This requires the \"fast\" privilege on the server."
msgstr ""
+"برݢرق ڤنتس (دڠن ککونچي \"ايستيميوا\").\n"
+"اين ممرلوکن کأيستيميواٴن \"ڤرݢرقن ڤنتس\" دالم ڤلاين ترسبوت."
#: src/settings_translation_file.cpp
-msgid "Waving liquids wave height"
-msgstr ""
+msgid "Field of view"
+msgstr "ميدن ڤندڠ"
+
+#: src/settings_translation_file.cpp
+msgid "Field of view in degrees."
+msgstr "ميدن ڤندڠ دالم درجه سودوت."
#: src/settings_translation_file.cpp
msgid ""
-"The maximum height of the surface of waving liquids.\n"
-"4.0 = Wave height is two nodes.\n"
-"0.0 = Wave doesn't move at all.\n"
-"Default is 1.0 (1/2 node).\n"
-"Requires waving liquids to be enabled."
+"File in client/serverlist/ that contains your favorite servers displayed in "
+"the\n"
+"Multiplayer Tab."
msgstr ""
+"ÙØ§Ù´ÙŠÙ„ دالم لالوان client/serverlist/ ÙŠÚ  مڠندوڠي سناراي\n"
+"ڤلاين کݢمرن يڠ دڤاڤرکن دالم تب ڤماٴين راماي."
#: src/settings_translation_file.cpp
-msgid "Waving liquids wavelength"
+msgid "Filler depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Length of liquid waves.\n"
-"Requires waving liquids to be enabled."
+msgid "Filler depth noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving liquids wave speed"
-msgstr ""
+msgid "Filmic tone mapping"
+msgstr "ڤمتاٴن تونا سينماتيک"
#: src/settings_translation_file.cpp
msgid ""
-"How fast liquid waves will move. Higher = faster.\n"
-"If negative, liquid waves will move backwards.\n"
-"Requires waving liquids to be enabled."
+"Filtered textures can blend RGB values with fully-transparent neighbors,\n"
+"which PNG optimizers usually discard, sometimes resulting in a dark or\n"
+"light edge to transparent textures. Apply this filter to clean that up\n"
+"at texture load time."
msgstr ""
+"تيکستور ÙŠÚ  دتاڤيس بوليه سباتيکن نيلاي RGB دڠن جيرن ÙŠÚ  لوت سينر سڤنوهڽâ¹\n"
+"يڠ مان ڤڠاوڤتيموم PNG سريڠ ابايکن⹠کادڠکال مڽببکن سيسي ݢلڤ اتاو تراڠ ڤد\n"
+"تيکستور لوت سينر. ݢونا ڤناڤيسن اين اونتوق ممبرسيهکن تيکستور ترسبوت کتيک\n"
+"اي سدڠ دمواتکن."
#: src/settings_translation_file.cpp
-msgid "Waving leaves"
-msgstr ""
+msgid "Filtering"
+msgstr "ڤناڤيسن"
#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving leaves.\n"
-"Requires shaders to be enabled."
+msgid "First of 4 2D noises that together define hill/mountain range height."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Waving plants"
+msgid "First of two 3D noises that together define tunnels."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving plants.\n"
-"Requires shaders to be enabled."
-msgstr ""
+msgid "Fixed map seed"
+msgstr "بنيه ڤتا تتڤ"
#: src/settings_translation_file.cpp
-msgid "Advanced"
-msgstr ""
+msgid "Fixed virtual joystick"
+msgstr "کايو بديق ماي تتڤ"
#: src/settings_translation_file.cpp
-msgid "Arm inertia"
+msgid "Floatland density"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Arm inertia, gives a more realistic movement of\n"
-"the arm when the camera moves."
+msgid "Floatland maximum Y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS"
+msgid "Floatland minimum Y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If FPS would go higher than this, limit it by sleeping\n"
-"to not waste CPU power for no benefit."
+msgid "Floatland noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "Floatland taper exponent"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Floatland tapering distance"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Pause on lost window focus"
+msgid "Floatland water level"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Open the pause menu when the window's focus is lost. Does not pause if a "
-"formspec is\n"
-"open."
-msgstr ""
+msgid "Fly key"
+msgstr "ککونچي تربڠ"
#: src/settings_translation_file.cpp
-msgid "Viewing range"
-msgstr ""
+msgid "Flying"
+msgstr "تربڠ"
#: src/settings_translation_file.cpp
-msgid "View distance in nodes."
-msgstr ""
+msgid "Fog"
+msgstr "کابوت"
#: src/settings_translation_file.cpp
-msgid "Near plane"
-msgstr ""
+msgid "Fog start"
+msgstr "مولا کابوت"
#: src/settings_translation_file.cpp
-msgid ""
-"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
-"Only works on GLES platforms. Most users will not need to change this.\n"
-"Increasing can reduce artifacting on weaker GPUs.\n"
-"0.1 = Default, 0.25 = Good value for weaker tablets."
-msgstr ""
+msgid "Fog toggle key"
+msgstr "ککونچي توݢول کابوت"
#: src/settings_translation_file.cpp
-msgid "Screen width"
-msgstr ""
+msgid "Font bold by default"
+msgstr "Ùون تبل سچارا لالايڽ"
#: src/settings_translation_file.cpp
-msgid "Width component of the initial window size."
-msgstr ""
+msgid "Font italic by default"
+msgstr "Ùون ايتاليک سچارا لالايڽ"
#: src/settings_translation_file.cpp
-msgid "Screen height"
-msgstr ""
+msgid "Font shadow"
+msgstr "بايڠ Ùون"
#: src/settings_translation_file.cpp
-msgid "Height component of the initial window size."
-msgstr ""
+msgid "Font shadow alpha"
+msgstr "نيلاي Ø§Ù„ÙØ§ بايڠ Ùون"
#: src/settings_translation_file.cpp
-msgid "Autosave screen size"
-msgstr ""
+msgid "Font size"
+msgstr "سايز Ùون"
#: src/settings_translation_file.cpp
-msgid "Save window size automatically when modified."
-msgstr ""
+msgid "Font size of the default font in point (pt)."
+msgstr "سايز Ùون باݢي Ùون لالاي دالم اونيت تيتيق (pt)."
#: src/settings_translation_file.cpp
-msgid "Full screen"
-msgstr ""
+msgid "Font size of the fallback font in point (pt)."
+msgstr "سايز Ùون باݢي Ùون برباليق دالم اونيت تيتيق (pt)."
#: src/settings_translation_file.cpp
-msgid "Fullscreen mode."
-msgstr ""
+msgid "Font size of the monospace font in point (pt)."
+msgstr "سايز Ùون باݢي Ùون monospace دالم اونيت تيتيق (pt)."
#: src/settings_translation_file.cpp
-msgid "Full screen BPP"
+msgid ""
+"Font size of the recent chat text and chat prompt in point (pt).\n"
+"Value 0 will use the default font size."
msgstr ""
+"سايز Ùون توليسن سيمبڠ بارو٢ اين دان ڤروم دالم اونيت تيتيق (pt).\n"
+"نيلاي 0 اکن مڠݢوناکن سايز Ùون لالاي."
#: src/settings_translation_file.cpp
-msgid "Bits per pixel (aka color depth) in fullscreen mode."
+msgid ""
+"Format of player chat messages. The following strings are valid "
+"placeholders:\n"
+"@name, @message, @timestamp (optional)"
msgstr ""
+"Ùورمت ميسيج سيمبڠ ڤماٴين. رينتيتن بريکوت اياله Ú¤Ù…Ý¢Ú  تمڤت ÙŠÚ  صح:\n"
+"@name (اونتوق نام)⹠@message (اونتوق ميسيج)⹠@timestamp (ڤيليهن⹠اونتوق چوڤ "
+"ماس)"
#: src/settings_translation_file.cpp
-msgid "VSync"
-msgstr ""
+msgid "Format of screenshots."
+msgstr "Ùورمت ÙŠÚ  دݢوناکن اونتوق تڠکڤ لاير."
#: src/settings_translation_file.cpp
-msgid "Vertical screen synchronization."
-msgstr ""
+msgid "Formspec Default Background Color"
+msgstr "ورنا لاتر بلاکڠ لالاي Ùورمسڤيک"
#: src/settings_translation_file.cpp
-msgid "Field of view"
-msgstr ""
+msgid "Formspec Default Background Opacity"
+msgstr "Ú©Ù„Ý¢Ú¤Ù† لاتر بلاکڠ لالاي Ùورمسڤيک"
#: src/settings_translation_file.cpp
-msgid "Field of view in degrees."
-msgstr ""
+msgid "Formspec Full-Screen Background Color"
+msgstr "ورنا لاتر بلاکڠ سکرين-ڤنوه Ùورمسڤيک"
#: src/settings_translation_file.cpp
-msgid "Light curve gamma"
-msgstr ""
+msgid "Formspec Full-Screen Background Opacity"
+msgstr "Ú©Ù„Ý¢Ú¤Ù† لاتر بلاکڠ سکرين-ڤنوه Ùورمسڤيک"
#: src/settings_translation_file.cpp
-msgid ""
-"Alters the light curve by applying 'gamma correction' to it.\n"
-"Higher values make middle and lower light levels brighter.\n"
-"Value '1.0' leaves the light curve unaltered.\n"
-"This only has significant effect on daylight and artificial\n"
-"light, it has very little effect on natural night light."
-msgstr ""
+msgid "Formspec default background color (R,G,B)."
+msgstr "ورنا لاتر بلاکڠ اصل Ùورمسڤيک (R,G,B)."
#: src/settings_translation_file.cpp
-msgid "Light curve low gradient"
-msgstr ""
+msgid "Formspec default background opacity (between 0 and 255)."
+msgstr "Ú©Ù„Ý¢Ú¤Ù† اصل لاتر بلاکڠ Ùورمسڤيک (انتارا 0 دان 255)."
#: src/settings_translation_file.cpp
-msgid ""
-"Gradient of light curve at minimum light level.\n"
-"Controls the contrast of the lowest light levels."
-msgstr ""
+msgid "Formspec full-screen background color (R,G,B)."
+msgstr "ورنا لاتر بلاکڠ سکرين-ڤنوه Ùورمسڤيک (R,G,B)."
#: src/settings_translation_file.cpp
-msgid "Light curve high gradient"
-msgstr ""
+msgid "Formspec full-screen background opacity (between 0 and 255)."
+msgstr "Ú©Ù„Ý¢Ú¤Ù† لاتر بلاکڠ سکرين-ڤنوه Ùورمسڤيک (انتارا 0 دان 255)."
#: src/settings_translation_file.cpp
-msgid ""
-"Gradient of light curve at maximum light level.\n"
-"Controls the contrast of the highest light levels."
-msgstr ""
+msgid "Forward key"
+msgstr "ککونچي کدڤن"
#: src/settings_translation_file.cpp
-msgid "Light curve boost"
+msgid "Fourth of 4 2D noises that together define hill/mountain range height."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Strength of light curve boost.\n"
-"The 3 'boost' parameters define a range of the light\n"
-"curve that is boosted in brightness."
+msgid "Fractal type"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Light curve boost center"
-msgstr ""
+msgid "Fraction of the visible distance at which fog starts to be rendered"
+msgstr "بهاݢين درڤد جارق بوليه ليهت دمان کابوت مولا دجان"
+
+#: src/settings_translation_file.cpp
+msgid "FreeType fonts"
+msgstr "Ùون FreeType"
#: src/settings_translation_file.cpp
msgid ""
-"Center of light curve boost range.\n"
-"Where 0.0 is minimum light level, 1.0 is maximum light level."
+"From how far blocks are generated for clients, stated in mapblocks (16 "
+"nodes)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Light curve boost spread"
+msgid ""
+"From how far blocks are sent to clients, stated in mapblocks (16 nodes)."
msgstr ""
+"سجاٴوه ماناکه بلوک٢ دهنتر کڤد کليئن⹠دڽاتاکن دالم اونيت بلوکڤتا (16 نود)."
#: src/settings_translation_file.cpp
msgid ""
-"Spread of light curve boost range.\n"
-"Controls the width of the range to be boosted.\n"
-"Standard deviation of the light curve boost Gaussian."
+"From how far clients know about objects, stated in mapblocks (16 nodes).\n"
+"\n"
+"Setting this larger than active_block_range will also cause the server\n"
+"to maintain active objects up to this distance in the direction the\n"
+"player is looking. (This can avoid mobs suddenly disappearing from view)"
msgstr ""
+"درڤد جارق کليئن داڤت تاهو تنتڠ اوبجيک⹠دڽاتاکن دالم بلوکڤتا (16 نود).\n"
+"\n"
+"منتڤکن نيلاي اين لبيه تيڠݢي درڤد جارق بلوک اکتي٠(active_block_range) جوݢ\n"
+"اکن مڽببکن ڤلاين اونتوق مڠکلکن اوبجيک اکتي٠سهيڠݢ کجارق اين\n"
+"دالم اره ڤندڠن ڤماٴين. (اين بوليه ايلقکن موب تيبا٢ هيلڠ دري ڤندڠن)"
#: src/settings_translation_file.cpp
-msgid "Texture path"
-msgstr ""
+msgid "Full screen"
+msgstr "سکرين ڤنوه"
#: src/settings_translation_file.cpp
-msgid "Path to texture directory. All textures are first searched from here."
-msgstr ""
+msgid "Full screen BPP"
+msgstr "BPP سکرين ڤنوه"
#: src/settings_translation_file.cpp
-msgid "Video driver"
-msgstr ""
+msgid "Fullscreen mode."
+msgstr "مود سکرين ڤنوه."
#: src/settings_translation_file.cpp
-msgid ""
-"The rendering back-end for Irrlicht.\n"
-"A restart is required after changing this.\n"
-"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
-"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
-msgstr ""
+msgid "GUI scaling"
+msgstr "سکال GUI"
#: src/settings_translation_file.cpp
-msgid "Cloud radius"
-msgstr ""
+msgid "GUI scaling filter"
+msgstr "ڤناڤيس سکال GUI"
#: src/settings_translation_file.cpp
-msgid ""
-"Radius of cloud area stated in number of 64 node cloud squares.\n"
-"Values larger than 26 will start to produce sharp cutoffs at cloud area "
-"corners."
-msgstr ""
+msgid "GUI scaling filter txr2img"
+msgstr "ڤناڤيس سکال GUI جنيس txr2img"
#: src/settings_translation_file.cpp
-msgid "View bobbing factor"
+msgid "Global callbacks"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enable view bobbing and amount of view bobbing.\n"
-"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
+"Global map generation attributes.\n"
+"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
+"and junglegrass, in all other mapgens this flag controls all decorations."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fall bobbing factor"
+msgid ""
+"Gradient of light curve at maximum light level.\n"
+"Controls the contrast of the highest light levels."
msgstr ""
+"کچرونن لڠکوڠ چهاي ڤد تاهڤ چهاي مکسيموم.\n"
+"مڠاول بيذا جلس تاهڤ چهاي ترتيڠݢي."
#: src/settings_translation_file.cpp
msgid ""
-"Multiplier for fall bobbing.\n"
-"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
+"Gradient of light curve at minimum light level.\n"
+"Controls the contrast of the lowest light levels."
msgstr ""
+"کچرونن لڠکوڠ چهاي ڤد تاهڤ چهاي مينيموم.\n"
+"مڠاول بيذا جلس تاهڤ چهاي ترنده."
#: src/settings_translation_file.cpp
-msgid "3D mode"
-msgstr ""
+msgid "Graphics"
+msgstr "ݢراÙÙŠÚ©"
#: src/settings_translation_file.cpp
-msgid ""
-"3D support.\n"
-"Currently supported:\n"
-"- none: no 3d output.\n"
-"- anaglyph: cyan/magenta color 3d.\n"
-"- interlaced: odd/even line based polarisation screen support.\n"
-"- topbottom: split screen top/bottom.\n"
-"- sidebyside: split screen side by side.\n"
-"- crossview: Cross-eyed 3d\n"
-"- pageflip: quadbuffer based 3d.\n"
-"Note that the interlaced mode requires shaders to be enabled."
+msgid "Gravity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "3D mode parallax strength"
+msgid "Ground level"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of 3D mode parallax."
+msgid "Ground noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Console height"
+msgid "HTTP mods"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
-msgstr ""
+msgid "HUD scale factor"
+msgstr "Ùکتور سکالا ڤاڤر ڤندو (HUD)"
#: src/settings_translation_file.cpp
-msgid "Console color"
-msgstr ""
+msgid "HUD toggle key"
+msgstr "ککونچي منوݢول ڤاڤر ڤندو (HUD)"
#: src/settings_translation_file.cpp
-msgid "In-game chat console background color (R,G,B)."
+msgid ""
+"Handling for deprecated Lua API calls:\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
+"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Console alpha"
+msgid ""
+"Have the profiler instrument itself:\n"
+"* Instrument an empty function.\n"
+"This estimates the overhead, that instrumentation is adding (+1 function "
+"call).\n"
+"* Instrument the sampler being used to update the statistics."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
+msgid "Heat blend noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec Full-Screen Background Opacity"
+msgid "Heat noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec full-screen background opacity (between 0 and 255)."
-msgstr ""
+msgid "Height component of the initial window size."
+msgstr "کومڤونن تيڠݢي سايز تتيڠکڤ اول."
#: src/settings_translation_file.cpp
-msgid "Formspec Full-Screen Background Color"
+msgid "Height noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec full-screen background color (R,G,B)."
+msgid "Height select noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec Default Background Opacity"
+msgid "High-precision FPU"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec default background opacity (between 0 and 255)."
+msgid "Hill steepness"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec Default Background Color"
+msgid "Hill threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Formspec default background color (R,G,B)."
+msgid "Hilliness1 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Selection box color"
+msgid "Hilliness2 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Selection box border color (R,G,B)."
+msgid "Hilliness3 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Selection box width"
+msgid "Hilliness4 noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Width of the selection box lines around nodes."
-msgstr ""
+msgid "Homepage of server, to be displayed in the serverlist."
+msgstr "لامن اوتام ڤلاين ڤرماٴينن⹠اونتوق دڤاڤرکن دالم سناراي ڤلاين ڤرماٴينن."
#: src/settings_translation_file.cpp
-msgid "Crosshair color"
+msgid ""
+"Horizontal acceleration in air when jumping or falling,\n"
+"in nodes per second per second."
msgstr ""
+"ڤچوتن منداتر دأودارا اڤابيلا ملومڤت اتاو جاتوهâ¹\n"
+"دالم اونيت نود ڤر ساٴت ڤر ساٴت."
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Horizontal and vertical acceleration in fast mode,\n"
+"in nodes per second per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha"
+msgid ""
+"Horizontal and vertical acceleration on ground or when climbing,\n"
+"in nodes per second per second."
msgstr ""
+"ڤچوتن منداتر دان منݢق اتس تانه اتاو کتيک ممنجتâ¹\n"
+"دالم اونيت نود ڤر ساٴت ڤر ساٴت."
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr ""
+msgid "Hotbar next key"
+msgstr "ککونچي ايتم ستروسڽ دالم هوتبر"
#: src/settings_translation_file.cpp
-msgid "Recent Chat Messages"
-msgstr ""
+msgid "Hotbar previous key"
+msgstr "ککونچي ايتم سبلومڽ دالم هوتبر"
#: src/settings_translation_file.cpp
-msgid "Maximum number of recent chat messages to show"
-msgstr ""
+msgid "Hotbar slot 1 key"
+msgstr "ککونچي سلوت هوتبر 1"
#: src/settings_translation_file.cpp
-msgid "Desynchronize block animation"
-msgstr ""
+msgid "Hotbar slot 10 key"
+msgstr "ککونچي سلوت هوتبر 10"
#: src/settings_translation_file.cpp
-msgid "Whether node texture animations should be desynchronized per mapblock."
-msgstr ""
+msgid "Hotbar slot 11 key"
+msgstr "ککونچي سلوت هوتبر 11"
#: src/settings_translation_file.cpp
-msgid "Maximum hotbar width"
-msgstr ""
+msgid "Hotbar slot 12 key"
+msgstr "ککونچي سلوت هوتبر 12"
#: src/settings_translation_file.cpp
-msgid ""
-"Maximum proportion of current window to be used for hotbar.\n"
-"Useful if there's something to be displayed right or left of hotbar."
-msgstr ""
+msgid "Hotbar slot 13 key"
+msgstr "ککونچي سلوت هوتبر 13"
#: src/settings_translation_file.cpp
-msgid "HUD scale factor"
-msgstr "Ùکتور سکالا ڤاڤر ڤندو (HUD)"
+msgid "Hotbar slot 14 key"
+msgstr "ککونچي سلوت هوتبر 14"
#: src/settings_translation_file.cpp
-msgid "Modifies the size of the hudbar elements."
-msgstr "مڠاوبه سايز ايليمن ڤالڠ ڤاڤر ڤندو (hudbar)."
+msgid "Hotbar slot 15 key"
+msgstr "ککونچي سلوت هوتبر 15"
#: src/settings_translation_file.cpp
-msgid "Mesh cache"
-msgstr ""
+msgid "Hotbar slot 16 key"
+msgstr "ککونچي سلوت هوتبر 16"
#: src/settings_translation_file.cpp
-msgid "Enables caching of facedir rotated meshes."
-msgstr ""
+msgid "Hotbar slot 17 key"
+msgstr "ککونچي سلوت هوتبر 17"
#: src/settings_translation_file.cpp
-msgid "Mapblock mesh generation delay"
-msgstr ""
+msgid "Hotbar slot 18 key"
+msgstr "ککونچي سلوت هوتبر 18"
#: src/settings_translation_file.cpp
-msgid ""
-"Delay between mesh updates on the client in ms. Increasing this will slow\n"
-"down the rate of mesh updates, thus reducing jitter on slower clients."
-msgstr ""
+msgid "Hotbar slot 19 key"
+msgstr "ککونچي سلوت هوتبر 19"
#: src/settings_translation_file.cpp
-msgid "Mapblock mesh generator's MapBlock cache size in MB"
-msgstr ""
+msgid "Hotbar slot 2 key"
+msgstr "ککونچي سلوت هوتبر 2"
#: src/settings_translation_file.cpp
-msgid ""
-"Size of the MapBlock cache of the mesh generator. Increasing this will\n"
-"increase the cache hit %, reducing the data being copied from the main\n"
-"thread, thus reducing jitter."
-msgstr ""
+msgid "Hotbar slot 20 key"
+msgstr "ککونچي سلوت هوتبر 20"
#: src/settings_translation_file.cpp
-msgid "Minimap"
-msgstr ""
+msgid "Hotbar slot 21 key"
+msgstr "ککونچي سلوت هوتبر 21"
#: src/settings_translation_file.cpp
-msgid "Enables minimap."
-msgstr ""
+msgid "Hotbar slot 22 key"
+msgstr "ککونچي سلوت هوتبر 22"
#: src/settings_translation_file.cpp
-msgid "Round minimap"
-msgstr ""
+msgid "Hotbar slot 23 key"
+msgstr "ککونچي سلوت هوتبر 23"
#: src/settings_translation_file.cpp
-msgid "Shape of the minimap. Enabled = round, disabled = square."
-msgstr ""
+msgid "Hotbar slot 24 key"
+msgstr "ککونچي سلوت هوتبر 24"
#: src/settings_translation_file.cpp
-msgid "Minimap scan height"
-msgstr ""
+msgid "Hotbar slot 25 key"
+msgstr "ککونچي سلوت هوتبر 25"
#: src/settings_translation_file.cpp
-msgid ""
-"True = 256\n"
-"False = 128\n"
-"Usable to make minimap smoother on slower machines."
-msgstr ""
+msgid "Hotbar slot 26 key"
+msgstr "ککونچي سلوت هوتبر 26"
#: src/settings_translation_file.cpp
-msgid "Colored fog"
-msgstr ""
+msgid "Hotbar slot 27 key"
+msgstr "ککونچي سلوت هوتبر 27"
#: src/settings_translation_file.cpp
-msgid ""
-"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
-msgstr ""
+msgid "Hotbar slot 28 key"
+msgstr "ککونچي سلوت هوتبر 28"
#: src/settings_translation_file.cpp
-msgid "Ambient occlusion gamma"
-msgstr ""
+msgid "Hotbar slot 29 key"
+msgstr "ککونچي سلوت هوتبر 29"
#: src/settings_translation_file.cpp
-msgid ""
-"The strength (darkness) of node ambient-occlusion shading.\n"
-"Lower is darker, Higher is lighter. The valid range of values for this\n"
-"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n"
-"set to the nearest valid value."
-msgstr ""
+msgid "Hotbar slot 3 key"
+msgstr "ککونچي سلوت هوتبر 3"
#: src/settings_translation_file.cpp
-msgid "Inventory items animations"
-msgstr ""
+msgid "Hotbar slot 30 key"
+msgstr "ککونچي سلوت هوتبر 30"
#: src/settings_translation_file.cpp
-msgid "Enables animation of inventory items."
-msgstr ""
+msgid "Hotbar slot 31 key"
+msgstr "ککونچي سلوت هوتبر 31"
#: src/settings_translation_file.cpp
-msgid "Fog start"
-msgstr ""
+msgid "Hotbar slot 32 key"
+msgstr "ککونچي سلوت هوتبر 32"
#: src/settings_translation_file.cpp
-msgid "Fraction of the visible distance at which fog starts to be rendered"
-msgstr ""
+msgid "Hotbar slot 4 key"
+msgstr "ککونچي سلوت هوتبر 4"
#: src/settings_translation_file.cpp
-msgid "Opaque liquids"
-msgstr ""
+msgid "Hotbar slot 5 key"
+msgstr "ککونچي سلوت هوتبر 5"
#: src/settings_translation_file.cpp
-msgid "Makes all liquids opaque"
-msgstr ""
+msgid "Hotbar slot 6 key"
+msgstr "ککونچي سلوت هوتبر 6"
#: src/settings_translation_file.cpp
-msgid "World-aligned textures mode"
-msgstr ""
+msgid "Hotbar slot 7 key"
+msgstr "ککونچي سلوت هوتبر 7"
#: src/settings_translation_file.cpp
-msgid ""
-"Textures on a node may be aligned either to the node or to the world.\n"
-"The former mode suits better things like machines, furniture, etc., while\n"
-"the latter makes stairs and microblocks fit surroundings better.\n"
-"However, as this possibility is new, thus may not be used by older servers,\n"
-"this option allows enforcing it for certain node types. Note though that\n"
-"that is considered EXPERIMENTAL and may not work properly."
-msgstr ""
+msgid "Hotbar slot 8 key"
+msgstr "ککونچي سلوت هوتبر 8"
#: src/settings_translation_file.cpp
-msgid "Autoscaling mode"
+msgid "Hotbar slot 9 key"
+msgstr "ککونچي سلوت هوتبر 9"
+
+#: src/settings_translation_file.cpp
+msgid "How deep to make rivers."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"World-aligned textures may be scaled to span several nodes. However,\n"
-"the server may not send the scale you want, especially if you use\n"
-"a specially-designed texture pack; with this option, the client tries\n"
-"to determine the scale automatically basing on the texture size.\n"
-"See also texture_min_size.\n"
-"Warning: This option is EXPERIMENTAL!"
+"How fast liquid waves will move. Higher = faster.\n"
+"If negative, liquid waves will move backwards.\n"
+"Requires waving liquids to be enabled."
msgstr ""
+"سچڤت مان ݢلورا چچاٴير اکن برݢرق. نيلاي تيڠݢي = لبيه لاجو.\n"
+"جيک نيلاي نيݢاتيÙ⹠ݢلورا چچاٴير اکن برݢرق کبلاکڠ.\n"
+"ممرلوکن تتڤن چچاٴير برݢلورا دبوليهکن."
#: src/settings_translation_file.cpp
-msgid "Show entity selection boxes"
+msgid ""
+"How much the server will wait before unloading unused mapblocks.\n"
+"Higher value is smoother, but will use more RAM."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Menus"
+msgid "How wide to make rivers."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Clouds in menu"
+msgid "Humidity blend noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Use a cloud animation for the main menu background."
+msgid "Humidity noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "GUI scaling"
+msgid "Humidity variation for biomes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Scale GUI by a user specified value.\n"
-"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n"
-"This will smooth over some of the rough edges, and blend\n"
-"pixels when scaling down, at the cost of blurring some\n"
-"edge pixels when images are scaled by non-integer sizes."
+msgid "IPv6"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "GUI scaling filter"
-msgstr ""
+msgid "IPv6 server"
+msgstr "ڤلاين IPv6"
#: src/settings_translation_file.cpp
msgid ""
-"When gui_scaling_filter is true, all GUI images need to be\n"
-"filtered in software, but some images are generated directly\n"
-"to hardware (e.g. render-to-texture for nodes in inventory)."
+"If FPS would go higher than this, limit it by sleeping\n"
+"to not waste CPU power for no benefit."
msgstr ""
+"جيک بيڠکاي ڤر ساٴت (FPS) اکن ناٴيق لبيه تيڠݢي درڤد نيلاي اينâ¹\n"
+"حدکن اي دڠن تيدورکنڽ سوڤايا تيدق بازيرکن کواسا CPU دڠن سيا٢."
#: src/settings_translation_file.cpp
-msgid "GUI scaling filter txr2img"
+msgid ""
+"If disabled, \"special\" key is used to fly fast if both fly and fast mode "
+"are\n"
+"enabled."
msgstr ""
+"جيک دلومڤوهکن⹠ککونچي \"ايستيميوا\" اکن دݢوناکن اونتوق تربڠ لاجو\n"
+"سکيراڽ کدوا-دوا مود تربڠ دان مود ڤرݢرقن ڤنتس دبوليهکن."
#: src/settings_translation_file.cpp
msgid ""
-"When gui_scaling_filter_txr2img is true, copy those images\n"
-"from hardware to software for scaling. When false, fall back\n"
-"to the old scaling method, for video drivers that don't\n"
-"properly support downloading textures back from hardware."
+"If enabled the server will perform map block occlusion culling based on\n"
+"on the eye position of the player. This can reduce the number of blocks\n"
+"sent to the client 50-80%. The client will not longer receive most "
+"invisible\n"
+"so that the utility of noclip mode is reduced."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Tooltip delay"
+msgid ""
+"If enabled together with fly mode, player is able to fly through solid "
+"nodes.\n"
+"This requires the \"noclip\" privilege on the server."
msgstr ""
+"جيک دبوليهکن برسام مود تربڠ⹠ڤماٴين بوليه تربڠ منروسي نود ڤڤجل.\n"
+"اين ممرلوکن کأيستيميواٴن \"تمبوس بلوک\" دالم ڤلاين ترسبوت."
#: src/settings_translation_file.cpp
-msgid "Delay showing tooltips, stated in milliseconds."
+msgid ""
+"If enabled, \"special\" key instead of \"sneak\" key is used for climbing "
+"down and\n"
+"descending."
msgstr ""
+"جيک دبوليهکن⹠ککونچي \"ايستيميوا\" اکن دݢوناکن اونتوق ڤنجت کباوه دان\n"
+"تورون دالم مود تربڠ⹠مڠݢنتيکن ککونچي \"سلينڤ\"."
#: src/settings_translation_file.cpp
-msgid "Append item name"
+msgid ""
+"If enabled, actions are recorded for rollback.\n"
+"This option is only read when server starts."
msgstr ""
+"جک دبوليهکن⹠سموا تيندقن اکن دراکم اونتوق ݢولوڠ باليق.\n"
+"ڤيليهن اين هاڽ دباچ کتيک ڤلاين برمولا."
#: src/settings_translation_file.cpp
-msgid "Append item name to tooltip."
-msgstr ""
+msgid "If enabled, disable cheat prevention in multiplayer."
+msgstr "جک دبوليهکن⹠اي اکن ملومڤوهکن ڤنچݢهن ڤنيڤوان دالم ڤماٴين راماي."
#: src/settings_translation_file.cpp
-msgid "FreeType fonts"
+msgid ""
+"If enabled, invalid world data won't cause the server to shut down.\n"
+"Only enable this if you know what you are doing."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Whether FreeType fonts are used, requires FreeType support to be compiled "
-"in.\n"
-"If disabled, bitmap and XML vectors fonts are used instead."
+"If enabled, makes move directions relative to the player's pitch when flying "
+"or swimming."
msgstr ""
+"جيک دبوليهکن⹠اي ممبواتکن اره ڤرݢرقن ريلاتي٠دڠن ڤيچ ڤماٴين اڤابيلا تربڠ "
+"اتاو برنڠ."
#: src/settings_translation_file.cpp
-msgid "Font bold by default"
-msgstr ""
+msgid "If enabled, new players cannot join with an empty password."
+msgstr "جک دبوليهکن⹠ڤماٴين٢ بارو تيدق بوليه ماسوق دڠن کات لالوان يڠ کوسوڠ."
#: src/settings_translation_file.cpp
-msgid "Font italic by default"
+msgid ""
+"If enabled, you can place blocks at the position (feet + eye level) where "
+"you stand.\n"
+"This is helpful when working with nodeboxes in small areas."
msgstr ""
+"جيک دبوليهکن⹠اندا بوليه ملتق بلوک دکدودوقن برديري (کاکي + ارس مات).\n"
+"اين ساڠت برݢونا اڤابيلا بکرجا دڠن کوتق نود دکاوسن يڠ کچيل."
#: src/settings_translation_file.cpp
-msgid "Font shadow"
+msgid ""
+"If the CSM restriction for node range is enabled, get_node calls are "
+"limited\n"
+"to this distance from the player to the node."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
-"drawn."
+"If the file size of debug.txt exceeds the number of megabytes specified in\n"
+"this setting when it is opened, the file is moved to debug.txt.1,\n"
+"deleting an older debug.txt.1 if it exists.\n"
+"debug.txt is only moved if this setting is positive."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font shadow alpha"
+msgid "If this is set, players will always (re)spawn at the given position."
msgstr ""
+"جک تتڤن اين دتتڤکن⹠ڤماٴين اکن سنتياسا دلاهيرکن (سمولا) دکت کدودوقن يڠ "
+"دبريکن."
#: src/settings_translation_file.cpp
-msgid ""
-"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255."
+msgid "Ignore world errors"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font size"
-msgstr ""
+msgid "In-Game"
+msgstr "دالم ڤرماٴينن"
#: src/settings_translation_file.cpp
-msgid "Font size of the default font in point (pt)."
+msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
msgstr ""
+"نيلاي Ø§Ù„ÙØ§ لاتر بلاکڠ کونسول سيمبڠ دالم ڤرماٴينن (کلݢڤن⹠انتارا 0 دان 255)."
#: src/settings_translation_file.cpp
-msgid "Regular font path"
-msgstr ""
+msgid "In-game chat console background color (R,G,B)."
+msgstr "ورنا لاتر بلاکڠ کونسول سيمبڠ دالم ڤرماٴينن (R,G,B)."
#: src/settings_translation_file.cpp
-msgid ""
-"Path to the default font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"The fallback font will be used if the font cannot be loaded."
+msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
msgstr ""
+"نيلاي کتيڠݢين کونسول سيمبڠ دالم ڤرماٴينن⹠انتارا 0.1 (10%) دان 1.0 (100%)."
#: src/settings_translation_file.cpp
-msgid "Bold font path"
-msgstr ""
+msgid "Inc. volume key"
+msgstr "ککونچي کواتکن بوڽي"
#: src/settings_translation_file.cpp
-msgid "Italic font path"
+msgid "Initial vertical speed when jumping, in nodes per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bold and italic font path"
+msgid ""
+"Instrument builtin.\n"
+"This is usually only needed by core/builtin contributors"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Monospace font size"
+msgid "Instrument chatcommands on registration."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Font size of the monospace font in point (pt)."
+msgid ""
+"Instrument global callback functions on registration.\n"
+"(anything you pass to a minetest.register_*() function)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Monospace font path"
+msgid ""
+"Instrument the action function of Active Block Modifiers on registration."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Path to the monospace font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"This font is used for e.g. the console and profiler screen."
+"Instrument the action function of Loading Block Modifiers on registration."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bold monospace font path"
+msgid "Instrument the methods of entities on registration."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Italic monospace font path"
+msgid "Instrumentation"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bold and italic monospace font path"
+msgid "Interval of saving important changes in the world, stated in seconds."
msgstr ""
+"سلڠ ماس دأنتارا ڤڽيمڤنن ڤروبهن ڤنتيڠ دالم دنيا⹠دڽاتاکن دالم اونيت ساٴت."
#: src/settings_translation_file.cpp
-msgid "Fallback font size"
-msgstr ""
+msgid "Interval of sending time of day to clients."
+msgstr "سلڠ دأنتارا ڤڠهنترن معلومت ماس ڤلاين کڤد کليئن."
#: src/settings_translation_file.cpp
-msgid "Font size of the fallback font in point (pt)."
-msgstr ""
+msgid "Inventory items animations"
+msgstr "انيماسي ايتم اينÛينتوري"
#: src/settings_translation_file.cpp
-msgid "Fallback font shadow"
-msgstr ""
+msgid "Inventory key"
+msgstr "ککونچي اينÛينتوري"
#: src/settings_translation_file.cpp
-msgid ""
-"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
-"be drawn."
-msgstr ""
+msgid "Invert mouse"
+msgstr "تتيکوس سوڠسڠ"
#: src/settings_translation_file.cpp
-msgid "Fallback font shadow alpha"
-msgstr ""
+msgid "Invert vertical mouse movement."
+msgstr "مڽوڠسڠکن ڤرݢرقن تتيکوس منݢق."
#: src/settings_translation_file.cpp
-msgid ""
-"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255."
-msgstr ""
+msgid "Italic font path"
+msgstr "لالوان Ùون ايتاليک"
#: src/settings_translation_file.cpp
-msgid "Fallback font path"
-msgstr ""
+msgid "Italic monospace font path"
+msgstr "لالوان Ùون monospace ايتاليک"
#: src/settings_translation_file.cpp
-msgid ""
-"Path of the fallback font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"This font will be used for certain languages or if the default font is "
-"unavailable."
-msgstr ""
+msgid "Item entity TTL"
+msgstr "TTL اينتيتي ايتم"
#: src/settings_translation_file.cpp
-msgid "Chat font size"
+msgid "Iterations"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Font size of the recent chat text and chat prompt in point (pt).\n"
-"Value 0 will use the default font size."
+"Iterations of the recursive function.\n"
+"Increasing this increases the amount of fine detail, but also\n"
+"increases processing load.\n"
+"At iterations = 20 this mapgen has a similar load to mapgen V7."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Screenshot folder"
-msgstr ""
+msgid "Joystick ID"
+msgstr "ID کايو بديق"
#: src/settings_translation_file.cpp
-msgid ""
-"Path to save screenshots at. Can be an absolute or relative path.\n"
-"The folder will be created if it doesn't already exist."
-msgstr ""
+msgid "Joystick button repetition interval"
+msgstr "سلڠ ماس ڤڠاولڠن بوتڠ کايو بديق"
#: src/settings_translation_file.cpp
-msgid "Screenshot format"
-msgstr ""
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "جنيس کايو بديق"
#: src/settings_translation_file.cpp
-msgid "Format of screenshots."
-msgstr ""
+msgid "Joystick frustum sensitivity"
+msgstr "کڤيکاٴن ÙØ±ÙˆØ³ØªÙˆÙ… کايو بديق"
#: src/settings_translation_file.cpp
-msgid "Screenshot quality"
-msgstr ""
+msgid "Joystick type"
+msgstr "جنيس کايو بديق"
#: src/settings_translation_file.cpp
msgid ""
-"Screenshot quality. Only used for JPEG format.\n"
-"1 means worst quality; 100 means best quality.\n"
-"Use 0 for default quality."
+"Julia set only.\n"
+"W component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Has no effect on 3D fractals.\n"
+"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "DPI"
+msgid ""
+"Julia set only.\n"
+"X component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
-"screens."
+"Julia set only.\n"
+"Y component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable console window"
+msgid ""
+"Julia set only.\n"
+"Z component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Windows systems only: Start Minetest with the command line window in the "
-"background.\n"
-"Contains the same information as the file debug.txt (default name)."
+msgid "Julia w"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Sound"
+msgid "Julia x"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables the sound system.\n"
-"If disabled, this completely disables all sounds everywhere and the in-game\n"
-"sound controls will be non-functional.\n"
-"Changing this setting requires a restart."
+msgid "Julia y"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Volume"
+msgid "Julia z"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Volume of all sounds.\n"
-"Requires the sound system to be enabled."
-msgstr ""
+msgid "Jump key"
+msgstr "ککونچي لومڤت"
#: src/settings_translation_file.cpp
-msgid "Mute sound"
+msgid "Jumping speed"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Whether to mute sounds. You can unmute sounds at any time, unless the\n"
-"sound system is disabled (enable_sound=false).\n"
-"In-game, you can toggle the mute state with the mute key or by using the\n"
-"pause menu."
+"Key for decreasing the viewing range.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مڠورڠکن جارق ڤندڠ.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Client"
+msgid ""
+"Key for decreasing the volume.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق ممڤرلاهنکن بوڽي.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Network"
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق ملومڤت.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server address"
+msgid ""
+"Key for dropping the currently selected item.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منجاتوهکن ايتم يڠ سدڠ دڤيليه.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Address to connect to.\n"
-"Leave this blank to start a local server.\n"
-"Note that the address field in the main menu overrides this setting."
+"Key for increasing the viewing range.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منمبه جارق ڤندڠ.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Remote port"
+msgid ""
+"Key for increasing the volume.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مڠواتکن بوڽي.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Port to connect to (UDP).\n"
-"Note that the port field in the main menu overrides this setting."
+"Key for jumping.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق ملومڤت.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Prometheus listener address"
+msgid ""
+"Key for moving fast in fast mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق برݢرق ڤنتس دالم مود ڤرݢرقن ڤنتس.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Prometheus listener address.\n"
-"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n"
-"enable metrics listener for Prometheus on that address.\n"
-"Metrics can be fetch on http://127.0.0.1:30000/metrics"
+"Key for moving the player backward.\n"
+"Will also disable autoforward, when active.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مڠݢرقکن ڤماٴين کبلاکڠ.\n"
+"جوݢ اکن ملومڤوهکن أوتوڤرݢرقن⹠اڤابيلا اکتيÙ.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Saving map received from server"
+msgid ""
+"Key for moving the player forward.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مڠݢرقکن ڤماٴين کدڤن.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Save the map received by the client on disk."
+msgid ""
+"Key for moving the player left.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مڠݢرقکن ڤماٴين ککيري.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Connect to external media server"
+msgid ""
+"Key for moving the player right.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مڠݢرقکن ڤماٴين ککانن.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable usage of remote media server (if provided by server).\n"
-"Remote servers offer a significantly faster way to download media (e.g. "
-"textures)\n"
-"when connecting to the server."
+"Key for muting the game.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق ممبيسوکن ڤرماٴينن.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Client modding"
+msgid ""
+"Key for opening the chat window to type commands.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق ممبوک تتيڠکڤ سيمبڠ اونتوق مناٴيڤ ارهن.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable Lua modding support on client.\n"
-"This support is experimental and API can change."
+"Key for opening the chat window to type local commands.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق ممبوک تتيڠکڤ سيمبڠ اونتوق مناٴيڤ ارهن تمڤتن.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Serverlist URL"
+msgid ""
+"Key for opening the chat window.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق ممبوک تتيڠکڤ سيمبڠ.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "URL to the server list displayed in the Multiplayer Tab."
+msgid ""
+"Key for opening the inventory.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق ممبوک اينÛينتوري.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Serverlist file"
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق ملومڤت.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"File in client/serverlist/ that contains your favorite servers displayed in "
-"the\n"
-"Multiplayer Tab."
+"Key for selecting the 11th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-11 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Maximum size of the out chat queue"
+msgid ""
+"Key for selecting the 12th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-12 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Maximum size of the out chat queue.\n"
-"0 to disable queueing and -1 to make the queue size unlimited."
+"Key for selecting the 13th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-13 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Enable register confirmation"
+msgid ""
+"Key for selecting the 14th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-14 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable register confirmation when connecting to server.\n"
-"If disabled, new account will be registered automatically."
+"Key for selecting the 15th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-15 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Mapblock unload timeout"
+msgid ""
+"Key for selecting the 16th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-16 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Timeout for client to remove unused map data from memory."
+msgid ""
+"Key for selecting the 17th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-17 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Mapblock limit"
+msgid ""
+"Key for selecting the 18th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-18 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of mapblocks for client to be kept in memory.\n"
-"Set to -1 for unlimited amount."
+"Key for selecting the 19th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-19 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Show debug info"
+msgid ""
+"Key for selecting the 20th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-20 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Whether to show the client debug info (has the same effect as hitting F5)."
+"Key for selecting the 21st hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-21 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server / Singleplayer"
+msgid ""
+"Key for selecting the 22nd hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-22 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server name"
+msgid ""
+"Key for selecting the 23rd hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-23 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Name of the server, to be displayed when players join and in the serverlist."
+"Key for selecting the 24th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-24 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server description"
+msgid ""
+"Key for selecting the 25th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-25 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Description of server, to be displayed when players join and in the "
-"serverlist."
+"Key for selecting the 26th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-26 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Domain name of server, to be displayed in the serverlist."
+msgid ""
+"Key for selecting the 27th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-27 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server URL"
+msgid ""
+"Key for selecting the 28th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-28 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Homepage of server, to be displayed in the serverlist."
+msgid ""
+"Key for selecting the 29th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-29 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Announce server"
+msgid ""
+"Key for selecting the 30th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-30 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Automatically report to the serverlist."
+msgid ""
+"Key for selecting the 31st hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-31 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Announce to this serverlist."
+msgid ""
+"Key for selecting the 32nd hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-32 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Strip color codes"
+msgid ""
+"Key for selecting the eighth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-8 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Remove color codes from incoming chat messages\n"
-"Use this to stop players from being able to use color in their messages"
+"Key for selecting the fifth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-5 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server port"
+msgid ""
+"Key for selecting the first hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ڤرتام دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Network port to listen (UDP).\n"
-"This value will be overridden when starting from the main menu."
+"Key for selecting the fourth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-4 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Bind address"
+msgid ""
+"Key for selecting the next item in the hotbar.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه ايتم ستروسڽ ددالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "The network interface that the server listens on."
+msgid ""
+"Key for selecting the ninth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-9 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Strict protocol checking"
+msgid ""
+"Key for selecting the previous item in the hotbar.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه بارڠ سبلومڽ دهوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable to disallow old clients from connecting.\n"
-"Older clients are compatible in the sense that they will not crash when "
-"connecting\n"
-"to new servers, but they may not support all new features that you are "
-"expecting."
+"Key for selecting the second hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-2 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Remote media"
+msgid ""
+"Key for selecting the seventh hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-7 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Specifies URL from which client fetches media instead of using UDP.\n"
-"$filename should be accessible from $remote_media$filename via cURL\n"
-"(obviously, remote_media should end with a slash).\n"
-"Files that are not present will be fetched the usual way."
+"Key for selecting the sixth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-6 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "IPv6 server"
+msgid ""
+"Key for selecting the tenth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-10 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable/disable running an IPv6 server.\n"
-"Ignored if bind_address is set.\n"
-"Needs enable_ipv6 to be enabled."
+"Key for selecting the third hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مميليه سلوت ک-3 دالم هوتبر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Maximum simultaneous block sends per client"
+msgid ""
+"Key for sneaking.\n"
+"Also used for climbing down and descending in water if aux1_descends is "
+"disabled.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مڽلينڤ.\n"
+"جوݢ دݢوناکن اونتوق تورون باواه کتيک ممنجت دان دالم اٴير جيک تتڤن "
+"aux1_descends دلومڤوهکن.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of blocks that are simultaneously sent per client.\n"
-"The maximum total count is calculated dynamically:\n"
-"max_total = ceil((#clients + max_users) * per_client / 4)"
+"Key for switching between first- and third-person camera.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق برتوکر انتارا کاميرا اورڠ ڤرتام دان کتيݢ.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Delay in sending blocks after building"
+msgid ""
+"Key for taking screenshots.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منڠکڤ ݢمبر لاير.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"To reduce lag, block transfers are slowed down when a player is building "
-"something.\n"
-"This determines how long they are slowed down after placing or removing a "
-"node."
+"Key for toggling autoforward.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول أوتوڤرݢرقن.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Max. packets per iteration"
+msgid ""
+"Key for toggling cinematic mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول مود سينماتيک.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of packets sent per send step, if you have a slow connection\n"
-"try reducing it, but don't reduce it to a number below double of targeted\n"
-"client number."
+"Key for toggling display of minimap.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول ڤاڤرن ڤتا ميني.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Default game"
+msgid ""
+"Key for toggling fast mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول مود ڤرݢرقن ڤنتس.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Default game when creating a new world.\n"
-"This will be overridden when creating a world from the main menu."
+"Key for toggling flying.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول مود تربڠ.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Message of the day"
+msgid ""
+"Key for toggling noclip mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول مود تمبوس بلوک.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Message of the day displayed to players connecting."
+msgid ""
+"Key for toggling pitch move mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول مود ڤرݢرقن ڤيچ.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Maximum users"
+msgid ""
+"Key for toggling the camera update. Only used for development\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول ڤڠمسکينين کاميرا. هاڽ دݢوناکن اونتوق ڤمباڠونن.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Maximum number of players that can be connected simultaneously."
+msgid ""
+"Key for toggling the display of chat.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول ڤاڤرن سيمبڠ.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Map directory"
+msgid ""
+"Key for toggling the display of debug info.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول ڤاڤرن معلومت ڽهڤڤيجت.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"World directory (everything in the world is stored here).\n"
-"Not needed if starting from the main menu."
+"Key for toggling the display of fog.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول ڤاڤرن کابوت.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Item entity TTL"
+msgid ""
+"Key for toggling the display of the HUD.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول ڤاڤر ڤندو (HUD).\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Time in seconds for item entity (dropped items) to live.\n"
-"Setting it to -1 disables the feature."
+"Key for toggling the display of the large chat console.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول ڤاڤرن کونسول سيمبڠ بسر.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Default stack size"
+msgid ""
+"Key for toggling the display of the profiler. Used for development.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول ڤمبوکه. دݢوناکن اونتوق ڤمباڠونن.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Specifies the default stack size of nodes, items and tools.\n"
-"Note that mods or games may explicitly set a stack for certain (or all) "
-"items."
+"Key for toggling unlimited view range.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق منوݢول جارق ڤندڠن تيادا حد.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Damage"
+msgid ""
+"Key to use view zoom when possible.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"ککونچي اونتوق مڠݢوناکن ڤندڠن زوم اڤابيلا دبنرکن.\n"
+"ليهت http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Enable players getting damage and dying."
-msgstr ""
+msgid "Kick players who sent more than X messages per 10 seconds."
+msgstr "تندڠ ڤماٴين يڠ مڠهنتر ميسيج لبيه درڤد X ستياڤ 10 ساٴت."
#: src/settings_translation_file.cpp
-msgid "Creative"
+msgid "Lake steepness"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Lake threshold"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fixed map seed"
+msgid "Language"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"A chosen map seed for a new map, leave empty for random.\n"
-"Will be overridden when creating a new world in the main menu."
+msgid "Large cave depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default password"
+msgid "Large cave maximum number"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "New users need to input this password."
+msgid "Large cave minimum number"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Default privileges"
+msgid "Large cave proportion flooded"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The privileges that new users automatically get.\n"
-"See /privs in game for a full list on your server and mod configuration."
-msgstr ""
+msgid "Large chat console key"
+msgstr "ککونچي کونسول سيمبڠ بسر"
#: src/settings_translation_file.cpp
-msgid "Basic privileges"
-msgstr ""
+msgid "Leaves style"
+msgstr "ݢاي داٴون"
#: src/settings_translation_file.cpp
-msgid "Privileges that players with basic_privs can grant"
+msgid ""
+"Leaves style:\n"
+"- Fancy: all faces visible\n"
+"- Simple: only outer faces, if defined special_tiles are used\n"
+"- Opaque: disable transparency"
msgstr ""
+"ݢاي داٴون:\n"
+"- براݢم: سموا سيسي کليهتن\n"
+"- ريڠکس: هاڽ سيسي لوار کليهتن⹠جيک special_tiles يڠ دتنتوکن دݢوناکن\n"
+"- لݢڤ: ملومڤوهکن لوت سينر"
#: src/settings_translation_file.cpp
-msgid "Unlimited player transfer distance"
-msgstr ""
+msgid "Left key"
+msgstr "ککونچي ککيري"
#: src/settings_translation_file.cpp
msgid ""
-"Whether players are shown to clients without any range limit.\n"
-"Deprecated, use the setting player_transfer_distance instead."
+"Length of a server tick and the interval at which objects are generally "
+"updated over\n"
+"network."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Player transfer distance"
+msgid ""
+"Length of liquid waves.\n"
+"Requires waving liquids to be enabled."
msgstr ""
+"ڤنجڠ ݢلورا چچاٴير.\n"
+"ممرلوکن تتڤن چچاٴير برݢلورا دبوليهکن."
#: src/settings_translation_file.cpp
-msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
+msgid "Length of time between Active Block Modifier (ABM) execution cycles"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Player versus player"
+msgid "Length of time between NodeTimer execution cycles"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Whether to allow players to damage and kill each other."
+msgid "Length of time between active block management cycles"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mod channels"
+msgid ""
+"Level of logging to be written to debug.txt:\n"
+"- <nothing> (no logging)\n"
+"- none (messages with no level)\n"
+"- error\n"
+"- warning\n"
+"- action\n"
+"- info\n"
+"- verbose"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable mod channels support."
-msgstr ""
+msgid "Light curve boost"
+msgstr "تولقن لڠکوڠ چهاي"
#: src/settings_translation_file.cpp
-msgid "Static spawnpoint"
-msgstr ""
+msgid "Light curve boost center"
+msgstr "تيتيق تڠه تولقن لڠکوڠ چهاي"
#: src/settings_translation_file.cpp
-msgid "If this is set, players will always (re)spawn at the given position."
-msgstr ""
+msgid "Light curve boost spread"
+msgstr "سيبرن تولقن لڠکوڠ چهاي"
#: src/settings_translation_file.cpp
-msgid "Disallow empty passwords"
-msgstr ""
+msgid "Light curve gamma"
+msgstr "ݢام لڠکوڠ چهاي"
#: src/settings_translation_file.cpp
-msgid "If enabled, new players cannot join with an empty password."
-msgstr ""
+msgid "Light curve high gradient"
+msgstr "کچرونن تيڠݢي لڠکوڠ چهاي"
#: src/settings_translation_file.cpp
-msgid "Disable anticheat"
-msgstr ""
+msgid "Light curve low gradient"
+msgstr "کچرونن رنده لڠکوڠ چهاي"
#: src/settings_translation_file.cpp
-msgid "If enabled, disable cheat prevention in multiplayer."
+msgid ""
+"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n"
+"Only mapchunks completely within the mapgen limit are generated.\n"
+"Value is stored per-world."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rollback recording"
+msgid ""
+"Limits number of parallel HTTP requests. Affects:\n"
+"- Media fetch if server uses remote_media setting.\n"
+"- Serverlist download and server announcement.\n"
+"- Downloads performed by main menu (e.g. mod manager).\n"
+"Only has an effect if compiled with cURL."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled, actions are recorded for rollback.\n"
-"This option is only read when server starts."
+msgid "Liquid fluidity"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat message format"
+msgid "Liquid fluidity smoothing"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Format of player chat messages. The following strings are valid "
-"placeholders:\n"
-"@name, @message, @timestamp (optional)"
+msgid "Liquid loop max"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Shutdown message"
+msgid "Liquid queue purge time"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "A message to be displayed to all clients when the server shuts down."
+msgid "Liquid sinking"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crash message"
+msgid "Liquid update interval in seconds."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "A message to be displayed to all clients when the server crashes."
+msgid "Liquid update tick"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ask to reconnect after crash"
+msgid "Load the game profiler"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Whether to ask clients to reconnect after a (Lua) crash.\n"
-"Set this to true if your server is set up to restart automatically."
+"Load the game profiler to collect game profiling data.\n"
+"Provides a /profiler command to access the compiled profile.\n"
+"Useful for mod developers and server operators."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Active object send range"
+msgid "Loading Block Modifiers"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"From how far clients know about objects, stated in mapblocks (16 nodes).\n"
-"\n"
-"Setting this larger than active_block_range will also cause the server\n"
-"to maintain active objects up to this distance in the direction the\n"
-"player is looking. (This can avoid mobs suddenly disappearing from view)"
+msgid "Lower Y limit of dungeons."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Active block range"
+msgid "Lower Y limit of floatlands."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The radius of the volume of blocks around every player that is subject to "
-"the\n"
-"active block stuff, stated in mapblocks (16 nodes).\n"
-"In active blocks objects are loaded and ABMs run.\n"
-"This is also the minimum range in which active objects (mobs) are "
-"maintained.\n"
-"This should be configured together with active_object_send_range_blocks."
+msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Max block send distance"
+msgid ""
+"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
+"بواتکن ورنا کابوت دان لاڠيت برݢنتوڠ کڤد وقتو (ÙØ¬Ø±\\ماتاهاري) دان اره ڤندڠ."
#: src/settings_translation_file.cpp
-msgid ""
-"From how far blocks are sent to clients, stated in mapblocks (16 nodes)."
+msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum forceloaded blocks"
-msgstr ""
+msgid "Makes all liquids opaque"
+msgstr "بواتکن سموا چچاٴير منجادي لݢڤ"
#: src/settings_translation_file.cpp
-msgid "Maximum number of forceloaded mapblocks."
+msgid "Map Compression Level for Disk Storage"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Time send interval"
+msgid "Map Compression Level for Network Transfer"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Interval of sending time of day to clients."
-msgstr ""
+msgid "Map directory"
+msgstr "ديريکتوري ڤتا"
#: src/settings_translation_file.cpp
-msgid "Time speed"
+msgid "Map generation attributes specific to Mapgen Carpathian."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Controls length of day/night cycle.\n"
-"Examples:\n"
-"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged."
+"Map generation attributes specific to Mapgen Flat.\n"
+"Occasional lakes and hills can be added to the flat world."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "World start time"
+msgid ""
+"Map generation attributes specific to Mapgen Fractal.\n"
+"'terrain' enables the generation of non-fractal terrain:\n"
+"ocean, islands and underground."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Time of day when a new world is started, in millihours (0-23999)."
+msgid ""
+"Map generation attributes specific to Mapgen Valleys.\n"
+"'altitude_chill': Reduces heat with altitude.\n"
+"'humid_rivers': Increases humidity around rivers.\n"
+"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n"
+"to become shallower and occasionally dry.\n"
+"'altitude_dry': Reduces humidity with altitude."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Map save interval"
+msgid "Map generation attributes specific to Mapgen v5."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Interval of saving important changes in the world, stated in seconds."
+msgid ""
+"Map generation attributes specific to Mapgen v6.\n"
+"The 'snowbiomes' flag enables the new 5 biome system.\n"
+"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n"
+"the 'jungles' flag is ignored."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat message max length"
+msgid ""
+"Map generation attributes specific to Mapgen v7.\n"
+"'ridges': Rivers.\n"
+"'floatlands': Floating land masses in the atmosphere.\n"
+"'caverns': Giant caves deep underground."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Set the maximum character length of a chat message sent by clients."
+msgid "Map generation limit"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Chat message count limit"
-msgstr ""
+msgid "Map save interval"
+msgstr "سلڠ ماس ڤڽيمڤنن ڤتا"
#: src/settings_translation_file.cpp
-msgid "Amount of messages a player may send per 10 seconds."
-msgstr ""
+msgid "Mapblock limit"
+msgstr "حد بلوک ڤتا"
#: src/settings_translation_file.cpp
-msgid "Chat message kick threshold"
-msgstr ""
+msgid "Mapblock mesh generation delay"
+msgstr "لڠه ماس ڤنجاناٴن ججاريڠ بلوک ڤتا"
#: src/settings_translation_file.cpp
-msgid "Kick players who sent more than X messages per 10 seconds."
+msgid "Mapblock mesh generator's MapBlock cache size in MB"
msgstr ""
+"ساٴيز کيش بلوکڤتا اونتوق ڤنجان ججاريڠ بلوکڤتا دالم اونيت ميݢاباٴيت (MB)"
#: src/settings_translation_file.cpp
-msgid "Physics"
-msgstr ""
+msgid "Mapblock unload timeout"
+msgstr "حد ماس ڽهموات بلوک ڤتا"
#: src/settings_translation_file.cpp
-msgid "Default acceleration"
+msgid "Mapgen Carpathian"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal and vertical acceleration on ground or when climbing,\n"
-"in nodes per second per second."
+msgid "Mapgen Carpathian specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Acceleration in air"
+msgid "Mapgen Flat"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal acceleration in air when jumping or falling,\n"
-"in nodes per second per second."
+msgid "Mapgen Flat specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fast mode acceleration"
+msgid "Mapgen Fractal"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal and vertical acceleration in fast mode,\n"
-"in nodes per second per second."
+msgid "Mapgen Fractal specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Walking speed"
+msgid "Mapgen V5"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Walking and flying speed, in nodes per second."
+msgid "Mapgen V5 specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Sneaking speed"
+msgid "Mapgen V6"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Sneaking speed, in nodes per second."
+msgid "Mapgen V6 specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fast mode speed"
+msgid "Mapgen V7"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
+msgid "Mapgen V7 specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Climbing speed"
+msgid "Mapgen Valleys"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Vertical climbing speed, in nodes per second."
+msgid "Mapgen Valleys specific flags"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Jumping speed"
+msgid "Mapgen debug"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Initial vertical speed when jumping, in nodes per second."
+msgid "Mapgen name"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid fluidity"
+msgid "Max block generate distance"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Decrease this to increase liquid resistance to movement."
-msgstr ""
+msgid "Max block send distance"
+msgstr "جارق مکسيموم ڤڠهنترن بلوک"
#: src/settings_translation_file.cpp
-msgid "Liquid fluidity smoothing"
+msgid "Max liquids processed per step."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Maximum liquid resistance. Controls deceleration when entering liquid at\n"
-"high speed."
+msgid "Max. clearobjects extra blocks"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Liquid sinking"
-msgstr ""
+msgid "Max. packets per iteration"
+msgstr "بيڠکيسن مکسيما ستياڤ للرن"
#: src/settings_translation_file.cpp
-msgid "Controls sinking speed in liquid."
-msgstr ""
+msgid "Maximum FPS"
+msgstr "FPS مکسيما"
#: src/settings_translation_file.cpp
-msgid "Gravity"
-msgstr ""
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
+msgstr "بيڠکاي ڤر ساٴت (FPS) مکسيما اڤابيلا ڤرماٴينن دجيداکن."
#: src/settings_translation_file.cpp
-msgid "Acceleration of gravity, in nodes per second per second."
-msgstr ""
+msgid "Maximum forceloaded blocks"
+msgstr "جومله مکسيموم بلوک يڠ دڤقسا موات"
#: src/settings_translation_file.cpp
-msgid "Deprecated Lua API handling"
-msgstr ""
+msgid "Maximum hotbar width"
+msgstr "ليبر هوتبر مکسيما"
#: src/settings_translation_file.cpp
-msgid ""
-"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
-"- error: abort on usage of deprecated call (suggested for mod developers)."
+msgid "Maximum limit of random number of large caves per mapchunk."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Max. clearobjects extra blocks"
+msgid "Maximum limit of random number of small caves per mapchunk."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Number of extra blocks that can be loaded by /clearobjects at once.\n"
-"This is a trade-off between sqlite transaction overhead and\n"
-"memory consumption (4096=100MB, as a rule of thumb)."
+"Maximum liquid resistance. Controls deceleration when entering liquid at\n"
+"high speed."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Unload unused server data"
+msgid ""
+"Maximum number of blocks that are simultaneously sent per client.\n"
+"The maximum total count is calculated dynamically:\n"
+"max_total = ceil((#clients + max_users) * per_client / 4)"
msgstr ""
+"جومله بلوک مکسيموم يڠ دهنتر سرنتق ڤر کليئن.\n"
+"جومله مکسيموم دکيرا سچارا ديناميک:\n"
+"جومله_مکس = بولت_ناٴيق((#کليئن + ڤڠݢونا_مکس) * ڤر_کليئن \\ 4 )"
#: src/settings_translation_file.cpp
-msgid ""
-"How much the server will wait before unloading unused mapblocks.\n"
-"Higher value is smoother, but will use more RAM."
+msgid "Maximum number of blocks that can be queued for loading."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum objects per block"
+msgid ""
+"Maximum number of blocks to be queued that are to be generated.\n"
+"This limit is enforced per player."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum number of statically stored objects in a block."
+msgid ""
+"Maximum number of blocks to be queued that are to be loaded from file.\n"
+"This limit is enforced per player."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Synchronous SQLite"
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
-msgstr ""
+msgid "Maximum number of forceloaded mapblocks."
+msgstr "جومله مکسيموم بلوکڤتا يڠ دڤقسا موات."
#: src/settings_translation_file.cpp
-msgid "Dedicated server step"
+msgid ""
+"Maximum number of mapblocks for client to be kept in memory.\n"
+"Set to -1 for unlimited amount."
msgstr ""
+"جومله بلوک ڤتا مکسيموم يڠ کليئن بوليه سيمڤن دالم ميموري.\n"
+"تتڤکن کڤد -1 اونتوق جومله تنڤ حد."
#: src/settings_translation_file.cpp
msgid ""
-"Length of a server tick and the interval at which objects are generally "
-"updated over\n"
-"network."
+"Maximum number of packets sent per send step, if you have a slow connection\n"
+"try reducing it, but don't reduce it to a number below double of targeted\n"
+"client number."
msgstr ""
+"جومله مکسيما بيڠکيسن ÙŠÚ  دهنتر ڤد ستياڤ Ù„Ú Ú©Ù‡ ڤڠهنترنâ¹\n"
+"جک اندا ممڤوڽاٴي سمبوڠن ÙŠÚ  ڤرلاهن ماک چوبا کورڠکنڽâ¹\n"
+"نامون جاڠن کورڠکن کڤد نيلاي دباوه ݢندا دوا جومله کليئن ساسرن."
#: src/settings_translation_file.cpp
-msgid "Active block management interval"
-msgstr ""
+msgid "Maximum number of players that can be connected simultaneously."
+msgstr "حد جومله ڤماٴين مکسيموم يڠ بوليه مڽمبوڠ سرنتق."
#: src/settings_translation_file.cpp
-msgid "Length of time between active block management cycles"
-msgstr ""
+msgid "Maximum number of recent chat messages to show"
+msgstr "جومله مکسيموم ميسيج سيمبڠ تربارو اونتوق دتونجوقکن"
#: src/settings_translation_file.cpp
-msgid "ABM interval"
+msgid "Maximum number of statically stored objects in a block."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Length of time between Active Block Modifier (ABM) execution cycles"
+msgid "Maximum objects per block"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "NodeTimer interval"
+msgid ""
+"Maximum proportion of current window to be used for hotbar.\n"
+"Useful if there's something to be displayed right or left of hotbar."
msgstr ""
+"ڤرکادرن مکسيما اونتوق تتيڠکڤ سماس يڠ دݢوناکن اونتوق هوتبر.\n"
+"برݢونا جيک اد سسواتو يڠ اکن دڤاڤرکن دسبله کانن اتاو کيري هوتبر."
#: src/settings_translation_file.cpp
-msgid "Length of time between NodeTimer execution cycles"
-msgstr ""
+msgid "Maximum simultaneous block sends per client"
+msgstr "جومله بلوک مکسيموم يڠ دهنتر سرنتق کڤد ستياڤ کليئن"
#: src/settings_translation_file.cpp
-msgid "Ignore world errors"
-msgstr ""
+msgid "Maximum size of the out chat queue"
+msgstr "ساٴيز مکسيموم باريس ݢيلير کلوار سيمبڠ"
#: src/settings_translation_file.cpp
msgid ""
-"If enabled, invalid world data won't cause the server to shut down.\n"
-"Only enable this if you know what you are doing."
+"Maximum size of the out chat queue.\n"
+"0 to disable queueing and -1 to make the queue size unlimited."
msgstr ""
+"ساٴيز مکسيموم باريس ݢيلير کلوار سيمبڠ.\n"
+"0 اونتوق لومڤوهکن باريس ݢيلير دان -1 اونتوق بواتکن ساٴيز باريس ݢيلير تيادا "
+"حد."
#: src/settings_translation_file.cpp
-msgid "Liquid loop max"
+msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Max liquids processed per step."
-msgstr ""
+msgid "Maximum users"
+msgstr "حد جومله ڤڠݢونا"
#: src/settings_translation_file.cpp
-msgid "Liquid queue purge time"
-msgstr ""
+msgid "Menus"
+msgstr "مينو"
#: src/settings_translation_file.cpp
-msgid ""
-"The time (in seconds) that the liquids queue may grow beyond processing\n"
-"capacity until an attempt is made to decrease its size by dumping old queue\n"
-"items. A value of 0 disables the functionality."
-msgstr ""
+msgid "Mesh cache"
+msgstr "کيش ججاريڠ"
#: src/settings_translation_file.cpp
-msgid "Liquid update tick"
-msgstr ""
+msgid "Message of the day"
+msgstr "ميسيج هاري اين"
#: src/settings_translation_file.cpp
-msgid "Liquid update interval in seconds."
-msgstr ""
+msgid "Message of the day displayed to players connecting."
+msgstr "ميسيج هاري اين يڠ اکن دڤاڤرکن کڤد ڤماٴين يڠ مڽمبوڠ."
#: src/settings_translation_file.cpp
-msgid "Block send optimize distance"
-msgstr ""
+msgid "Method used to highlight selected object."
+msgstr "قاعده يڠ دݢوناکن اونتوق منونجولکن اوبجيک دڤيليه."
#: src/settings_translation_file.cpp
-msgid ""
-"At this distance the server will aggressively optimize which blocks are sent "
-"to\n"
-"clients.\n"
-"Small values potentially improve performance a lot, at the expense of "
-"visible\n"
-"rendering glitches (some blocks will not be rendered under water and in "
-"caves,\n"
-"as well as sometimes on land).\n"
-"Setting this to a value greater than max_block_send_distance disables this\n"
-"optimization.\n"
-"Stated in mapblocks (16 nodes)."
+msgid "Minimal level of logging to be written to chat."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Server side occlusion culling"
-msgstr ""
+msgid "Minimap"
+msgstr "ڤتا ميني"
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled the server will perform map block occlusion culling based on\n"
-"on the eye position of the player. This can reduce the number of blocks\n"
-"sent to the client 50-80%. The client will not longer receive most "
-"invisible\n"
-"so that the utility of noclip mode is reduced."
-msgstr ""
+msgid "Minimap key"
+msgstr "ککونچي ڤتا ميني"
#: src/settings_translation_file.cpp
-msgid "Client side modding restrictions"
-msgstr ""
+msgid "Minimap scan height"
+msgstr "کتيڠݢين ايمبسن ڤتا ميني"
#: src/settings_translation_file.cpp
-msgid ""
-"Restricts the access of certain client-side functions on servers.\n"
-"Combine the byteflags below to restrict client-side features, or set to 0\n"
-"for no restrictions:\n"
-"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n"
-"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n"
-"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n"
-"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n"
-"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n"
-"csm_restriction_noderange)\n"
-"READ_PLAYERINFO: 32 (disable get_player_names call client-side)"
+msgid "Minimum limit of random number of large caves per mapchunk."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Client side node lookup range restriction"
+msgid "Minimum limit of random number of small caves per mapchunk."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"If the CSM restriction for node range is enabled, get_node calls are "
-"limited\n"
-"to this distance from the player to the node."
-msgstr ""
+msgid "Minimum texture size"
+msgstr "سايز تيکستور مينيموم"
#: src/settings_translation_file.cpp
-msgid "Security"
-msgstr ""
+msgid "Mipmapping"
+msgstr "ڤمتاٴن ميڤ"
#: src/settings_translation_file.cpp
-msgid "Enable mod security"
-msgstr ""
+msgid "Mod channels"
+msgstr "سالوران مودس"
#: src/settings_translation_file.cpp
-msgid "Prevent mods from doing insecure things like running shell commands."
-msgstr ""
+msgid "Modifies the size of the hudbar elements."
+msgstr "مڠاوبه سايز ايليمن ڤالڠ ڤاڤر ڤندو (hudbar)."
#: src/settings_translation_file.cpp
-msgid "Trusted mods"
-msgstr ""
+msgid "Monospace font path"
+msgstr "لالوان Ùون monospace"
#: src/settings_translation_file.cpp
-msgid ""
-"Comma-separated list of trusted mods that are allowed to access insecure\n"
-"functions even when mod security is on (via request_insecure_environment())."
-msgstr ""
+msgid "Monospace font size"
+msgstr "سايز Ùون monospace"
#: src/settings_translation_file.cpp
-msgid "HTTP mods"
+msgid "Mountain height noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
-"allow them to upload and download data to/from the internet."
+msgid "Mountain noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Profiling"
+msgid "Mountain variation noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Load the game profiler"
+msgid "Mountain zero level"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Load the game profiler to collect game profiling data.\n"
-"Provides a /profiler command to access the compiled profile.\n"
-"Useful for mod developers and server operators."
-msgstr ""
+msgid "Mouse sensitivity"
+msgstr "کڤيکاٴن تتيکوس"
#: src/settings_translation_file.cpp
-msgid "Default report format"
+msgid "Mouse sensitivity multiplier."
+msgstr "ڤندارب کڤيکاٴن تتيکوس."
+
+#: src/settings_translation_file.cpp
+msgid "Mud noise"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The default format in which profiles are being saved,\n"
-"when calling `/profiler save [format]` without format."
+"Multiplier for fall bobbing.\n"
+"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
msgstr ""
+"ڤندارب اونتوق اڤوڠن تيمبول تڠݢلم.\n"
+"چونتوهڽ: 0 اونتوق تيادا اڤوڠنâ 1.0 اونتوق بياساâ 2.0 اونتوق دوا کالي ݢندا."
#: src/settings_translation_file.cpp
-msgid "Report path"
-msgstr ""
+msgid "Mute key"
+msgstr "ککونچي بيسو"
+
+#: src/settings_translation_file.cpp
+msgid "Mute sound"
+msgstr "بيسوکن بوڽي"
#: src/settings_translation_file.cpp
msgid ""
-"The file path relative to your worldpath in which profiles will be saved to."
+"Name of map generator to be used when creating a new world.\n"
+"Creating a world in the main menu will override this.\n"
+"Current mapgens in a highly unstable state:\n"
+"- The optional floatlands of v7 (disabled by default)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Instrumentation"
+msgid ""
+"Name of the player.\n"
+"When running a server, clients connecting with this name are admins.\n"
+"When starting from the main menu, this is overridden."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Entity methods"
+msgid ""
+"Name of the server, to be displayed when players join and in the serverlist."
msgstr ""
+"نام ڤلاين ڤرماٴينن⹠اونتوق دڤاڤرکن اڤابيلا ڤماٴين ماسوق دان جوݢ دالم سناراي "
+"ڤلاين."
#: src/settings_translation_file.cpp
-msgid "Instrument the methods of entities on registration."
-msgstr ""
+msgid "Near plane"
+msgstr "دکت ساته"
#: src/settings_translation_file.cpp
-msgid "Active Block Modifiers"
-msgstr ""
+msgid "Network"
+msgstr "رڠکاين"
#: src/settings_translation_file.cpp
msgid ""
-"Instrument the action function of Active Block Modifiers on registration."
+"Network port to listen (UDP).\n"
+"This value will be overridden when starting from the main menu."
msgstr ""
+"ڤورت رڠکاين اونتوق دڠر (UDP).\n"
+"نيلاي اين اکن دأتسي اڤابيلا ممولاکن ڤلاين دري مينو اوتام."
#: src/settings_translation_file.cpp
-msgid "Loading Block Modifiers"
-msgstr ""
+msgid "New users need to input this password."
+msgstr "ڤڠݢونا بارو مستي مماسوقکن کات لالوان اين."
#: src/settings_translation_file.cpp
-msgid ""
-"Instrument the action function of Loading Block Modifiers on registration."
-msgstr ""
+msgid "Noclip"
+msgstr "تمبوس بلوک"
#: src/settings_translation_file.cpp
-msgid "Chatcommands"
-msgstr ""
+msgid "Noclip key"
+msgstr "ککونچي تمبوس بلوک"
#: src/settings_translation_file.cpp
-msgid "Instrument chatcommands on registration."
-msgstr ""
+msgid "Node highlighting"
+msgstr "تونجولن نود"
#: src/settings_translation_file.cpp
-msgid "Global callbacks"
+msgid "NodeTimer interval"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Instrument global callback functions on registration.\n"
-"(anything you pass to a minetest.register_*() function)"
+msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Builtin"
+msgid "Number of emerge threads"
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Instrument builtin.\n"
-"This is usually only needed by core/builtin contributors"
+"Number of emerge threads to use.\n"
+"Value 0:\n"
+"- Automatic selection. The number of emerge threads will be\n"
+"- 'number of processors - 2', with a lower limit of 1.\n"
+"Any other value:\n"
+"- Specifies the number of emerge threads, with a lower limit of 1.\n"
+"WARNING: Increasing the number of emerge threads increases engine mapgen\n"
+"speed, but this may harm game performance by interfering with other\n"
+"processes, especially in singleplayer and/or when running Lua code in\n"
+"'on_generated'. For many users the optimum setting may be '1'."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Profiler"
+msgid ""
+"Number of extra blocks that can be loaded by /clearobjects at once.\n"
+"This is a trade-off between sqlite transaction overhead and\n"
+"memory consumption (4096=100MB, as a rule of thumb)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Have the profiler instrument itself:\n"
-"* Instrument an empty function.\n"
-"This estimates the overhead, that instrumentation is adding (+1 function "
-"call).\n"
-"* Instrument the sampler being used to update the statistics."
+msgid "Online Content Repository"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Client and Server"
-msgstr ""
+msgid "Opaque liquids"
+msgstr "چچاٴير لݢڤ"
#: src/settings_translation_file.cpp
-msgid "Player name"
-msgstr ""
+msgid ""
+"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255."
+msgstr "Ú©Ù„Ý¢Ú¤Ù† (Ø§Ù„ÙØ§) بايڠ بلاکڠ Ùون لالاي⹠نيلاي انتارا 0 دان 225."
#: src/settings_translation_file.cpp
msgid ""
-"Name of the player.\n"
-"When running a server, clients connecting with this name are admins.\n"
-"When starting from the main menu, this is overridden."
-msgstr ""
+"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255."
+msgstr "Ú©Ù„Ý¢Ú¤Ù† (Ø§Ù„ÙØ§) بايڠ بلاکڠ Ùون برباليق⹠نيلاي انتارا 0 دان 225."
#: src/settings_translation_file.cpp
-msgid "Language"
+msgid ""
+"Open the pause menu when the window's focus is lost. Does not pause if a "
+"formspec is\n"
+"open."
msgstr ""
+"بوک مينو جيدا اڤابيلا Ùوکوس تتيڠکڤ هيلڠ.\n"
+"تيدق جيدا جيک Ùورمسڤيک دبوک."
#: src/settings_translation_file.cpp
msgid ""
-"Set the language. Leave empty to use the system language.\n"
-"A restart is required after changing this."
+"Path of the fallback font.\n"
+"If “freetype†setting is enabled: Must be a TrueType font.\n"
+"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
+"This font will be used for certain languages or if the default font is "
+"unavailable."
msgstr ""
+"لالوان Ùون برباليق.\n"
+"جيک تتڤن “freetype†دبوليهکن: اي مستيله Ùون TrueType.\n"
+"جيک تتڤن “freetype†دلومڤوهکن: اي مستيله Ùون ڤتا بيت اتاو Ûيکتور XML.\n"
+"Ùون اين اکن دݢوناکن باݢي سستڠه بهاس اتاو جيک Ùون لالاي تيدق ترسديا."
#: src/settings_translation_file.cpp
-msgid "Debug log level"
+msgid ""
+"Path to save screenshots at. Can be an absolute or relative path.\n"
+"The folder will be created if it doesn't already exist."
msgstr ""
+"لالوان اونتوق سيمڤن تڠکڤن لاير. وليه جادي لالوان مطلق اتاو ريلاتيÙ.\n"
+"Ùولدر اکن دچيڤتا سکيراڽ اي بلوم وجود."
#: src/settings_translation_file.cpp
msgid ""
-"Level of logging to be written to debug.txt:\n"
-"- <nothing> (no logging)\n"
-"- none (messages with no level)\n"
-"- error\n"
-"- warning\n"
-"- action\n"
-"- info\n"
-"- verbose"
+"Path to shader directory. If no path is defined, default location will be "
+"used."
msgstr ""
+"لالوان کديريکتوري ڤمبايڠ. جيک تيادا لالوان دتعريÙکن⹠لوکاسي لالاي اکن "
+"دݢوناکن."
#: src/settings_translation_file.cpp
-msgid "Debug log file size threshold"
-msgstr ""
+msgid "Path to texture directory. All textures are first searched from here."
+msgstr "لالوان کديريکتوري تيکستور. سموا تيکستور دچاري دري سيني داهولو."
#: src/settings_translation_file.cpp
msgid ""
-"If the file size of debug.txt exceeds the number of megabytes specified in\n"
-"this setting when it is opened, the file is moved to debug.txt.1,\n"
-"deleting an older debug.txt.1 if it exists.\n"
-"debug.txt is only moved if this setting is positive."
+"Path to the default font.\n"
+"If “freetype†setting is enabled: Must be a TrueType font.\n"
+"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
+"The fallback font will be used if the font cannot be loaded."
msgstr ""
+"لالوان Ùون لالاي.\n"
+"جيک تتڤن “freetype†دبوليهکن: اي مستيله Ùون TrueType.\n"
+"جيک تتڤن “freetype†دلومڤوهکن: اي مستيله Ùون ڤتا بيت اتاو Ûيکتور XML.\n"
+"Ùون برباليق اکن دݢوناکن سکيراڽ Ùون اين تيدق داڤت دمواتکن."
#: src/settings_translation_file.cpp
-msgid "Chat log level"
+msgid ""
+"Path to the monospace font.\n"
+"If “freetype†setting is enabled: Must be a TrueType font.\n"
+"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
+"This font is used for e.g. the console and profiler screen."
msgstr ""
+"لالوان Ùون monospace.\n"
+"جيک تتڤن “freetype†دبوليهکن: اي مستيله Ùون TrueType.\n"
+"جيک تتڤن “freetype†دلومڤوهکن: اي مستيله Ùون ڤتا بيت اتاو Ûيکتور XML.\n"
+"Ùون اين دݢوناکن اونتوق عنصور سڤرتي کونسول دان سکرين ڤمبوکه."
#: src/settings_translation_file.cpp
-msgid "Minimal level of logging to be written to chat."
-msgstr ""
+msgid "Pause on lost window focus"
+msgstr "جيدا کتيک هيلڠ Ùوکوس تتيڠکڤ"
#: src/settings_translation_file.cpp
-msgid "IPv6"
+msgid "Per-player limit of queued blocks load from disk"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enable IPv6 support (for both client and server).\n"
-"Required for IPv6 connections to work at all."
+msgid "Per-player limit of queued blocks to generate"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "cURL timeout"
-msgstr ""
+msgid "Physics"
+msgstr "ايکوت Ùيزيک"
#: src/settings_translation_file.cpp
-msgid ""
-"Default timeout for cURL, stated in milliseconds.\n"
-"Only has an effect if compiled with cURL."
-msgstr ""
+msgid "Pitch move key"
+msgstr "ککونچي ڤرݢرقن ڤيچ"
#: src/settings_translation_file.cpp
-msgid "cURL parallel limit"
-msgstr ""
+msgid "Pitch move mode"
+msgstr "مود ڤرݢرقن ڤيچ"
#: src/settings_translation_file.cpp
-msgid ""
-"Limits number of parallel HTTP requests. Affects:\n"
-"- Media fetch if server uses remote_media setting.\n"
-"- Serverlist download and server announcement.\n"
-"- Downloads performed by main menu (e.g. mod manager).\n"
-"Only has an effect if compiled with cURL."
-msgstr ""
+#, fuzzy
+msgid "Place key"
+msgstr "ککونچي تربڠ"
#: src/settings_translation_file.cpp
-msgid "cURL file download timeout"
-msgstr ""
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "سلڠ ڤڠاولڠن کليک کانن"
#: src/settings_translation_file.cpp
-msgid "Maximum time in ms a file download (e.g. a mod download) may take."
+msgid ""
+"Player is able to fly without being affected by gravity.\n"
+"This requires the \"fly\" privilege on the server."
msgstr ""
+"ڤماٴين بوليه تربڠ تنڤ ترکسن دڠن ݢراÛيتي.\n"
+"اين ممرلوکن کأيستيميواٴن \"تربڠ\" دالم ڤلاين ترسبوت."
#: src/settings_translation_file.cpp
-msgid "High-precision FPU"
+msgid "Player name"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles."
-msgstr ""
+msgid "Player transfer distance"
+msgstr "جارق وميندهن ڤماٴين"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
+msgid "Player versus player"
+msgstr "ڤماٴين لاون ڤماٴين"
#: src/settings_translation_file.cpp
msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Main menu script"
+"Port to connect to (UDP).\n"
+"Note that the port field in the main menu overrides this setting."
msgstr ""
+"ڤورت اونتوق مڽمبوڠ (UDP).\n"
+"امبيل ڤرهاتيان بهاوا ميدن ڤورت دالم مينو اوتام مڠاتسي تتڤن اين."
#: src/settings_translation_file.cpp
-msgid "Replaces the default main menu with a custom one."
+msgid ""
+"Prevent digging and placing from repeating when holding the mouse buttons.\n"
+"Enable this when you dig or place too often by accident."
msgstr ""
+"منچݢه ݢالي دان ڤلتقن درڤد براولڠ کتيک تروس منکن بوتڠ تتيکوس.\n"
+"بوليهکن تتڤن اين اڤابيلا اندا ݢالي اتاو لتق سچارا تيدق سڠاج ترلالو کرڤ."
#: src/settings_translation_file.cpp
-msgid "Engine profiling data print interval"
+msgid "Prevent mods from doing insecure things like running shell commands."
msgstr ""
#: src/settings_translation_file.cpp
@@ -5491,465 +5635,574 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen name"
+msgid "Privileges that players with basic_privs can grant"
msgstr ""
+"کأيستيميواٴن٢ يڠ بوليه دبريکن اوليه ڤماين يڠ ممڤوڽاٴي کأيستيميواٴن "
+"basic_privs"
#: src/settings_translation_file.cpp
-msgid ""
-"Name of map generator to be used when creating a new world.\n"
-"Creating a world in the main menu will override this.\n"
-"Current mapgens in a highly unstable state:\n"
-"- The optional floatlands of v7 (disabled by default)."
+msgid "Profiler"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Water level"
-msgstr ""
+msgid "Profiler toggle key"
+msgstr "ککونچي توݢول ڤمبوکه"
#: src/settings_translation_file.cpp
-msgid "Water surface level of the world."
+msgid "Profiling"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Max block generate distance"
-msgstr ""
+msgid "Prometheus listener address"
+msgstr "علامت ڤندڠر Prometheus"
#: src/settings_translation_file.cpp
msgid ""
-"From how far blocks are generated for clients, stated in mapblocks (16 "
-"nodes)."
+"Prometheus listener address.\n"
+"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n"
+"enable metrics listener for Prometheus on that address.\n"
+"Metrics can be fetch on http://127.0.0.1:30000/metrics"
msgstr ""
+"علامت ڤندڠر Prometheus.\n"
+"جک minetest دکومڤيل دڠن تتڤن ENABLE_PROMETHEUS دبوليهکن,\n"
+"ممبوليهکن ڤندڠر ميتريک اونتوق Prometheus ڤد علامت برکناٴن.\n"
+"ميتريک بوليه دأمبيل د http://127.0.0.1:30000/metrics"
#: src/settings_translation_file.cpp
-msgid "Map generation limit"
+msgid "Proportion of large caves that contain liquid."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n"
-"Only mapchunks completely within the mapgen limit are generated.\n"
-"Value is stored per-world."
+"Radius of cloud area stated in number of 64 node cloud squares.\n"
+"Values larger than 26 will start to produce sharp cutoffs at cloud area "
+"corners."
msgstr ""
+"ججاري کلواسن اون دڽاتاکن دالم جومله 64 نود ڤيتق اون.\n"
+"نيلاي لبيه دري 26 اکن مولا مڠهاسيلکن ڤموتوڠن تاجم دسودوت کاوسن اون."
#: src/settings_translation_file.cpp
-msgid ""
-"Global map generation attributes.\n"
-"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
-"and junglegrass, in all other mapgens this flag controls all decorations."
+msgid "Raises terrain to make valleys around the rivers."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Biome API temperature and humidity noise parameters"
-msgstr ""
+msgid "Random input"
+msgstr "اينڤوت راوق"
#: src/settings_translation_file.cpp
-msgid "Heat noise"
-msgstr ""
+msgid "Range select key"
+msgstr "ککونچي جارق ڤميليهن"
#: src/settings_translation_file.cpp
-msgid "Temperature variation for biomes."
-msgstr ""
+msgid "Recent Chat Messages"
+msgstr "ميسيج سيمبڠ ترکيني"
#: src/settings_translation_file.cpp
-msgid "Heat blend noise"
-msgstr ""
+msgid "Regular font path"
+msgstr "لالوان Ùون بياسا"
#: src/settings_translation_file.cpp
-msgid "Small-scale temperature variation for blending biomes on borders."
-msgstr ""
+msgid "Remote media"
+msgstr "ميديا جارق جاٴوه"
#: src/settings_translation_file.cpp
-msgid "Humidity noise"
-msgstr ""
+msgid "Remote port"
+msgstr "ڤورت جارق جاٴوه"
#: src/settings_translation_file.cpp
-msgid "Humidity variation for biomes."
+msgid ""
+"Remove color codes from incoming chat messages\n"
+"Use this to stop players from being able to use color in their messages"
msgstr ""
+"بواڠ کود ورنا درڤد ميسيج سيمبڠ منداتڠ\n"
+"ݢوناکن اين اونتوق هنتيکن ڤماٴين درڤد مڠݢوناکن ورنا دالم ميسيج مريک"
#: src/settings_translation_file.cpp
-msgid "Humidity blend noise"
+msgid "Replaces the default main menu with a custom one."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Small-scale humidity variation for blending biomes on borders."
+msgid "Report path"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen V5"
+msgid ""
+"Restricts the access of certain client-side functions on servers.\n"
+"Combine the byteflags below to restrict client-side features, or set to 0\n"
+"for no restrictions:\n"
+"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n"
+"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n"
+"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n"
+"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n"
+"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n"
+"csm_restriction_noderange)\n"
+"READ_PLAYERINFO: 32 (disable get_player_names call client-side)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen V5 specific flags"
+msgid "Ridge mountain spread noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Map generation attributes specific to Mapgen v5."
+msgid "Ridge noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cave width"
+msgid "Ridge underwater noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Controls width of tunnels, a smaller value creates wider tunnels.\n"
-"Value >= 10.0 completely disables generation of tunnels and avoids the\n"
-"intensive noise calculations."
+msgid "Ridged mountain size noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Large cave depth"
-msgstr ""
+msgid "Right key"
+msgstr "ککومچي ککانن"
#: src/settings_translation_file.cpp
-msgid "Y of upper limit of large caves."
+msgid "River channel depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Small cave minimum number"
+msgid "River channel width"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimum limit of random number of small caves per mapchunk."
+msgid "River depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Small cave maximum number"
+msgid "River noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum limit of random number of small caves per mapchunk."
+msgid "River size"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Large cave minimum number"
+msgid "River valley width"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Minimum limit of random number of large caves per mapchunk."
-msgstr ""
+msgid "Rollback recording"
+msgstr "راکمن ݢولوڠ باليق"
#: src/settings_translation_file.cpp
-msgid "Large cave maximum number"
+msgid "Rolling hill size noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum limit of random number of large caves per mapchunk."
+msgid "Rolling hills spread noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Large cave proportion flooded"
-msgstr ""
+msgid "Round minimap"
+msgstr "ڤتا ميني بولت"
#: src/settings_translation_file.cpp
-msgid "Proportion of large caves that contain liquid."
-msgstr ""
+msgid "Safe digging and placing"
+msgstr "ڤڠݢالين دان ڤلتقن سلامت"
#: src/settings_translation_file.cpp
-msgid "Cavern limit"
+msgid "Sandy beaches occur when np_beach exceeds this value."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of cavern upper limit."
-msgstr ""
+msgid "Save the map received by the client on disk."
+msgstr "سيمڤن ڤتا يڠ دتريما اوليه کليئن دالم چکرا."
#: src/settings_translation_file.cpp
-msgid "Cavern taper"
-msgstr ""
+msgid "Save window size automatically when modified."
+msgstr "سيمڤن سايز تتيڠکڤ سچارا أوتوماتيک کتيک داوبه."
#: src/settings_translation_file.cpp
-msgid "Y-distance over which caverns expand to full size."
-msgstr ""
+msgid "Saving map received from server"
+msgstr "سيمڤن ڤتا دتريما دري ڤلاين ڤرماٴينن"
#: src/settings_translation_file.cpp
-msgid "Cavern threshold"
+msgid ""
+"Scale GUI by a user specified value.\n"
+"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n"
+"This will smooth over some of the rough edges, and blend\n"
+"pixels when scaling down, at the cost of blurring some\n"
+"edge pixels when images are scaled by non-integer sizes."
msgstr ""
+"مڽسوايکن GUI دڠن نيلاي دتنتوکن اوليه ڤڠݢونا.\n"
+"ݢوناکن ڤناڤيس انتيألياس جيرن تردکت اونتوق مڽسوايکن GUI.\n"
+"اين ممبوليهکن سيسي تاجم دلمبوتکن⹠دان سباتيکن ڤيکسل اڤابيلا\n"
+"مڽسوايتورونکن⹠نامون اي اکن مڠابورکن سستڠه ڤيکسل دسيسي\n"
+"اڤابيلا ايميج دسسوايکن دڠن سايز بوکن اينتيݢر."
#: src/settings_translation_file.cpp
-msgid "Defines full size of caverns, smaller values create larger caverns."
-msgstr ""
+msgid "Screen height"
+msgstr "تيڠݢي سکرين"
#: src/settings_translation_file.cpp
-msgid "Dungeon minimum Y"
-msgstr ""
+msgid "Screen width"
+msgstr "ليبر سکرين"
#: src/settings_translation_file.cpp
-msgid "Lower Y limit of dungeons."
-msgstr ""
+msgid "Screenshot folder"
+msgstr "Ùولدر تڠکڤ لاير"
#: src/settings_translation_file.cpp
-msgid "Dungeon maximum Y"
-msgstr ""
+msgid "Screenshot format"
+msgstr "Ùورمت تڠکڤ لاير"
#: src/settings_translation_file.cpp
-msgid "Upper Y limit of dungeons."
-msgstr ""
+msgid "Screenshot quality"
+msgstr "کواليتي تڠکڤ لاير"
#: src/settings_translation_file.cpp
-msgid "Noises"
+msgid ""
+"Screenshot quality. Only used for JPEG format.\n"
+"1 means worst quality; 100 means best quality.\n"
+"Use 0 for default quality."
msgstr ""
+"کواليتي تڠکڤ لاير. هاڽ دݢوناکن اونتوق Ùورمت JPEG.\n"
+"1 مقصودڽ ڤاليڠ تروقâ 100 مقصودڽ ڤاليڠ باݢوس.\n"
+"ݢوناکن 0 اونتوق کواليتي لالاي."
#: src/settings_translation_file.cpp
-msgid "Filler depth noise"
+msgid "Seabed noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Variation of biome filler depth."
+msgid "Second of 4 2D noises that together define hill/mountain range height."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Factor noise"
+msgid "Second of two 3D noises that together define tunnels."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Variation of terrain vertical scale.\n"
-"When noise is < -0.55 terrain is near-flat."
+msgid "Security"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Height noise"
+msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of average terrain surface."
-msgstr ""
+msgid "Selection box border color (R,G,B)."
+msgstr "ورنا سمڤادن کوتق ڤميليهن (R,G,B)."
#: src/settings_translation_file.cpp
-msgid "Cave1 noise"
-msgstr ""
+msgid "Selection box color"
+msgstr "ورنا کوتق ڤميليهن"
#: src/settings_translation_file.cpp
-msgid "First of two 3D noises that together define tunnels."
-msgstr ""
+msgid "Selection box width"
+msgstr "ليبر کوتق ڤميليهن"
#: src/settings_translation_file.cpp
-msgid "Cave2 noise"
+msgid ""
+"Selects one of 18 fractal types.\n"
+"1 = 4D \"Roundy\" Mandelbrot set.\n"
+"2 = 4D \"Roundy\" Julia set.\n"
+"3 = 4D \"Squarry\" Mandelbrot set.\n"
+"4 = 4D \"Squarry\" Julia set.\n"
+"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n"
+"6 = 4D \"Mandy Cousin\" Julia set.\n"
+"7 = 4D \"Variation\" Mandelbrot set.\n"
+"8 = 4D \"Variation\" Julia set.\n"
+"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n"
+"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n"
+"11 = 3D \"Christmas Tree\" Mandelbrot set.\n"
+"12 = 3D \"Christmas Tree\" Julia set.\n"
+"13 = 3D \"Mandelbulb\" Mandelbrot set.\n"
+"14 = 3D \"Mandelbulb\" Julia set.\n"
+"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n"
+"16 = 3D \"Cosine Mandelbulb\" Julia set.\n"
+"17 = 4D \"Mandelbulb\" Mandelbrot set.\n"
+"18 = 4D \"Mandelbulb\" Julia set."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Second of two 3D noises that together define tunnels."
-msgstr ""
+msgid "Server / Singleplayer"
+msgstr "ڤلاين ڤرماٴينن \\ ڤماٴين ڤرسأورڠن"
#: src/settings_translation_file.cpp
-msgid "Cavern noise"
-msgstr ""
+msgid "Server URL"
+msgstr "URL ڤلاين"
#: src/settings_translation_file.cpp
-msgid "3D noise defining giant caverns."
-msgstr ""
+msgid "Server address"
+msgstr "علامت ڤلاين"
#: src/settings_translation_file.cpp
-msgid "Ground noise"
-msgstr ""
+msgid "Server description"
+msgstr "ڤريهل ڤلاين ڤرماٴينن"
#: src/settings_translation_file.cpp
-msgid "3D noise defining terrain."
-msgstr ""
+msgid "Server name"
+msgstr "نام ڤلاين ڤرماٴينن"
#: src/settings_translation_file.cpp
-msgid "Dungeon noise"
-msgstr ""
+msgid "Server port"
+msgstr "ڤورت ڤلاين"
#: src/settings_translation_file.cpp
-msgid "3D noise that determines number of dungeons per mapchunk."
+msgid "Server side occlusion culling"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen V6"
-msgstr ""
+msgid "Serverlist URL"
+msgstr "URL سناراي ڤلاين"
#: src/settings_translation_file.cpp
-msgid "Mapgen V6 specific flags"
-msgstr ""
+msgid "Serverlist file"
+msgstr "ÙØ§Ù´ÙŠÙ„ سناراي ڤلاين"
#: src/settings_translation_file.cpp
msgid ""
-"Map generation attributes specific to Mapgen v6.\n"
-"The 'snowbiomes' flag enables the new 5 biome system.\n"
-"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n"
-"the 'jungles' flag is ignored."
+"Set the language. Leave empty to use the system language.\n"
+"A restart is required after changing this."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Desert noise threshold"
-msgstr ""
+msgid "Set the maximum character length of a chat message sent by clients."
+msgstr "تتڤکن ڤنجڠ اکسارا مکسيموم ميسيج سيمبڠ دهنتر اوليه کليئن."
#: src/settings_translation_file.cpp
msgid ""
-"Deserts occur when np_biome exceeds this value.\n"
-"When the 'snowbiomes' flag is enabled, this is ignored."
+"Set to true to enable waving leaves.\n"
+"Requires shaders to be enabled."
msgstr ""
+"تتڤکن کڤد \"true\" اونتوق ممبوليهکن داٴون برݢويڠ.\n"
+"ممرلوکن ڤمبايڠ اونتوق دبوليهکن."
#: src/settings_translation_file.cpp
-msgid "Beach noise threshold"
+msgid ""
+"Set to true to enable waving liquids (like water).\n"
+"Requires shaders to be enabled."
msgstr ""
+"تتڤکن کڤد \"true\" اونتوق ممبوليهکن چچاٴير برݢلورا (ماچم اٴير).\n"
+"ممرلوکن ڤمبايڠ اونتوق دبوليهکن."
#: src/settings_translation_file.cpp
-msgid "Sandy beaches occur when np_beach exceeds this value."
+msgid ""
+"Set to true to enable waving plants.\n"
+"Requires shaders to be enabled."
msgstr ""
+"تتڤکن کڤد \"true\" اونتوق ممبوليهکن تومبوهن برݢويڠ.\n"
+"ممرلوکن ڤمبايڠ اونتوق دبوليهکن."
#: src/settings_translation_file.cpp
-msgid "Terrain base noise"
-msgstr ""
+msgid "Shader path"
+msgstr "لالوان ڤمبايڠ"
#: src/settings_translation_file.cpp
-msgid "Y-level of lower terrain and seabed."
+msgid ""
+"Shaders allow advanced visual effects and may increase performance on some "
+"video\n"
+"cards.\n"
+"This only works with the OpenGL video backend."
msgstr ""
+"ڤمبايڠ ممبوليهکن کسن Ûيسوال مندالم دان بوليه منيڠکتکن\n"
+"ڤريستاسي اونتوق سستڠه کد Ûيديو.\n"
+"نامون اي هاڽ برÙوڠسي دڠن ڤمبهاݢين بلاکڠ Ûيديو OpenGL."
#: src/settings_translation_file.cpp
-msgid "Terrain higher noise"
+msgid ""
+"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
+"drawn."
msgstr ""
+"Ø§ÙˆÙØ³ÙŠØª بايڠ Ùون لالاي (دالم اونيت ڤيکسل). جيک 0⹠ماک بايڠ تيدق اکن دلوکيس."
#: src/settings_translation_file.cpp
-msgid "Y-level of higher terrain that creates cliffs."
+msgid ""
+"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
+"be drawn."
msgstr ""
+"Ø§ÙˆÙØ³ÙŠØª بايڠ Ùون برباليق (دالم اونيت ڤيکسل). جيک 0⹠ماک بايڠ تيدق اکن دلوکيس."
#: src/settings_translation_file.cpp
-msgid "Steepness noise"
-msgstr ""
+msgid "Shape of the minimap. Enabled = round, disabled = square."
+msgstr "بنتوق ڤتا ميني. دبوليهکن = بولت⹠دلومڤوهکن = ڤيتق."
#: src/settings_translation_file.cpp
-msgid "Varies steepness of cliffs."
-msgstr ""
+msgid "Show debug info"
+msgstr "تونجوقکن معلومت ڽهڤڤيجت"
#: src/settings_translation_file.cpp
-msgid "Height select noise"
-msgstr ""
+msgid "Show entity selection boxes"
+msgstr "تونجوقکن کوتق ڤميليهن اينتيتي"
#: src/settings_translation_file.cpp
-msgid "Defines distribution of higher terrain."
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mud noise"
-msgstr ""
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Ùون تبل سچارا لالايڽ"
#: src/settings_translation_file.cpp
-msgid "Varies depth of biome surface nodes."
-msgstr ""
+msgid "Shutdown message"
+msgstr "ميسيج ڤنوتوڤن"
#: src/settings_translation_file.cpp
-msgid "Beach noise"
+msgid ""
+"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n"
+"WARNING!: There is no benefit, and there are several dangers, in\n"
+"increasing this value above 5.\n"
+"Reducing this value increases cave and dungeon density.\n"
+"Altering this value is for special usage, leaving it unchanged is\n"
+"recommended."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines areas with sandy beaches."
+msgid ""
+"Size of the MapBlock cache of the mesh generator. Increasing this will\n"
+"increase the cache hit %, reducing the data being copied from the main\n"
+"thread, thus reducing jitter."
msgstr ""
+"ساٴيز کيش بلوکڤتا اونتوق ڤنجان ججاريڠ. مناٴيقکن نيلاي اين\n"
+"اکن منيڠکتکن جومله % هيت کيش⹠مڠورڠکن داتا يڠ ڤرلو دسالين\n"
+"درڤد جالور اوتام⹠لالو مڠورڠکن کترن."
#: src/settings_translation_file.cpp
-msgid "Biome noise"
+msgid "Slice w"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Cave noise"
+msgid "Slope and fill work together to modify the heights."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Variation of number of caves."
+msgid "Small cave maximum number"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Trees noise"
+msgid "Small cave minimum number"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines tree areas and tree density."
+msgid "Small-scale humidity variation for blending biomes on borders."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Apple trees noise"
+msgid "Small-scale temperature variation for blending biomes on borders."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines areas where trees have apples."
-msgstr ""
+msgid "Smooth lighting"
+msgstr "ڤنچهاياٴن لمبوت"
#: src/settings_translation_file.cpp
-msgid "Mapgen V7"
+msgid ""
+"Smooths camera when looking around. Also called look or mouse smoothing.\n"
+"Useful for recording videos."
msgstr ""
+"ملمبوتکن کاميرا اڤابيلا مليهت سکليليڠ. جوݢ دکنلي سباݢاي ڤلمبوتن ڤڠليهتن اتاو "
+"ڤلمبوتن تتيکوس.\n"
+"برݢونا اونتوق مراکم Ûيديو."
#: src/settings_translation_file.cpp
-msgid "Mapgen V7 specific flags"
+msgid "Smooths rotation of camera in cinematic mode. 0 to disable."
msgstr ""
+"ملمبوتکن ڤموترن کاميرا دالم مود سينماتيک. سيت سباݢاي 0 اونتوق ملومڤوهکنڽ."
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen v7.\n"
-"'ridges': Rivers.\n"
-"'floatlands': Floating land masses in the atmosphere.\n"
-"'caverns': Giant caves deep underground."
-msgstr ""
+msgid "Smooths rotation of camera. 0 to disable."
+msgstr "ملمبوتکن ڤموترن کاميرا. سيت سباݢاي 0 اونتوق ملومڤوهکنڽ."
#: src/settings_translation_file.cpp
-msgid "Mountain zero level"
-msgstr ""
+msgid "Sneak key"
+msgstr "ککونچي سلينڤ"
#: src/settings_translation_file.cpp
-msgid ""
-"Y of mountain density gradient zero level. Used to shift mountains "
-"vertically."
+msgid "Sneaking speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Floatland minimum Y"
+msgid "Sneaking speed, in nodes per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Lower Y limit of floatlands."
-msgstr ""
+msgid "Sound"
+msgstr "بوڽي"
#: src/settings_translation_file.cpp
-msgid "Floatland maximum Y"
-msgstr ""
+msgid "Special key"
+msgstr "ککونچي ايستيميوا"
#: src/settings_translation_file.cpp
-msgid "Upper Y limit of floatlands."
+msgid "Special key for climbing/descending"
+msgstr "ککونچي اونتوق ممنجت\\منورون"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Specifies URL from which client fetches media instead of using UDP.\n"
+"$filename should be accessible from $remote_media$filename via cURL\n"
+"(obviously, remote_media should end with a slash).\n"
+"Files that are not present will be fetched the usual way."
msgstr ""
+"منتڤکن URL دري مان کليئن مڠمبيل ميديا⹠مڠݢنتيکن UDP.\n"
+"$filename مستيله بوليه دأکسيس درڤد $remote_media$filename ملالوٴي\n"
+"cURL (سوده تنتو⹠remote_media مستي براخير دڠن تندا چوندوڠ).\n"
+"ÙØ§Ù´ÙŠÙ„ ÙŠÚ  تيدق وجود اکن دأمبيل دڠن چارا بياسا."
#: src/settings_translation_file.cpp
-msgid "Floatland tapering distance"
+msgid ""
+"Specifies the default stack size of nodes, items and tools.\n"
+"Note that mods or games may explicitly set a stack for certain (or all) "
+"items."
msgstr ""
+"منتڤکن ساٴيز تيندنن لالاي باݢي نود⹠ايتم دان التن.\n"
+"امبيل ڤرهاتيان بهاوا مودس اتاو ڤرماٴينن بوليه تتڤکن سچارا خصوص تيندنن اونتوق "
+"سستڠه (اتاو سموا) ايتم."
#: src/settings_translation_file.cpp
msgid ""
-"Y-distance over which floatlands taper from full density to nothing.\n"
-"Tapering starts at this distance from the Y limit.\n"
-"For a solid floatland layer, this controls the height of hills/mountains.\n"
-"Must be less than or equal to half the distance between the Y limits."
+"Spread of light curve boost range.\n"
+"Controls the width of the range to be boosted.\n"
+"Standard deviation of the light curve boost Gaussian."
msgstr ""
+"سيبر جولت تولقن لڠکوڠ چهاي.\n"
+"مڠاول ليبر جولت اونتوق دتولق.\n"
+"سيسيهن ڤياواي Gauss (ݢاٴوس) تولقن لڠکوڠ چهاي."
#: src/settings_translation_file.cpp
-msgid "Floatland taper exponent"
+msgid "Static spawnpoint"
+msgstr "تيتيق لاهير ستاتيک"
+
+#: src/settings_translation_file.cpp
+msgid "Steepness noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
-"Value = 1.0 creates a uniform, linear tapering.\n"
-"Values > 1.0 create a smooth tapering suitable for the default separated\n"
-"floatlands.\n"
-"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
-"flatter lowlands, suitable for a solid floatland layer."
+msgid "Step mountain size noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Floatland density"
+msgid "Step mountain spread noise"
msgstr ""
#: src/settings_translation_file.cpp
-#, c-format
+msgid "Strength of 3D mode parallax."
+msgstr "ککواتن ڤارالکس مود 3D."
+
+#: src/settings_translation_file.cpp
msgid ""
-"Adjusts the density of the floatland layer.\n"
-"Increase value to increase density. Can be positive or negative.\n"
-"Value = 0.0: 50% of volume is floatland.\n"
-"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
-"to be sure) creates a solid floatland layer."
+"Strength of light curve boost.\n"
+"The 3 'boost' parameters define a range of the light\n"
+"curve that is boosted in brightness."
msgstr ""
+"ککواتن تولقن چهاي.\n"
+"تيݢ ڤاراميتر 'تولقن' منتعريÙÚ©Ù† جولت Ù„Ú Ú©ÙˆÚ \n"
+"چهاي يڠ دتولق دالم ڤنچهاياٴن."
#: src/settings_translation_file.cpp
-msgid "Floatland water level"
-msgstr ""
+msgid "Strict protocol checking"
+msgstr "ڤمريقساٴن ڤروتوکول کتت"
+
+#: src/settings_translation_file.cpp
+msgid "Strip color codes"
+msgstr "بواڠ کود ورنا"
#: src/settings_translation_file.cpp
msgid ""
@@ -5966,131 +6219,222 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain alternative noise"
+msgid "Synchronous SQLite"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain persistence noise"
+msgid "Temperature variation for biomes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Varies roughness of terrain.\n"
-"Defines the 'persistence' value for terrain_base and terrain_alt noises."
+msgid "Terrain alternative noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines distribution of higher terrain and steepness of cliffs."
+msgid "Terrain base noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mountain height noise"
+msgid "Terrain height"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Variation of maximum mountain height (in nodes)."
+msgid "Terrain higher noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ridge underwater noise"
+msgid "Terrain noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines large-scale river channel structure."
+msgid ""
+"Terrain noise threshold for hills.\n"
+"Controls proportion of world area covered by hills.\n"
+"Adjust towards 0.0 for a larger proportion."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mountain noise"
+msgid ""
+"Terrain noise threshold for lakes.\n"
+"Controls proportion of world area covered by lakes.\n"
+"Adjust towards 0.0 for a larger proportion."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"3D noise defining mountain structure and height.\n"
-"Also defines structure of floatland mountain terrain."
+msgid "Terrain persistence noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ridge noise"
-msgstr ""
+msgid "Texture path"
+msgstr "لالوان تيکستور"
#: src/settings_translation_file.cpp
-msgid "3D noise defining structure of river canyon walls."
+msgid ""
+"Textures on a node may be aligned either to the node or to the world.\n"
+"The former mode suits better things like machines, furniture, etc., while\n"
+"the latter makes stairs and microblocks fit surroundings better.\n"
+"However, as this possibility is new, thus may not be used by older servers,\n"
+"this option allows enforcing it for certain node types. Note though that\n"
+"that is considered EXPERIMENTAL and may not work properly."
msgstr ""
+"تيکستور ڤد نود بوليه دجاجرکن سام اد کڤد نود اتاو دنيا.\n"
+"مود ڤرتام لبيه سسواي اونتوق بندا ماچم ميسين⹠ڤرابوت⹠دان لاٴين٢⹠ماناکال\n"
+"مود کدوا ممبواتکن تڠݢ دان بلوک ميکرو لبيه سسواي دڠن ڤرسکيترنڽ.\n"
+"نامون بݢيتو⹠کران اين چيري بارو⹠ماک اي موڠکين تيدق دݢوناکن دڤلاين لامâ¹\n"
+"ڤيليهن اين ممبوليهکن ڤمقساٴن اي اونتوق جنيس نود ترتنتو. امبيل ڤرهاتين\n"
+"بهاوا اياڽ داڠݢڤ دالم اوجيکاجي دان موڠکين تيدق برÙوڠسي دڠن بتول."
#: src/settings_translation_file.cpp
-msgid "Floatland noise"
+msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "The deadzone of the joystick"
+msgstr "ڤڠنل ڤستي کايو بديق يڠ دݢوناکن"
+
+#: src/settings_translation_file.cpp
msgid ""
-"3D noise defining structure of floatlands.\n"
-"If altered from the default, the noise 'scale' (0.7 by default) may need\n"
-"to be adjusted, as floatland tapering functions best when this noise has\n"
-"a value range of approximately -2.0 to 2.0."
+"The default format in which profiles are being saved,\n"
+"when calling `/profiler save [format]` without format."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Carpathian"
+msgid "The depth of dirt or other biome filler node."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Carpathian specific flags"
+msgid ""
+"The file path relative to your worldpath in which profiles will be saved to."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Map generation attributes specific to Mapgen Carpathian."
-msgstr ""
+msgid "The identifier of the joystick to use"
+msgstr "ڤڠنل ڤستي کايو بديق يڠ دݢوناکن"
#: src/settings_translation_file.cpp
-msgid "Base ground level"
-msgstr ""
+msgid "The length in pixels it takes for touch screen interaction to start."
+msgstr "ڤنجڠ دالم ڤيکسيل اونتوق ممولاکن اينتراکسي سکرين سنتوه."
#: src/settings_translation_file.cpp
-msgid "Defines the base ground level."
+msgid ""
+"The maximum height of the surface of waving liquids.\n"
+"4.0 = Wave height is two nodes.\n"
+"0.0 = Wave doesn't move at all.\n"
+"Default is 1.0 (1/2 node).\n"
+"Requires waving liquids to be enabled."
msgstr ""
+"تيڠݢي مکسيموم ڤرموکاٴن چچاٴير برݢلورا.\n"
+"4.0 = تيڠݢي ݢلورا اياله دوا نود.\n"
+"0.0 = ݢلورا تيدق برݢرق لڠسوڠ.\n"
+"نيلاي اصلڽ 1.0 (1/2 نود).\n"
+"ممرلوکن تتڤن چچاٴير برݢلورا دبوليهکن."
#: src/settings_translation_file.cpp
-msgid "River channel width"
-msgstr ""
+msgid "The network interface that the server listens on."
+msgstr "انتاراموک رڠکاين يڠ ڤلاين دڠر."
#: src/settings_translation_file.cpp
-msgid "Defines the width of the river channel."
+msgid ""
+"The privileges that new users automatically get.\n"
+"See /privs in game for a full list on your server and mod configuration."
msgstr ""
+"کأيستيميواٴن يڠ ڤڠݢونا٢ بارو داڤت سچارا اٴوتوماتيک.\n"
+"ليهت /privs دالم ڤرماٴينن اونتوق سناراي ڤنوه کأيستيميواٴن ڤلاين دان "
+"کونÙيݢوراسي مودس."
#: src/settings_translation_file.cpp
-msgid "River channel depth"
+msgid ""
+"The radius of the volume of blocks around every player that is subject to "
+"the\n"
+"active block stuff, stated in mapblocks (16 nodes).\n"
+"In active blocks objects are loaded and ABMs run.\n"
+"This is also the minimum range in which active objects (mobs) are "
+"maintained.\n"
+"This should be configured together with active_object_send_range_blocks."
msgstr ""
+"راديوس جيليد بلوک دسکيتر ستياڤ ڤماٴين يڠ ترتعلوق کڤد\n"
+"بندا بلوک اکتيÙ⹠دڽاتاکن دالم بلوکڤتا (16 نود).\n"
+"دالم بلوک اکتيÙ⹠اوبجيک دمواتکن دان ABM دجالنکن.\n"
+"اين جوݢ جارق مينيموم دمان اوبجيک اکتي٠(موب) دککلکن.\n"
+"اين ڤرلو دتتڤکن برسام نيلاي بلوک جارق ڤڠهنترن اوبجيک اکتي٠"
+"(active_object_send_range_blocks)."
#: src/settings_translation_file.cpp
-msgid "Defines the depth of the river channel."
+#, fuzzy
+msgid ""
+"The rendering back-end for Irrlicht.\n"
+"A restart is required after changing this.\n"
+"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
+"otherwise.\n"
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
+"ترجمهن بهاݢين بلاکڠ اونتوق Irrlicht.\n"
+"اندا ڤرلو ممولاکن سمولا سلڤس مڠاوبه تتڤن اين.\n"
+"نوت: دAndroid⹠ککلکن دڠن OGLES1 جيک تيدق ڤستي! اڤليکاسي موڠکين تيدق\n"
+"بوليه دمولاکن جيک مڠݢوناکن تتڤن لاٴين. دڤلاتÙورم لاٴين⹠OpenGL دشورکنâ¹\n"
+"دان اي اياله ساتو-ساتوڽ ڤماچو يڠ ممڤوڽاٴي سوکوڠن ڤمبايڠ کتيک اين."
#: src/settings_translation_file.cpp
-msgid "River valley width"
+msgid ""
+"The sensitivity of the joystick axes for moving the\n"
+"ingame view frustum around."
msgstr ""
+"کڤيکاٴن ڤکسي کايو بديق اونتوق مڠݢرقکن\n"
+"ÙØ±ÙˆØ³ØªÙˆÙ… ڤڠليهتن دالم ڤرماٴينن."
#: src/settings_translation_file.cpp
-msgid "Defines the width of the river valley."
+msgid ""
+"The strength (darkness) of node ambient-occlusion shading.\n"
+"Lower is darker, Higher is lighter. The valid range of values for this\n"
+"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n"
+"set to the nearest valid value."
msgstr ""
+"ککواتن (کݢلڤن) ڤمبايڠ نود اوکلوسي-سکيتر.\n"
+"لبيه رنده لبيه ݢلڤ⹠لبيه تيڠݢي لبيه تراڠ. نيلاي يڠ صح\n"
+"اونتوق تتڤن اين هاڽله دري 0.25 هيڠݢ 4.0. جيک نيلاي\n"
+"دلوار جولت⹠اي اکن دتتڤکن کڤد نيلاي صح يڠ تردکت."
#: src/settings_translation_file.cpp
-msgid "Hilliness1 noise"
+msgid ""
+"The time (in seconds) that the liquids queue may grow beyond processing\n"
+"capacity until an attempt is made to decrease its size by dumping old queue\n"
+"items. A value of 0 disables the functionality."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "First of 4 2D noises that together define hill/mountain range height."
+msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hilliness2 noise"
+msgid ""
+"The time in seconds it takes between repeated events\n"
+"when holding down a joystick button combination."
msgstr ""
+"سلڠ ماس دالم ساٴت⹠دامبيل انتارا ڤريستيوا يڠ براولڠن\n"
+"اڤابيلا منکن کومبيناسي بوتڠ کايو بديق."
#: src/settings_translation_file.cpp
-msgid "Second of 4 2D noises that together define hill/mountain range height."
+#, fuzzy
+msgid ""
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
+"جومله ماس دالم ساٴت دامبيل اونتوق ملاکوکن کليک کانن يڠ براولڠ اڤابيلا\n"
+"ڤماٴين منکن بوتڠ تتيکوس کانن تنڤ ملڤسکنڽ."
#: src/settings_translation_file.cpp
-msgid "Hilliness3 noise"
+msgid "The type of joystick"
+msgstr "جنيس کايو بديق"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n"
+"enabled. Also the vertical distance over which humidity drops by 10 if\n"
+"'altitude_dry' is enabled."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6098,488 +6442,688 @@ msgid "Third of 4 2D noises that together define hill/mountain range height."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hilliness4 noise"
+msgid ""
+"Time in seconds for item entity (dropped items) to live.\n"
+"Setting it to -1 disables the feature."
msgstr ""
+"ماس اونتوق اينتيتي ايتم (ايتم يڠ دجاتوهکن) تروس هيدوڤ دالم اونيت ساٴت.\n"
+"تتڤکن کڤد -1 اونتوق ملومڤوهکن ØµÙŠÙØª ترسبوت."
#: src/settings_translation_file.cpp
-msgid "Fourth of 4 2D noises that together define hill/mountain range height."
-msgstr ""
+msgid "Time of day when a new world is started, in millihours (0-23999)."
+msgstr "وقتو دالم هاري اڤابيلا دنيا بارو دمولاکن⹠دالم ميليجم (0-23999)."
#: src/settings_translation_file.cpp
-msgid "Rolling hills spread noise"
-msgstr ""
+msgid "Time send interval"
+msgstr "سلڠ ڤڠهنترن ماس"
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of rolling hills."
-msgstr ""
+msgid "Time speed"
+msgstr "کلاجوان ماس"
#: src/settings_translation_file.cpp
-msgid "Ridge mountain spread noise"
-msgstr ""
+msgid "Timeout for client to remove unused map data from memory."
+msgstr "حد ماس اونتوق کليئن ممبواڠ ڤتا يڠ تيدق دݢوناکن دري ميموري."
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
+msgid ""
+"To reduce lag, block transfers are slowed down when a player is building "
+"something.\n"
+"This determines how long they are slowed down after placing or removing a "
+"node."
msgstr ""
+"اونتوق مڠورڠکن لمبڤڽ تيندق بالس⹠ڤميندهن بلوک دڤرلاهنکن اڤابيلا ڤماٴين "
+"ممبينا سسوات.\n"
+"تتڤن اين منتڤکن براڤ لام اياڽ دڤرلاهنکن ستله ملتقکن اتاٴو مڠاليهکن سسبواه "
+"نود."
#: src/settings_translation_file.cpp
-msgid "Step mountain spread noise"
-msgstr ""
+msgid "Toggle camera mode key"
+msgstr "ککونچي توݢول مود کاميرا"
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of step mountain ranges."
-msgstr ""
+msgid "Tooltip delay"
+msgstr "لڠه تيڤ التن"
#: src/settings_translation_file.cpp
-msgid "Rolling hill size noise"
-msgstr ""
+msgid "Touch screen threshold"
+msgstr "نيلاي امبڠ سکرين سنتوه"
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of rolling hills."
+msgid "Trees noise"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Ridged mountain size noise"
-msgstr ""
+msgid "Trilinear filtering"
+msgstr "ڤناڤيسن تريلينيار"
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of ridged mountains."
+msgid ""
+"True = 256\n"
+"False = 128\n"
+"Usable to make minimap smoother on slower machines."
msgstr ""
+"True = 256\n"
+"False = 128\n"
+"بوليه دݢوناکن اونتوق ملنچرکن ڤتا ميني ڤد ميسين يڠ ڤرلاهن."
#: src/settings_translation_file.cpp
-msgid "Step mountain size noise"
+msgid "Trusted mods"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of step mountains."
-msgstr ""
+msgid "URL to the server list displayed in the Multiplayer Tab."
+msgstr "URL کڤد سناراي ڤلاين يڠ دڤاڤرکن دالم تب ڤرماٴينن راماي."
#: src/settings_translation_file.cpp
-msgid "River noise"
-msgstr ""
+msgid "Undersampling"
+msgstr "ڤنسمڤلن ڤڠورڠن"
#: src/settings_translation_file.cpp
-msgid "2D noise that locates the river valleys and channels."
+msgid ""
+"Undersampling is similar to using a lower screen resolution, but it applies\n"
+"to the game world only, keeping the GUI intact.\n"
+"It should give a significant performance boost at the cost of less detailed "
+"image.\n"
+"Higher values result in a less detailed image."
msgstr ""
+"ڤنسمڤلن ڤڠورڠن سروڤ سڤرتي مڠݢوناکن ريسولوسي سکرين رندهâ¹\n"
+"تتاڤي اي هاڽ داڤليکاسيکن کڤد دنيا ڤرماٴينن سهاج⹠تيدق مڠاوبه GUI.\n"
+"اي بوليه منيڠکتکن ڤريستاسي دڠن مڠوربنکن ڤراينچين ايميج.\n"
+"نيلاي لبيه تيڠݢي ممبواتکن ايميج يڠ کورڠ ڤراينچين."
#: src/settings_translation_file.cpp
-msgid "Mountain variation noise"
-msgstr ""
+msgid "Unlimited player transfer distance"
+msgstr "جارق ڤميندهن ڤماٴين تنڤ حد"
#: src/settings_translation_file.cpp
-msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
+msgid "Unload unused server data"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Flat"
+msgid "Upper Y limit of dungeons."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Flat specific flags"
+msgid "Upper Y limit of floatlands."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen Flat.\n"
-"Occasional lakes and hills can be added to the flat world."
-msgstr ""
+msgid "Use 3D cloud look instead of flat."
+msgstr "ݢونا ڤاڤرن اون 3D مڠݢنتيکن اون رات."
#: src/settings_translation_file.cpp
-msgid "Ground level"
-msgstr ""
+msgid "Use a cloud animation for the main menu background."
+msgstr "ݢوناکن انيماسي اون سباݢاي لاتر بلاکڠ مينو اوتام."
#: src/settings_translation_file.cpp
-msgid "Y of flat ground."
-msgstr ""
+msgid "Use anisotropic filtering when viewing at textures from an angle."
+msgstr "ݢوناکن ڤناڤيسن انيسوتروڤيک اڤابيلا مليهت تيکستور دري سواتو سودوت."
#: src/settings_translation_file.cpp
-msgid "Lake threshold"
-msgstr ""
+msgid "Use bilinear filtering when scaling textures."
+msgstr "ݢوناکن ڤناڤيسن بيلينيار اڤابيلا مڽسوايکن تيکستور."
#: src/settings_translation_file.cpp
msgid ""
-"Terrain noise threshold for lakes.\n"
-"Controls proportion of world area covered by lakes.\n"
-"Adjust towards 0.0 for a larger proportion."
+"Use mip mapping to scale textures. May slightly increase performance,\n"
+"especially when using a high resolution texture pack.\n"
+"Gamma correct downscaling is not supported."
msgstr ""
+"ݢوناکن ڤمتاٴن ميڤ اونتوق مڽسوايکن تيکستور. بوليه منيڠکتکن\n"
+"سديکيت ڤريستاسي⹠تراوتاماڽ اڤابيلا مڠݢوناکن ڤيک تيکستور\n"
+"برديÙينيسي تيڠݢي. ڤڽسواي-تورون ݢام سچار تڤت تيدق دسوکوڠ."
#: src/settings_translation_file.cpp
-msgid "Lake steepness"
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Controls steepness/depth of lake depressions."
-msgstr ""
+msgid "Use trilinear filtering when scaling textures."
+msgstr "ݢوناکن ڤناڤيسن تريلينيار اڤابيلا مڽسوايکن تيکستور."
#: src/settings_translation_file.cpp
-msgid "Hill threshold"
-msgstr ""
+msgid "VBO"
+msgstr "VBO"
#: src/settings_translation_file.cpp
-msgid ""
-"Terrain noise threshold for hills.\n"
-"Controls proportion of world area covered by hills.\n"
-"Adjust towards 0.0 for a larger proportion."
+msgid "VSync"
+msgstr "VSync"
+
+#: src/settings_translation_file.cpp
+msgid "Valley depth"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Hill steepness"
+msgid "Valley fill"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Controls steepness/height of hills."
+msgid "Valley profile"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain noise"
+msgid "Valley slope"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Defines location and terrain of optional hills and lakes."
+msgid "Variation of biome filler depth."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Fractal"
+msgid "Variation of maximum mountain height (in nodes)."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Fractal specific flags"
+msgid "Variation of number of caves."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Map generation attributes specific to Mapgen Fractal.\n"
-"'terrain' enables the generation of non-fractal terrain:\n"
-"ocean, islands and underground."
+"Variation of terrain vertical scale.\n"
+"When noise is < -0.55 terrain is near-flat."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Fractal type"
+msgid "Varies depth of biome surface nodes."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Selects one of 18 fractal types.\n"
-"1 = 4D \"Roundy\" Mandelbrot set.\n"
-"2 = 4D \"Roundy\" Julia set.\n"
-"3 = 4D \"Squarry\" Mandelbrot set.\n"
-"4 = 4D \"Squarry\" Julia set.\n"
-"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n"
-"6 = 4D \"Mandy Cousin\" Julia set.\n"
-"7 = 4D \"Variation\" Mandelbrot set.\n"
-"8 = 4D \"Variation\" Julia set.\n"
-"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n"
-"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n"
-"11 = 3D \"Christmas Tree\" Mandelbrot set.\n"
-"12 = 3D \"Christmas Tree\" Julia set.\n"
-"13 = 3D \"Mandelbulb\" Mandelbrot set.\n"
-"14 = 3D \"Mandelbulb\" Julia set.\n"
-"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n"
-"16 = 3D \"Cosine Mandelbulb\" Julia set.\n"
-"17 = 4D \"Mandelbulb\" Mandelbrot set.\n"
-"18 = 4D \"Mandelbulb\" Julia set."
+"Varies roughness of terrain.\n"
+"Defines the 'persistence' value for terrain_base and terrain_alt noises."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Iterations"
+msgid "Varies steepness of cliffs."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Iterations of the recursive function.\n"
-"Increasing this increases the amount of fine detail, but also\n"
-"increases processing load.\n"
-"At iterations = 20 this mapgen has a similar load to mapgen V7."
+msgid "Vertical climbing speed, in nodes per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"(X,Y,Z) scale of fractal in nodes.\n"
-"Actual fractal size will be 2 to 3 times larger.\n"
-"These numbers can be made very large, the fractal does\n"
-"not have to fit inside the world.\n"
-"Increase these to 'zoom' into the detail of the fractal.\n"
-"Default is for a vertically-squashed shape suitable for\n"
-"an island, set all 3 numbers equal for the raw shape."
-msgstr ""
+msgid "Vertical screen synchronization."
+msgstr "ڤڽݢرقن منݢق سکرين."
#: src/settings_translation_file.cpp
-msgid ""
-"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
-"Can be used to move a desired point to (0, 0) to create a\n"
-"suitable spawn point, or to allow 'zooming in' on a desired\n"
-"point by increasing 'scale'.\n"
-"The default is tuned for a suitable spawn point for Mandelbrot\n"
-"sets with default parameters, it may need altering in other\n"
-"situations.\n"
-"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
-msgstr ""
+msgid "Video driver"
+msgstr "ڤماچو Ûيديو"
#: src/settings_translation_file.cpp
-msgid "Slice w"
-msgstr ""
+msgid "View bobbing factor"
+msgstr "Ùکتور اڤوڠن ڤندڠ"
#: src/settings_translation_file.cpp
-msgid ""
-"W coordinate of the generated 3D slice of a 4D fractal.\n"
-"Determines which 3D slice of the 4D shape is generated.\n"
-"Alters the shape of the fractal.\n"
-"Has no effect on 3D fractals.\n"
-"Range roughly -2 to 2."
-msgstr ""
+msgid "View distance in nodes."
+msgstr "جارق ڤندڠ دالم اونيت نود."
#: src/settings_translation_file.cpp
-msgid "Julia x"
-msgstr ""
+msgid "View range decrease key"
+msgstr "ککونچي مڠورڠ جارق ڤندڠ"
#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"X component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
-msgstr ""
+msgid "View range increase key"
+msgstr "ککونچي منمبه جارق ڤندڠ"
#: src/settings_translation_file.cpp
-msgid "Julia y"
-msgstr ""
+msgid "View zoom key"
+msgstr "ککونچي زوم ڤندڠن"
#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"Y component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
-msgstr ""
+msgid "Viewing range"
+msgstr "جارق ڤندڠ"
#: src/settings_translation_file.cpp
-msgid "Julia z"
-msgstr ""
+msgid "Virtual joystick triggers aux button"
+msgstr "کايو بديق ماي مميچو بوتڠ aux"
#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"Z component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
-msgstr ""
+msgid "Volume"
+msgstr "کقواتن بوڽي"
#: src/settings_translation_file.cpp
-msgid "Julia w"
+msgid ""
+"Volume of all sounds.\n"
+"Requires the sound system to be enabled."
msgstr ""
+"کقواتن سموا بوڽي.\n"
+"ممرلوکن سيستم بوڽي دبوليهکن."
#: src/settings_translation_file.cpp
msgid ""
-"Julia set only.\n"
-"W component of hypercomplex constant.\n"
+"W coordinate of the generated 3D slice of a 4D fractal.\n"
+"Determines which 3D slice of the 4D shape is generated.\n"
"Alters the shape of the fractal.\n"
"Has no effect on 3D fractals.\n"
"Range roughly -2 to 2."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Seabed noise"
+msgid "Walking and flying speed, in nodes per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Y-level of seabed."
+msgid "Walking speed"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Valleys"
+msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Mapgen Valleys specific flags"
+msgid "Water level"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen Valleys.\n"
-"'altitude_chill': Reduces heat with altitude.\n"
-"'humid_rivers': Increases humidity around rivers.\n"
-"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n"
-"to become shallower and occasionally dry.\n"
-"'altitude_dry': Reduces humidity with altitude."
+msgid "Water surface level of the world."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n"
-"enabled. Also the vertical distance over which humidity drops by 10 if\n"
-"'altitude_dry' is enabled."
-msgstr ""
+msgid "Waving Nodes"
+msgstr "نود برݢويڠ"
#: src/settings_translation_file.cpp
-msgid "Depth below which you'll find large caves."
-msgstr ""
+msgid "Waving leaves"
+msgstr "داٴون برݢويڠ"
#: src/settings_translation_file.cpp
-msgid "Cavern upper limit"
-msgstr ""
+msgid "Waving liquids"
+msgstr "چچاٴير برݢلورا"
#: src/settings_translation_file.cpp
-msgid "Depth below which you'll find giant caverns."
-msgstr ""
+msgid "Waving liquids wave height"
+msgstr "کتيڠݢين اومبق چچاٴير برݢلورا"
#: src/settings_translation_file.cpp
-msgid "River depth"
-msgstr ""
+msgid "Waving liquids wave speed"
+msgstr "کلاجوان اومبق چچاٴير برݢلورا"
#: src/settings_translation_file.cpp
-msgid "How deep to make rivers."
-msgstr ""
+msgid "Waving liquids wavelength"
+msgstr "ڤنجڠ اومبق چچاٴير برݢلورا"
#: src/settings_translation_file.cpp
-msgid "River size"
-msgstr ""
+msgid "Waving plants"
+msgstr "تومبوهن برݢويڠ"
#: src/settings_translation_file.cpp
-msgid "How wide to make rivers."
+msgid ""
+"When gui_scaling_filter is true, all GUI images need to be\n"
+"filtered in software, but some images are generated directly\n"
+"to hardware (e.g. render-to-texture for nodes in inventory)."
msgstr ""
+"اڤابيلا ڤناڤيس سکال GUI ايايتgui_scaling_filter دتتڤکن کڤد \"true\"⹠سموا\n"
+"ايميج GUI ڤرلو دتاڤيس دالم ڤرايسين⹠تتاڤي سستڠه ايميج دجان سچارا تروس\n"
+"کڤرکاکسن (چونتوهڽ⹠ڤنرجمهن-Ú©-تيکستور اونتوق نود دالم اينÛينتوري)."
#: src/settings_translation_file.cpp
-msgid "Cave noise #1"
+msgid ""
+"When gui_scaling_filter_txr2img is true, copy those images\n"
+"from hardware to software for scaling. When false, fall back\n"
+"to the old scaling method, for video drivers that don't\n"
+"properly support downloading textures back from hardware."
msgstr ""
+"اڤابيلا gui_scaling_filter_txr2img دتتڤکن کڤد \"true\"⹠سالين سمولا کسموا\n"
+"ايميج ترسبوت دري ڤرکاکسن کڤرايسين اونتوق دسسوايکن. سکيراڽ دتتڤکن کڤد\n"
+"\"false\"⹠برباليق کڤد قاعده ڤڽسواين ÙŠÚ  لام⹠اونتوق ڤماچو Ûيديو ÙŠÚ  تيدق "
+"ممڤو\n"
+"Ù…Ú½ÙˆÚ©ÙˆÚ  دڠن سمڤورنا Ùوڠسي موات تورون سمولا تيکستور درڤد ڤرکاکسن."
#: src/settings_translation_file.cpp
-msgid "Cave noise #2"
+msgid ""
+"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
+"can be blurred, so automatically upscale them with nearest-neighbor\n"
+"interpolation to preserve crisp pixels. This sets the minimum texture size\n"
+"for the upscaled textures; higher values look sharper, but require more\n"
+"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n"
+"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n"
+"enabled.\n"
+"This is also used as the base node texture size for world-aligned\n"
+"texture autoscaling."
msgstr ""
+"اڤابيلا مڠݢوناکن تاڤيسن بيلينيار\\تريلينيار\\انيسوتروڤيک⹠تيکستور\n"
+"ريسولوسي رنده بوليه جادي کابور⹠جادي سسواي-ناٴيقکن مريک\n"
+"سچارا أوتوماتيک دڠن سيسيڤن جيرن تردکت اونتوق ممليهارا ڤيکسل\n"
+"کراس. تتڤن اين منتڤکن سايز تيکستور مينيما اونتوق تيکستور\n"
+"ڤڽسواي-ناٴيقکنâ نيلاي لبيه تيڠݢي تمڤق لبيه تاجم⹠تتاڤي ممرلوکن\n"
+"ميموري يڠ لبيه باڽق. نيلاي کواسا 2 دشورکن. منتڤکن نيلاي اين لبيه\n"
+"تيڠݢي دري 1 تيدق اکن منمڤقکن کسن يڠ ڽات ملاٴينکن تاڤيسن\n"
+"بيلينيار\\تريلينيار\\انيسوتروڤيک دبوليهکن. اين جوݢ دݢوناکن سباݢاي\n"
+"سايز تيکستور نود اساس اونتوق أوتوڤڽسواين تيکستور جاجرن دنيا."
#: src/settings_translation_file.cpp
-msgid "Filler depth"
+msgid ""
+"Whether FreeType fonts are used, requires FreeType support to be compiled "
+"in.\n"
+"If disabled, bitmap and XML vectors fonts are used instead."
msgstr ""
+"منتڤکن سام اد Ùون FreeType دݢوناکن⹠ممرلوکن سوکوڠن Freetype\n"
+"دکومڤيل برسام. جيک دلومڤوهکن⹠Ùون ڤتا بيت دان Ûيکتور XML اکن دݢوناکن."
#: src/settings_translation_file.cpp
-msgid "The depth of dirt or other biome filler node."
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain height"
-msgstr ""
+msgid "Whether node texture animations should be desynchronized per mapblock."
+msgstr "سام اد انيماسي تيکستور نود ڤرلو دڽهسݢرقکن ڤد ستياڤ بلوک ڤتا."
#: src/settings_translation_file.cpp
-msgid "Base terrain height."
+msgid ""
+"Whether players are shown to clients without any range limit.\n"
+"Deprecated, use the setting player_transfer_distance instead."
msgstr ""
+"تتڤکن سام اد ڤماٴين دتونجوقکن کڤد کليئن تنڤا حد جارق.\n"
+"تتڤن اين ترکچم⹠ݢوناکن تتڤن player_transfer_distance سباݢاي ݢنتي."
#: src/settings_translation_file.cpp
-msgid "Valley depth"
+msgid "Whether to allow players to damage and kill each other."
msgstr ""
+"منتڤکن سام اد ايڠين ممبنرکن ڤماٴين اونتوق منچدراکن دان ممبونوه ساتو سام "
+"لاٴين."
#: src/settings_translation_file.cpp
-msgid "Raises terrain to make valleys around the rivers."
+msgid ""
+"Whether to ask clients to reconnect after a (Lua) crash.\n"
+"Set this to true if your server is set up to restart automatically."
msgstr ""
+"تتڤن سام اد اونتوق ممينتا مڽمبوڠ سمولا سلڤس برلاکوڽ کرونتوهن (Lua).\n"
+"تتڤکن کڤد \"true\" جک ڤلاين اندا دتتڤکن اونتوق مولا سمولا سچارا اٴوتوماتيک."
#: src/settings_translation_file.cpp
-msgid "Valley fill"
-msgstr ""
+msgid "Whether to fog out the end of the visible area."
+msgstr "سام اد اندا هندق مڠکابوتکن ڤڠهوجوڠ کاوسن يڠ کليهتن."
#: src/settings_translation_file.cpp
-msgid "Slope and fill work together to modify the heights."
+msgid ""
+"Whether to mute sounds. You can unmute sounds at any time, unless the\n"
+"sound system is disabled (enable_sound=false).\n"
+"In-game, you can toggle the mute state with the mute key or by using the\n"
+"pause menu."
msgstr ""
+"سام اد ايڠين ممبيسوکن بوڽي. اندا بوليه مڽهبيسو ڤد بيلا٢\n"
+"ماس⹠ملاٴينکن سيستم بوڽي دلومڤوهکن (enable_sound=false).\n"
+"دالم ڤرماٴينن⹠اندا بوليه منوݢول کأداٴن بيسو مڠݢوناکن ککونچي\n"
+"بيسو اتاو مڠݢوناکن مينو جيدا."
#: src/settings_translation_file.cpp
-msgid "Valley profile"
+msgid ""
+"Whether to show the client debug info (has the same effect as hitting F5)."
msgstr ""
+"تتڤکن سام اد هندق منونجوقکن معلومت ڽهڤڤيجت (کسنڽ سام سڤرتي منکن بوتڠ F5)."
#: src/settings_translation_file.cpp
-msgid "Amplifies the valleys."
-msgstr ""
+msgid "Width component of the initial window size."
+msgstr "کومڤونن ليبر سايز تتيڠکڤ اول."
#: src/settings_translation_file.cpp
-msgid "Valley slope"
-msgstr ""
+msgid "Width of the selection box lines around nodes."
+msgstr "ليبر ݢاريسن کوتق ڤميليهن سکليليڠ نود."
#: src/settings_translation_file.cpp
-msgid "Chunk size"
+msgid ""
+"Windows systems only: Start Minetest with the command line window in the "
+"background.\n"
+"Contains the same information as the file debug.txt (default name)."
msgstr ""
+"سيستم Windows سهاج: مولاکن Minetest دڠن تتيڠکڤ ݢاريس ڤرينة دکت لاتر بلاکڠ.\n"
+"مڠندوڠي معلومت ÙŠÚ  سام سڤرتي ÙØ§Ù´ÙŠÙ„ debug.txt (نام لالاي)."
#: src/settings_translation_file.cpp
msgid ""
-"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n"
-"WARNING!: There is no benefit, and there are several dangers, in\n"
-"increasing this value above 5.\n"
-"Reducing this value increases cave and dungeon density.\n"
-"Altering this value is for special usage, leaving it unchanged is\n"
-"recommended."
+"World directory (everything in the world is stored here).\n"
+"Not needed if starting from the main menu."
msgstr ""
+"ديريکتوري دنيا (سموا بندا دالم دنيا دسيمڤن دسيني).\n"
+"تيدق دڤرلوکن جک برمولا دري مينو اوتام."
#: src/settings_translation_file.cpp
-msgid "Mapgen debug"
+msgid "World start time"
+msgstr "ماس مولا دنيا"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"World-aligned textures may be scaled to span several nodes. However,\n"
+"the server may not send the scale you want, especially if you use\n"
+"a specially-designed texture pack; with this option, the client tries\n"
+"to determine the scale automatically basing on the texture size.\n"
+"See also texture_min_size.\n"
+"Warning: This option is EXPERIMENTAL!"
msgstr ""
+"تيکستور جاجرن دنيا بوليه دسسوايکن اونتوق منجڠکاو ببراڤ نود.\n"
+"نامون بݢيتو⹠ڤلاين موڠکين تيدق داڤت مڠهنتر سکال يڠ اندا\n"
+"ايڠينکن⹠تراوتاماڽ جيک اندا ݢوناکن ڤيک تيکستور يڠ دريک سچارا\n"
+"Ø®ØµÙˆØµâ Ø¯Ú Ù† ڤيليهن اين⹠کليئن اکن چوبا اونتوق مننتوکن سکال سچارا\n"
+"أوتوماتيک برداسرکن سايز تيکستور. جوݢ ليهت texture_min_size.\n"
+"امرن: ڤيليهن اين دالم اوجيکاجي!"
#: src/settings_translation_file.cpp
-msgid "Dump the mapgen debug information."
+msgid "World-aligned textures mode"
+msgstr "مود تيکستور جاجرن دنيا"
+
+#: src/settings_translation_file.cpp
+msgid "Y of flat ground."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Absolute limit of queued blocks to emerge"
+msgid ""
+"Y of mountain density gradient zero level. Used to shift mountains "
+"vertically."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum number of blocks that can be queued for loading."
+msgid "Y of upper limit of large caves."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Per-player limit of queued blocks load from disk"
+msgid "Y-distance over which caverns expand to full size."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of blocks to be queued that are to be loaded from file.\n"
-"This limit is enforced per player."
+"Y-distance over which floatlands taper from full density to nothing.\n"
+"Tapering starts at this distance from the Y limit.\n"
+"For a solid floatland layer, this controls the height of hills/mountains.\n"
+"Must be less than or equal to half the distance between the Y limits."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Per-player limit of queued blocks to generate"
+msgid "Y-level of average terrain surface."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Maximum number of blocks to be queued that are to be generated.\n"
-"This limit is enforced per player."
+msgid "Y-level of cavern upper limit."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of emerge threads"
+msgid "Y-level of higher terrain that creates cliffs."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Number of emerge threads to use.\n"
-"Value 0:\n"
-"- Automatic selection. The number of emerge threads will be\n"
-"- 'number of processors - 2', with a lower limit of 1.\n"
-"Any other value:\n"
-"- Specifies the number of emerge threads, with a lower limit of 1.\n"
-"WARNING: Increasing the number of emerge threads increases engine mapgen\n"
-"speed, but this may harm game performance by interfering with other\n"
-"processes, especially in singleplayer and/or when running Lua code in\n"
-"'on_generated'. For many users the optimum setting may be '1'."
+msgid "Y-level of lower terrain and seabed."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Online Content Repository"
+msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "ContentDB URL"
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "The URL for the content repository"
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "ContentDB Flag Blacklist"
+msgid "cURL file download timeout"
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Comma-separated list of flags to hide in the content repository.\n"
-"\"nonfree\" can be used to hide packages which do not qualify as 'free "
-"software',\n"
-"as defined by the Free Software Foundation.\n"
-"You can also specify content ratings.\n"
-"These flags are independent from Minetest versions,\n"
-"so see a full list at https://content.minetest.net/help/content_flags/"
+msgid "cURL parallel limit"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "cURL timeout"
msgstr ""
+
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = اوکلوسي ڤارالکس دڠن معلومت چرون (لبيه چڤت).\n"
+#~ "1 = ڤمتاٴن بنتوق موک بومي (لبيه لمبت⹠لبيه تڤت)."
+
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "اداکه اندا ماهو سيت سمولا دنيا ڤماٴين ڤرساورڠن؟"
+
+#~ msgid "Bump Mapping"
+#~ msgstr "ڤمتاٴن برتومڤوق"
+
+#~ msgid "Bumpmapping"
+#~ msgstr "ڤمتاٴن برتومڤوق"
+
+#~ msgid "Config mods"
+#~ msgstr "کونÙيݢوراسي مودس"
+
+#~ msgid "Configure"
+#~ msgstr "کونÙيݢوراسي"
+
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "ورنا باݢي کورسور ررمبوت سيلڠ (R,G,B)."
+
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "منتعريÙÚ©Ù† تاهڤ ڤرسمڤلن تيکستور.\n"
+#~ "نيلاي لبيه تيڠݢي مڠحاصيلکن ڤتا نورمل لبيه لمبوت."
+
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "ممبوليهکن ڤمتاٴن برتومڤوق ڤد تيکستور. ڤتا نورمل ڤرلو دسدياکن\n"
+#~ "اوليه ڤيک تيکستور اتاو ڤرلو دجان سچارا أوتوماتيک.\n"
+#~ "ڤرلوکن ڤمبايڠ دبوليهکن."
+
+#~ msgid ""
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
+#~ msgstr ""
+#~ "ممبوليهکن ڤنجاناٴن ڤتا نورمل سچارا لايڠ (کسن چيتق تيمبول).\n"
+#~ "ڤرلوکن ڤمتاٴن برتومڤوق اونتوق دبوليهکن."
+
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "ممبوليهکن ڤمتاٴن اوکلوسي ڤارالکس.\n"
+#~ "ممرلوکن ڤمبايڠ اونتوق دبوليهکن."
+
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
+#~ msgstr ""
+#~ "ڤيليهن ڤرچوباٴن⹠موڠکين منمڤقکن رواڠ ڽات دانتارا\n"
+#~ "بلوک اڤابيلا دتتڤکن دڠن نومبور لبيه بسر درڤد 0."
+
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS دمينو جيدا"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "جان ڤتا نورمل"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "جان ڤتا نورمل"
+
+#~ msgid "Main"
+#~ msgstr "اوتام"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "ڤتا ميني دالم مود رادر⹠زوم 2x"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "ڤتا ميني دالم مود رادر⹠زوم 4x"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "ڤتا ميني دالم مود ڤرموکاٴن⹠زوم 2x"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "ڤتا ميني دالم مود ڤرموکاٴن⹠زوم 4x"
+
+#~ msgid "Name/Password"
+#~ msgstr "نام\\کات لالوان"
+
+#~ msgid "No"
+#~ msgstr "تيدق"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "ڤرسمڤلن ڤتا نورمل"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "ککواتن ڤتا نورمل"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "جومله للرن اوکلوسي ڤارالکس."
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "ڤڠاروه کسن اوکلوسي ڤارالکس ڤد کسلوروهنڽ⹠کبياساٴنڽ سکال\\2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "سکال کسلوروهن کسن اوکلوسي ڤارالکس."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "اوکلوسي ڤارالکس"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "اوکلوسي ڤارالکس"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "ڤڠاروه اوکلوسي ڤارالکس"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "للرن اوکلوسي ڤارالکس"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "مود اوکلوسي ڤارالکس"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "سکال اوکلوسي ڤارالکس"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "سيت سمولا دنيا ڤماٴين ڤرساورڠن"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "مولا ماٴين ساورڠ"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "ککواتن ڤتا نورمل يڠ دجان."
+
+#~ msgid "View"
+#~ msgstr "ليهت"
+
+#~ msgid "Yes"
+#~ msgstr "ياٴ"
diff --git a/po/nb/minetest.po b/po/nb/minetest.po
index ed5bab6db..3762509a4 100644
--- a/po/nb/minetest.po
+++ b/po/nb/minetest.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Norwegian Bokmål (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-18 13:41+0000\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-01-10 01:32+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
"minetest/minetest/nb_NO/>\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.1.1-dev\n"
+"X-Generator: Weblate 4.4.1-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -24,7 +24,7 @@ msgstr "Du døde"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -46,10 +46,6 @@ msgstr "Koble til på nytt"
msgid "The server has requested a reconnect:"
msgstr "Tjeneren har bedt om ny tilkobling:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Laster..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Avvikende protokollversjon. "
@@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Tjener støtter protokollversjoner mellom $1 og $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Prøv å aktivere offentlig tjenerliste på nytt og sjekk Internettforbindelsen "
-"din."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Vi støtter kun protokollversjon $1."
@@ -76,7 +66,8 @@ msgstr "Vi støtter kun protokollversjon $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Vi støtter protokollversjoner mellom versjon $1 og $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Vi støtter protokollversjoner mellom versjon $1 og $2."
msgid "Cancel"
msgstr "Avbryt"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Avhengigheter:"
@@ -116,7 +108,7 @@ msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "Finn flere mods"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -124,7 +116,7 @@ msgstr "Mod:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No (optional) dependencies"
-msgstr "Kan gjerne bruke"
+msgstr "Ingen (valgfrie) avhengigheter"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No game description provided."
@@ -139,9 +131,8 @@ msgid "No modpack description provided."
msgstr "Ingen modpakke-beskrivelse tilgjengelig."
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No optional dependencies"
-msgstr "Valgfrie avhengigheter:"
+msgstr "Ingen valgfrie avhengigheter"
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
msgid "Optional dependencies:"
@@ -161,21 +152,61 @@ msgid "enabled"
msgstr "aktivert"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Laster ned..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Alle pakker"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Tast allerede i bruk"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Tilbake til hovedmeny"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Vær vert for spill"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "ContentDB er ikke tilgjengelig når Minetest kompileres uten cURL"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
-msgstr "Laster..."
+msgstr "Laster ned..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
@@ -191,6 +222,16 @@ msgid "Install"
msgstr "Installer"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Installer"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Valgfrie avhengigheter:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Modder"
@@ -204,9 +245,25 @@ msgid "No results"
msgstr "Resultatløst"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Søk"
+#, fuzzy
+msgid "No updates"
+msgstr "Oppdater"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -221,7 +278,11 @@ msgid "Update"
msgstr "Oppdater"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -230,45 +291,39 @@ msgstr "En verden med navn \"$1\" eksisterer allerede"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "Ytterligere terreng"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
msgstr "Temperaturen synker med stigende høyde"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Altitude dry"
-msgstr "Temperaturen synker med stigende høyde"
+msgstr "Tørr høyde"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biome blending"
-msgstr "Biotoplyd"
+msgstr "Biotopblanding"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biomes"
-msgstr "Biotoplyd"
+msgstr "Biotop"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caverns"
-msgstr "Grottelyd"
+msgstr "Grotter"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caves"
-msgstr "Oktaver"
+msgstr "Huler"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
msgstr "Opprett"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "Informasjon:"
+msgstr "Dekorasjoner"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -279,21 +334,20 @@ msgid "Download one from minetest.net"
msgstr "Last ned en fra minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Dungeons"
-msgstr "Grottelyd"
+msgstr "Fangehull"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "Flatt terreng"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
-msgstr ""
+msgstr "Flytende landmasser på himmelen"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floatlands (experimental)"
-msgstr ""
+msgstr "Flytlandene (eksperimentelt)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -308,21 +362,20 @@ msgid "Hills"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Humid rivers"
-msgstr "Videodriver"
+msgstr "Fuktige elver"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "Øker fuktigheten rundt elver"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "Innsjøer"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "Lav fuktighet og høy varme fører til små eller tørre elver"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -330,7 +383,7 @@ msgstr "Mapgen"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen flags"
-msgstr ""
+msgstr "Mapgen-flagg"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -339,7 +392,7 @@ msgstr "Mapgen"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mountains"
-msgstr ""
+msgstr "Fjell"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
@@ -347,7 +400,7 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "Nettverk av tuneller og huler"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
@@ -355,20 +408,19 @@ msgstr "Intet spill valgt"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "Reduserer varme ettersom høyden øker"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "Reduserer fuktighet ettersom høyden øker"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Rivers"
-msgstr "Elvestørrelse"
+msgstr "Elver"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "Havnivåelver"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -407,21 +459,19 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "Trær og jungelgress"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Vary river depth"
-msgstr "Elvedybde"
+msgstr "Varier elvedybde"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Warning: The Development Test is meant for developers."
-msgstr "Advarsel: Den minimale utviklingstesten er tiltenkt utviklere."
+msgstr "Advarsel: Utviklingstesten er tiltenkt utviklere."
#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
@@ -479,7 +529,7 @@ msgstr "2D-støy"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "< Back to Settings page"
-msgstr "< Tilbake til instillinger"
+msgstr "< Tilbake til innstillinger"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
@@ -530,6 +580,10 @@ msgid "Scale"
msgstr "Skala"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Søk"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Velg mappe"
@@ -641,9 +695,23 @@ msgid "Unable to install a mod as a $1"
msgstr "Klarte ikke å installere mod som en $1"
#: builtin/mainmenu/pkgmgr.lua
-#, fuzzy
msgid "Unable to install a modpack as a $1"
-msgstr "Klarte ikke å installere en modpakke som $1"
+msgstr "Klarte ikke å installere en modpakke som en $1"
+
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Laster..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Skripting er slått av på klientside"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Prøv å aktivere offentlig tjenerliste på nytt og sjekk Internettforbindelsen "
+"din."
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
@@ -698,6 +766,17 @@ msgid "Credits"
msgstr "Bidragsytere"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Velg mappe"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Tidligere bidragsytere"
@@ -714,14 +793,10 @@ msgid "Bind Address"
msgstr "Bindingsadresse"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Sett opp"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Kreativt modus"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Skru på skade"
@@ -735,11 +810,11 @@ msgstr "Vertstjener"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "Installer spill fra ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Navn/passord"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -750,6 +825,11 @@ msgid "No world created or selected!"
msgstr "Ingen verden opprettet eller valgt!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Nytt passord"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Spill"
@@ -758,6 +838,11 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Velg verden:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Velg verden:"
@@ -773,23 +858,23 @@ msgstr "Start spill"
msgid "Address / Port"
msgstr "Adresse / port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Koble til"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Kreativ modus"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Skade aktivert"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Slett favoritt"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Favoritt"
@@ -797,16 +882,16 @@ msgstr "Favoritt"
msgid "Join Game"
msgstr "Ta del i spill"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Navn / passord"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Latens"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "Alle mot alle er på"
@@ -835,10 +920,6 @@ msgid "Antialiasing:"
msgstr "Kantutjevning:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Er du sikker på at du ønsker å tilbakestille din enkeltspiller-verden?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Lagre skjermstørrelse automatisk"
@@ -846,10 +927,6 @@ msgstr "Lagre skjermstørrelse automatisk"
msgid "Bilinear Filter"
msgstr "Bilineært filter"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Teksturtilføyning"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Endre taster"
@@ -863,10 +940,6 @@ msgid "Fancy Leaves"
msgstr "Forseggjorte blader"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Generer normale kart"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmap"
@@ -875,10 +948,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap + anisotropisk filter"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Nei"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Inget filter"
@@ -906,19 +975,11 @@ msgstr "Diffuse løv"
msgid "Opaque Water"
msgstr "Diffust vann"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Parallakse Okklusjon"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Partikler"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Tilbakestill enkeltspillerverden"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Skjerm:"
@@ -931,6 +992,11 @@ msgid "Shaders"
msgstr "Skygger"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Flytlandene (eksperimentelt)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Skyggelegging (ikke tilgjenglig)"
@@ -974,22 +1040,6 @@ msgstr "Skvulpende væsker"
msgid "Waving Plants"
msgstr "Bølgende planter"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Ja"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Sett opp modder"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Hovedmeny"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Start enkeltspiller"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Forbindelsen løp ut på tid."
@@ -1144,20 +1194,20 @@ msgid "Continue"
msgstr "Fortsett"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1305,34 +1355,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Skjuler minikart"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1393,12 +1415,13 @@ msgid "Sound muted"
msgstr "Lyd av"
#: src/client/game.cpp
+#, fuzzy
msgid "Sound system is disabled"
-msgstr ""
+msgstr "Lydsystem avskrudd"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "Lydsystem støttes ikke på dette bygget"
#: src/client/game.cpp
msgid "Sound unmuted"
@@ -1454,12 +1477,12 @@ msgstr ""
#: src/client/gameui.cpp
msgid "Profiler hidden"
-msgstr ""
+msgstr "Profiler skjult"
#: src/client/gameui.cpp
#, c-format
msgid "Profiler shown (page %d of %d)"
-msgstr ""
+msgstr "Profiler vises (side %d av %d)"
#: src/client/keycode.cpp
msgid "Apps"
@@ -1724,6 +1747,24 @@ msgstr "X knapp 2"
msgid "Zoom"
msgstr "Forstørrelse"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Skjuler minikart"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Passordene samsvarer ikke!"
@@ -1752,9 +1793,8 @@ msgid "Proceed"
msgstr "Fortsett"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "\"Special\" = climb down"
-msgstr "«bruk» = klatre ned"
+msgstr "«Spesial» = klatre ned"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Autoforward"
@@ -1999,12 +2039,6 @@ msgstr ""
"i høyden og egner seg til øy. Angi tre like tall for grunnformen."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "2D-støytall som styrer form og størrelse på høydedrag."
@@ -2042,7 +2076,7 @@ msgstr "3D-modus"
#: src/settings_translation_file.cpp
msgid "3D mode parallax strength"
-msgstr ""
+msgstr "Parallaksestyrke i 3D-modus"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
@@ -2127,6 +2161,10 @@ msgid "ABM interval"
msgstr "ABM-intervall"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2260,7 +2298,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Ask to reconnect after crash"
-msgstr "Spør om å koble til igjen etter kræsj"
+msgstr "Spør om å koble til igjen etter krasj"
#: src/settings_translation_file.cpp
msgid ""
@@ -2382,10 +2420,6 @@ msgid "Builtin"
msgstr "Innebygd"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Teksturpåføring (bump mapping)"
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
@@ -2463,22 +2497,6 @@ msgstr ""
"der 0.0 er minimumsnivået for lysstyrke mens 1.0 er maksimumsnivået."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Endrer hovedmenyens brukergrensesnitt (UI):\n"
-"- Fullstendig: Flere enkeltspillerverdener, valg av spill, "
-"teksturpakkevalg, osv.\n"
-"- Enkel: Én enkeltspillerverden, ingen valg av spill eller teksturpakke. "
-"Kan være\n"
-"nødvendig på mindre skjermer."
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat font size"
msgstr "Skriftstørrelse"
@@ -2643,6 +2661,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "ContentDBs svarteliste"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "ContentDB-URL"
@@ -2695,7 +2717,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Crash message"
-msgstr "Kræsjmelding"
+msgstr "Krasjmelding"
#: src/settings_translation_file.cpp
msgid "Creative"
@@ -2706,7 +2728,10 @@ msgid "Crosshair alpha"
msgstr "Trådkors-alpha"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "Trådkors-alpha (ugjennomsiktighet, mellom 0 og 255)."
#: src/settings_translation_file.cpp
@@ -2714,8 +2739,10 @@ msgid "Crosshair color"
msgstr "Trådkorsfarge"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Trådkorsfarge (R, G, B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2815,12 +2842,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Defines the base ground level."
msgstr "Definerer treområder og skogstetthet."
@@ -2892,6 +2913,11 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Høyre tast"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Gravepartikler"
@@ -2953,7 +2979,8 @@ msgid "Enable console window"
msgstr "Skru på konsollvindu"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Skru på kreativt modusfor nye opprettede kart."
#: src/settings_translation_file.cpp
@@ -3043,14 +3070,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -3060,18 +3079,6 @@ msgstr "Aktiverer minikart."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3088,12 +3095,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3103,8 +3104,9 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr ""
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "Maks FPS når spillet står i pause."
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3412,10 +3414,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3469,8 +3467,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3938,6 +3936,11 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "Spillstikketype"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -4024,6 +4027,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tast for hopping.\n"
+"Se http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4074,14 +4088,14 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for moving the player backward.\n"
"Will also disable autoforward, when active.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Tast for hurtig gange i raskt modus.\n"
+"Tast for å bevege spilleren bakover\n"
+"Vil også koble ut automatisk foroverbevegelse, hvis aktiv.\n"
"Se http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4151,6 +4165,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tast for hopping.\n"
+"Se http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4840,11 +4865,6 @@ msgid "Main menu script"
msgstr "Skript for hovedmeny"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Hovedmeny"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4858,6 +4878,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Mappe for kart"
@@ -5027,7 +5055,8 @@ msgid "Maximum FPS"
msgstr "Maks FPS («frames» - bilder per sekund)"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "Maks FPS når spillet står i pause."
#: src/settings_translation_file.cpp
@@ -5076,6 +5105,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5307,14 +5343,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5340,10 +5368,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5369,34 +5393,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5463,6 +5459,15 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Flygingstast"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5619,10 +5624,6 @@ msgid "Right key"
msgstr "Høyre tast"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "Elveleiedybde"
@@ -5884,6 +5885,20 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Angi språk. La stå tom for å bruke operativsystemets språk.\n"
+"Krever omstart etter endring."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Fet skrifttype som forvalg"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Beskjed ved avslutning"
@@ -6022,10 +6037,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6120,6 +6131,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6183,8 +6198,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6210,15 +6225,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6359,6 +6379,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6567,6 +6598,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6649,7 +6686,6 @@ msgid "Y of flat ground."
msgstr "Y-koordinat for flatt land."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Y of mountain density gradient zero level. Used to shift mountains "
"vertically."
@@ -6694,6 +6730,24 @@ msgid "Y-level of seabed."
msgstr "Y-nivå for havbunn."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "Tidsutløp for filnedlasting med cURL"
@@ -6705,32 +6759,97 @@ msgstr "Maksimal parallellisering i cURL"
msgid "cURL timeout"
msgstr "cURL-tidsgrense"
-#~ msgid "Select Package File:"
-#~ msgstr "Velg pakkefil:"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr ""
+#~ "Er du sikker på at du ønsker å tilbakestille din enkeltspiller-verden?"
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Y-verdi for øvre grense for lava i store grotter."
+#~ msgid "Back"
+#~ msgstr "Tilbake"
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Hvilket Y-nivå som skyggen til luftøyer når."
+#~ msgid "Bump Mapping"
+#~ msgstr "Teksturtilføyning"
-#~ msgid "IPv6 support."
-#~ msgstr "IPv6-støtte."
+#~ msgid "Bumpmapping"
+#~ msgstr "Teksturpåføring (bump mapping)"
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Aktiver filmatisk toneoversettelse"
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "Endrer hovedmenyens brukergrensesnitt (UI):\n"
+#~ "- Fullstendig: Flere enkeltspillerverdener, valg av spill, "
+#~ "teksturpakkevalg, osv.\n"
+#~ "- Enkel: Én enkeltspillerverden, ingen valg av spill eller "
+#~ "teksturpakke. Kan være\n"
+#~ "nødvendig på mindre skjermer."
-#~ msgid "Enable VBO"
-#~ msgstr "Aktiver VBO"
+#~ msgid "Config mods"
+#~ msgstr "Sett opp modder"
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Filsti til lagring av skjermdumper."
+#~ msgid "Configure"
+#~ msgstr "Sett opp"
+
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Trådkorsfarge (R, G, B)."
#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr "Laster ned og installerer $1, vent…"
-#~ msgid "Back"
-#~ msgstr "Tilbake"
+#~ msgid "Enable VBO"
+#~ msgstr "Aktiver VBO"
+
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Aktiver filmatisk toneoversettelse"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Generer normale kart"
+
+#~ msgid "IPv6 support."
+#~ msgstr "IPv6-støtte."
+
+#~ msgid "Main"
+#~ msgstr "Hovedmeny"
+
+#, fuzzy
+#~ msgid "Main menu style"
+#~ msgstr "Hovedmeny"
+
+#~ msgid "Name/Password"
+#~ msgstr "Navn/passord"
+
+#~ msgid "No"
+#~ msgstr "Nei"
#~ msgid "Ok"
#~ msgstr "Okei"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parallakse Okklusjon"
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Filsti til lagring av skjermdumper."
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Tilbakestill enkeltspillerverden"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Velg pakkefil:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Start enkeltspiller"
+
+#~ msgid "View"
+#~ msgstr "Vis"
+
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Y-verdi for øvre grense for lava i store grotter."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Hvilket Y-nivå som skyggen til luftøyer når."
+
+#~ msgid "Yes"
+#~ msgstr "Ja"
diff --git a/po/nl/minetest.po b/po/nl/minetest.po
index c4d3da53a..f1982536a 100644
--- a/po/nl/minetest.po
+++ b/po/nl/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Dutch (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-07-08 20:47+0000\n"
-"Last-Translator: sfan5 <sfan5@live.de>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-01 05:52+0000\n"
+"Last-Translator: eol <joshua.de.clercq@gmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/minetest/minetest/"
"nl/>\n"
"Language: nl\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -46,10 +46,6 @@ msgstr "Opnieuw verbinding maken"
msgid "The server has requested a reconnect:"
msgstr "De server heeft gevraagd opnieuw verbinding te maken:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Laden..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Protocol versie stemt niet overeen. "
@@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "De server ondersteunt protocol versies tussen $1 en $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Probeer de publieke serverlijst opnieuw in te schakelen en controleer de "
-"internet verbinding."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Wij ondersteunen enkel protocol versie $1."
@@ -76,7 +66,8 @@ msgstr "Wij ondersteunen enkel protocol versie $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Wij ondersteunen protocol versies $1 tot en met $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Wij ondersteunen protocol versies $1 tot en met $2."
msgid "Cancel"
msgstr "Annuleer"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Afhankelijkheden:"
@@ -160,14 +152,55 @@ msgid "enabled"
msgstr "aangeschakeld"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" bestaat al. Wilt u het overschrijven ?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "Afhankelijkheden $1 en $2 zullen geïnstalleerd worden."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 door $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 is aan het downloaden,\n"
+"$2 is ingepland"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 is aan het downloaden..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "$1 benodigde afhankelijkheden werden niet gevonden."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+"$1 zal worden geïnstalleerd, en $2 afhankelijkheden worden overgeslagen."
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Alle pakketten"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Reeds geïnstalleerd"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Terug naar hoofdmenu"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Basis Spel:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
"ContentDB is niet beschikbaar wanneer Minetest compileert is zonder cURL"
@@ -190,6 +223,14 @@ msgid "Install"
msgstr "Installeren"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "Installeer $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "Installeer ontbrekende afhankelijkheden"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mods"
@@ -203,9 +244,24 @@ msgid "No results"
msgstr "Geen resultaten"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Zoeken"
+msgid "No updates"
+msgstr "Geen updates"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "Niet gevonden"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Overschrijven"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "Controleer of het basis spel correct is, aub."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "Ingepland"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -220,8 +276,12 @@ msgid "Update"
msgstr "Update"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr ""
+msgid "Update All [$1]"
+msgstr "Allemaal bijwerken [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Bekijk meer informatie in een webbrowser"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -229,46 +289,39 @@ msgstr "Een wereld met de naam \"$1\" bestaat al"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "Extra terrein"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-#, fuzzy
msgid "Altitude chill"
-msgstr "Temperatuurverschil vanwege hoogte"
+msgstr "Temperatuurdaling vanwege hoogte"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Altitude dry"
-msgstr "Temperatuurverschil vanwege hoogte"
+msgstr "Vochtigheidsverschil vanwege hoogte"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biome blending"
-msgstr "Biome-ruis"
+msgstr "Vegetatie mix"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biomes"
-msgstr "Biome-ruis"
+msgstr "Vegetaties"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caverns"
-msgstr "Grot ruis"
+msgstr "Grotten"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caves"
-msgstr "Octaven"
+msgstr "Grotten"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
msgstr "Maak aan"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "Per soort"
+msgstr "Decoraties"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -279,23 +332,20 @@ msgid "Download one from minetest.net"
msgstr "Laad er een van minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Dungeons"
-msgstr "Kerker ruis"
+msgstr "Kerkers"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "Vlak terrein"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floating landmasses in the sky"
-msgstr "Drijvend gebergte dichtheid"
+msgstr "Zwevende gebergtes"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floatlands (experimental)"
-msgstr "Waterniveau"
+msgstr "Zwevende eilanden (experimenteel)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -303,28 +353,28 @@ msgstr "Spel"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Een niet-fractaal terrein genereren: Oceanen en ondergrond"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "Heuvels"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Humid rivers"
-msgstr "Video driver"
+msgstr "Irrigerende rivier"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "Verhoogt de luchtvochtigheid rond rivieren"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "Meren"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
msgstr ""
+"Lage luchtvochtigheid en hoge hitte zorgen voor ondiepe of droge rivieren"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -335,22 +385,20 @@ msgid "Mapgen flags"
msgstr "Wereldgenerator vlaggen"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mapgen-specific flags"
-msgstr "Vlaggen"
+msgstr "Mapgeneratie-specifieke vlaggen"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mountains"
-msgstr "Bergen ruis"
+msgstr "Bergen"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "Modderstroom"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "Netwerk van tunnels en grotten"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
@@ -358,20 +406,19 @@ msgstr "Geen spel geselecteerd"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "Verminderen van hitte met hoogte"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "Vermindert de luchtvochtigheid met hoogte"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Rivers"
-msgstr "Grootte van rivieren"
+msgstr "Rivieren"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "Rivieren op zeeniveau"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -380,50 +427,49 @@ msgstr "Kiemgetal"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "Zachte overgang tussen vegetatiezones"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
+"Structuren verschijnen op het terrein (geen effect op bomen en jungle gras "
+"gemaakt door v6)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "Structuren verschijnen op het terrein, voornamelijk bomen en planten"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
-msgstr ""
+msgstr "Gematigd, Woestijn"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgstr "Gematigd, Woestijn, Oerwoud"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "Gematigd, Woestijn, Oerwoud, Toendra, Taiga"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Terrain surface erosion"
-msgstr "Terrein hoogte"
+msgstr "Terreinoppervlakte erosie"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "Bomen en oerwoudgras"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Vary river depth"
-msgstr "Diepte van rivieren"
+msgstr "Wisselende rivierdiepte"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "Zeer grote en diepe grotten"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Warning: The Development Test is meant for developers."
msgstr ""
"Waarschuwing: Het minimale ontwikkellaars-test-spel is bedoeld voor "
@@ -536,6 +582,10 @@ msgid "Scale"
msgstr "Schaal"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Zoeken"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Selecteer map"
@@ -651,6 +701,21 @@ msgstr "Installeren van mod $1 in $2 is mislukt"
msgid "Unable to install a modpack as a $1"
msgstr "Installeren van mod verzameling $1 in $2 is mislukt"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Laden..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Client-side scripting is uitgeschakeld"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Probeer de publieke serverlijst opnieuw in te schakelen en controleer de "
+"internet verbinding."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Content op internet bekijken"
@@ -704,6 +769,18 @@ msgid "Credits"
msgstr "Credits"
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr "Open de gebruikersdatamap"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Open de map die de door de gebruiker aangeleverde werelden, spellen, mods\n"
+"en textuur pakketten bevat in een bestandsbeheer toepassing / verkenner."
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Vroegere ontwikkelaars"
@@ -720,14 +797,10 @@ msgid "Bind Address"
msgstr "Lokaal server-adres"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Instellingen"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Creatieve modus"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Verwondingen inschakelen"
@@ -741,11 +814,11 @@ msgstr "Server Hosten"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "Installeer spellen van ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Naam / Wachtwoord"
+msgid "Name"
+msgstr "Naam"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -756,14 +829,22 @@ msgid "No world created or selected!"
msgstr "Geen wereldnaam opgegeven of geen wereld aangemaakt!"
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "Wachtwoord"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
-msgstr "Spel Spelen"
+msgstr "Spel Starten"
#: builtin/mainmenu/tab_local.lua
msgid "Port"
msgstr "Poort"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "Selecteer Mods"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Selecteer Wereld:"
@@ -779,23 +860,23 @@ msgstr "Start spel"
msgid "Address / Port"
msgstr "Server adres / Poort"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Verbinden"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Creatieve modus"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Verwondingen ingeschakeld"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Verwijder Favoriete"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Favorieten"
@@ -803,16 +884,16 @@ msgstr "Favorieten"
msgid "Join Game"
msgstr "Join spel"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Naam / Wachtwoord"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "Spelergevechten ingeschakeld"
@@ -841,10 +922,6 @@ msgid "Antialiasing:"
msgstr "Antialiasing:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Weet je zeker dat je je wereld wilt resetten?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Schermafmetingen automatisch bewaren"
@@ -852,10 +929,6 @@ msgstr "Schermafmetingen automatisch bewaren"
msgid "Bilinear Filter"
msgstr "Bilineaire Filtering"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Bumpmapping"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Toetsen aanpassen"
@@ -869,10 +942,6 @@ msgid "Fancy Leaves"
msgstr "Mooie bladeren"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Genereer normale werelden"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmap"
@@ -881,10 +950,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap + Anisotropisch filteren"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Nee"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Geen Filter"
@@ -912,19 +977,11 @@ msgstr "Ondoorzichtige bladeren"
msgid "Opaque Water"
msgstr "Ondoorzichtig water"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Parallax occlusie"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Effectdeeltjes"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Reset Singleplayer wereld"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Scherm:"
@@ -937,6 +994,10 @@ msgid "Shaders"
msgstr "Shaders"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr "Shaders (experimenteel)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Shaders (niet beschikbaar)"
@@ -980,22 +1041,6 @@ msgstr "Golvende Vloeistoffen"
msgid "Waving Plants"
msgstr "Bewegende planten"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Ja"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Mods configureren"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Hoofdmenu"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Start Singleplayer"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Time-out bij opzetten verbinding."
@@ -1157,13 +1202,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1173,12 +1218,12 @@ msgstr ""
"-%s: ga naar links \n"
"-%s: ga naar rechts \n"
"-%s: springen / klimmen \n"
+"-%s: graaf/duw\n"
+"-%s: plaats/gebruik \n"
"-%s: sluip / ga naar beneden \n"
"-%s: drop item \n"
"-%s: inventaris \n"
"- Muis: draaien / kijken \n"
-"- Muis links: graven / stoten \n"
-"- Muis rechts: plaats / gebruik \n"
"- Muiswiel: item selecteren \n"
"-%s: chat\n"
@@ -1311,34 +1356,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Mini-kaart momenteel uitgeschakeld door spel of mod"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Mini-kaart verborgen"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Mini-kaart in radar modus, Zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Mini-kaart in radar modus, Zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Mini-kaart in radar modus, Zoom x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Minimap in oppervlaktemodus, Zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Minimap in oppervlaktemodus, Zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Minimap in oppervlaktemodus, Zoom x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Noclip-modus uitgeschakeld"
@@ -1400,11 +1417,11 @@ msgstr "Geluid gedempt"
#: src/client/game.cpp
msgid "Sound system is disabled"
-msgstr ""
+msgstr "Systeemgeluiden zijn uitgeschakeld"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "Geluidssysteem is niet ondersteund in deze versie"
#: src/client/game.cpp
msgid "Sound unmuted"
@@ -1431,7 +1448,6 @@ msgid "Volume changed to %d%%"
msgstr "Volume gewijzigd naar %d%%"
#: src/client/game.cpp
-#, fuzzy
msgid "Wireframe shown"
msgstr "Draadframe weergegeven"
@@ -1473,7 +1489,6 @@ msgid "Apps"
msgstr "Menu"
#: src/client/keycode.cpp
-#, fuzzy
msgid "Backspace"
msgstr "Terug"
@@ -1576,11 +1591,11 @@ msgstr "Num Lock"
#: src/client/keycode.cpp
msgid "Numpad *"
-msgstr "Numpad *"
+msgstr "Numeriek pad *"
#: src/client/keycode.cpp
msgid "Numpad +"
-msgstr "Numpad +"
+msgstr "Numeriek pad +"
#: src/client/keycode.cpp
msgid "Numpad -"
@@ -1588,7 +1603,7 @@ msgstr "Numpad -"
#: src/client/keycode.cpp
msgid "Numpad ."
-msgstr "Numpad ."
+msgstr "Numeriek pad ."
#: src/client/keycode.cpp
msgid "Numpad /"
@@ -1732,6 +1747,24 @@ msgstr "X knop 2"
msgid "Zoom"
msgstr "Zoomen"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Mini-kaart verborgen"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Mini-kaart in radar modus, Zoom x%d"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Minimap in oppervlaktemodus, Zoom x%d"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "Minimap textuur modus"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "De wachtwoorden zijn niet gelijk!"
@@ -2007,14 +2040,6 @@ msgstr ""
"een eiland, stel alle 3 getallen gelijk voor de ruwe vorm."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = parallax occlusie met helling-informatie (sneller).\n"
-"1 = 'reliëf mapping' (lanzamer, nauwkeuriger)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "2D-ruis die de vorm/grootte van geribbelde bergen bepaalt."
@@ -2052,21 +2077,21 @@ msgid "3D mode"
msgstr "3D modus"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "3D mode parallax strength"
-msgstr "Sterkte van normal-maps"
+msgstr "Sterkte van parallax in 3D modus"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
-msgstr "3D geluid voor grote holtes."
+msgstr "3D ruis voor grote holtes."
#: src/settings_translation_file.cpp
msgid ""
"3D noise defining mountain structure and height.\n"
"Also defines structure of floatland mountain terrain."
msgstr ""
-"3D geluid voor gebergte of hoge toppen.\n"
-"Ook voor luchtdrijvende bergen."
+"3D ruis voor het definiëren van de structuur en de hoogte van gebergtes of "
+"hoge toppen.\n"
+"Ook voor de structuur van bergachtig terrein om zwevende eilanden."
#: src/settings_translation_file.cpp
msgid ""
@@ -2075,10 +2100,16 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
+"3D ruis om de vorm van de zwevende eilanden te bepalen.\n"
+"Als de standaardwaarde wordt gewijzigd, dan moet de waarde van de "
+"geluidsschaal,\n"
+"standaard ingesteld op 0.7 gewijzigd worden, aangezien de afschuinings-"
+"functies van de zwevende eilanden\n"
+"het beste werkt met een waarde tussen -2.0 en 2.0."
#: src/settings_translation_file.cpp
msgid "3D noise defining structure of river canyon walls."
-msgstr "3D geluid voor wanden van diepe rivier kloof."
+msgstr "3D ruis voor wanden van diepe rivier kloof."
#: src/settings_translation_file.cpp
msgid "3D noise defining terrain."
@@ -2138,12 +2169,14 @@ msgstr ""
"afgesloten wordt."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "ABM interval"
-msgstr "Interval voor opslaan wereld"
+msgstr "Interval voor ABM's"
+
+#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr "ABM tijd budget"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Absolute limit of queued blocks to emerge"
msgstr "Maximaal aantal 'emerge' blokken in de wachtrij"
@@ -2202,6 +2235,13 @@ msgid ""
"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
"to be sure) creates a solid floatland layer."
msgstr ""
+"Past de densiteit van de zwevende eilanden aan.\n"
+"De densiteit verhoogt als de waarde verhoogt. Kan positief of negatief "
+"zijn.\n"
+"Waarde = 0,0 : 50% van het volume is een zwevend eiland.\n"
+"Waarde = 2.0 : een laag van massieve zwevende eilanden\n"
+"(kan ook hoger zijn, afhankelijk van 'mgv7_np_floatland', altijd testen om "
+"zeker te zijn)."
#: src/settings_translation_file.cpp
msgid "Advanced"
@@ -2373,9 +2413,8 @@ msgid "Bits per pixel (aka color depth) in fullscreen mode."
msgstr "Aantal bits per pixel (oftewel: kleurdiepte) in full-screen modus."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Block send optimize distance"
-msgstr "Blok verzend optimaliseren afstand"
+msgstr "Blok verzend optimalisatie afstand"
#: src/settings_translation_file.cpp
msgid "Bold and italic font path"
@@ -2402,10 +2441,6 @@ msgid "Builtin"
msgstr "Ingebouwd"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Bumpmapping"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2483,34 +2518,16 @@ msgstr ""
"Waar 0,0 het minimale lichtniveau is, is 1,0 het maximale lichtniveau."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Verandert de gebruikersinterface van het hoofdmenu: \n"
-"- Volledig: meerdere werelden voor één speler, spelkeuze, de kiezer van "
-"textuurpak, etc. \n"
-"- Eenvoudig: één wereld voor één speler, geen game- of texture pack-kiezers. "
-"Kan zijn \n"
-"noodzakelijk voor kleinere schermen."
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat font size"
-msgstr "Lettergrootte"
+msgstr "Chat lettergrootte"
#: src/settings_translation_file.cpp
msgid "Chat key"
msgstr "Chat-toets"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat log level"
-msgstr "Debug logniveau"
+msgstr "Chat debug logniveau"
#: src/settings_translation_file.cpp
msgid "Chat message count limit"
@@ -2561,9 +2578,8 @@ msgid "Client and Server"
msgstr "Cliënt en server"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Client modding"
-msgstr "Cliënt modding"
+msgstr "Cliënt personalisatie (modding)"
#: src/settings_translation_file.cpp
msgid "Client side modding restrictions"
@@ -2631,10 +2647,9 @@ msgid ""
"Comma-separated list of trusted mods that are allowed to access insecure\n"
"functions even when mod security is on (via request_insecure_environment())."
msgstr ""
-"Lijst van vertrouwde mods die onveilige functies mogen gebruiken,\n"
-"zelfs wanneer mod-beveiliging aan staat (via "
-"request_insecure_environment()).\n"
-"Gescheiden door komma's."
+"Komma gescheiden lijst van vertrouwde mods die onveilige functies mogen "
+"gebruiken,\n"
+"zelfs wanneer mod-beveiliging aan staat (via request_insecure_environment())."
#: src/settings_translation_file.cpp
msgid "Command key"
@@ -2666,9 +2681,12 @@ msgid "Console height"
msgstr "Hoogte console"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "ContentDB Flag Blacklist"
-msgstr "ContentDB markeert zwarte lijst"
+msgstr "ContentDB optie: verborgen pakketten lijst"
+
+#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "ContentDB Maximum Gelijktijdige Downloads"
#: src/settings_translation_file.cpp
msgid "ContentDB URL"
@@ -2739,16 +2757,24 @@ msgid "Crosshair alpha"
msgstr "Draadkruis-alphawaarde"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr "Draadkruis-alphawaarde. (ondoorzichtigheid; tussen 0 en 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Draadkruis-alphawaarde (ondoorzichtigheid; tussen 0 en 255).\n"
+"Controleert ook het object draadkruis kleur"
#: src/settings_translation_file.cpp
msgid "Crosshair color"
msgstr "Draadkruis-kleur"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Draadkruis-kleur (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Draadkruis kleur (R,G,B).\n"
+"Controleert ook het object draadkruis kleur"
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2811,9 +2837,8 @@ msgid "Default report format"
msgstr "Standaardformaat voor rapport-bestanden"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Default stack size"
-msgstr "Standaardspel"
+msgstr "Standaard voorwerpenstapel grootte"
#: src/settings_translation_file.cpp
msgid ""
@@ -2853,14 +2878,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Bepaalt de plaats van bijkomende heuvels en vijvers."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Bemonsterings-interval voor texturen.\n"
-"Een hogere waarde geeft vloeiender normal maps."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Definieert het basisgrondniveau."
@@ -2872,8 +2889,7 @@ msgstr "Definieert de diepte van het rivierkanaal."
msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
msgstr ""
"Maximale afstand (in blokken van 16 nodes) waarbinnen andere spelers "
-"zichtbaar zijn\n"
-"(0 = oneindig ver)."
+"zichtbaar zijn (0 = oneindig ver)."
#: src/settings_translation_file.cpp
msgid "Defines the width of the river channel."
@@ -2941,6 +2957,10 @@ msgid "Desynchronize block animation"
msgstr "Textuur-animaties niet synchroniseren"
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr "Toets voor graven"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Graaf deeltjes"
@@ -3005,7 +3025,8 @@ msgid "Enable console window"
msgstr "Schakel het console venster in"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Schakel creatieve modus in voor nieuwe kaarten."
#: src/settings_translation_file.cpp
@@ -3059,8 +3080,7 @@ msgstr ""
"Zet dit aan om verbindingen van oudere cliënten te weigeren.\n"
"Oudere cliënten zijn compatibel, in de zin dat ze niet crashen als ze "
"verbinding \n"
-"maken met nieuwere servers, maar ze ondersteunen wellicht niet alle "
-"nieuwere\n"
+"maken met nieuwere servers, maar ze ondersteunen wellicht niet alle nieuwere "
"mogelijkheden."
#: src/settings_translation_file.cpp
@@ -3122,18 +3142,6 @@ msgid "Enables animation of inventory items."
msgstr "Schakelt animatie van inventaris items aan."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Bumpmapping aanzetten voor texturen. Normalmaps moeten al in de texture pack "
-"zitten\n"
-"of ze moeten automatisch gegenereerd worden.\n"
-"Schaduwen moeten aanstaan."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Schakelt caching van facedir geroteerde meshes."
@@ -3143,22 +3151,6 @@ msgstr "Schakelt de mini-kaart in."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Schakelt het genereren van normal maps in (emboss effect).\n"
-"Dit vereist dat bumpmapping ook aan staat."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Schakelt parallax occlusie mappen in.\n"
-"Dit vereist dat shaders ook aanstaan."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3179,14 +3171,6 @@ msgstr "Entiteit-functies"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Experimentele optie. Kan bij een waarde groter dan 0 zichtbare\n"
-"ruimtes tussen blokken tot gevolg hebben."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3194,10 +3178,17 @@ msgid ""
"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
"flatter lowlands, suitable for a solid floatland layer."
msgstr ""
+"Exponent voor de afschuining van het zwevende eiland. Wijzigt de "
+"afschuining.\n"
+"Waarde = 1.0 maakt een uniforme, rechte afschuining.\n"
+"Waarde > 1.0 maakt een vloeiende afschuining voor standaard gescheiden\n"
+"zwevende eilanden.\n"
+"Waarde < 1.0 (bijvoorbeeld 0.25) maakt een meer uitgesproken oppervlak met \n"
+"platte laaglanden, geschikt voor een solide zwevende eilanden laag."
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS in het pauze-menu"
+msgid "FPS when unfocused or paused"
+msgstr "FPS als het spel gepauzeerd of niet gefocussed is"
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3248,8 +3239,8 @@ msgid ""
"Fast movement (via the \"special\" key).\n"
"This requires the \"fast\" privilege on the server."
msgstr ""
-"Snelle beweging (via de \"speciale\" toets). \n"
-"Dit vereist het \"snelle\" recht op de server."
+"Snelle beweging (via de \"speciaal\" toets). \n"
+"Dit vereist het \"snel bewegen\" recht op de server."
#: src/settings_translation_file.cpp
msgid "Field of view"
@@ -3282,7 +3273,6 @@ msgid "Filmic tone mapping"
msgstr "Filmisch tone-mapping"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Filtered textures can blend RGB values with fully-transparent neighbors,\n"
"which PNG optimizers usually discard, sometimes resulting in a dark or\n"
@@ -3300,14 +3290,14 @@ msgid "Filtering"
msgstr "Filters"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "First of 4 2D noises that together define hill/mountain range height."
-msgstr "Eerste van 2 3D geluiden voor tunnels."
+msgstr ""
+"Eerste van vier 2D geluiden die samen de hoogte van een heuvel of berg "
+"bepalen."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "First of two 3D noises that together define tunnels."
-msgstr "Eerste van 2 3D geluiden voor tunnels."
+msgstr "Eerste van twee 3D geluiden voor tunnels."
#: src/settings_translation_file.cpp
msgid "Fixed map seed"
@@ -3318,39 +3308,32 @@ msgid "Fixed virtual joystick"
msgstr "Vaste virtuele joystick"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland density"
-msgstr "Drijvend gebergte dichtheid"
+msgstr "Drijvend gebergte densiteit"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland maximum Y"
-msgstr "Dungeon maximaal Y"
+msgstr "Maximaal Y-waarde van zwevende eilanden"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland minimum Y"
-msgstr "Dungeon minimaal Y"
+msgstr "Minimum Y-waarde van zwevende eilanden"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland noise"
-msgstr "Drijvend land basis ruis"
+msgstr "Zwevende eilanden geluid"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland taper exponent"
-msgstr "Drijvend gebergte dichtheid"
+msgstr "Zwevend eiland vormfactor"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland tapering distance"
-msgstr "Drijvend land basis ruis"
+msgstr "Zwevend eiland afschuinings-afstand"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland water level"
-msgstr "Waterniveau"
+msgstr "Waterniveau van zwevend eiland"
#: src/settings_translation_file.cpp
msgid "Fly key"
@@ -3365,9 +3348,8 @@ msgid "Fog"
msgstr "Mist"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Fog start"
-msgstr "Nevel aanvang"
+msgstr "Begin van de nevel of mist"
#: src/settings_translation_file.cpp
msgid "Fog toggle key"
@@ -3410,6 +3392,8 @@ msgid ""
"Font size of the recent chat text and chat prompt in point (pt).\n"
"Value 0 will use the default font size."
msgstr ""
+"Tekstgrootte van de chatgeschiedenis en chat prompt in punten (pt).\n"
+"Waarde 0 zal de standaard tekstgrootte gebruiken."
#: src/settings_translation_file.cpp
msgid ""
@@ -3442,23 +3426,19 @@ msgid "Formspec Full-Screen Background Opacity"
msgstr "Formspec Achtergronddekking op volledig scherm"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Formspec default background color (R,G,B)."
msgstr "Chat console achtergrondkleur (R,G,B)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Formspec default background opacity (between 0 and 255)."
msgstr ""
"Chat console achtergrond alphawaarde (ondoorzichtigheid, tussen 0 en 255)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Formspec full-screen background color (R,G,B)."
msgstr "Chat console achtergrondkleur (R,G,B)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Formspec full-screen background opacity (between 0 and 255)."
msgstr ""
"Chat console achtergrond alphawaarde (ondoorzichtigheid, tussen 0 en 255)."
@@ -3468,9 +3448,9 @@ msgid "Forward key"
msgstr "Vooruit toets"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Fourth of 4 2D noises that together define hill/mountain range height."
-msgstr "Eerste van 2 3D geluiden voor tunnels."
+msgstr ""
+"Vierde van vier 3D geluiden die de hoogte van heuvels en bergen bepalen."
#: src/settings_translation_file.cpp
msgid "Fractal type"
@@ -3481,7 +3461,6 @@ msgid "Fraction of the visible distance at which fog starts to be rendered"
msgstr "Fractie van de zichtbare afstand vanaf waar de nevel wordt getoond"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "FreeType fonts"
msgstr "Freetype lettertypes"
@@ -3541,15 +3520,10 @@ msgid "GUI scaling filter txr2img"
msgstr "GUI schalingsfilter: txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Genereer normaalmappen"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Algemene callbacks"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Global map generation attributes.\n"
"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
@@ -3589,19 +3563,16 @@ msgid "Gravity"
msgstr "Zwaartekracht"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Ground level"
msgstr "Grondniveau"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Ground noise"
-msgstr "Modder ruis"
+msgstr "Aarde/Modder geluid"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "HTTP mods"
-msgstr "HTTP Modules"
+msgstr "HTTP Mods"
#: src/settings_translation_file.cpp
msgid "HUD scale factor"
@@ -3612,20 +3583,18 @@ msgid "HUD toggle key"
msgstr "HUD aan/uitschakelen toets"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
-"Behandeling van verouderde lua api aanroepen:\n"
-"- legacy: (probeer) het oude gedrag na te bootsen\n"
-" (standaard voor een 'release' versie).\n"
-"- log: boots het oude gedrag na, en log een backtrace van de aanroep\n"
-" (standaard voor een 'debug' versie).\n"
-"- error: stop de server bij gebruik van een verouderde aanroep\n"
-" (aanbevolen voor mod ontwikkelaars)."
+"Behandeling van verouderde Lua API aanroepen:\n"
+"- none: log geen verouderde aanroepen\n"
+"- log: boots het oude gedrag na, en log een backtrace van de aanroep "
+"(standaard voor een 'debug' versie).\n"
+"- error: stop de server bij gebruik van een verouderde aanroep "
+"(aanbevolen voor mod ontwikkelaars)."
#: src/settings_translation_file.cpp
msgid ""
@@ -3642,69 +3611,58 @@ msgstr ""
"* Profileer de code die de statistieken ververst."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Heat blend noise"
-msgstr "Wereldgenerator landschapstemperatuurovergangen"
+msgstr "Geluid van landschapstemperatuurovergangen"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Heat noise"
-msgstr "Grot ruispatroon #1"
+msgstr "Hitte geluid"
#: src/settings_translation_file.cpp
msgid "Height component of the initial window size."
msgstr "Aanvangshoogte van het venster."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Height noise"
-msgstr "Rechter Windowstoets"
+msgstr "Hoogtegeluid"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Height select noise"
-msgstr "Hoogte-selectie ruisparameters"
+msgstr "Hoogte-selectie geluid"
#: src/settings_translation_file.cpp
msgid "High-precision FPU"
msgstr "Hoge-nauwkeurigheid FPU"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hill steepness"
msgstr "Steilheid van de heuvels"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hill threshold"
msgstr "Heuvel-grenswaarde"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hilliness1 noise"
-msgstr "Steilte ruis"
+msgstr "Heuvelsteilte ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hilliness2 noise"
-msgstr "Steilte ruis"
+msgstr "Heuvelachtigheid2 ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hilliness3 noise"
-msgstr "Steilte ruis"
+msgstr "Heuvelachtigheid3 ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hilliness4 noise"
-msgstr "Steilte ruis"
+msgstr "Heuvelachtigheid4 ruis"
#: src/settings_translation_file.cpp
msgid "Homepage of server, to be displayed in the serverlist."
msgstr "Home-pagina van de server. Wordt getoond in de serverlijst."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Horizontal acceleration in air when jumping or falling,\n"
"in nodes per second per second."
@@ -3713,7 +3671,6 @@ msgstr ""
"in knooppunten per seconde per seconde."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Horizontal and vertical acceleration in fast mode,\n"
"in nodes per second per second."
@@ -3722,7 +3679,6 @@ msgstr ""
"in knooppunten per seconde per seconde."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Horizontal and vertical acceleration on ground or when climbing,\n"
"in nodes per second per second."
@@ -3739,164 +3695,132 @@ msgid "Hotbar previous key"
msgstr "Toets voor vorig gebruikte tool"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 1 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 1 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 10 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 10 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 11 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 11 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 12 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 12 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 13 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 13 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 14 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 14 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 15 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 15 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 16 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 16 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 17 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 17 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 18 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 18 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 19 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 19 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 2 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 2 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 20 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 20 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 21 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 21 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 22 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 22 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 23 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 23 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 24 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 24 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 25 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 25 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 26 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 26 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 27 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 27 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 28 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 28 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 29 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 29 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 3 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 3 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 30 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 30 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 31 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 31 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 32 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 32 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 4 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 4 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 5 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 5 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 6 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 6 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 7 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 7 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 8 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 8 van gebruikte tools"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Hotbar slot 9 key"
-msgstr "Toets voor volgend gebruikte tool"
+msgstr "Toets voor slot 9 van gebruikte tools"
#: src/settings_translation_file.cpp
msgid "How deep to make rivers."
@@ -3954,13 +3878,12 @@ msgstr ""
"kracht verspild wordt zonder dat het toegevoegde waarde heeft."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"If disabled, \"special\" key is used to fly fast if both fly and fast mode "
"are\n"
"enabled."
msgstr ""
-"Indien uitgeschakeld, dan wordt met de \"gebruiken\" toets snel gevlogen "
+"Indien uitgeschakeld, dan wordt met de \"speciaal\" toets snel gevlogen "
"wanneer\n"
"de \"vliegen\" en de \"snel\" modus aanstaan."
@@ -3990,13 +3913,12 @@ msgstr ""
"Dit vereist het \"noclip\" voorrecht op de server."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"If enabled, \"special\" key instead of \"sneak\" key is used for climbing "
"down and\n"
"descending."
msgstr ""
-"Indien aangeschakeld, dan wordt de \"gebruiken\" toets gebruikt voor\n"
+"Indien aangeschakeld, dan wordt de \"speciaal\" toets gebruikt voor\n"
"omlaagklimmen en dalen i.p.v. de \"sluipen\" toets."
#: src/settings_translation_file.cpp
@@ -4091,15 +4013,13 @@ msgid "In-game chat console background color (R,G,B)."
msgstr "Chat console achtergrondkleur (R,G,B)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
msgstr ""
"Chat console achtergrond alphawaarde (ondoorzichtigheid, tussen 0 en 255)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Inc. volume key"
-msgstr "Console-toets"
+msgstr "Verhoog volume toets"
#: src/settings_translation_file.cpp
msgid "Initial vertical speed when jumping, in nodes per second."
@@ -4112,7 +4032,7 @@ msgid ""
msgstr ""
"Profileer 'builtin'.\n"
"Dit is normaal enkel nuttig voor gebruik door ontwikkelaars van\n"
-"het 'builtin'-gedeelte van de server"
+"het core/builtin-gedeelte van de server"
#: src/settings_translation_file.cpp
msgid "Instrument chatcommands on registration."
@@ -4171,23 +4091,20 @@ msgid "Invert vertical mouse movement."
msgstr "Vertikale muisbeweging omkeren."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Italic font path"
-msgstr "Vaste-breedte font pad"
+msgstr "Cursief font pad"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Italic monospace font path"
-msgstr "Vaste-breedte font pad"
+msgstr "Cursief vaste-breedte font pad"
#: src/settings_translation_file.cpp
msgid "Item entity TTL"
msgstr "Bestaansduur van objecten"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Iterations"
-msgstr "Per soort"
+msgstr "Iteraties"
#: src/settings_translation_file.cpp
msgid ""
@@ -4212,16 +4129,18 @@ msgid "Joystick button repetition interval"
msgstr "Joystick-knop herhalingsinterval"
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr "Joystick dode zone"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Joystick frustrum gevoeligheid"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Joystick type"
-msgstr "Stuurknuppel Type"
+msgstr "Joystick type"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Julia set only.\n"
"W component of hypercomplex constant.\n"
@@ -4229,60 +4148,61 @@ msgid ""
"Has no effect on 3D fractals.\n"
"Range roughly -2 to 2."
msgstr ""
-"Juliaverzameling: W-waarde van de 4D vorm. Heeft geen effect voor 3D-"
-"fractals.\n"
+"Alleen de Julia verzameling: \n"
+"W-waarde van de 4D vorm. \n"
+"Verandert de vorm van de fractal.\n"
+"Heeft geen effect voor 3D-fractals.\n"
"Bereik is ongeveer -2 tot 2."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Julia set only.\n"
"X component of hypercomplex constant.\n"
"Alters the shape of the fractal.\n"
"Range roughly -2 to 2."
msgstr ""
-"Juliaverzameling: X-waarde van de vorm.\n"
+"Allen de Julia verzameling: \n"
+"X-waarde van de 4D vorm.\n"
+"Verandert de vorm van de fractal.\n"
"Bereik is ongeveer -2 tot 2."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Julia set only.\n"
"Y component of hypercomplex constant.\n"
"Alters the shape of the fractal.\n"
"Range roughly -2 to 2."
msgstr ""
-"Juliaverzameling: Y-waarde van de vorm.\n"
+"Alleen de Julia verzameling: \n"
+"Y-waarde van de 4D vorm.\n"
+"Verandert de vorm van de fractal.\n"
"Bereik is ongeveer -2 tot 2."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Julia set only.\n"
"Z component of hypercomplex constant.\n"
"Alters the shape of the fractal.\n"
"Range roughly -2 to 2."
msgstr ""
-"Juliaverzameling: Z-waarde van de vorm.\n"
+"Alleen de Julia verzameling: \n"
+"Z-waarde van de 4D vorm.\n"
+"Verandert de vorm van de fractal.\n"
"Bereik is ongeveer -2 tot 2."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Julia w"
msgstr "Julia w"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Julia x"
msgstr "Julia x"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Julia y"
msgstr "Julia y"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Julia z"
msgstr "Julia z"
@@ -4316,6 +4236,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Toets voor graven.\n"
+"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4341,8 +4271,7 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Toets om het volume te verhogen.\n"
-"Zie\n"
-"http://irrlicht.sourceforge.net/docu/namespaceirr."
+"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
@@ -4366,7 +4295,6 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for moving the player backward.\n"
"Will also disable autoforward, when active.\n"
@@ -4374,6 +4302,7 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Toets om de speler achteruit te bewegen.\n"
+"Zal ook het automatisch voortbewegen deactiveren, indien actief.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4428,13 +4357,12 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for opening the chat window to type local commands.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het chat-window te openen om commando's te typen.\n"
+"Toets om het chat-window te openen om lokale commando's te typen.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4459,288 +4387,272 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Toets voor plaatsen.\n"
+"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 11de positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 12th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 12de positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 13th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 13de positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 14th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 14de positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 15th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 15de positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 16th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 16de positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 17th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 17de positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 18th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 18de positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 19th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 19de positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 20th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 20ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 21st hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 21ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 22nd hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 22ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 23rd hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 23ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 24th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 24ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 25th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 25ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 26th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 26ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 27th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 27ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 28th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 28ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 29th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 29ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 30th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 30ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 31st hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 32ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the 32nd hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 32ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the eighth hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 8ste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the fifth hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de vijfde positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the first hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de eerste positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the fourth hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het vorige item in de hotbar te selecteren.\n"
+"Toets om de vierde positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4755,13 +4667,12 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the ninth hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de negende positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4776,57 +4687,52 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the second hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de tweede positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the seventh hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de zevende positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the sixth hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de zesde positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the tenth hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de 10de positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for selecting the third hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het volgende item in de hotbar te selecteren.\n"
+"Toets om de derde positie in de hotbar te selecteren.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4865,7 +4771,6 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for toggling autoforward.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4926,13 +4831,12 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for toggling pitch move mode.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om 'noclip' modus aan/uit te schakelen.\n"
+"Toets om 'pitch move' modus aan/uit te schakelen.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4948,7 +4852,6 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for toggling the display of chat.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4969,7 +4872,6 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for toggling the display of fog.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4990,13 +4892,12 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Key for toggling the display of the large chat console.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Toets om het tonen van chatberichten aan/uit te schakelen.\n"
+"Toets om het tonen van de grote chat weergave aan/uit te schakelen.\n"
"Zie http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -5041,7 +4942,6 @@ msgid "Lake steepness"
msgstr "Steilheid van meren"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Lake threshold"
msgstr "Meren-grenswaarde"
@@ -5066,9 +4966,8 @@ msgid "Large cave proportion flooded"
msgstr "Grote grotaandeel overstroomd"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Large chat console key"
-msgstr "Console-toets"
+msgstr "Grote chatconsole-toets"
#: src/settings_translation_file.cpp
msgid "Leaves style"
@@ -5092,26 +4991,23 @@ msgid "Left key"
msgstr "Toets voor links"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Length of a server tick and the interval at which objects are generally "
"updated over\n"
"network."
msgstr ""
-"Lengte van server stap, en interval waarin objecten via het netwerk ververst "
-"worden."
+"Lengte van server stap, en interval waarin objecten via het netwerk\n"
+"ververst worden."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Length of liquid waves.\n"
"Requires waving liquids to be enabled."
msgstr ""
-"Bewegende bladeren staan aan indien 'true'.Dit vereist dat 'shaders' ook "
-"aanstaan."
+"Lengte van vloeibare golven.\n"
+"Dit vereist dat 'golfvloeistoffen' ook aanstaan."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Length of time between Active Block Modifier (ABM) execution cycles"
msgstr ""
"Tijdsinterval waarmee actieve blokken wijzigers (ABMs) geactiveerd worden"
@@ -5121,9 +5017,8 @@ msgid "Length of time between NodeTimer execution cycles"
msgstr "Tijdsinterval waarmee node timerd geactiveerd worden"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Length of time between active block management cycles"
-msgstr "Tijd tussen ABM cycli"
+msgstr "Tijd tussen actieve blok beheer(ABM) cycli"
#: src/settings_translation_file.cpp
msgid ""
@@ -5211,7 +5106,6 @@ msgid "Liquid queue purge time"
msgstr "Inkortingstijd vloeistof-wachtrij"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Liquid sinking"
msgstr "Zinksnelheid in vloeistof"
@@ -5247,20 +5141,14 @@ msgid "Lower Y limit of dungeons."
msgstr "Onderste Y-limiet van kerkers."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Lower Y limit of floatlands."
-msgstr "Onderste Y-limiet van kerkers."
+msgstr "Onderste Y-limiet van zwevende eilanden."
#: src/settings_translation_file.cpp
msgid "Main menu script"
msgstr "Hoofdmenu script"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Hoofdmenu script"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5277,6 +5165,14 @@ msgid "Makes all liquids opaque"
msgstr "Maak alle vloeistoffen ondoorzichtig"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr "Map compressie niveau voor het bewaren op de harde schijf"
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr "Map compressie niveau voor netwerk transfert"
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Wereld map"
@@ -5285,29 +5181,22 @@ msgid "Map generation attributes specific to Mapgen Carpathian."
msgstr "Wereldgeneratieattributen specifiek aan Mapgen Carpathian."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen Flat.\n"
"Occasional lakes and hills can be added to the flat world."
msgstr ""
"Wereldgenerator instellingen specifiek voor generator 'flat' (vlak).\n"
-"Verspreide meren en heuvels kunnen toegevoegd worden.\n"
-"Vlaggen die niet in de lijst van vlaggen staan, behouden hun standaard-"
-"waarde.\n"
-"Zet \"no\" voor een vlag om hem expliciet uit te zetten."
+"Verspreide meren en heuvels kunnen toegevoegd worden."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen Fractal.\n"
"'terrain' enables the generation of non-fractal terrain:\n"
"ocean, islands and underground."
msgstr ""
-"Wereldgenerator instellingen specifiek voor generator 'flat' (vlak).\n"
-"Verspreide meren en heuvels kunnen toegevoegd worden.\n"
-"Vlaggen die niet in de lijst van vlaggen staan, behouden hun standaard-"
-"waarde.\n"
-"Zet \"no\" voor een vlag om hem expliciet uit te zetten."
+"Wereldgenerator instellingen specifiek voor generator 'fractal'.\n"
+"\"terrein\" activeert de generatie van niet-fractale terreinen:\n"
+"oceanen, eilanden en ondergrondse ruimtes."
#: src/settings_translation_file.cpp
msgid ""
@@ -5330,7 +5219,6 @@ msgid "Map generation attributes specific to Mapgen v5."
msgstr "Wereldgenerator instellingen specifiek voor Mapgen V5."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen v6.\n"
"The 'snowbiomes' flag enables the new 5 biome system.\n"
@@ -5338,23 +5226,22 @@ msgid ""
"the 'jungles' flag is ignored."
msgstr ""
"Wereldgenerator instellingen specifiek voor generator v6.\n"
+"De sneeuwgebieden optie, activeert de nieuwe 5 vegetaties systeem.\n"
"Indien sneeuwgebieden aanstaan, dan worden oerwouden ook aangezet, en wordt\n"
-"de \"jungles\" vlag genegeerd.\n"
-"Vlaggen die niet in de lijst van vlaggen staan, behouden hun standaard-"
-"waarde.\n"
-"Zet \"no\" voor een vlag om hem expliciet uit te zetten."
+"de \"jungles\" optie genegeerd."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen v7.\n"
"'ridges': Rivers.\n"
"'floatlands': Floating land masses in the atmosphere.\n"
"'caverns': Giant caves deep underground."
msgstr ""
-"Kenmerken voor het genereren van kaarten die specifiek zijn voor Mapgen "
-"v7. \n"
-"'richels' maakt de rivieren mogelijk."
+"Wereldgenerator instellingen specifiek voor generator v7.\n"
+"'ridges': dit zijn uithollingen in het landschap die rivieren mogelijk "
+"maken.\n"
+"'floatlands': dit zijn zwevende landmassa's in de atmosfeer.\n"
+"'caverns': grote grotten diep onder de grond."
#: src/settings_translation_file.cpp
msgid "Map generation limit"
@@ -5369,12 +5256,10 @@ msgid "Mapblock limit"
msgstr "Max aantal wereldblokken"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapblock mesh generation delay"
-msgstr "Wereld-grens"
+msgstr "Mapblock maas generatie vertraging"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapblock mesh generator's MapBlock cache size in MB"
msgstr "Mapblock maas generator's MapBlock cache grootte in MB"
@@ -5383,73 +5268,60 @@ msgid "Mapblock unload timeout"
msgstr "Wereldblok vergeet-tijd"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Carpathian"
-msgstr "Fractal wereldgenerator"
+msgstr "wereldgenerator Karpaten"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Carpathian specific flags"
-msgstr "Vlaggen"
+msgstr "Wereldgenerator Karpaten specifieke opties"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Flat"
-msgstr "Vlakke Wereldgenerator"
+msgstr "Wereldgenerator vlak terrein"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Flat specific flags"
-msgstr "Vlaggen"
+msgstr "Wereldgenerator vlak terrein specifieke opties"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Fractal"
-msgstr "Fractal wereldgenerator"
+msgstr "Wereldgenerator Fractal"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Fractal specific flags"
-msgstr "Vlaggen"
+msgstr "Wereldgenerator Fractal specifieke opties"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V5"
msgstr "Wereldgenerator v5"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V5 specific flags"
-msgstr "Vlaggen"
+msgstr "Wereldgenerator v5 specifieke opties"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V6"
msgstr "Wereldgenerator v6"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V6 specific flags"
-msgstr "Mapgen v6 Vlaggen"
+msgstr "Wereldgenerator v6 specifieke opties"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V7"
msgstr "Wereldgenerator v7"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen V7 specific flags"
-msgstr "Mapgen v7 vlaggen"
+msgstr "Wereldgenerator v7 specifieke opties"
#: src/settings_translation_file.cpp
msgid "Mapgen Valleys"
msgstr "Valleien Wereldgenerator"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Valleys specific flags"
-msgstr "Vlaggen"
+msgstr "Weredgenerator valleien specifieke opties"
#: src/settings_translation_file.cpp
msgid "Mapgen debug"
@@ -5470,8 +5342,8 @@ msgstr "Maximale afstand voor te versturen blokken"
#: src/settings_translation_file.cpp
msgid "Max liquids processed per step."
msgstr ""
-"Maximaal aantal vloeistof-nodes te verwerken (dwz verspreiden)\n"
-"per server-stap."
+"Maximaal aantal vloeistof-nodes te verwerken (dwz verspreiden) per server-"
+"stap."
#: src/settings_translation_file.cpp
msgid "Max. clearobjects extra blocks"
@@ -5486,8 +5358,10 @@ msgid "Maximum FPS"
msgstr "Maximum FPS"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
-msgstr "Maximum FPS als het spel gepauzeerd is."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
+msgstr ""
+"Maximum FPS als het venster niet gefocussed is, of wanneer het spel "
+"gepauzeerd is."
#: src/settings_translation_file.cpp
msgid "Maximum forceloaded blocks"
@@ -5529,22 +5403,31 @@ msgid "Maximum number of blocks that can be queued for loading."
msgstr "Maximaal aantal blokken in de wachtrij voor laden/genereren."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Maximum number of blocks to be queued that are to be generated.\n"
"This limit is enforced per player."
msgstr ""
"Maximaal aantal blokken in de wachtrij om gegenereerd te worden.\n"
-"Laat leeg om een geschikt aantal automatisch te laten berekenen."
+"Deze limiet is opgelegd per speler."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Maximum number of blocks to be queued that are to be loaded from file.\n"
"This limit is enforced per player."
msgstr ""
-"Maximaal aantal blokken in de wachtrij om van disk geladen te worden.\n"
-"Laat leeg om een geschikt aantal automatisch te laten berekenen."
+"Maximaal aantal blokken in de wachtrij om van een bestand/harde schijf "
+"geladen te worden.\n"
+"Deze limiet is opgelegd per speler."
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+"Maximaal aantal gelijktijdige downloads. Downloads die deze limiet "
+"overschrijden zullen in de wachtrij geplaats worden.\n"
+"Deze instelling zou lager moeten zijn dan curl_parallel_limit."
#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
@@ -5647,7 +5530,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Minimal level of logging to be written to chat."
-msgstr ""
+msgstr "Minimaal aantal loggegevens in de chat weergeven."
#: src/settings_translation_file.cpp
msgid "Minimap"
@@ -5670,9 +5553,8 @@ msgid "Minimum limit of random number of small caves per mapchunk."
msgstr "Minimale limiet van willekeurig aantal kleine grotten per mapchunk."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Minimum texture size"
-msgstr "Minimale textuur-grootte voor filters"
+msgstr "Minimale textuur-grootte"
#: src/settings_translation_file.cpp
msgid "Mipmapping"
@@ -5695,18 +5577,16 @@ msgid "Monospace font size"
msgstr "Vaste-breedte font grootte"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mountain height noise"
-msgstr "Heuvel-hoogte ruisparameters"
+msgstr "Berg-hoogte ruis"
#: src/settings_translation_file.cpp
msgid "Mountain noise"
msgstr "Bergen ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mountain variation noise"
-msgstr "Heuvel-hoogte ruisparameters"
+msgstr "Berg-hoogte ruisvariatie"
#: src/settings_translation_file.cpp
msgid "Mountain zero level"
@@ -5815,19 +5695,10 @@ msgid "Noises"
msgstr "Ruis"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Normal-maps bemonstering"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Sterkte van normal-maps"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "Aantal 'emerge' threads"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Number of emerge threads to use.\n"
"Value 0:\n"
@@ -5872,10 +5743,6 @@ msgstr ""
"transactie), en geheugengebruik anderzijds (4096 = ca. 100MB)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "Aantal parallax occlusie iteraties."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Online inhoud repository"
@@ -5907,36 +5774,6 @@ msgstr ""
"een formspec geopend is."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-"Algemene afwijking van het parallax occlusie effect. Normaal: schaal/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Algemene schaal van het parallax occlusie effect."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Parallax occlusie"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Parallax occlusie afwijking"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Parallax occlusie iteraties"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Parallax occlusie modus"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "Parallax occlusie schaal"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5957,6 +5794,9 @@ msgid ""
"Path to save screenshots at. Can be an absolute or relative path.\n"
"The folder will be created if it doesn't already exist."
msgstr ""
+"Pad waar screenshots moeten bewaard worden. Kan een absoluut of relatief pad "
+"zijn.\n"
+"De map zal aangemaakt worden als ze nog niet bestaat."
#: src/settings_translation_file.cpp
msgid ""
@@ -6007,26 +5847,33 @@ msgstr "Pauzeer als venster focus verliest"
#: src/settings_translation_file.cpp
msgid "Per-player limit of queued blocks load from disk"
msgstr ""
+"Per speler limiet van gevraagde blokken om te laden van de harde schijf"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Per-player limit of queued blocks to generate"
-msgstr "Emerge-wachtrij voor genereren"
+msgstr "Per speler limiet van de \"te genereren blokken\"-wachtrij"
#: src/settings_translation_file.cpp
msgid "Physics"
msgstr "Fysica"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Pitch move key"
-msgstr "Vliegen toets"
+msgstr "Vrij vliegen toets"
#: src/settings_translation_file.cpp
msgid "Pitch move mode"
msgstr "Pitch beweeg modus"
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr "Plaats toets"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr "Plaats (Rechts-klik) herhalingsinterval"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -6043,9 +5890,8 @@ msgid "Player transfer distance"
msgstr "Speler verplaatsingsafstand"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Player versus player"
-msgstr "Speler-gevechten"
+msgstr "Speler tegen speler"
#: src/settings_translation_file.cpp
msgid ""
@@ -6070,13 +5916,12 @@ msgstr ""
"Voorkom dat mods onveilige commando's uitvoeren, zoals shell commando's."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Print the engine's profiling data in regular intervals (in seconds).\n"
"0 = disable. Useful for developers."
msgstr ""
-"Interval waarmee profiler-gegevens geprint worden. 0 = uitzetten. Dit is "
-"nuttig voor ontwikkelaars."
+"Interval waarmee profiler-gegevens geprint worden. \n"
+"0 = uitzetten. Dit is nuttig voor ontwikkelaars."
#: src/settings_translation_file.cpp
msgid "Privileges that players with basic_privs can grant"
@@ -6096,7 +5941,7 @@ msgstr "Profileren"
#: src/settings_translation_file.cpp
msgid "Prometheus listener address"
-msgstr ""
+msgstr "Adres om te luisteren naar Prometheus"
#: src/settings_translation_file.cpp
msgid ""
@@ -6105,6 +5950,10 @@ msgid ""
"enable metrics listener for Prometheus on that address.\n"
"Metrics can be fetch on http://127.0.0.1:30000/metrics"
msgstr ""
+"Adres om te luisteren naar Prometheus.\n"
+"Als Minetest is gecompileerd met de optie ENABLE_PROMETHEUS,\n"
+"zal dit adres gebruikt worden om naar Prometheus te luisteren.\n"
+"Meetwaarden zullen kunnen bekeken worden op http://127.0.0.1:30000/metrics"
#: src/settings_translation_file.cpp
msgid "Proportion of large caves that contain liquid."
@@ -6136,9 +5985,8 @@ msgid "Recent Chat Messages"
msgstr "Recente chatberichten"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Regular font path"
-msgstr "Rapport pad"
+msgstr "Standaard lettertype pad"
#: src/settings_translation_file.cpp
msgid "Remote media"
@@ -6192,34 +6040,26 @@ msgstr ""
"READ_PLAYERINFO: 32 (deactiveer get_player_names call client-side)"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Ridge mountain spread noise"
-msgstr "Onderwater richel ruis"
+msgstr "\"Berg richel verspreiding\" ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Ridge noise"
-msgstr "Rivier ruis parameters"
+msgstr "Bergtoppen ruis"
#: src/settings_translation_file.cpp
msgid "Ridge underwater noise"
msgstr "Onderwater richel ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Ridged mountain size noise"
-msgstr "Onderwater richel ruis"
+msgstr "Bergtoppen grootte ruis"
#: src/settings_translation_file.cpp
msgid "Right key"
msgstr "Toets voor rechts"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Rechts-klik herhalingsinterval"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River channel depth"
msgstr "Diepte van rivieren"
@@ -6228,24 +6068,20 @@ msgid "River channel width"
msgstr "Breedte van rivieren"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River depth"
msgstr "Diepte van rivieren"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River noise"
-msgstr "Rivier ruis parameters"
+msgstr "Rivier ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River size"
msgstr "Grootte van rivieren"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River valley width"
-msgstr "Diepte van rivieren"
+msgstr "Breedte van vallei waar een rivier stroomt"
#: src/settings_translation_file.cpp
msgid "Rollback recording"
@@ -6284,7 +6120,6 @@ msgid "Saving map received from server"
msgstr "Lokaal bewaren van de server-wereld"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Scale GUI by a user specified value.\n"
"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n"
@@ -6292,7 +6127,7 @@ msgid ""
"pixels when scaling down, at the cost of blurring some\n"
"edge pixels when images are scaled by non-integer sizes."
msgstr ""
-"Schaal de GUI met een bepaalde factor.\n"
+"Schaal de GUI met een door de gebruiker bepaalde factor.\n"
"Er wordt een dichtste-buur-anti-alias filter gebruikt om de GUI te schalen.\n"
"Bij verkleinen worden sommige randen minder duidelijk, en worden\n"
"pixels samengevoegd. Pixels bij randen kunnen vager worden als\n"
@@ -6333,21 +6168,19 @@ msgid "Seabed noise"
msgstr "Zeebodem ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Second of 4 2D noises that together define hill/mountain range height."
-msgstr "Tweede van 2 3d geluiden voor tunnels."
+msgstr ""
+"Tweede van vier 2D geluiden die samen een heuvel/bergketen grootte bepalen."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Second of two 3D noises that together define tunnels."
-msgstr "Tweede van 2 3d geluiden voor tunnels."
+msgstr "Tweede van twee 3D geluiden die samen tunnels definiëren."
#: src/settings_translation_file.cpp
msgid "Security"
msgstr "Veiligheid"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
msgstr "Zie http://www.sqlite.org/pragma.html#pragma_synchronous"
@@ -6364,7 +6197,6 @@ msgid "Selection box width"
msgstr "Breedte van selectie-randen"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Selects one of 18 fractal types.\n"
"1 = 4D \"Roundy\" Mandelbrot set.\n"
@@ -6386,7 +6218,7 @@ msgid ""
"17 = 4D \"Mandelbulb\" Mandelbrot set.\n"
"18 = 4D \"Mandelbulb\" Julia set."
msgstr ""
-"Keuze uit 18 fractals op basis van 9 formules.\n"
+"Selecteert één van de 18 fractaal types:\n"
"1 = 4D \"Roundy\" mandelbrot verzameling.\n"
"2 = 4D \"Roundy\" julia verzameling.\n"
"3 = 4D \"Squarry\" mandelbrot verzameling.\n"
@@ -6455,37 +6287,34 @@ msgid "Set the maximum character length of a chat message sent by clients."
msgstr "Maximaal aantal tekens voor chatberichten van gebruikers instellen."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Set to true to enable waving leaves.\n"
"Requires shaders to be enabled."
msgstr ""
-"Bewegende bladeren staan aan indien 'true'.Dit vereist dat 'shaders' ook "
-"aanstaan."
+"Bewegende bladeren staan aan indien 'true'.\n"
+"Dit vereist dat 'shaders' ook aanstaan."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Set to true to enable waving liquids (like water).\n"
"Requires shaders to be enabled."
msgstr ""
-"Golvend water staat aan indien 'true'Dit vereist dat 'shaders' ook aanstaan."
+"Golvend water staat aan indien 'true'.\n"
+"Dit vereist dat 'shaders' ook aanstaan."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Set to true to enable waving plants.\n"
"Requires shaders to be enabled."
msgstr ""
-"Bewegende planten staan aan indien 'true'Dit vereist dat 'shaders' ook "
-"aanstaan."
+"Bewegende planten staan aan indien 'true'.\n"
+"Dit vereist dat 'shaders' ook aanstaan."
#: src/settings_translation_file.cpp
msgid "Shader path"
msgstr "Shader pad"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Shaders allow advanced visual effects and may increase performance on some "
"video\n"
@@ -6497,18 +6326,20 @@ msgstr ""
"Alleen mogelijk met OpenGL."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
"drawn."
-msgstr "Fontschaduw afstand. Indien 0, dan wordt geen schaduw getekend."
+msgstr ""
+"Fontschaduw afstand (in beeldpunten). Indien 0, dan wordt geen schaduw "
+"getekend."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
"be drawn."
-msgstr "Fontschaduw afstand. Indien 0, dan wordt geen schaduw getekend."
+msgstr ""
+"Fontschaduw afstand van het standaard lettertype (in beeldpunten). Indien 0, "
+"dan wordt geen schaduw getekend."
#: src/settings_translation_file.cpp
msgid "Shape of the minimap. Enabled = round, disabled = square."
@@ -6523,6 +6354,19 @@ msgid "Show entity selection boxes"
msgstr "Toon selectie-box voor objecten"
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Toon selectievakjes voor entiteiten\n"
+"Een herstart is noodzakelijk om de wijziging te activeren."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Standaard vetgedrukt"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Afsluitbericht van server"
@@ -6555,9 +6399,8 @@ msgstr ""
"wordt gekopieerd waardoor flikkeren verminderd."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Slice w"
-msgstr "Slice w"
+msgstr "Doorsnede w"
#: src/settings_translation_file.cpp
msgid "Slope and fill work together to modify the heights."
@@ -6618,14 +6461,12 @@ msgid "Sound"
msgstr "Geluid"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Special key"
-msgstr "Sluipen toets"
+msgstr "Speciaal ( Aux ) toets"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Special key for climbing/descending"
-msgstr "Gebruik de 'gebruiken'-toets voor klimmen en dalen"
+msgstr "Gebruik de 'speciaal'-toets voor klimmen en dalen"
#: src/settings_translation_file.cpp
msgid ""
@@ -6646,6 +6487,9 @@ msgid ""
"Note that mods or games may explicitly set a stack for certain (or all) "
"items."
msgstr ""
+"Bepaalt de standaard stack grootte van nodes, items en tools.\n"
+"Merk op dat mods of spellen expliciet een stack kunnen maken voor sommige "
+"(of alle) items."
#: src/settings_translation_file.cpp
msgid ""
@@ -6666,23 +6510,16 @@ msgid "Steepness noise"
msgstr "Steilte ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Step mountain size noise"
-msgstr "Bergen ruis"
+msgstr "Trap-Bergen grootte ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Step mountain spread noise"
-msgstr "Bergen ruis"
+msgstr "Trap-Bergen verspreiding ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Strength of 3D mode parallax."
-msgstr "Sterkte van de parallax."
-
-#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Sterkte van de normal-maps."
+msgstr "Sterkte van de 3D modus parallax."
#: src/settings_translation_file.cpp
msgid ""
@@ -6715,6 +6552,22 @@ msgid ""
"server-intensive extreme water flow and to avoid vast flooding of the\n"
"world surface below."
msgstr ""
+"Oppervlaktehoogte van optioneel water, geplaatst op een vaste laag van een "
+"zwevend eiland.\n"
+"Water is standaard uitgeschakeld en zal enkel gemaakt worden als deze waarde "
+"is gezet op \n"
+"een waarde groter dan 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (het "
+"begin van de\n"
+"bovenste afschuining).\n"
+"***WAARSCHUWING, MOGELIJK GEVAAR VOOR WERELDEN EN SERVER PERFORMANTIE***:\n"
+"Als er water geplaatst wordt op zwevende eilanden, dan moet dit "
+"geconfigureerd en getest worden,\n"
+"dat het een vaste laag betreft met de instelling 'mgv7_floatland_density' op "
+"2.0 (of andere waarde\n"
+"afhankelijk van de waarde 'mgv7_np_floatland'), om te vermijden \n"
+"dat er server-intensieve water verplaatsingen zijn en om ervoor te zorgen "
+"dat het wereld oppervlak \n"
+"eronder niet overstroomt."
#: src/settings_translation_file.cpp
msgid "Synchronous SQLite"
@@ -6725,29 +6578,24 @@ msgid "Temperature variation for biomes."
msgstr "Temperatuurvariatie voor biomen."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain alternative noise"
-msgstr "Terrain_alt ruis"
+msgstr "Terrein alteratieve ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain base noise"
-msgstr "Terrein hoogte"
+msgstr "Terrein basis ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain height"
msgstr "Terrein hoogte"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain higher noise"
-msgstr "Terrein hoogte"
+msgstr "Terrein hoger ruis"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain noise"
-msgstr "Terrein hoogte"
+msgstr "Terrein ruis"
#: src/settings_translation_file.cpp
msgid ""
@@ -6802,6 +6650,10 @@ msgid "The URL for the content repository"
msgstr "De URL voor de inhoudsrepository"
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr "De dode zone van de stuurknuppel die u gebruikt"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6857,7 +6709,6 @@ msgstr ""
"van beschikbare voorrechten op de server."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"The radius of the volume of blocks around every player that is subject to "
"the\n"
@@ -6873,7 +6724,7 @@ msgstr ""
"In actieve blokken worden objecten geladen en ABM's uitgevoerd. \n"
"Dit is ook het minimumbereik waarin actieve objecten (mobs) worden "
"onderhouden. \n"
-"Dit moet samen met active_object_range worden geconfigureerd."
+"Dit moet samen met active_object_send_range_blocks worden geconfigureerd."
#: src/settings_translation_file.cpp
msgid ""
@@ -6881,15 +6732,16 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
"De rendering back-end voor Irrlicht. \n"
"Na het wijzigen hiervan is een herstart vereist. \n"
"Opmerking: op Android, blijf bij OGLES1 als je het niet zeker weet! Anders "
"start de app mogelijk niet. \n"
-"Op andere platforms wordt OpenGL aanbevolen en het is de enige driver met \n"
-"shader-ondersteuning momenteel."
+"Op andere platformen wordt OpenGL aanbevolen.\n"
+"OpenGL (alleen op desktop pc) en OGLES2 (experimenteel), zijn de enige "
+"drivers met shader-ondersteuning momenteel"
#: src/settings_translation_file.cpp
msgid ""
@@ -6924,20 +6776,27 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+"Het tijdsbudget dat toegestaan wordt aan ABM's om elke stap uit te voeren\n"
+"(als een deel van het ABM interval)"
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
-"De tijd in seconden tussen herhaalde klikken als de joystick-knop ingedrukt "
-"gehouden wordt."
+"De tijd in seconden tussen herhaalde klikken als de joystick-knop\n"
+" ingedrukt gehouden wordt."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
-"De tijd in seconden tussen herhaalde rechts-klikken als de rechter muisknop\n"
+"De tijd in seconden tussen herhaalde rechts-klikken als de plaats knop "
+"(rechter muisknop)\n"
"ingedrukt gehouden wordt."
#: src/settings_translation_file.cpp
@@ -6957,9 +6816,10 @@ msgstr ""
"'altitude_dry' is ingeschakeld."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Third of 4 2D noises that together define hill/mountain range height."
-msgstr "Eerste van 2 3D geluiden voor tunnels."
+msgstr ""
+"Derde van vier 2D geluiden die samen voor heuvel/bergketens hoogte "
+"definiëren."
#: src/settings_translation_file.cpp
msgid ""
@@ -7009,9 +6869,8 @@ msgid "Tooltip delay"
msgstr "Tooltip tijdsduur"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Touch screen threshold"
-msgstr "Strand geluid grenswaarde"
+msgstr "Gevoeligheid van het aanraakscherm"
#: src/settings_translation_file.cpp
msgid "Trees noise"
@@ -7022,14 +6881,13 @@ msgid "Trilinear filtering"
msgstr "Tri-Lineare Filtering"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"True = 256\n"
"False = 128\n"
"Usable to make minimap smoother on slower machines."
msgstr ""
-"Aan = 256\n"
-"Uit = 128\n"
+"True = 256\n"
+"False = 128\n"
"Gebruik dit om de mini-kaart sneller te maken op langzamere machines."
#: src/settings_translation_file.cpp
@@ -7045,7 +6903,6 @@ msgid "Undersampling"
msgstr "Rendering"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Undersampling is similar to using a lower screen resolution, but it applies\n"
"to the game world only, keeping the GUI intact.\n"
@@ -7056,8 +6913,9 @@ msgstr ""
"Onderbemonstering is gelijkaardig aan het gebruik van een lagere "
"schermresolutie,\n"
"maar het behelst enkel de spel wereld. De GUI resolutie blijft intact.\n"
-"Dit zou een gewichtige prestatie verbetering moeten geven ten koste van een "
-"verminderde detailweergave."
+"Dit zou een duidelijke prestatie verbetering moeten geven ten koste van een "
+"verminderde detailweergave.\n"
+"Hogere waarden resulteren in een minder gedetailleerd beeld."
#: src/settings_translation_file.cpp
msgid "Unlimited player transfer distance"
@@ -7072,9 +6930,8 @@ msgid "Upper Y limit of dungeons."
msgstr "Bovenste Y-limiet van kerkers."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Upper Y limit of floatlands."
-msgstr "Bovenste Y-limiet van kerkers."
+msgstr "Bovenste Y-limiet van zwevende eilanden."
#: src/settings_translation_file.cpp
msgid "Use 3D cloud look instead of flat."
@@ -7104,6 +6961,25 @@ msgstr ""
"Gamma-correcte verkleining wordt niet ondersteund."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+"Gebruik multi-sample anti-aliasing (MSAA) om de randen van de blokken glad "
+"te maken.\n"
+"Dit algoritme maakt de 3D viewport glad en houdt intussen het beeld scherp,\n"
+"zonder de binnenkant van de texturen te wijzigen\n"
+"(wat erg opvalt bij transparante texturen)\n"
+"Zichtbare ruimtes verschijnen tussen nodes als de shaders uitgezet zijn.\n"
+"Als de waarde op 0 staat, is MSAA uitgeschakeld.\n"
+"Een herstart is nodig om deze wijziging te laten functioneren."
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "Gebruik tri-lineaire filtering om texturen te schalen."
@@ -7112,27 +6988,22 @@ msgid "VBO"
msgstr "VBO"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "VSync"
-msgstr "V-Sync"
+msgstr "Vertikale synchronisatie (VSync)"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Valley depth"
msgstr "Vallei-diepte"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Valley fill"
msgstr "Vallei-vulling"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Valley profile"
msgstr "Vallei-profiel"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Valley slope"
msgstr "Vallei-helling"
@@ -7169,9 +7040,8 @@ msgstr ""
"Definieert de 'persistence' waarde voor terrain_base en terrain_alt ruis."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Varies steepness of cliffs."
-msgstr "Bepaalt steilheid/hoogte van heuvels."
+msgstr "Bepaalt steilheid/hoogte van kliffen."
#: src/settings_translation_file.cpp
msgid "Vertical climbing speed, in nodes per second."
@@ -7186,9 +7056,8 @@ msgid "Video driver"
msgstr "Video driver"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "View bobbing factor"
-msgstr "Loopbeweging"
+msgstr "Loopbeweging factor"
#: src/settings_translation_file.cpp
msgid "View distance in nodes."
@@ -7219,16 +7088,14 @@ msgid "Volume"
msgstr "Geluidsniveau"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Volume of all sounds.\n"
"Requires the sound system to be enabled."
msgstr ""
-"Schakelt parallax occlusie mappen in.\n"
-"Dit vereist dat shaders ook aanstaan."
+"Volume van alle geluiden.\n"
+"Dit vereist dat het geluidssysteem aanstaat."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"W coordinate of the generated 3D slice of a 4D fractal.\n"
"Determines which 3D slice of the 4D shape is generated.\n"
@@ -7238,6 +7105,7 @@ msgid ""
msgstr ""
"W-coördinaat van de 3D doorsnede van de 4D vorm.\n"
"Bepaalt welke 3D-doorsnelde van de 4D-vorm gegenereerd wordt.\n"
+"Verandert de vorm van de fractal.\n"
"Heeft geen effect voor 3D-fractals.\n"
"Bereik is ongeveer -2 tot 2."
@@ -7270,24 +7138,20 @@ msgid "Waving leaves"
msgstr "Bewegende bladeren"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids"
-msgstr "Bewegende nodes"
+msgstr "Bewegende vloeistoffen"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave height"
-msgstr "Golfhoogte van water"
+msgstr "Golfhoogte van water/vloeistoffen"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave speed"
-msgstr "Golfsnelheid van water"
+msgstr "Golfsnelheid van water/vloeistoffen"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wavelength"
-msgstr "Golflengte van water"
+msgstr "Golflengte van water/vloeistoffen"
#: src/settings_translation_file.cpp
msgid "Waving plants"
@@ -7318,7 +7182,6 @@ msgstr ""
"terug naar het werkgeheugen."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
"can be blurred, so automatically upscale them with nearest-neighbor\n"
@@ -7340,15 +7203,27 @@ msgstr ""
"machten van 2 te gebruiken. Een waarde groter dan 1 heeft wellicht geen "
"zichtbaar\n"
"effect indien bi-lineaire, tri-lineaire of anisotropische filtering niet aan "
-"staan."
+"staan.\n"
+"Dit wordt ook gebruikt als basis node textuurgrootte voor wereld-"
+"gealigneerde\n"
+"automatische textuurschaling."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Whether FreeType fonts are used, requires FreeType support to be compiled "
"in.\n"
"If disabled, bitmap and XML vectors fonts are used instead."
-msgstr "Gebruik freetype fonts. Dit vereist dat freetype ingecompileerd is."
+msgstr ""
+"Gebruik freetype lettertypes, dit vereist dat freetype lettertype "
+"ondersteuning ingecompileerd is.\n"
+"Indien uitgeschakeld, zullen bitmap en XML verctor lettertypes gebruikt "
+"worden."
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
@@ -7380,19 +7255,18 @@ msgstr ""
"Maak het einde van het zichtbereik mistig, zodat het einde niet opvalt."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Whether to mute sounds. You can unmute sounds at any time, unless the\n"
"sound system is disabled (enable_sound=false).\n"
"In-game, you can toggle the mute state with the mute key or by using the\n"
"pause menu."
msgstr ""
-"Of geluiden moeten worden gedempt. U kunt het dempen van geluiden op elk "
-"moment opheffen, tenzij de \n"
+"Of geluiden moeten worden gedempt. Je kan het dempen van geluiden op elk "
+"moment opheffen, tenzij het \n"
"geluidssysteem is uitgeschakeld (enable_sound = false). \n"
-"In de game kun je de mute-status wijzigen met de mute-toets of door de te "
-"gebruiken \n"
-"pauzemenu."
+"Tijdens het spel kan je de mute-status wijzigen met de mute-toets of door "
+"het pauzemenu \n"
+"te gebruiken."
#: src/settings_translation_file.cpp
msgid ""
@@ -7406,9 +7280,10 @@ msgid "Width component of the initial window size."
msgstr "Aanvangsbreedte van het venster."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Width of the selection box lines around nodes."
-msgstr "Breedte van de lijnen om een geselecteerde node."
+msgstr ""
+"Breedte van de selectie-lijnen die getekend worden rond een geselecteerde "
+"node."
#: src/settings_translation_file.cpp
msgid ""
@@ -7430,9 +7305,8 @@ msgstr ""
"gestart."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "World start time"
-msgstr "Wereld naam"
+msgstr "Wereld starttijd"
#: src/settings_translation_file.cpp
msgid ""
@@ -7469,9 +7343,8 @@ msgstr ""
"bergen verticaal te verschuiven."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Y of upper limit of large caves."
-msgstr "Minimale diepte van grote semi-willekeurige grotten."
+msgstr "bovenste limiet Y-waarde van grote grotten."
#: src/settings_translation_file.cpp
msgid "Y-distance over which caverns expand to full size."
@@ -7484,6 +7357,13 @@ msgid ""
"For a solid floatland layer, this controls the height of hills/mountains.\n"
"Must be less than or equal to half the distance between the Y limits."
msgstr ""
+"Y-afstand over dewelke de zwevende eilanden veranderen van volledige "
+"densiteit naar niets.\n"
+"De verandering start op deze afstand van de Y limiet.\n"
+"Voor een solide zwevend eiland, bepaalt deze waarde de hoogte van de heuvels/"
+"bergen.\n"
+"Deze waarde moet lager zijn of gelijk aan de helft van de afstand tussen de "
+"Y limieten."
#: src/settings_translation_file.cpp
msgid "Y-level of average terrain surface."
@@ -7494,20 +7374,48 @@ msgid "Y-level of cavern upper limit."
msgstr "Y-niveau van hoogste limiet voor grotten."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Y-level of higher terrain that creates cliffs."
-msgstr "Y-niveau van lager terrein en vijver bodems."
+msgstr "Y-niveau van hoger terrein dat kliffen genereert."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Y-level of lower terrain and seabed."
-msgstr "Y-niveau van lager terrein en vijver bodems."
+msgstr "Y-niveau van lager terrein en vijver/zee bodems."
#: src/settings_translation_file.cpp
msgid "Y-level of seabed."
msgstr "Y-niveau van zee bodem."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Zlib compressie niveau om mapblokken op de harde schijf te bewaren.\n"
+"-1: Zlib's standaard compressie niveau\n"
+"0: geen compressie, snelst\n"
+"9: maximale compressie, traagst\n"
+"(niveau's 1 tot 3 gebruiken Zlib's snelle methode, 4 tot 9 gebruiken de "
+"normale methode)"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Zlib compressie niveau om mapblokken te versturen naar de client.\n"
+"-1: Zlib's standaard compressie niveau\n"
+"0: geen compressie, snelst\n"
+"9: maximale compressie, traagst\n"
+"(niveau's 1 tot 3 gebruiken Zlib's snelle methode, 4 tot 9 gebruiken de "
+"normale methode)"
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "timeout voor cURL download"
@@ -7519,122 +7427,283 @@ msgstr "Maximaal parallellisme in cURL"
msgid "cURL timeout"
msgstr "cURL time-out"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Cinematic modus aan/uit"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = parallax occlusie met helling-informatie (sneller).\n"
+#~ "1 = 'reliëf mapping' (lanzamer, nauwkeuriger)."
#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "Selecteer Modbestand:"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "Aangepaste gamma voor de licht-tabellen. Lagere waardes zijn helderder.\n"
+#~ "Deze instelling wordt enkel gebruikt door de cliënt, en wordt genegeerd "
+#~ "door de server."
-#, fuzzy
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Minimale diepte van grote semi-willekeurige grotten."
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Weet je zeker dat je jouw wereld wilt resetten?"
-#~ msgid "Waving Water"
-#~ msgstr "Golvend water"
+#~ msgid "Back"
+#~ msgstr "Terug"
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Y-niveau tot waar de schaduw van drijvend land reikt."
+#~ msgid "Bump Mapping"
+#~ msgstr "Bumpmapping"
-#~ msgid "Y-level of floatland midpoint and lake surface."
-#~ msgstr "Y-niveau van drijvend land middelpunt en vijver oppervlak."
+#~ msgid "Bumpmapping"
+#~ msgstr "Bumpmapping"
-#~ msgid "Waving water"
-#~ msgstr "Golvend water"
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "Verandert de gebruikersinterface van het hoofdmenu: \n"
+#~ "- Volledig: meerdere werelden voor één speler, spelkeuze, de kiezer van "
+#~ "textuurpak, etc. \n"
+#~ "- Eenvoudig: één wereld voor één speler, geen game- of texture pack-"
+#~ "kiezers. Kan zijn \n"
+#~ "noodzakelijk voor kleinere schermen."
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgid "Config mods"
+#~ msgstr "Mods configureren"
+
+#~ msgid "Configure"
+#~ msgstr "Instellingen"
+
+#, fuzzy
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
#~ msgstr ""
-#~ "Variatie van de heuvel hoogte en vijver diepte op drijvend egaal terrein."
+#~ "Bepaalt de dichtheid van drijvende bergen.\n"
+#~ "Dit wordt bijgevoegd bij de 'np_mountain' ruis waarde."
+
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Bepaalt breedte van tunnels, een kleinere waarde maakt bredere tunnels."
+
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Draadkruis-kleur (R,G,B)."
#, fuzzy
+#~ msgid "Darkness sharpness"
+#~ msgstr "Steilheid Van de meren"
+
#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
#~ msgstr ""
-#~ "Typisch maximum hoogte, boven en onder het middelpunt van drijvend berg "
-#~ "terrein."
+#~ "Bepaalt gebieden van drijvend glijdend terrein.\n"
+#~ "Drijvend glijdend terrein ontstaat wanneer ruis > 0."
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Dit font wordt gebruikt voor bepaalde talen."
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Bemonsterings-interval voor texturen.\n"
+#~ "Een hogere waarde geeft vloeiender normal maps."
-#~ msgid "Shadow limit"
-#~ msgstr "Schaduw limiet"
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "$1 wordt gedownload, een ogenblik geduld alstublieft..."
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "Pad van TrueType font of bitmap."
+#~ msgid "Enable VBO"
+#~ msgstr "VBO aanzetten"
+
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "Bumpmapping aanzetten voor texturen. Normalmaps moeten al in de texture "
+#~ "pack zitten\n"
+#~ "of ze moeten automatisch gegenereerd worden.\n"
+#~ "Schaduwen moeten aanstaan."
+
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Schakelt filmisch tone-mapping in"
+
+#~ msgid ""
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
+#~ msgstr ""
+#~ "Schakelt het genereren van normal maps in (emboss effect).\n"
+#~ "Dit vereist dat bumpmapping ook aan staat."
+
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "Schakelt parallax occlusie mappen in.\n"
+#~ "Dit vereist dat shaders ook aanstaan."
+
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
+#~ msgstr ""
+#~ "Experimentele optie. Kan bij een waarde groter dan 0 zichtbare\n"
+#~ "ruimtes tussen blokken tot gevolg hebben."
+
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS in het pauze-menu"
+
+#~ msgid "Floatland base height noise"
+#~ msgstr "Drijvend land basis hoogte ruis"
+
+#~ msgid "Floatland mountain height"
+#~ msgstr "Drijvend gebergte hoogte"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Fontschaduw alphawaarde (ondoorzichtigheid, tussen 0 en 255)."
#, fuzzy
-#~ msgid "Lava depth"
-#~ msgstr "Diepte van grote grotten"
+#~ msgid "Gamma"
+#~ msgstr "Gamma"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Genereer normale werelden"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Genereer normaalmappen"
#~ msgid "IPv6 support."
#~ msgstr "IPv6 ondersteuning."
#, fuzzy
-#~ msgid "Gamma"
-#~ msgstr "Gamma"
+#~ msgid "Lava depth"
+#~ msgstr "Diepte van grote grotten"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Fontschaduw alphawaarde (ondoorzichtigheid, tussen 0 en 255)."
+#~ msgid "Limit of emerge queues on disk"
+#~ msgstr "Emerge-wachtrij voor lezen"
-#~ msgid "Floatland mountain height"
-#~ msgstr "Drijvend gebergte hoogte"
+#~ msgid "Main"
+#~ msgstr "Hoofdmenu"
-#~ msgid "Floatland base height noise"
-#~ msgstr "Drijvend land basis hoogte ruis"
+#~ msgid "Main menu style"
+#~ msgstr "Hoofdmenu stijl"
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Schakelt filmisch tone-mapping in"
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Mini-kaart in radar modus, Zoom x2"
-#~ msgid "Enable VBO"
-#~ msgstr "VBO aanzetten"
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Mini-kaart in radar modus, Zoom x4"
-#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Minimap in oppervlaktemodus, Zoom x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Minimap in oppervlaktemodus, Zoom x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Naam / Wachtwoord"
+
+#~ msgid "No"
+#~ msgstr "Nee"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Normal-maps bemonstering"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Sterkte van normal-maps"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "Aantal parallax occlusie iteraties."
+
+#~ msgid "Ok"
+#~ msgstr "Oké"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
#~ msgstr ""
-#~ "Bepaalt gebieden van drijvend glijdend terrein.\n"
-#~ "Drijvend glijdend terrein ontstaat wanneer ruis > 0."
+#~ "Algemene afwijking van het parallax occlusie effect. Normaal: schaal/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Algemene schaal van het parallax occlusie effect."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parallax occlusie"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Parallax occlusie"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Parallax occlusie afwijking"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Parallax occlusie iteraties"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Parallax occlusie modus"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Parallax occlusie schaal"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "Parallax occlusie sterkte"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "Pad van TrueType font of bitmap."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Pad waar screenshots bewaard worden."
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Reset Singleplayer wereld"
#, fuzzy
-#~ msgid "Darkness sharpness"
-#~ msgstr "Steilheid Van de meren"
+#~ msgid "Select Package File:"
+#~ msgstr "Selecteer Modbestand:"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
-#~ msgstr ""
-#~ "Bepaalt breedte van tunnels, een kleinere waarde maakt bredere tunnels."
+#~ msgid "Shadow limit"
+#~ msgstr "Schaduw limiet"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Start Singleplayer"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Sterkte van de normal-maps."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Dit font wordt gebruikt voor bepaalde talen."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Cinematic modus aan/uit"
#, fuzzy
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
#~ msgstr ""
-#~ "Bepaalt de dichtheid van drijvende bergen.\n"
-#~ "Dit wordt bijgevoegd bij de 'np_mountain' ruis waarde."
+#~ "Typisch maximum hoogte, boven en onder het middelpunt van drijvend berg "
+#~ "terrein."
-#, fuzzy
-#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
#~ msgstr ""
-#~ "Aangepaste gamma voor de licht-tabellen. Lagere waardes zijn helderder.\n"
-#~ "Deze instelling wordt enkel gebruikt door de cliënt, en wordt genegeerd "
-#~ "door de server."
+#~ "Variatie van de heuvel hoogte en vijver diepte op drijvend egaal terrein."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Pad waar screenshots bewaard worden."
+#~ msgid "View"
+#~ msgstr "Bekijk"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "Parallax occlusie sterkte"
+#~ msgid "Waving Water"
+#~ msgstr "Golvend water"
-#~ msgid "Limit of emerge queues on disk"
-#~ msgstr "Emerge-wachtrij voor lezen"
+#~ msgid "Waving water"
+#~ msgstr "Golvend water"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "$1 wordt gedownload, een ogenblik geduld alstublieft..."
+#, fuzzy
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Minimale diepte van grote semi-willekeurige grotten."
-#~ msgid "Back"
-#~ msgstr "Terug"
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr "Y-niveau van drijvend land middelpunt en vijver oppervlak."
-#~ msgid "Ok"
-#~ msgstr "Oké"
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Y-niveau tot waar de schaduw van drijvend land reikt."
+
+#~ msgid "Yes"
+#~ msgstr "Ja"
diff --git a/po/nn/minetest.po b/po/nn/minetest.po
index 9a0b036d3..4ad47fbf8 100644
--- a/po/nn/minetest.po
+++ b/po/nn/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Norwegian Nynorsk (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-03-31 10:14+0000\n"
-"Last-Translator: sfan5 <sfan5@live.de>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-20 05:50+0000\n"
+"Last-Translator: Tor Egil Hoftun Kvæstad <toregilhk@hotmail.com>\n"
"Language-Team: Norwegian Nynorsk <https://hosted.weblate.org/projects/"
"minetest/minetest/nn/>\n"
"Language: nn\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.0-dev\n"
+"X-Generator: Weblate 4.5\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -24,12 +24,11 @@ msgstr "Du døydde"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: builtin/fstk/ui.lua
-#, fuzzy
msgid "An error occurred in a Lua script:"
-msgstr "Ein feil har skjedd med eit Lua manus, slik som ein mod:"
+msgstr "Ein feil oppstod i eit LUA-skript:"
#: builtin/fstk/ui.lua
msgid "An error occurred:"
@@ -41,15 +40,11 @@ msgstr "Hovudmeny"
#: builtin/fstk/ui.lua
msgid "Reconnect"
-msgstr "Kople attende sambandet"
+msgstr "Kople til igjen"
#: builtin/fstk/ui.lua
msgid "The server has requested a reconnect:"
-msgstr "Tenarmaskinen ber om å få forbindelsen attende:"
-
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Laster ned..."
+msgstr "Tenaren har førespurt å kople til igjen:"
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
@@ -57,27 +52,22 @@ msgstr "Protkoll versjon bommert. "
#: builtin/mainmenu/common.lua
msgid "Server enforces protocol version $1. "
-msgstr "Tenarmaskinen krevjar protokoll versjon $1. "
+msgstr "Tenaren krev protokoll versjon $1. "
#: builtin/mainmenu/common.lua
msgid "Server supports protocol versions between $1 and $2. "
-msgstr "Tenarmaskinen støttar protokoll versjonar mellom $1 og $2. "
-
-#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Forsøkje å kople attende den offentlege tenarmaskin-lista og sjekk sambands "
-"koplingen."
+msgstr "Tenaren støtter protokollversjonar mellom $1 og $2. "
#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
-msgstr "Vi støttar berre protokoll versjon $1."
+msgstr "Me støtter berre protokoll versjon $1."
#: builtin/mainmenu/common.lua
msgid "We support protocol versions between version $1 and $2."
-msgstr "Vi støttar protokoll versjonar mellom $1 og $2."
+msgstr "Me støtter protokollversjonar mellom $1 og $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -87,68 +77,66 @@ msgstr "Vi støttar protokoll versjonar mellom $1 og $2."
msgid "Cancel"
msgstr "Avbryt"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Avhengigheiter:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Disable all"
-msgstr "Deaktiver allt"
+msgstr "Deaktiver alt"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Disable modpack"
-msgstr "Deaktivere modifikasjons-pakka"
+msgstr "Deaktiver modifikasjonspakken"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable all"
-msgstr "Aktiver allt"
+msgstr "Aktiver alt"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable modpack"
-msgstr "Aktiver modifikasjons-pakka"
+msgstr "Aktiver modifikasjonspakken"
#: builtin/mainmenu/dlg_config_world.lua
msgid ""
"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
"characters [a-z0-9_] are allowed."
msgstr ""
-"Fåfengt å aktivere modifikasjon \"$1\" sia den innehald ugyldige teikn. "
-"Berre teikna [a-z0-9_] e tillaten."
+"Klarte ikkje å aktivere modifikasjon «$1», då den inneheld ugyldige teikn. "
+"Berre teikna [a-z0-9_] er tillatne."
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "Finn fleire modifikasjonar"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
msgstr "Modifikasjon:"
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No (optional) dependencies"
-msgstr "Valgbare avhengigheiter:"
+msgstr "Ingen (valfrie) avhengigheiter"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No game description provided."
msgstr "Ikkje nokon spill skildring e sørgja for."
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No hard dependencies"
-msgstr "Ikkje nokon avhengigheiter."
+msgstr "Ingen obligatoriske avhengigheiter"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No modpack description provided."
msgstr "Ikkje noko modifikasjons-pakke skildring e sørgja for."
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No optional dependencies"
-msgstr "Valgbare avhengigheiter:"
+msgstr "Ingen valfrie avhengigheiter"
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
msgid "Optional dependencies:"
-msgstr "Valgbare avhengigheiter:"
+msgstr "Valfrie avhengigheiter:"
#: builtin/mainmenu/dlg_config_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
@@ -157,23 +145,61 @@ msgstr "Lagre"
#: builtin/mainmenu/dlg_config_world.lua
msgid "World:"
-msgstr "Verda:"
+msgstr "Verd:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "enabled"
-msgstr "Aktivert"
+msgstr "aktivert"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "«$1» eksisterer allereie. Vil du overskrive den?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "$1 og $2 avhengigheiter vil verte installerte."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 lastar ned …"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "$1 obligatoriske avhengigheiter vart ikkje funne."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 vil verte installert, og $2 avhengigheiter vil verte hoppa over."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Alle pakker"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Allereie installert"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Attende til hovudmeny"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Basisspel:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "ContentDB er ikkje tilgjengeleg når Minetest vart kompilert utan cURL"
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
@@ -182,7 +208,7 @@ msgstr "Laster ned..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
-msgstr "Fåfengt å laste ned $1"
+msgstr "Klarte ikkje å laste ned $1"
#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -194,22 +220,45 @@ msgid "Install"
msgstr "Installer"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "Installer $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "Installer manglande avhengigheiter"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
-msgstr "Modder"
+msgstr "Modifikasjonar"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No packages could be retrieved"
-msgstr "Ikkje nokon pakkar kunne bli henta"
+msgstr "Ingen pakkar kunne verte henta"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No results"
-msgstr "Ikkje noko resultat"
+msgstr "Ingen resultat"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Søk"
+msgid "No updates"
+msgstr "Ingen oppdateringar"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "Ikkje funnen"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Overskriv"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "Ver venleg å sjekke at basisspelet er korrekt."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -224,16 +273,20 @@ msgid "Update"
msgstr "Oppdater"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr ""
+msgid "Update All [$1]"
+msgstr "Oppdater alt [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Sjå meir informasjon i ein nettlesar"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
-msgstr "Ein verd med namnet \"$1\" finns allereie"
+msgstr "Ein verd med namnet «$1» eksisterer allereie"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "Ytterlegare terreng"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
@@ -249,11 +302,11 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biomes"
-msgstr ""
+msgstr "Biom"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caverns"
-msgstr ""
+msgstr "Holer"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -265,17 +318,16 @@ msgid "Create"
msgstr "Skap"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "Informasjon:"
+msgstr "Dekorasjonar"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
-msgstr "Last ned eit spel, sånn som Minetest spellet, ifrå minetest.net"
+msgstr "Last ned eit spel, slik som Minetest-spelet, frå minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download one from minetest.net"
-msgstr "Last eit ned på minetest.net"
+msgstr "Last ned eit frå minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Dungeons"
@@ -283,15 +335,15 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "Flatt terreng"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
-msgstr ""
+msgstr "Svevande landmassar på himmelen"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floatlands (experimental)"
-msgstr ""
+msgstr "Flyteland (eksperimentell)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -299,11 +351,11 @@ msgstr "Spel"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Generer ikkjefraktalterreng: Hav og undergrunn"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "Haugar"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Humid rivers"
@@ -311,15 +363,15 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "Aukar fuktigheita rundt elver"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "Sjøar"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "Låg fuktigheit og høg temperatur fører til grunne eller tørre elver"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -335,15 +387,15 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mountains"
-msgstr ""
+msgstr "Fjell"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "Leireflyt"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "Nettverk av tunellar og holer"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
@@ -359,11 +411,11 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Rivers"
-msgstr ""
+msgstr "Elver"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "Elver på havnivå"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -386,15 +438,15 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
-msgstr ""
+msgstr "Temperert, Ørken"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgstr "Temperert, Ørken, Jungel"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "Temperert, Ørken, Jungel, Tundra, Taiga"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Terrain surface erosion"
@@ -402,15 +454,15 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "Tre og jungelgras"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Vary river depth"
-msgstr ""
+msgstr "Varier elvedjupne"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "Svært store holer djupt i undergrunnen"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -427,7 +479,7 @@ msgstr "Du har ikkje installert noko spel."
#: builtin/mainmenu/dlg_delete_content.lua
msgid "Are you sure you want to delete \"$1\"?"
-msgstr "Er du sikker på at du har lyst til å slette \"$1\"?"
+msgstr "Er du sikker på at du vil slette «$1»?"
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_local.lua
@@ -437,23 +489,23 @@ msgstr "Slett"
#: builtin/mainmenu/dlg_delete_content.lua
msgid "pkgmgr: failed to delete \"$1\""
-msgstr "pkgmgr: sletting av \"$1\" gjekk ikkje"
+msgstr "pkgmgr: klarte ikkje å slette «$1»"
#: builtin/mainmenu/dlg_delete_content.lua
msgid "pkgmgr: invalid path \"$1\""
-msgstr "pkgmgr: ugyldig rute \"$1\""
+msgstr "pkgmgr: ugyldig sti «$1»"
#: builtin/mainmenu/dlg_delete_world.lua
msgid "Delete World \"$1\"?"
-msgstr "Slett verd \"$1\"?"
+msgstr "Slett verd «$1»?"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid "Accept"
-msgstr "Akseptér"
+msgstr "Aksepter"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid "Rename Modpack:"
-msgstr "Omdøp Modpakka:"
+msgstr "Døyp om modifikasjonspakken:"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid ""
@@ -469,11 +521,11 @@ msgstr "(Ikkje nokon skildring gjeven)"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "2D Noise"
-msgstr "To-dimensjonal lyd"
+msgstr "2D-støy"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "< Back to Settings page"
-msgstr "< Attende til instillinger"
+msgstr "< Tilbake til innstillingssida"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
@@ -524,12 +576,16 @@ msgid "Scale"
msgstr "Skala"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Søk"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
-msgstr "Velje ein mappe"
+msgstr "Vel katalog"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select file"
-msgstr "Velje eit dokument"
+msgstr "Vel fil"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
@@ -537,11 +593,11 @@ msgstr "Vis tekniske namn"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "The value must be at least $1."
-msgstr "Verdien må i det minste være $1."
+msgstr "Verdien må minst vere $1."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "The value must not be larger than $1."
-msgstr "Verdien må ikkje være høgare enn $1."
+msgstr "Verdien må ikkje vere større enn $1."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "X"
@@ -580,7 +636,7 @@ msgstr "Absolutt verdi"
#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "defaults"
-msgstr "Standard"
+msgstr "standardar"
#. ~ "eased" is a noise parameter flag.
#. It is used to make the map smoother and
@@ -596,35 +652,37 @@ msgstr "$1 (Aktivert)"
#: builtin/mainmenu/pkgmgr.lua
msgid "$1 mods"
-msgstr "$1 modder"
+msgstr "$1 modifikasjonar"
#: builtin/mainmenu/pkgmgr.lua
msgid "Failed to install $1 to $2"
-msgstr "Funka ikkje å installere $1 til $2"
+msgstr "Klarte ikkje å installere $1 til $2"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install Mod: Unable to find real mod name for: $1"
msgstr ""
-"Installer modifikasjon: Funka ikkje å finne eit ekte modifikasjons namn for: "
-"$1"
+"Installer modifikasjon: Klarte ikkje å finne det reelle modifikasjonsnamnet "
+"for: $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install Mod: Unable to find suitable folder name for modpack $1"
msgstr ""
-"Installer Modifikasjon: Funka ikkje å finne ein passande for modpakke $1"
+"Installer modifikasjon: Klarte ikkje å finne ein passande katalog for "
+"modifikasjonspakke $1"
#: builtin/mainmenu/pkgmgr.lua
+#, fuzzy
msgid "Install: Unsupported file type \"$1\" or broken archive"
msgstr ""
"Installer: Ikkje-støtta dokument type \"$1\" eller så funker ikkje arkivet"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install: file: \"$1\""
-msgstr "Installer: dokument: \"$1\""
+msgstr "Installer: fil: «$1»"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to find a valid mod or modpack"
-msgstr "Funka ikkje å finne ein gyldig modifikasjon eller mod-pakke"
+msgstr "Klarte ikkje å finne ein gyldig modifikasjon eller modifikasjonspakke"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a $1 as a texture pack"
@@ -642,6 +700,22 @@ msgstr "Funka ikkje å installere modifikasjon som ein $1"
msgid "Unable to install a modpack as a $1"
msgstr "Funka ikkje å installere mod-pakka som ein $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Lastar …"
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Klient side-skildring er av"
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Forsøkje å kople attende den offentlege tenarmaskin-lista og sjekk sambands "
+"koplingen."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Bla i nett-innhald"
@@ -652,7 +726,7 @@ msgstr "Innhald"
#: builtin/mainmenu/tab_content.lua
msgid "Disable Texture Pack"
-msgstr "Deaktivér tekstur pakke"
+msgstr "Deaktiver teksturpakke"
#: builtin/mainmenu/tab_content.lua
msgid "Information:"
@@ -660,15 +734,15 @@ msgstr "Informasjon:"
#: builtin/mainmenu/tab_content.lua
msgid "Installed Packages:"
-msgstr "Installer pakker:"
+msgstr "Installerte pakker:"
#: builtin/mainmenu/tab_content.lua
msgid "No dependencies."
-msgstr "Ikkje nokon avhengigheiter."
+msgstr "Ingen avhengigheiter."
#: builtin/mainmenu/tab_content.lua
msgid "No package description available"
-msgstr "Ikkje nokon pakke skildring tilgjengelig"
+msgstr "Inga pakkeskildring tilgjengeleg"
#: builtin/mainmenu/tab_content.lua
msgid "Rename"
@@ -680,27 +754,38 @@ msgstr "Avinstallér pakka"
#: builtin/mainmenu/tab_content.lua
msgid "Use Texture Pack"
-msgstr "Bruk tekstur pakke"
+msgstr "Bruk teksturpakke"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
-msgstr "Aktive bidragere"
+msgstr "Aktive bidragsytarar"
#: builtin/mainmenu/tab_credits.lua
msgid "Core Developers"
-msgstr "Kjerne-utviklere"
+msgstr "Kjerne-utviklarar"
#: builtin/mainmenu/tab_credits.lua
msgid "Credits"
msgstr "Medvirkende"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Velje ein mappe"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
-msgstr "Førre bidragere"
+msgstr "Tidlegare bidragsytarar"
#: builtin/mainmenu/tab_credits.lua
msgid "Previous Core Developers"
-msgstr "Førre kjerne-utviklere"
+msgstr "Tidlegare kjerne-utviklarar"
#: builtin/mainmenu/tab_local.lua
msgid "Announce Server"
@@ -711,32 +796,30 @@ msgid "Bind Address"
msgstr "Blind stad"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Konfigurér"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Kreativ stode"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Aktivér skading"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
msgid "Host Game"
msgstr "Bli husvert"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
msgid "Host Server"
msgstr "Bli tenarmaskin's vert"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "Installer spel frå ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Namn/passord"
+msgid "Name"
+msgstr "Namn"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -744,7 +827,11 @@ msgstr "Ny"
#: builtin/mainmenu/tab_local.lua
msgid "No world created or selected!"
-msgstr "Ikkje noko verd skapt eller valgt!"
+msgstr "Inga verd skapt eller valt!"
+
+#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "Passord"
#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
@@ -755,12 +842,16 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "Vel modifikasjonar"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Vel verd:"
#: builtin/mainmenu/tab_local.lua
msgid "Server Port"
-msgstr "Tenarmaskin port"
+msgstr "Tenarport"
#: builtin/mainmenu/tab_local.lua
msgid "Start Game"
@@ -768,25 +859,25 @@ msgstr "Start spel"
#: builtin/mainmenu/tab_online.lua
msgid "Address / Port"
-msgstr "Stad/port"
+msgstr "Adresse / port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Kople i hop"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Kreativ stode"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Skade aktivert"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Slett Favoritt"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Favoritt"
@@ -794,16 +885,16 @@ msgstr "Favoritt"
msgid "Join Game"
msgstr "Bli med i spel"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Namn/Passord"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "Spelar mot spelar aktivert"
@@ -825,17 +916,14 @@ msgstr "8x"
#: builtin/mainmenu/tab_settings.lua
msgid "All Settings"
-msgstr "Alle instillinger"
+msgstr "Alle innstillingar"
#: builtin/mainmenu/tab_settings.lua
msgid "Antialiasing:"
msgstr "Kantutjemning:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Er du sikker på at du vill tilbakestille enkel-spelar verd?"
-
-#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
msgid "Autosave Screen Size"
msgstr "Automatisk sjerm størrelse"
@@ -843,10 +931,6 @@ msgstr "Automatisk sjerm størrelse"
msgid "Bilinear Filter"
msgstr "Bi-lineært filtréring"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Dunke kartlegging"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Endre nykeler"
@@ -860,10 +944,6 @@ msgid "Fancy Leaves"
msgstr "Fancy blader"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Generér normale kart"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipkart"
@@ -872,10 +952,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipkart + Aniso. filter"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Nei"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Inga filter"
@@ -884,10 +960,12 @@ msgid "No Mipmap"
msgstr "Ingen Mipkart"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
msgid "Node Highlighting"
msgstr "Knute-fremheving"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
msgid "Node Outlining"
msgstr "Knute-utlinjing"
@@ -903,31 +981,30 @@ msgstr "Ugjennomsiktige blader"
msgid "Opaque Water"
msgstr "Ugjennomsiktig vatn"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Parralax okklusjon"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
-msgstr "Partikkler"
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Tilbakegå enkelspelar verd"
+msgstr "Partiklar"
#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
-msgstr "Sjerm:"
+msgstr "Skjerm:"
#: builtin/mainmenu/tab_settings.lua
msgid "Settings"
-msgstr "Instillinger"
+msgstr "Innstillingar"
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
+#, fuzzy
msgid "Shaders"
msgstr "Dybdeskaper"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Dybdeskaper (ikkje tilgjengelig)"
+
+#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
msgid "Shaders (unavailable)"
msgstr "Dybdeskaper (ikkje tilgjengelig)"
@@ -944,10 +1021,12 @@ msgid "Texturing:"
msgstr "Teksturering:"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
msgid "To enable shaders the OpenGL driver needs to be used."
msgstr "For å aktivere skumrings-effekt så må OpenGL driveren være i bruk."
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
+#, fuzzy
msgid "Tone Mapping"
msgstr "Tone kartlegging"
@@ -960,6 +1039,7 @@ msgid "Trilinear Filter"
msgstr "Tri-lineær filtréring"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
msgid "Waving Leaves"
msgstr "Raslende lauv"
@@ -969,25 +1049,10 @@ msgid "Waving Liquids"
msgstr "Raslende lauv"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
msgid "Waving Plants"
msgstr "Raslende planter"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Ja"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Konfigurer modifikasjoner"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Hovud"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Start enkeltspelar oppleving"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Nett-kopling er brutt."
@@ -1002,23 +1067,24 @@ msgstr "Førebur noder"
#: src/client/client.cpp
msgid "Initializing nodes..."
-msgstr "Førebur node..."
+msgstr "Førebur nodar …"
#: src/client/client.cpp
msgid "Loading textures..."
-msgstr "Lastar teksturar..."
+msgstr "Lastar teksturar …"
#: src/client/client.cpp
+#, fuzzy
msgid "Rebuilding shaders..."
msgstr "Gjennbygger dybdeskaper..."
#: src/client/clientlauncher.cpp
msgid "Connection error (timed out?)"
-msgstr "Kopling gikk galen (Tidsavbrott?)"
+msgstr "Tilkoplingsfeil (Tidsavbrot?)"
#: src/client/clientlauncher.cpp
msgid "Could not find or load game \""
-msgstr "Kunne ikkje finne eller ha i gang spelet \""
+msgstr "Kunne ikkje finne eller laste spelet \""
#: src/client/clientlauncher.cpp
msgid "Invalid gamespec."
@@ -1029,8 +1095,9 @@ msgid "Main Menu"
msgstr "Hovudmeny"
#: src/client/clientlauncher.cpp
+#, fuzzy
msgid "No world selected and no address provided. Nothing to do."
-msgstr "Ingen verd valgt og ikkje nokon adresse valg. Ikkje noko å gjere."
+msgstr "Inga verd er vald og ikkje nokon adresse valg. Ikkje noko å gjere."
#: src/client/clientlauncher.cpp
msgid "Player name too long."
@@ -1038,13 +1105,15 @@ msgstr "Spelarnamn for langt."
#: src/client/clientlauncher.cpp
msgid "Please choose a name!"
-msgstr "Ver vennleg og velje eit anna namn!"
+msgstr "Ver venleg å velje eit namn!"
#: src/client/clientlauncher.cpp
+#, fuzzy
msgid "Provided password file failed to open: "
msgstr "Passord dokumentet du ga går ikkje an å åpne: "
#: src/client/clientlauncher.cpp
+#, fuzzy
msgid "Provided world path doesn't exist: "
msgstr "Verds-ruta du ga finnes ikkje: "
@@ -1073,6 +1142,7 @@ msgid "- Address: "
msgstr "- Adresse: "
#: src/client/game.cpp
+#, fuzzy
msgid "- Creative Mode: "
msgstr "- Gude løyving: "
@@ -1099,7 +1169,7 @@ msgstr "- Spelar mot spelar (PvP): "
#: src/client/game.cpp
msgid "- Server Name: "
-msgstr "- Tenarmaskin namn: "
+msgstr "- Tenarnamn: "
#: src/client/game.cpp
msgid "Automatic forward disabled"
@@ -1139,7 +1209,7 @@ msgstr "Kopler til tenarmaskin..."
#: src/client/game.cpp
msgid "Continue"
-msgstr "Fortsetja"
+msgstr "Fortset"
#: src/client/game.cpp
#, c-format
@@ -1149,30 +1219,30 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
"Styring:\n"
-"- %s: Framsteg\n"
-"- %s: Baksteg\n"
-"- %s: Sidesteg mot venstre\n"
-"- %s: Sidesteg mot høyre\n"
-"- %s: hopp/klatre\n"
-"- %s: snike seg rundt/bøye seg\n"
-"- %s: slipp gjennstand\n"
+"- %s: gå framover\n"
+"- %s: gå bakover\n"
+"- %s: gå mot venstre\n"
+"- %s: gå mot høgre\n"
+"- %s: hopp/klatre opp\n"
+"- %s: grav/slå\n"
+"- %s: plasser/nytt\n"
+"- %s: snik/klatre ned\n"
+"- %s: slepp ting\n"
"- %s: inventar\n"
-"- Datamus: snu seg/sjå rundt\n"
-"- Datamus, venstre klikk: grave/slå\n"
-"- Datamus, høgre klikk: plassér/bruk\n"
-"- Datamus, skrolle-hjul: select item\n"
-"- %s: skravlerør\n"
+"- Mus: snu deg/sjå\n"
+"- Musehjul: vel ting\n"
+"- %s: nettprat\n"
#: src/client/game.cpp
msgid "Creating client..."
@@ -1303,34 +1373,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Minikart er for tiden deaktivert tå spelet eller ein modifikasjon"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Minikart er gøymt"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Minikart i radar modus, Zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Minikart i radarmodus, Zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Minikart i radarmodus, Zoom x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Minikart i overflate modus, Zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Minikart i overflate modus, Zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Minikart i overflate modus, Zoom x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Ikkjeklipp modus er avtatt"
@@ -1393,7 +1435,7 @@ msgstr "Lyd e dempa"
#: src/client/game.cpp
msgid "Sound system is disabled"
-msgstr ""
+msgstr "Lydsystemet er slått av"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
@@ -1723,6 +1765,25 @@ msgstr "X Knapp 2"
msgid "Zoom"
msgstr "Zoom"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Minikart er gøymt"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Minikart i radarmodus, Zoom x%d"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Minikart i overflatemodus, Zoom x%d"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Minikart i overflate modus, Zoom x1"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Passorda passar ikkje!"
@@ -1975,12 +2036,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2010,11 +2065,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "3D clouds"
-msgstr ""
+msgstr "3D-skyer"
#: src/settings_translation_file.cpp
msgid "3D mode"
-msgstr ""
+msgstr "3D-modus"
#: src/settings_translation_file.cpp
msgid "3D mode parallax strength"
@@ -2022,13 +2077,15 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
-msgstr ""
+msgstr "3D-støy som definerer gigantiske holer."
#: src/settings_translation_file.cpp
msgid ""
"3D noise defining mountain structure and height.\n"
"Also defines structure of floatland mountain terrain."
msgstr ""
+"3D-støy som definerer fjellstruktur og -høgde.\n"
+"Definerer og strukturen på fjellterreng for flyteland."
#: src/settings_translation_file.cpp
msgid ""
@@ -2044,7 +2101,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "3D noise defining terrain."
-msgstr ""
+msgstr "3D-støy som definerer terreng."
#: src/settings_translation_file.cpp
msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
@@ -2076,27 +2133,32 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "A message to be displayed to all clients when the server crashes."
-msgstr ""
+msgstr "Ein beskjed som skal visast til alle klientane når tenaren kræsjar."
#: src/settings_translation_file.cpp
msgid "A message to be displayed to all clients when the server shuts down."
msgstr ""
+"Ein beskjed som skal visast til alle klientane når tenaren vert slått av."
#: src/settings_translation_file.cpp
msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
#: src/settings_translation_file.cpp
msgid "Acceleration in air"
-msgstr ""
+msgstr "Akselerasjon i luft"
#: src/settings_translation_file.cpp
msgid "Acceleration of gravity, in nodes per second per second."
-msgstr ""
+msgstr "Gravitasjonsakselerasjon, i nodar per sekund per sekund."
#: src/settings_translation_file.cpp
msgid "Active Block Modifiers"
@@ -2143,7 +2205,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Advanced"
-msgstr ""
+msgstr "Avansert"
#: src/settings_translation_file.cpp
msgid ""
@@ -2164,11 +2226,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Amount of messages a player may send per 10 seconds."
-msgstr ""
+msgstr "Antal meldingar ein spelar kan sende per 10 sekund."
#: src/settings_translation_file.cpp
msgid "Amplifies the valleys."
-msgstr ""
+msgstr "Forsterkar dalane."
#: src/settings_translation_file.cpp
msgid "Anisotropic filtering"
@@ -2233,7 +2295,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Automatically report to the serverlist."
-msgstr ""
+msgstr "Rapporter automatisk til tenarlista."
#: src/settings_translation_file.cpp
msgid "Autosave screen size"
@@ -2241,7 +2303,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Autoscaling mode"
-msgstr ""
+msgstr "Autoskaleringsmodus"
#: src/settings_translation_file.cpp
msgid "Backward key"
@@ -2257,11 +2319,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Basic"
-msgstr ""
+msgstr "Basis"
#: src/settings_translation_file.cpp
msgid "Basic privileges"
-msgstr ""
+msgstr "Basisprivilegium"
#: src/settings_translation_file.cpp
msgid "Beach noise"
@@ -2317,11 +2379,7 @@ msgstr "Bygg intern spelar"
#: src/settings_translation_file.cpp
msgid "Builtin"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
+msgstr "Innebygd"
#: src/settings_translation_file.cpp
msgid ""
@@ -2394,22 +2452,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
-msgstr ""
+msgstr "Tekststørrelse for nettprat"
#: src/settings_translation_file.cpp
msgid "Chat key"
-msgstr ""
+msgstr "Nettpratstast"
#: src/settings_translation_file.cpp
msgid "Chat log level"
@@ -2457,11 +2505,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Client"
-msgstr ""
+msgstr "Klient"
#: src/settings_translation_file.cpp
msgid "Client and Server"
-msgstr ""
+msgstr "Klient og tenar"
#: src/settings_translation_file.cpp
msgid "Client modding"
@@ -2477,15 +2525,15 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Climbing speed"
-msgstr ""
+msgstr "Klatrefart"
#: src/settings_translation_file.cpp
msgid "Cloud radius"
-msgstr ""
+msgstr "Skyradius"
#: src/settings_translation_file.cpp
msgid "Clouds"
-msgstr ""
+msgstr "Skyer"
#: src/settings_translation_file.cpp
msgid "Clouds are a client side effect."
@@ -2493,11 +2541,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Clouds in menu"
-msgstr ""
+msgstr "Skyer i meny"
#: src/settings_translation_file.cpp
msgid "Colored fog"
-msgstr ""
+msgstr "Farga tåke"
#: src/settings_translation_file.cpp
msgid ""
@@ -2555,10 +2603,14 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "ContentDB URL"
+msgid "ContentDB Max Concurrent Downloads"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB URL"
+msgstr "URL til ContentDB"
+
+#: src/settings_translation_file.cpp
msgid "Continuous forward"
msgstr ""
@@ -2600,18 +2652,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Crash message"
-msgstr ""
+msgstr "Kræsjmelding"
#: src/settings_translation_file.cpp
msgid "Creative"
-msgstr ""
+msgstr "Kreativ"
#: src/settings_translation_file.cpp
msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2619,7 +2673,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2656,29 +2712,31 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Default acceleration"
-msgstr ""
+msgstr "Standard akselerasjon"
#: src/settings_translation_file.cpp
msgid "Default game"
-msgstr ""
+msgstr "Standard spel"
#: src/settings_translation_file.cpp
msgid ""
"Default game when creating a new world.\n"
"This will be overridden when creating a world from the main menu."
msgstr ""
+"Standard spel når du lagar ei ny verd.\n"
+"Dette vil verte overstyrt når du lagar ei verd frå hovudmenyen."
#: src/settings_translation_file.cpp
msgid "Default password"
-msgstr ""
+msgstr "Standard passord"
#: src/settings_translation_file.cpp
msgid "Default privileges"
-msgstr ""
+msgstr "Standard privilegium"
#: src/settings_translation_file.cpp
msgid "Default report format"
-msgstr ""
+msgstr "Standard rapportformat"
#: src/settings_translation_file.cpp
msgid "Default stack size"
@@ -2719,12 +2777,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2795,6 +2847,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2855,7 +2911,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2943,14 +2999,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2960,18 +3008,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2988,12 +3024,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3003,7 +3033,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3305,10 +3335,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3362,8 +3388,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3830,6 +3856,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3910,6 +3940,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4009,6 +4046,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4565,10 +4609,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4582,6 +4622,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4745,7 +4793,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4794,6 +4842,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5023,14 +5078,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5056,10 +5103,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5085,34 +5128,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5178,6 +5193,14 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5333,10 +5356,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5588,6 +5607,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5717,10 +5746,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5814,6 +5839,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5872,8 +5901,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5899,15 +5928,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6043,6 +6077,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6249,6 +6294,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6371,6 +6422,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6382,17 +6451,65 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Slå på/av kameramodus"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Er du sikker på at du vill tilbakestille enkel-spelar verd?"
-#~ msgid "Select Package File:"
-#~ msgstr "Velje eit pakke dokument:"
+#~ msgid "Back"
+#~ msgstr "Attende"
+
+#~ msgid "Bump Mapping"
+#~ msgstr "Dunke kartlegging"
+
+#~ msgid "Config mods"
+#~ msgstr "Konfigurer modifikasjoner"
+
+#~ msgid "Configure"
+#~ msgstr "Konfigurér"
#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr "Henter og installerer $1, ver vennleg og vent..."
-#~ msgid "Back"
-#~ msgstr "Attende"
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Generér normale kart"
+
+#~ msgid "Main"
+#~ msgstr "Hovud"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Minikart i radarmodus, Zoom x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Minikart i radarmodus, Zoom x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Minikart i overflate modus, Zoom x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Minikart i overflate modus, Zoom x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Namn/passord"
+
+#~ msgid "No"
+#~ msgstr "Nei"
#~ msgid "Ok"
#~ msgstr "OK"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parralax okklusjon"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Tilbakegå enkelspelar verd"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Velje eit pakke dokument:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Start enkeltspelar oppleving"
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Slå på/av kameramodus"
+
+#~ msgid "Yes"
+#~ msgstr "Ja"
diff --git a/po/pl/minetest.po b/po/pl/minetest.po
index 015692182..4c5d166e8 100644
--- a/po/pl/minetest.po
+++ b/po/pl/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Polish (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-09 12:14+0000\n"
-"Last-Translator: Mikołaj Zaremba <mikolajzaremba03@gmail.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-12-27 00:29+0000\n"
+"Last-Translator: Atrate <Atrate@protonmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/minetest/minetest/"
"pl/>\n"
"Language: pl\n"
@@ -13,7 +13,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.4.1-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -25,7 +25,7 @@ msgstr "Umarłeś"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -47,10 +47,6 @@ msgstr "Połącz ponownie"
msgid "The server has requested a reconnect:"
msgstr "Serwer zażądał ponownego połączenia:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Åadowanie..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Niezgodne wersje protokołów. "
@@ -64,12 +60,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Serwer wspiera protokoły w wersjach od $1 do $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Spróbuj ponownie włączyć publiczną listę serwerów i sprawdź swoje połączenie "
-"z sieciÄ… Internet."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Wspieramy wyłącznie protokół w wersji $1."
@@ -77,7 +67,8 @@ msgstr "Wspieramy wyłącznie protokół w wersji $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Wspieramy protokoły w wersji od $1 do $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -87,7 +78,8 @@ msgstr "Wspieramy protokoły w wersji od $1 do $2."
msgid "Cancel"
msgstr "Anuluj"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Zależności:"
@@ -161,16 +153,57 @@ msgid "enabled"
msgstr "włączone"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Åadowanie..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Wszystkie zasoby"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Klawisz już zdefiniowany"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Powrót do menu głównego"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Utwórz grę"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "ContentDB nie jest dostępne gdy Minetest był zbudowany bez cURL"
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
@@ -191,6 +224,16 @@ msgid "Install"
msgstr "Instaluj"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Instaluj"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Dodatkowe zależności:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mody"
@@ -204,9 +247,26 @@ msgid "No results"
msgstr "Brak Wyników"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Szukaj"
+#, fuzzy
+msgid "No updates"
+msgstr "Aktualizacja"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Not found"
+msgstr "Wycisz dźwięk"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -221,7 +281,11 @@ msgid "Update"
msgstr "Aktualizacja"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -230,7 +294,7 @@ msgstr "Istnieje już świat o nazwie \"$1\""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "Dodatkowy teren"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
#, fuzzy
@@ -238,9 +302,8 @@ msgid "Altitude chill"
msgstr "Wysokość mrozu"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Altitude dry"
-msgstr "Wysokość mrozu"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -267,9 +330,8 @@ msgid "Create"
msgstr "Utwórz"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "Iteracje"
+msgstr "Dekoracje"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -280,13 +342,12 @@ msgid "Download one from minetest.net"
msgstr "ÅšciÄ…gnij takÄ… z minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Dungeons"
-msgstr "Minimalna wartość Y lochu"
+msgstr "Lochy"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "Płaski teren"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -294,9 +355,8 @@ msgid "Floating landmasses in the sky"
msgstr "Gęstość gór na latających wyspach"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floatlands (experimental)"
-msgstr "Poziom wznoszonego terenu"
+msgstr "LatajÄ…ce wyspy (eksperymentalne)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -308,7 +368,7 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "Wzgórza"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -317,15 +377,17 @@ msgstr "Sterownik graficzny"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "Zwiększa wilgotność wokół rzek"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "Jeziora"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
msgstr ""
+"Niska wilgotność i wysoka temperatura wpływa na niski stan rzek lub ich "
+"wysychanie"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -341,9 +403,8 @@ msgid "Mapgen-specific flags"
msgstr "Generator mapy flat flagi"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mountains"
-msgstr "Szum góry"
+msgstr "Góry"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
@@ -351,19 +412,20 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "Sieć jaskiń i korytarzy."
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
msgstr "Nie wybrano gry"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "Spadek temperatury wraz z wysokością"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "Spadek wilgotności wraz ze wzrostem wysokości"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -536,6 +598,10 @@ msgid "Scale"
msgstr "Skaluj"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Szukaj"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Wybierz katalog"
@@ -651,6 +717,21 @@ msgstr "Nie moźna zainstalować moda jako $1"
msgid "Unable to install a modpack as a $1"
msgstr "Nie można zainstalować paczki modów jako $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Åadowanie..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Skryptowanie po stronie klienta jest wyłączone"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Spróbuj ponownie włączyć publiczną listę serwerów i sprawdź swoje połączenie "
+"z sieciÄ… Internet."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Przeglądaj zawartość online"
@@ -704,6 +785,17 @@ msgid "Credits"
msgstr "Autorzy"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Wybierz katalog"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Byli współautorzy"
@@ -720,14 +812,10 @@ msgid "Bind Address"
msgstr "Adres"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Ustaw"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Tryb kreatywny"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Włącz obrażenia"
@@ -744,8 +832,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Nazwa gracza/Hasło"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -756,6 +844,11 @@ msgid "No world created or selected!"
msgstr "Nie wybrano bądź nie utworzono świata!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Nowe hasło"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Graj"
@@ -764,6 +857,11 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Wybierz świat:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Wybierz świat:"
@@ -779,23 +877,23 @@ msgstr "Rozpocznij grÄ™"
msgid "Address / Port"
msgstr "Adres / Port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Połącz"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Tryb kreatywny"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Obrażenia włączone"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Usuń ulubiony"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Ulubione"
@@ -803,16 +901,16 @@ msgstr "Ulubione"
msgid "Join Game"
msgstr "Dołącz do gry"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Nazwa gracza / Hasło"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP włączone"
@@ -841,10 +939,6 @@ msgid "Antialiasing:"
msgstr "Antyaliasing:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Jesteś pewny że chcesz zresetować świat singleplayer?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Automatyczny zapis rozmiaru okienka"
@@ -852,10 +946,6 @@ msgstr "Automatyczny zapis rozmiaru okienka"
msgid "Bilinear Filter"
msgstr "Filtrowanie dwuliniowe"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Mapowanie wypukłości"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Zmień klawisze"
@@ -869,10 +959,6 @@ msgid "Fancy Leaves"
msgstr "Ozdobne liście"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Generuj normalne mapy"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmapy"
@@ -881,10 +967,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmapy i Filtr anizotropowe"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Nie"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Filtrowanie wyłączone"
@@ -912,19 +994,11 @@ msgstr "Nieprzejrzyste liście"
msgid "Opaque Water"
msgstr "Nieprzejrzysta Woda"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Mapowanie paralaksy"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Włącz Efekty Cząsteczkowe"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Resetuj świat pojedynczego gracza"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Ekran:"
@@ -937,6 +1011,11 @@ msgid "Shaders"
msgstr "Shadery"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "LatajÄ…ce wyspy (eksperymentalne)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Shadery (Nie dostępne)"
@@ -980,22 +1059,6 @@ msgstr "Fale (Ciecze)"
msgid "Waving Plants"
msgstr "Falujące rośliny"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Tak"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Ustawienia modów"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Menu główne"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Tryb jednoosobowy"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Upłynął czas połączenia."
@@ -1150,20 +1213,20 @@ msgid "Continue"
msgstr "Kontynuuj"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1311,34 +1374,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Minimapa aktualnie wyłączona przez grę lub mod"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Minimapa ukryta"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Minimapa w trybie radaru, Zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Minimapa w trybie radaru, Zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Minimapa w trybie radaru, Zoom x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Minimapa w trybie powierzchniowym, powiększenie x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Minimapa w trybie powierzchniowym, powiększenie x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Minimapa w trybie powierzchniowym, powiększenie x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Tryb noclip wyłączony"
@@ -1730,6 +1765,25 @@ msgstr "Przycisk X 2"
msgid "Zoom"
msgstr "Zoom"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Minimapa ukryta"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Minimapa w trybie radaru, Zoom x1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Minimapa w trybie powierzchniowym, powiększenie x1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Minimalna wielkość tekstury dla filtrów"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Hasła nie są jednakowe!"
@@ -2004,14 +2058,6 @@ msgstr ""
"dla wyspy, ustaw 3 wartości równe, aby uzyskać surowy kształt."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = parallax occlusion z informacjÄ… nachylenia (szybsze).\n"
-"1 = relief mapping (wolniejsze, bardziej dokładne)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "Szum 2D który wpływa na kształt/rozmiar łańcuchów górskich."
@@ -2139,6 +2185,10 @@ msgid "ABM interval"
msgstr "Interwał zapisu mapy"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "Absolute limit of queued blocks to emerge"
msgstr "Bezwzględny limit kolejki"
@@ -2388,7 +2438,7 @@ msgstr "Ścieżka czcionki typu Monospace"
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Bold font path"
-msgstr "Ścieżka czcionki"
+msgstr "Ścieżka fontu pogrubionego."
#: src/settings_translation_file.cpp
#, fuzzy
@@ -2404,10 +2454,6 @@ msgid "Builtin"
msgstr "Wbudowany"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Mapowanie wypukłości"
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
@@ -2485,21 +2531,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Zmienia interfejs użytkownika menu głównego:\n"
-"- Pełny: Wiele światów jednoosobowych, wybór gry, wybór paczki tekstur, "
-"itd.\n"
-"- Prosty: Jeden świat jednoosobowy, brak wyboru gry lub paczki tekstur. "
-"Może być konieczny dla mniejszych ekranów."
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat font size"
msgstr "Rozmiar czcionki"
@@ -2662,6 +2693,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "Flaga czarnej listy ContentDB"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "Zawartość"
@@ -2728,7 +2763,10 @@ msgid "Crosshair alpha"
msgstr "Kanał alfa celownika"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "Kanał alfa celownika (pomiędzy 0 a 255)."
#: src/settings_translation_file.cpp
@@ -2736,8 +2774,10 @@ msgid "Crosshair color"
msgstr "Kolor celownika"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Kolor celownika (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2845,22 +2885,13 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Określa położenie oraz teren z dodatkowymi górami i jeziorami."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Definiuje krok próbkowania tekstury.\n"
-"Wyższa wartość reprezentuje łagodniejszą mapę normalnych."
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Defines the base ground level."
-msgstr "Określa obszary drzewiaste oraz ich gęstość."
+msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Defines the depth of the river channel."
-msgstr "Określa obszary drzewiaste oraz ich gęstość."
+msgstr "Określa głębokość rzek."
#: src/settings_translation_file.cpp
msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
@@ -2876,7 +2907,7 @@ msgstr "Określa strukturę kanałów rzecznych."
#: src/settings_translation_file.cpp
#, fuzzy
msgid "Defines the width of the river valley."
-msgstr "Określa obszary na których drzewa mają jabłka."
+msgstr "Określa szerokość doliny rzecznej."
#: src/settings_translation_file.cpp
msgid "Defines tree areas and tree density."
@@ -2937,6 +2968,11 @@ msgid "Desynchronize block animation"
msgstr "Odsynchronizuj animację bloków"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "W prawo"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Włącz efekty cząsteczkowe"
@@ -2977,15 +3013,15 @@ msgid "Dungeon minimum Y"
msgstr "Minimalna wartość Y lochu"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Dungeon noise"
-msgstr "Minimalna wartość Y lochu"
+msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"Enable IPv6 support (for both client and server).\n"
"Required for IPv6 connections to work at all."
-msgstr ""
+msgstr "Włącz protokół sieciowy IPv6 (dla gry oraz dla jej serwera)."
#: src/settings_translation_file.cpp
msgid ""
@@ -3000,7 +3036,8 @@ msgid "Enable console window"
msgstr "Odblokuj okno konsoli"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Zezwól na tryb kreatywny dla nowo powstałych map."
#: src/settings_translation_file.cpp
@@ -3069,10 +3106,13 @@ msgstr ""
"jeżeli następuje połączenie z serwerem."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"Enable vertex buffer objects.\n"
"This should greatly improve graphics performance."
msgstr ""
+"Uaktywnij \"vertex buffer objects\" aby zmniejszyć wymagania wobec karty "
+"grafiki."
#: src/settings_translation_file.cpp
msgid ""
@@ -3106,18 +3146,6 @@ msgid "Enables animation of inventory items."
msgstr "Włącz animację inwentarza przedmiotów."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Włącza mapowanie wypukłości dla tekstur. Mapy normalnych muszą być dodane w "
-"paczce tekstur\n"
-"lub muszą być automatycznie wygenerowane.\n"
-"Wymaga włączonych shaderów."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Włącza cachowanie facedir obracanych meshów."
@@ -3127,22 +3155,6 @@ msgstr "Włącz minimapę."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Włącza generację map normalnych w locie (efekt płaskorzeźby).\n"
-"Wymaga włączenia mapowania wypukłości."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Włącza mapowanie paralaksy.\n"
-"Wymaga włączenia shaderów."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3159,14 +3171,6 @@ msgstr "Metody bytów"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Eksperymentalna opcja, może powodować widoczne przestrzenie\n"
-"pomiędzy blokami kiedy ustawiona powyżej 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3176,8 +3180,9 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS podczas pauzy w menu"
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "Maksymalny FPS gdy gra spauzowana."
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3328,9 +3333,8 @@ msgid "Floatland tapering distance"
msgstr "Podstawowy szum wznoszÄ…cego siÄ™ terenu"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland water level"
-msgstr "Poziom wznoszonego terenu"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "Fly key"
@@ -3514,10 +3518,6 @@ msgid "GUI scaling filter txr2img"
msgstr "Filtr skalowania GUI txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Generuj mapy normalnych"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Globalne wywołania zwrotne"
@@ -3584,8 +3584,8 @@ msgstr "Klawisz przełączania HUD"
#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Obsługa przestarzałych wywołań lua api:\n"
@@ -4148,6 +4148,11 @@ msgid "Joystick button repetition interval"
msgstr "Interwał powtarzania przycisku joysticka"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "Typ Joysticka"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Czułość drgania joysticka"
@@ -4251,6 +4256,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Klawisz skakania.\n"
+"Zobacz http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4396,6 +4412,17 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Klawisz skakania.\n"
+"Zobacz http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -5192,11 +5219,6 @@ msgid "Main menu script"
msgstr "Skrypt głównego menu"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Skrypt głównego menu"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5212,6 +5234,14 @@ msgid "Makes all liquids opaque"
msgstr "Zmienia ciecze w nieprzeźroczyste"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Katalog map"
@@ -5411,7 +5441,8 @@ msgid "Maximum FPS"
msgstr "Maksymalny FPS"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "Maksymalny FPS gdy gra spauzowana."
#: src/settings_translation_file.cpp
@@ -5471,6 +5502,13 @@ msgstr ""
"Pozostaw puste a odpowiednia liczba zostanie dobrana automatycznie."
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr "Maksymalna ilość, wczytanych wymuszeniem, bloków mapy."
@@ -5725,14 +5763,6 @@ msgid "Noises"
msgstr "Szumy"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Próbkowanie normalnych map"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Siła map normlanych"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "Liczba powstających wątków"
@@ -5762,10 +5792,6 @@ msgstr ""
"konsumpcją pamięci (4096=100MB, praktyczna zasada)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "Liczba iteracji dla parallax occlusion."
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Online Content Repository"
msgstr "Repozytorium Zawartości z Sieci"
@@ -5794,35 +5820,6 @@ msgstr ""
"formspec jest otwarty."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "Ogólny błąd systematyczny efektu zamykania paralaksy, zwykle skala/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Całkowity efekt skalowania zamknięcia paralaksy."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Zamknięcie paralaksy"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Błąd systematyczny zamknięcia paralaksy"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Iteracje zamknięcia paralaksy"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Tryb zamknięcia paralaksy"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "Skala parallax occlusion"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5895,6 +5892,16 @@ msgid "Pitch move mode"
msgstr "Tryb nachylenia ruchu włączony"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Klawisz latania"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "Interwał powtórzenia prawego kliknięcia myszy"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -6073,10 +6080,6 @@ msgid "Right key"
msgstr "W prawo"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Interwał powtórzenia prawego kliknięcia myszy"
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "River channel depth"
msgstr "Głębokość rzeki"
@@ -6383,6 +6386,19 @@ msgid "Show entity selection boxes"
msgstr "Pokazuj zaznaczenie wybranych obiektów"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Ustaw język. Zostaw puste pole, aby użyć języka systemowego.\n"
+"Wymagany restart po zmianie ustawienia."
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Komunikat zamknięcia serwera"
@@ -6533,10 +6549,6 @@ msgid "Strength of 3D mode parallax."
msgstr "Siła paralaksy."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Siła generowanych zwykłych map."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6639,6 +6651,11 @@ msgid "The URL for the content repository"
msgstr "Adres URL repozytorium zawartości"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "The deadzone of the joystick"
+msgstr "Identyfikator użycia joysticka"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6704,8 +6721,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6738,6 +6755,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6745,10 +6768,10 @@ msgstr ""
"joysticka."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
"Czas, wyrażany w sekundach,pomiędzy powtarzanymi kliknięciami prawego "
"przycisku myszy."
@@ -6909,6 +6932,17 @@ msgstr ""
"Gamma correct dowscaling nie jest wspierany."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "Użyj filtrowania tri-linearnego podczas skalowania tekstur."
@@ -7157,6 +7191,12 @@ msgstr ""
"wspierajÄ…ca takie czcionki."
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr "Określ kiedy animacje tekstur na blok powinny być niesynchronizowane."
@@ -7293,6 +7333,24 @@ msgid "Y-level of seabed."
msgstr "Wysokość dna jezior."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "cURL przekroczono limit pobierania pliku"
@@ -7304,137 +7362,296 @@ msgstr "Limit równoległy cURL"
msgid "cURL timeout"
msgstr "Limit czasu cURL"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Przełącz na tryb Cinematic"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = parallax occlusion z informacjÄ… nachylenia (szybsze).\n"
+#~ "1 = relief mapping (wolniejsze, bardziej dokładne)."
-#~ msgid "Select Package File:"
-#~ msgstr "Wybierz plik paczki:"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "Ustaw kodowanie gamma dla tablic świateł. Wyższe wartości to większa "
+#~ "jasność.\n"
+#~ "To ustawienie jest tylko dla klientów, ignorowane przez serwer."
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Y górnej granicy lawy dużych jaskiń."
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgstr ""
+#~ "Zmienia sposób w jaki podobne do gór latające wyspy zwężają się ku "
+#~ "środkowi nad i pod punktem środkowym."
-#~ msgid "Waving Water"
-#~ msgstr "FalujÄ…ca woda"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Jesteś pewny że chcesz zresetować świat singleplayer?"
-#~ msgid "Whether dungeons occasionally project from the terrain."
-#~ msgstr "Określa czy lochy mają być czasem przez generowane teren."
+#~ msgid "Back"
+#~ msgstr "Backspace"
-#~ msgid "Projecting dungeons"
-#~ msgstr "Projekcja lochów"
+#~ msgid "Bump Mapping"
+#~ msgstr "Mapowanie wypukłości"
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Wysokość do której rozciągają się cienie wznoszącego terenu."
+#~ msgid "Bumpmapping"
+#~ msgstr "Mapowanie wypukłości"
-#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "Centrum przyśpieszenia środkowego krzywej światła."
+
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
#~ msgstr ""
-#~ "Wysokość średniego punktu wznoszącego się terenu oraz powierzchni jezior."
+#~ "Zmienia interfejs użytkownika menu głównego:\n"
+#~ "- Pełny: Wiele światów jednoosobowych, wybór gry, wybór paczki "
+#~ "tekstur, itd.\n"
+#~ "- Prosty: Jeden świat jednoosobowy, brak wyboru gry lub paczki "
+#~ "tekstur. Może być konieczny dla mniejszych ekranów."
-#~ msgid "Waving water"
-#~ msgstr "FalujÄ…ca woda"
+#~ msgid "Config mods"
+#~ msgstr "Ustawienia modów"
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgid "Configure"
+#~ msgstr "Ustaw"
+
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
#~ msgstr ""
-#~ "Zmienność wysokości wzgórz oraz głębokości jezior na gładkim terenie "
-#~ "wznoszÄ…cym siÄ™."
+#~ "Kontroluje gęstość wznoszącego się terenu górzystego.\n"
+#~ "Jest to wartość dodana do wartość szumu 'np_mountain'."
+
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Kontroluje szerokość tuneli, mniejsze wartości tworzą szersze tunele."
+
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Kolor celownika (R,G,B)."
+
+#~ msgid "Darkness sharpness"
+#~ msgstr "Ostrość ciemności"
#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
#~ msgstr ""
-#~ "Maksymalna, standardowa wysokość, powyżej lub poniżej średniego punktu "
-#~ "górzystego terenu."
+#~ "Określa obszary wznoszącego się gładkiego terenu.\n"
+#~ "Wygładzone powierzchnie pojawiają się gdy szum > 0."
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Ta czcionka zostanie użyta w niektórych językach."
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Definiuje krok próbkowania tekstury.\n"
+#~ "Wyższa wartość reprezentuje łagodniejszą mapę normalnych."
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "Siłą przyśpieszenia środkowego krzywej światła."
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Pobieranie i instalowanie $1, proszÄ™ czekaj..."
-#~ msgid "Shadow limit"
-#~ msgstr "Limit cieni"
+#~ msgid "Enable VBO"
+#~ msgstr "Włącz VBO"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "Ścieżka do pliku .ttf lub bitmapy."
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "Włącza mapowanie wypukłości dla tekstur. Mapy normalnych muszą być dodane "
+#~ "w paczce tekstur\n"
+#~ "lub muszą być automatycznie wygenerowane.\n"
+#~ "Wymaga włączonych shaderów."
-#~ msgid "Lightness sharpness"
-#~ msgstr "Ostrość naświetlenia"
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Włącz filmic tone mapping"
+
+#~ msgid ""
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
+#~ msgstr ""
+#~ "Włącza generację map normalnych w locie (efekt płaskorzeźby).\n"
+#~ "Wymaga włączenia mapowania wypukłości."
+
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "Włącza mapowanie paralaksy.\n"
+#~ "Wymaga włączenia shaderów."
+
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
+#~ msgstr ""
+#~ "Eksperymentalna opcja, może powodować widoczne przestrzenie\n"
+#~ "pomiędzy blokami kiedy ustawiona powyżej 0."
+
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS podczas pauzy w menu"
+
+#~ msgid "Floatland base height noise"
+#~ msgstr "Podstawowy szum wysokości wznoszącego się terenu"
+
+#~ msgid "Floatland mountain height"
+#~ msgstr "Wysokość gór latających wysp"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Kanał alfa cienia czcionki (nieprzeźroczystość, od 0 do 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "Gamma"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Generuj normalne mapy"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Generuj mapy normalnych"
+
+#~ msgid "IPv6 support."
+#~ msgstr "Wsparcie IPv6."
#, fuzzy
#~ msgid "Lava depth"
#~ msgstr "Głębia dużej jaskini"
-#~ msgid "IPv6 support."
-#~ msgstr "Wsparcie IPv6."
+#~ msgid "Lightness sharpness"
+#~ msgstr "Ostrość naświetlenia"
-#~ msgid "Gamma"
-#~ msgstr "Gamma"
+#~ msgid "Limit of emerge queues on disk"
+#~ msgstr "Limit oczekiwań na dysku"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Kanał alfa cienia czcionki (nieprzeźroczystość, od 0 do 255)."
+#~ msgid "Main"
+#~ msgstr "Menu główne"
-#~ msgid "Floatland mountain height"
-#~ msgstr "Wysokość gór latających wysp"
+#, fuzzy
+#~ msgid "Main menu style"
+#~ msgstr "Skrypt głównego menu"
-#~ msgid "Floatland base height noise"
-#~ msgstr "Podstawowy szum wysokości wznoszącego się terenu"
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Minimapa w trybie radaru, Zoom x2"
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Włącz filmic tone mapping"
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Minimapa w trybie radaru, Zoom x4"
-#~ msgid "Enable VBO"
-#~ msgstr "Włącz VBO"
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Minimapa w trybie powierzchniowym, powiększenie x2"
-#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
-#~ msgstr ""
-#~ "Określa obszary wznoszącego się gładkiego terenu.\n"
-#~ "Wygładzone powierzchnie pojawiają się gdy szum > 0."
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Minimapa w trybie powierzchniowym, powiększenie x4"
-#~ msgid "Darkness sharpness"
-#~ msgstr "Ostrość ciemności"
+#~ msgid "Name/Password"
+#~ msgstr "Nazwa gracza/Hasło"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
-#~ msgstr ""
-#~ "Kontroluje szerokość tuneli, mniejsze wartości tworzą szersze tunele."
+#~ msgid "No"
+#~ msgstr "Nie"
-#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
-#~ msgstr ""
-#~ "Kontroluje gęstość wznoszącego się terenu górzystego.\n"
-#~ "Jest to wartość dodana do wartość szumu 'np_mountain'."
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Próbkowanie normalnych map"
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "Centrum przyśpieszenia środkowego krzywej światła."
+#~ msgid "Normalmaps strength"
+#~ msgstr "Siła map normlanych"
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
-#~ msgstr ""
-#~ "Zmienia sposób w jaki podobne do gór latające wyspy zwężają się ku "
-#~ "środkowi nad i pod punktem środkowym."
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "Liczba iteracji dla parallax occlusion."
-#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ msgid "Ok"
+#~ msgstr "OK"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
#~ msgstr ""
-#~ "Ustaw kodowanie gamma dla tablic świateł. Wyższe wartości to większa "
-#~ "jasność.\n"
-#~ "To ustawienie jest tylko dla klientów, ignorowane przez serwer."
+#~ "Ogólny błąd systematyczny efektu zamykania paralaksy, zwykle skala/2."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Ścieżka, pod którą zapisywane są zrzuty ekranu."
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Całkowity efekt skalowania zamknięcia paralaksy."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Mapowanie paralaksy"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Zamknięcie paralaksy"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Błąd systematyczny zamknięcia paralaksy"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Iteracje zamknięcia paralaksy"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Tryb zamknięcia paralaksy"
+
+#, fuzzy
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Skala parallax occlusion"
#~ msgid "Parallax occlusion strength"
#~ msgstr "Siła zamknięcia paralaksy"
-#~ msgid "Limit of emerge queues on disk"
-#~ msgstr "Limit oczekiwań na dysku"
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "Ścieżka do pliku .ttf lub bitmapy."
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Pobieranie i instalowanie $1, proszÄ™ czekaj..."
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Ścieżka, pod którą zapisywane są zrzuty ekranu."
-#~ msgid "Back"
-#~ msgstr "Backspace"
+#~ msgid "Projecting dungeons"
+#~ msgstr "Projekcja lochów"
-#~ msgid "Ok"
-#~ msgstr "OK"
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Resetuj świat pojedynczego gracza"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Wybierz plik paczki:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "Limit cieni"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Tryb jednoosobowy"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Siła generowanych zwykłych map."
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "Siłą przyśpieszenia środkowego krzywej światła."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Ta czcionka zostanie użyta w niektórych językach."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Przełącz na tryb Cinematic"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr ""
+#~ "Maksymalna, standardowa wysokość, powyżej lub poniżej średniego punktu "
+#~ "górzystego terenu."
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr ""
+#~ "Zmienność wysokości wzgórz oraz głębokości jezior na gładkim terenie "
+#~ "wznoszÄ…cym siÄ™."
+
+#~ msgid "Waving Water"
+#~ msgstr "FalujÄ…ca woda"
+
+#~ msgid "Waving water"
+#~ msgstr "FalujÄ…ca woda"
+
+#~ msgid "Whether dungeons occasionally project from the terrain."
+#~ msgstr "Określa czy lochy mają być czasem przez generowane teren."
+
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Y górnej granicy lawy dużych jaskiń."
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr ""
+#~ "Wysokość średniego punktu wznoszącego się terenu oraz powierzchni jezior."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Wysokość do której rozciągają się cienie wznoszącego terenu."
+
+#~ msgid "Yes"
+#~ msgstr "Tak"
diff --git a/po/pt/minetest.po b/po/pt/minetest.po
index 466428c35..78c46b6d8 100644
--- a/po/pt/minetest.po
+++ b/po/pt/minetest.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Portuguese (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-03-31 10:14+0000\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-23 15:50+0000\n"
"Last-Translator: ssantos <ssantos@web.de>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/minetest/"
"minetest/pt/>\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.0-dev\n"
+"X-Generator: Weblate 4.5\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -24,7 +24,7 @@ msgstr "Você morreu"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -44,11 +44,7 @@ msgstr "Reconectar"
#: builtin/fstk/ui.lua
msgid "The server has requested a reconnect:"
-msgstr "O servidor requisitou uma reconexão:"
-
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "A carregar..."
+msgstr "O servidor solicitou uma reconexão :"
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
@@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "O servidor suporta versões de protocolo entre $1 e $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Tente recarregar a lista de servidores públicos e verifique a sua ligação à "
-"internet."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Nós suportamos apenas o protocolo versão $1."
@@ -76,7 +66,8 @@ msgstr "Nós suportamos apenas o protocolo versão $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Nós suportamos as versões de protocolo entre $1 e $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Nós suportamos as versões de protocolo entre $1 e $2."
msgid "Cancel"
msgstr "Cancelar"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Dependências:"
@@ -96,7 +88,7 @@ msgstr "Desativar tudo"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Disable modpack"
-msgstr "Desabilitar modpack"
+msgstr "Desativar modpack"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable all"
@@ -104,7 +96,7 @@ msgstr "Ativar tudo"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable modpack"
-msgstr "Habilitar modpack"
+msgstr "Ativar modpack"
#: builtin/mainmenu/dlg_config_world.lua
msgid ""
@@ -117,7 +109,7 @@ msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "Encontre Mais Mods"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -161,21 +153,60 @@ msgid "enabled"
msgstr "ativado"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" já existe. Gostaria de sobrescrevê-lo?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "As dependências de $1 e $2 serão instaladas."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 por $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"A descarregar $1,\n"
+"$2 na fila"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "A descarregar $1..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "$1 dependências necessárias não foram encontradas."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 serão instalados e $2 dependências serão ignoradas."
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Todos os pacotes"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Já instalado"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Voltar ao menu principal"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Jogo base:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "ContentDB não está disponível quando Minetest é compilado sem cURL"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
-msgstr "A carregar..."
+msgstr "A descarregar..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
@@ -191,6 +222,14 @@ msgid "Install"
msgstr "Instalar"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "Instalar $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "Instalar dependências ausentes"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mods"
@@ -204,9 +243,24 @@ msgid "No results"
msgstr "Sem resultados"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Procurar"
+msgid "No updates"
+msgstr "Sem atualizações"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "Não encontrado"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Sobrescrever"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "Verifique se o jogo base está correto."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "Enfileirado"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -221,8 +275,12 @@ msgid "Update"
msgstr "Atualizar"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr ""
+msgid "Update All [$1]"
+msgstr "Atualizar tudo [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Exibir mais informações num navegador da Web"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -230,45 +288,39 @@ msgstr "O mundo com o nome \"$1\" já existe"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "Terreno adicional"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
msgstr "Frio de altitude"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Altitude dry"
-msgstr "Frio de altitude"
+msgstr "Altitude seca"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biome blending"
-msgstr "Ruído da Biome"
+msgstr "Mistura de biomas"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biomes"
-msgstr "Ruído da Biome"
+msgstr "Biomas"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caverns"
-msgstr "Barulho da caverna"
+msgstr "Cavernas"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caves"
-msgstr "Octavos"
+msgstr "Cavernas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
msgstr "Criar"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "Monitorização"
+msgstr "Decorações"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -279,23 +331,20 @@ msgid "Download one from minetest.net"
msgstr "Descarregue um do site minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Dungeons"
-msgstr "Ruído de masmorra"
+msgstr "Masmorras"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "Terreno plano"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floating landmasses in the sky"
-msgstr "Densidade da terra flutuante montanhosa"
+msgstr "Terrenos flutuantes no céu"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floatlands (experimental)"
-msgstr "Nível de água"
+msgstr "Terrenos flutuantes (experimental)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -303,28 +352,27 @@ msgstr "Jogo"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Gerar terreno não-fractal: Oceanos e subsolo"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "Montanhas"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Humid rivers"
-msgstr "Driver de vídeo"
+msgstr "Rios húmidos"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "Aumenta a humidade perto de rios"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "Lagos"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "Baixa humidade e calor elevado resultam em rios rasos ou secos"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -335,22 +383,20 @@ msgid "Mapgen flags"
msgstr "Flags do mapgen"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mapgen-specific flags"
-msgstr "Flags específicas do gerador de mundo V5"
+msgstr "Flags específicas do mapgen"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mountains"
-msgstr "Ruído da montanha"
+msgstr "Montanhas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "Fluxo de lama"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "Conectar túneis e cavernas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
@@ -358,20 +404,19 @@ msgstr "Nenhum jogo selecionado"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "Reduz calor com altitude"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "Reduz humidade com altitude"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Rivers"
-msgstr "Tamanho do Rio"
+msgstr "Rios"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "Rios ao nível do mar"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -380,52 +425,51 @@ msgstr "Seed"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "Transição suave entre biomas"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
+"Estruturas que aparecem no terreno (sem efeito em árvores e grama da selva "
+"criada pelo v6)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "Estruturas que aparecem no terreno, geralmente árvores e plantas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
-msgstr ""
+msgstr "Temperado, Deserto"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgstr "Temperado, Deserto, Selva"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "Temperado, Deserto, Selva, Tundra, Floresta Boreal"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Terrain surface erosion"
-msgstr "Altura do terreno"
+msgstr "Erosão superficial do terreno"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "Ãrvores e relva da selva"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Vary river depth"
-msgstr "Profundidade do Rio"
+msgstr "Variar a profundidade do rio"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "Cavernas bastante profundas"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Warning: The Development Test is meant for developers."
-msgstr "Aviso: O minimal development test destina-se apenas a desenvolvedores."
+msgstr "Aviso: O Development Test destina-se apenas a programadores."
#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
@@ -447,7 +491,7 @@ msgstr "Eliminar"
#: builtin/mainmenu/dlg_delete_content.lua
msgid "pkgmgr: failed to delete \"$1\""
-msgstr "pkgmgr: não foi possível excluir \"$1\""
+msgstr "pkgmgr: não foi possível apagar \"$1\""
#: builtin/mainmenu/dlg_delete_content.lua
msgid "pkgmgr: invalid path \"$1\""
@@ -534,6 +578,10 @@ msgid "Scale"
msgstr "Escala"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Procurar"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Selecione o diretório"
@@ -602,7 +650,7 @@ msgstr "amenizado"
#: builtin/mainmenu/pkgmgr.lua
msgid "$1 (Enabled)"
-msgstr "$1 (Habilitado)"
+msgstr "$1 (Ativado)"
#: builtin/mainmenu/pkgmgr.lua
msgid "$1 mods"
@@ -651,6 +699,21 @@ msgstr "Não foi possível instalar um módulo como um $1"
msgid "Unable to install a modpack as a $1"
msgstr "Não foi possível instalar um modpack como um $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "A carregar..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "O scripting de cliente está desativado"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Tente recarregar a lista de servidores públicos e verifique a sua ligação à "
+"internet."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Procurar conteúdo online"
@@ -661,7 +724,7 @@ msgstr "Conteúdo"
#: builtin/mainmenu/tab_content.lua
msgid "Disable Texture Pack"
-msgstr "Desabilitar pacote de texturas"
+msgstr "Desativar pacote de texturas"
#: builtin/mainmenu/tab_content.lua
msgid "Information:"
@@ -701,7 +764,19 @@ msgstr "Desenvolvedores Principais"
#: builtin/mainmenu/tab_credits.lua
msgid "Credits"
-msgstr "Créditos"
+msgstr "Méritos"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr "Abrir o diretório de dados do utilizador"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Abre o diretório que contém mundos, jogos, mods fornecidos pelo utilizador,\n"
+"e pacotes de textura num gestor de ficheiros / explorador."
#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
@@ -720,14 +795,10 @@ msgid "Bind Address"
msgstr "Endereço de ligação"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Configurar"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Modo Criativo"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Ativar Dano"
@@ -741,11 +812,11 @@ msgstr "Servidor"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "Instalar jogos do ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Nome/palavra-passe"
+msgid "Name"
+msgstr "Nome"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -756,6 +827,10 @@ msgid "No world created or selected!"
msgstr "Nenhum mundo criado ou seleccionado!"
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "Palavra-passe"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Jogar Jogo"
@@ -764,6 +839,10 @@ msgid "Port"
msgstr "Porta"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "Selecionar mods"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Seleccionar Mundo:"
@@ -779,23 +858,23 @@ msgstr "Iniciar o jogo"
msgid "Address / Port"
msgstr "Endereço / Porta"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Ligar"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Modo Criativo"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Dano ativado"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Rem. Favorito"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Favorito"
@@ -803,16 +882,16 @@ msgstr "Favorito"
msgid "Join Game"
msgstr "Juntar-se ao jogo"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Nome / Palavra-passe"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP ativado"
@@ -841,10 +920,6 @@ msgid "Antialiasing:"
msgstr "Antialiasing:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Tem a certeza que deseja reiniciar o seu mundo?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Auto salvar tamanho do ecrã"
@@ -852,10 +927,6 @@ msgstr "Auto salvar tamanho do ecrã"
msgid "Bilinear Filter"
msgstr "Filtro bilinear"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Bump mapping"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Mudar teclas"
@@ -869,10 +940,6 @@ msgid "Fancy Leaves"
msgstr "Folhas detalhadas"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Gerar Normal maps"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmap"
@@ -881,10 +948,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap + Filtro Anisotrópico"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Não"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Sem Filtro"
@@ -912,21 +975,13 @@ msgstr "Folhas Opacas"
msgid "Opaque Water"
msgstr "Ãgua Opaca"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Oclusão de paralaxe"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Ativar Particulas"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Reiniciar mundo singleplayer"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
-msgstr "Tela:"
+msgstr "Ecrã:"
#: builtin/mainmenu/tab_settings.lua
msgid "Settings"
@@ -937,6 +992,10 @@ msgid "Shaders"
msgstr "Sombras"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr "Shaders (experimental)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Sombreadores(indisponível)"
@@ -980,22 +1039,6 @@ msgstr "Líquidos ondulantes"
msgid "Waving Plants"
msgstr "Plantas ondulantes"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Sim"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Configurar mods"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Principal"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Iniciar Um Jogador"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Erro de ligação (tempo excedido)."
@@ -1111,15 +1154,15 @@ msgstr "Nome do servidor: "
#: src/client/game.cpp
msgid "Automatic forward disabled"
-msgstr "Avanço automático para frente desabilitado"
+msgstr "Avanço automático desativado"
#: src/client/game.cpp
msgid "Automatic forward enabled"
-msgstr "Avanço automático para frente habilitado"
+msgstr "Avanço automático para frente ativado"
#: src/client/game.cpp
msgid "Camera update disabled"
-msgstr "Atualização da camera desabilitada"
+msgstr "Atualização da camera desativada"
#: src/client/game.cpp
msgid "Camera update enabled"
@@ -1131,15 +1174,15 @@ msgstr "Mudar palavra-passe"
#: src/client/game.cpp
msgid "Cinematic mode disabled"
-msgstr "Modo cinemático desabilitado"
+msgstr "Modo cinemático desativado"
#: src/client/game.cpp
msgid "Cinematic mode enabled"
-msgstr "Modo cinemático habilitado"
+msgstr "Modo cinemático ativado"
#: src/client/game.cpp
msgid "Client side scripting is disabled"
-msgstr "Scripting de cliente está desabilitado"
+msgstr "O scripting de cliente está desativado"
#: src/client/game.cpp
msgid "Connecting to server..."
@@ -1157,43 +1200,30 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
"Controles:\n"
-"\n"
-"- %s1: andar para frente\n"
-"\n"
-"- %s2: andar para trás\n"
-"\n"
-"- %s3: andar para a esquerda\n"
-"\n"
-"-%s4: andar para a direita\n"
-"\n"
-"- %s5: pular/escalar\n"
-"\n"
-"- %s6: esgueirar/descer\n"
-"\n"
-"- %s7: soltar item\n"
-"\n"
-"- %s8: inventário\n"
-"\n"
-"- Mouse: virar/olhar\n"
-"\n"
-"- Botão esquerdo do mouse: cavar/dar soco\n"
-"\n"
-"- Botão direito do mouse: colocar/usar\n"
-"\n"
-"- Roda do mouse: selecionar item\n"
-"\n"
-"- %s9: bate-papo\n"
+"- %s: mover para a frente\n"
+"- %s: mover para trás\n"
+"- %s: mover para a esquerda\n"
+"- %s: mover para a direita\n"
+"- %s: saltar/escalar\n"
+"- %s: cavar/socar\n"
+"- %s: colocar/usar\n"
+"- %s: esgueirar/descer\n"
+"- %s: soltar item\n"
+"- %s: inventário\n"
+"- Rato: virar/ver\n"
+"- Roda do rato: selecionar item\n"
+"- %s: bate-papo\n"
#: src/client/game.cpp
msgid "Creating client..."
@@ -1245,11 +1275,11 @@ msgstr ""
#: src/client/game.cpp
msgid "Disabled unlimited viewing range"
-msgstr "Alcance de visualização ilimitado desabilitado"
+msgstr "Alcance de visualização ilimitado desativado"
#: src/client/game.cpp
msgid "Enabled unlimited viewing range"
-msgstr "Alcance de visualização ilimitado habilitado"
+msgstr "Alcance de visualização ilimitado ativado"
#: src/client/game.cpp
msgid "Exit to Menu"
@@ -1261,31 +1291,31 @@ msgstr "Sair para o S.O"
#: src/client/game.cpp
msgid "Fast mode disabled"
-msgstr "Modo rápido desabilitado"
+msgstr "Modo rápido desativado"
#: src/client/game.cpp
msgid "Fast mode enabled"
-msgstr "Modo rápido habilitado"
+msgstr "Modo rápido ativado"
#: src/client/game.cpp
msgid "Fast mode enabled (note: no 'fast' privilege)"
-msgstr "Modo rápido habilitado(note: sem privilégio 'fast')"
+msgstr "Modo rápido ativado (note: sem privilégio 'fast')"
#: src/client/game.cpp
msgid "Fly mode disabled"
-msgstr "Modo voo desabilitado"
+msgstr "Modo voo desativado"
#: src/client/game.cpp
msgid "Fly mode enabled"
-msgstr "Modo voo habilitado"
+msgstr "Modo voo ativado"
#: src/client/game.cpp
msgid "Fly mode enabled (note: no 'fly' privilege)"
-msgstr "Modo voo habilitado(note: sem privilegio 'fly')"
+msgstr "Modo voo ativado (note: sem privilégio 'fly')"
#: src/client/game.cpp
msgid "Fog disabled"
-msgstr "Névoa desabilitada"
+msgstr "Névoa desativada"
#: src/client/game.cpp
msgid "Fog enabled"
@@ -1321,47 +1351,19 @@ msgstr "MiB/s"
#: src/client/game.cpp
msgid "Minimap currently disabled by game or mod"
-msgstr "Minipapa atualmente desabilitado por jogo ou mod"
-
-#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Minimapa escondido"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Minimapa em modo radar, zoom 1x"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Minimapa em modo radar, zoom 2x"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Minimapa em modo radar, zoom 4x"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Minimapa em modo de superfície, zoom 1x"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Minimapa em modo de superfície, zoom 2x"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Minimapa em modo de superfície, zoom 4x"
+msgstr "Minipapa atualmente desativado por jogo ou mod"
#: src/client/game.cpp
msgid "Noclip mode disabled"
-msgstr "Modo atravessar paredes desabilitado"
+msgstr "Modo de atravessar paredes desativado"
#: src/client/game.cpp
msgid "Noclip mode enabled"
-msgstr "Modo atravessar paredes habilitado"
+msgstr "Modo atravessar paredes ativado"
#: src/client/game.cpp
msgid "Noclip mode enabled (note: no 'noclip' privilege)"
-msgstr "Modo atravessar paredes habilitado(note: sem privilégio 'noclip')"
+msgstr "Modo atravessar paredes ativado (note: sem privilégio 'noclip')"
#: src/client/game.cpp
msgid "Node definitions..."
@@ -1377,11 +1379,11 @@ msgstr "Ligado"
#: src/client/game.cpp
msgid "Pitch move mode disabled"
-msgstr "Modo movimento pitch desabilitado"
+msgstr "Modo movimento pitch desativado"
#: src/client/game.cpp
msgid "Pitch move mode enabled"
-msgstr "Modo movimento pitch habilitado"
+msgstr "Modo movimento pitch ativado"
#: src/client/game.cpp
msgid "Profiler graph shown"
@@ -1413,11 +1415,11 @@ msgstr "Som mutado"
#: src/client/game.cpp
msgid "Sound system is disabled"
-msgstr ""
+msgstr "Som do sistema está desativado"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "Som do sistema não é suportado nesta versão"
#: src/client/game.cpp
msgid "Sound unmuted"
@@ -1436,7 +1438,7 @@ msgstr "Distancia de visualização está no máximo:%d"
#: src/client/game.cpp
#, c-format
msgid "Viewing range is at minimum: %d"
-msgstr "Distancia de visualização está no mínima:%d"
+msgstr "Distancia de visualização está no mínimo: %d"
#: src/client/game.cpp
#, c-format
@@ -1449,7 +1451,7 @@ msgstr "Mostrar wireframe"
#: src/client/game.cpp
msgid "Zoom currently disabled by game or mod"
-msgstr "Zoom atualmente desabilitado por jogo ou mod"
+msgstr "Zoom atualmente desativado por jogo ou mod"
#: src/client/game.cpp
msgid "ok"
@@ -1743,6 +1745,24 @@ msgstr "Botão X 2"
msgid "Zoom"
msgstr "Zoom"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Minimapa escondido"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Minimapa em modo radar, ampliação %dx"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Minimapa em modo de superfície, ampliação %dx"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "Minimapa em modo de textura"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "As palavra-passes não correspondem!"
@@ -1962,7 +1982,7 @@ msgid ""
"If disabled, virtual joystick will center to first-touch's position."
msgstr ""
"(Android) Corrige a posição do joystick virtual.\n"
-"Se desabilitado, o joystick virtual vai centralizar na posição do primeiro "
+"Se desativado, o joystick virtual vai centralizar na posição do primeiro "
"toque."
#: src/settings_translation_file.cpp
@@ -1972,8 +1992,8 @@ msgid ""
"circle."
msgstr ""
"(Android) Use joystick virtual para ativar botão \"aux\".\n"
-"Se habilitado, o joystick virtual vai também clicar no botão \"aux\" quando "
-"estiver fora do circulo principal."
+"Se ativado, o joystick virtual vai também clicar no botão \"aux\" quando "
+"estiver fora do círculo principal."
#: src/settings_translation_file.cpp
msgid ""
@@ -2007,19 +2027,11 @@ msgid ""
msgstr ""
"(X,Y,Z) Escala fractal em nós.\n"
"Tamanho fractal atual será de 2 a 3 vezes maior.\n"
-"Esses números podem ser muito grandes, o fractal não tem que encaixar dentro "
-"do mundo.\n"
+"Esses números podem ser muito grandes, o fractal não \n"
+"tem que encaixar dentro do mundo.\n"
"Aumente estes para 'ampliar' nos detalhes do fractal.\n"
-"Padrão é para uma forma espremida verticalmente para uma ilha, coloque todos "
-"os 3 números iguais para a forma crua."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = oclusão paralaxe com dados de inclinação (mais rápido).\n"
-"1 = mapeamento de relevo (mais lento, mais preciso)."
+"Predefinição é para uma forma espremida verticalmente para uma ilha,\n"
+"ponha todos os 3 números iguais para a forma crua."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
@@ -2058,9 +2070,8 @@ msgid "3D mode"
msgstr "Modo 3D"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "3D mode parallax strength"
-msgstr "Intensidade de normalmaps"
+msgstr "Força de paralaxe do modo 3D"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
@@ -2081,6 +2092,12 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
+"Ruído 3D definindo as estruturas de terras flutuantes\n"
+"Se alterar da predefinição, a 'escala' do ruído (0.7 por predefinição) pode "
+"precisar\n"
+"ser ajustada, já que o afunilamento das terras flutuantes funciona melhor "
+"quando o ruído tem\n"
+"um valor entre -2.0 e 2.0."
#: src/settings_translation_file.cpp
msgid "3D noise defining structure of river canyon walls."
@@ -2113,16 +2130,16 @@ msgid ""
"- pageflip: quadbuffer based 3d.\n"
"Note that the interlaced mode requires shaders to be enabled."
msgstr ""
-"Suporte 3D.\n"
+"Suporte de 3D.\n"
"Modos atualmente suportados:\n"
-"- none: Nenhum efeito 3D.\n"
-"- anaglyph: Sistema de cor Ciano/Magenta (Óculos 3D azul vermelho).\n"
-"- interlaced: Sistema interlaçado (Óculos com lentes polarizadas).\n"
-"- topbottom: Divide a tela em duas: uma em cima e outra em baixo.\n"
-"- sidebyside: Divide a tela em duas: lado a lado.\n"
+"- none: nenhum efeito 3D.\n"
+"- anaglyph: sistema de cor Ciano/Magenta (Óculos 3D azul vermelho).\n"
+"- interlaced: sistema interlaçado (Óculos com lentes polarizadas).\n"
+"- topbottom: divide o ecrã em dois: um em cima e outro em baixo.\n"
+"- sidebyside: divide o ecrã em dois: lado a lado.\n"
" - crossview: 3D de olhos cruzados.\n"
-" - pageflip: Quadbuffer baseado em 3D.\n"
-"Note que o modo interlaçado requer que o sombreamento esteja habilitado."
+" - pageflip: quadbuffer baseado em 3D.\n"
+"Note que o modo interlaçado requer que sombreamentos estejam ativados."
#: src/settings_translation_file.cpp
msgid ""
@@ -2149,9 +2166,12 @@ msgid "ABM interval"
msgstr "Intervalo do ABM"
#: src/settings_translation_file.cpp
-#, fuzzy
+msgid "ABM time budget"
+msgstr "Orçamento de tempo do ABM"
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
-msgstr "Limite absoluto da fila de espera emergente"
+msgstr "Limite absoluto de blocos em fila de espera a emergir"
#: src/settings_translation_file.cpp
msgid "Acceleration in air"
@@ -2208,6 +2228,11 @@ msgid ""
"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
"to be sure) creates a solid floatland layer."
msgstr ""
+"Ajusta a densidade da camada de terrenos flutuantes.\n"
+"Aumenta o valor para aumentar a densidade. Pode ser positivo ou negativo.\n"
+"Valor = 0,0: 50% do volume são terrenos flutuantes.\n"
+"Valor = 2,0 (pode ser maior dependendo de 'mgv7_np_floatland', teste sempre\n"
+"para ter certeza) cria uma camada sólida de terrenos flutuantes."
#: src/settings_translation_file.cpp
msgid "Advanced"
@@ -2276,8 +2301,8 @@ msgid ""
"Arm inertia, gives a more realistic movement of\n"
"the arm when the camera moves."
msgstr ""
-"Inercia dos braços fornece um movimento mais realista dos braços quando a "
-"câmera mexe."
+"Inercia dos braços fornece um movimento mais \n"
+"realista dos braços quando a câmara se move."
#: src/settings_translation_file.cpp
msgid "Ask to reconnect after crash"
@@ -2298,12 +2323,15 @@ msgid ""
"Stated in mapblocks (16 nodes)."
msgstr ""
"Nesta distância, o servidor otimizará agressivamente quais blocos são "
-"enviados aos clientes.\n"
-"Pequenos valores potencialmente melhoram muito o desempenho, à custa de "
-"falhas de renderização visíveis(alguns blocos não serão processados debaixo "
-"da água e nas cavernas, bem como às vezes em terra).\n"
+"enviados aos \n"
+"clientes.\n"
+"Pequenos valores potencialmente melhoram muito o desempenho, à custa de \n"
+"falhas de renderização visíveis (alguns blocos não serão processados debaixo "
+"da \n"
+"água e nas cavernas, bem como às vezes em terra).\n"
"Configure isso como um valor maior do que a "
-"distância_máxima_de_envio_do_bloco para desabilitar essa otimização.\n"
+"distância_máxima_de_envio_do_bloco \n"
+"para desativar essa otimização.\n"
"Especificado em barreiras do mapa (16 nós)."
#: src/settings_translation_file.cpp
@@ -2403,21 +2431,16 @@ msgid "Builtin"
msgstr "Integrado"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Bump mapping"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
"Increasing can reduce artifacting on weaker GPUs.\n"
"0.1 = Default, 0.25 = Good value for weaker tablets."
msgstr ""
-"Distancia do plano próximo da câmera em nós, entre 0 e 0.5\n"
+"Distancia do plano próximo da câmara em nós, entre 0 e 0.5\n"
"A maioria dos utilizadores não precisará mudar isto.\n"
"Aumentar pode reduzir a ocorrência de artefactos em GPUs mais fracas.\n"
-"0.1 = Padrão, 0.25 = Bom valor para tablets fracos."
+"0.1 = Predefinição, 0.25 = Bom valor para tablets fracos."
#: src/settings_translation_file.cpp
msgid "Camera smoothing"
@@ -2484,33 +2507,16 @@ msgstr ""
"0,0 é o nível mínimo de luz, 1,0 é o nível máximo de luz."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Mudanças para a interface do menu principal:\n"
-" - Total: Múltiplos mundos de um jogador, escolha de jogo, escolha de pacote "
-"de texturas, etc.\n"
-"- Simples: Um mundo de um jogador, sem escolha de jogo ou pacote de "
-"texturas. Pode ser necessário para telas menores."
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat font size"
-msgstr "Tamanho da fonte"
+msgstr "Tamanho da fonte do chat"
#: src/settings_translation_file.cpp
msgid "Chat key"
msgstr "Tecla de conversação"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat log level"
-msgstr "Nível de log de depuração"
+msgstr "Nível de log do chat"
#: src/settings_translation_file.cpp
msgid "Chat message count limit"
@@ -2666,6 +2672,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "Lista negra de flags do ContentDB"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "Máximo de descargas simultâneas de ContentDB"
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "Url do ContentDB"
@@ -2678,9 +2688,9 @@ msgid ""
"Continuous forward movement, toggled by autoforward key.\n"
"Press the autoforward key again or the backwards movement to disable."
msgstr ""
-"Movimento para frente contínuo, ativado pela tela de avanço automático.\n"
-"Pressione a tecla de avanço frontal novamente, ou a tecla de movimento para "
-"trás para desabilitar."
+"Movimento para frente contínuo, ativado pela tecla de avanço automático.\n"
+"Pressione a tecla de avanço frontal novamente ou a tecla de movimento para "
+"trás para desativar."
#: src/settings_translation_file.cpp
msgid "Controls"
@@ -2731,7 +2741,10 @@ msgid "Crosshair alpha"
msgstr "Opacidade do cursor"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "Opacidade do cursor (entre 0 e 255)."
#: src/settings_translation_file.cpp
@@ -2739,8 +2752,10 @@ msgid "Crosshair color"
msgstr "Cor do cursor"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Cor do cursor (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2767,9 +2782,8 @@ msgid "Dec. volume key"
msgstr "Tecla de dimin. de som"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Decrease this to increase liquid resistance to movement."
-msgstr "Diminue isto para aumentar a resistência do líquido ao movimento."
+msgstr "Diminuir isto para aumentar a resistência do líquido ao movimento."
#: src/settings_translation_file.cpp
msgid "Dedicated server step"
@@ -2804,9 +2818,8 @@ msgid "Default report format"
msgstr "Formato de report predefinido"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Default stack size"
-msgstr "Jogo por defeito"
+msgstr "Tamanho de pilha predefinido"
#: src/settings_translation_file.cpp
msgid ""
@@ -2848,14 +2861,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Define localizações e terrenos de morros e lagos opcionais."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Define nível de amostragem de textura.\n"
-"Um valor mais alto resulta em mapas normais mais suaves."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Define o nível base do solo."
@@ -2936,6 +2941,11 @@ msgid "Desynchronize block animation"
msgstr "Dessincroniza animação de blocos"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Tecla para a direita"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Ativar Particulas"
@@ -2992,24 +3002,25 @@ msgid ""
"Enable Lua modding support on client.\n"
"This support is experimental and API can change."
msgstr ""
-"Habilitar suporte a mods LUA locais no cliente.\n"
+"Ativar suporte a mods LUA locais no cliente.\n"
"Esse suporte é experimental e a API pode mudar."
#: src/settings_translation_file.cpp
msgid "Enable console window"
-msgstr "Habilitar janela de console"
+msgstr "Ativar janela de console"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
-msgstr "Habilitar modo criativo para mundos novos."
+#, fuzzy
+msgid "Enable creative mode for all players"
+msgstr "Ativar modo criativo para mundos novos."
#: src/settings_translation_file.cpp
msgid "Enable joysticks"
-msgstr "Habilitar Joysticks"
+msgstr "Ativar Joysticks"
#: src/settings_translation_file.cpp
msgid "Enable mod channels support."
-msgstr "Habilitar suporte a canais de módulos."
+msgstr "Ativar suporte a canais de módulos."
#: src/settings_translation_file.cpp
msgid "Enable mod security"
@@ -3025,15 +3036,15 @@ msgstr "Ativa a entrada de comandos aleatória (apenas usado para testes)."
#: src/settings_translation_file.cpp
msgid "Enable register confirmation"
-msgstr "Habilitar registro de confirmação"
+msgstr "Ativar registo de confirmação"
#: src/settings_translation_file.cpp
msgid ""
"Enable register confirmation when connecting to server.\n"
"If disabled, new account will be registered automatically."
msgstr ""
-"Habilitar confirmação de registro quando conectar ao servidor.\n"
-"Caso desabilitado, uma nova conta será registrada automaticamente."
+"Ativar confirmação de registo quando conectar ao servidor.\n"
+"Caso desativado, uma nova conta será registada automaticamente."
#: src/settings_translation_file.cpp
msgid ""
@@ -3086,13 +3097,12 @@ msgstr ""
"Por exemplo: 0 para não ver balançando; 1.0 para normal; 2.0 para duplo."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Enable/disable running an IPv6 server.\n"
"Ignored if bind_address is set.\n"
"Needs enable_ipv6 to be enabled."
msgstr ""
-"Habilitar/desabilitar a execução de um IPv6 do servidor. \n"
+"Ativar/desativar a execução de um servidor de IPv6. \n"
"Ignorado se bind_address estiver definido."
#: src/settings_translation_file.cpp
@@ -3114,18 +3124,6 @@ msgid "Enables animation of inventory items."
msgstr "Ativa animação de itens no inventário."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Ativa o bumpmapping para texturas. Mapas normais devem ser fornecidos pelo "
-"pack de\n"
-"texturas ou gerado automaticamente.\n"
-"Requer que as sombras sejam ativadas."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Ativar armazenamento em cache para os meshes das faces."
@@ -3135,22 +3133,6 @@ msgstr "Ativa mini-mapa."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Ativa geração de normalmap (efeito de relevo) ao voar.\n"
-"Requer texturização bump mapping para ser ativado."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Ativa mapeamento de oclusão de paralaxe.\n"
-"Requer sombreadores ativados."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3171,14 +3153,6 @@ msgstr "Metodos de entidade"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Opção experimental, pode causar espaços visíveis entre blocos\n"
-"quando definido com num úmero superior a 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3186,10 +3160,21 @@ msgid ""
"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
"flatter lowlands, suitable for a solid floatland layer."
msgstr ""
+"Expoente do afunilamento do terreno flutuante. Altera o comportamento de "
+"afunilamento.\n"
+"Valor = 1.0 cria um afunilamento linear e uniforme.\n"
+"Valores > 1.0 criam um afunilamento suave, adequado para a separação "
+"padrão.\n"
+"terras flutuantes.\n"
+"Valores < 1,0 (por exemplo, 0,25) criam um nível de superfície mais definido "
+"com\n"
+"terrenos flutuantes mais planos, adequados para uma camada sólida de "
+"terrenos flutuantes."
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS em menu de pausa"
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "Máximo FPS quando o jogo é pausado."
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3204,9 +3189,8 @@ msgid "Fall bobbing factor"
msgstr "Cair balançando"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Fallback font path"
-msgstr "Fonte alternativa"
+msgstr "Caminho da fonte reserva"
#: src/settings_translation_file.cpp
msgid "Fallback font shadow"
@@ -3214,7 +3198,7 @@ msgstr "Sombra da fonte alternativa"
#: src/settings_translation_file.cpp
msgid "Fallback font shadow alpha"
-msgstr "Canal de opacidade sombra da fonte alternativa"
+msgstr "Canal de opacidade sombra da fonte alternativa"
#: src/settings_translation_file.cpp
msgid "Fallback font size"
@@ -3307,24 +3291,20 @@ msgid "Fixed virtual joystick"
msgstr "Joystick virtual fixo"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland density"
-msgstr "Densidade da terra flutuante montanhosa"
+msgstr "Densidade do terreno flutuante"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland maximum Y"
-msgstr "Y máximo da dungeon"
+msgstr "Y máximo do terreno flutuante"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland minimum Y"
-msgstr "Y mínimo da dungeon"
+msgstr "Y mínimo do terreno flutuante"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland noise"
-msgstr "Ruído base de terra flutuante"
+msgstr "Ruído no terreno flutuante"
#: src/settings_translation_file.cpp
#, fuzzy
@@ -3423,11 +3403,11 @@ msgstr "Opacidade de fundo padrão do formspec"
#: src/settings_translation_file.cpp
msgid "Formspec Full-Screen Background Color"
-msgstr "Cor de fundo em tela cheia do formspec"
+msgstr "Cor de fundo em ecrã cheio do formspec"
#: src/settings_translation_file.cpp
msgid "Formspec Full-Screen Background Opacity"
-msgstr "Opacidade de fundo em tela cheia do formspec"
+msgstr "Opacidade de fundo em ecrã cheio do formspec"
#: src/settings_translation_file.cpp
msgid "Formspec default background color (R,G,B)."
@@ -3439,11 +3419,11 @@ msgstr "Opacidade de fundo padrão do formspec (entre 0 e 255)."
#: src/settings_translation_file.cpp
msgid "Formspec full-screen background color (R,G,B)."
-msgstr "Cor de fundo(R,G,B) do formspec padrão em tela cheia."
+msgstr "Cor de fundo (R,G,B) do formspec em ecrã cheio."
#: src/settings_translation_file.cpp
msgid "Formspec full-screen background opacity (between 0 and 255)."
-msgstr "Opacidade de fundo do formspec em tela cheia (entre 0 e 255)."
+msgstr "Opacidade de fundo do formspec em ecrã cheio (entre 0 e 255)."
#: src/settings_translation_file.cpp
msgid "Forward key"
@@ -3519,10 +3499,6 @@ msgid "GUI scaling filter txr2img"
msgstr "Filtro txr2img de redimensionamento do interface gráfico"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Gerar mapa de normais"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Chamadas de retorno Globais"
@@ -3584,8 +3560,8 @@ msgstr "Tecla de comutação HUD"
#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Tratamento de chamadas ao API Lua obsoletas:\n"
@@ -3602,11 +3578,11 @@ msgid ""
"call).\n"
"* Instrument the sampler being used to update the statistics."
msgstr ""
-"Tem o instrumento de registro em si:\n"
+"Fazer que o profiler instrumente si próprio:\n"
"* Monitorar uma função vazia.\n"
-"Isto estima a sobrecarga, que o istrumento está adicionando (+1 Chamada de "
+"Isto estima a sobrecarga, que o instrumento está a adicionar (+1 chamada de "
"função).\n"
-"* Monitorar o amostrador que está sendo usado para atualizar as estatísticas."
+"* Monitorar o sampler que está a ser usado para atualizar as estatísticas."
#: src/settings_translation_file.cpp
msgid "Heat blend noise"
@@ -3878,8 +3854,8 @@ msgid ""
"are\n"
"enabled."
msgstr ""
-"Se estiver desabilitado, a tecla \"especial será usada para voar rápido se "
-"modo voo e rápido estiverem habilitados."
+"Se estiver desativado, a tecla \"especial será usada para voar rápido se "
+"modo voo e rápido estiverem ativados."
#: src/settings_translation_file.cpp
msgid ""
@@ -3889,10 +3865,13 @@ msgid ""
"invisible\n"
"so that the utility of noclip mode is reduced."
msgstr ""
-"Se habilitado, o servidor executará a seleção de oclusão de bloco de mapa "
-"com base na posição do olho do jogador. Isso pode reduzir o número de blocos "
-"enviados ao cliente de 50 a 80%. O cliente não será mais mais invisível, de "
-"modo que a utilidade do modo \"noclip\" (modo intangível) será reduzida."
+"Se ativado, o servidor executará a seleção de oclusão de bloco de mapa com "
+"base \n"
+"na posição do olho do jogador. Isso pode reduzir o número de blocos enviados "
+"ao \n"
+"cliente de 50 a 80%. O cliente ja não será invisível, de modo que a "
+"utilidade do \n"
+"modo \"noclip\" (modo intangível) será reduzida."
#: src/settings_translation_file.cpp
msgid ""
@@ -3910,15 +3889,15 @@ msgid ""
"down and\n"
"descending."
msgstr ""
-"Se habilitado, a tecla \"especial\" em vez de \"esgueirar\" servirá para "
-"usada descer."
+"Se ativado, a tecla \"especial\" em vez de \"esgueirar\" servirá para usada "
+"descer."
#: src/settings_translation_file.cpp
msgid ""
"If enabled, actions are recorded for rollback.\n"
"This option is only read when server starts."
msgstr ""
-"Se habilitado, as ações são registradas para reversão.\n"
+"Se ativado, as ações são registadas para reversão.\n"
"Esta opção só é lido quando o servidor é iniciado."
#: src/settings_translation_file.cpp
@@ -3930,16 +3909,16 @@ msgid ""
"If enabled, invalid world data won't cause the server to shut down.\n"
"Only enable this if you know what you are doing."
msgstr ""
-"Se habilitado, dados inválidos do mundo não vão fazer o servidor desligar.\n"
-"Só habilite isso, se você souber o que está fazendo."
+"Se ativado, dados inválidos do mundo não vão fazer o servidor desligar.\n"
+"Só ative isto, se souber o que está a fazer."
#: src/settings_translation_file.cpp
msgid ""
"If enabled, makes move directions relative to the player's pitch when flying "
"or swimming."
msgstr ""
-"Se habilitado, faz com que os movimentos sejam relativos ao pitch do jogador "
-"quando voando ou nadando."
+"Se ativado, faz com que os movimentos sejam relativos ao pitch do jogador "
+"quando a voar ou a nadar."
#: src/settings_translation_file.cpp
msgid "If enabled, new players cannot join with an empty password."
@@ -3962,8 +3941,9 @@ msgid ""
"limited\n"
"to this distance from the player to the node."
msgstr ""
-"Se a restrição de CSM para alcançe de nós está habilitado, chamadas get_node "
-"são limitadas a está distancia do player até o nó."
+"Se a restrição de CSM para o alcançe de nós está ativado, chamadas get_node "
+"são \n"
+"limitadas a está distancia do jogador até o nó."
#: src/settings_translation_file.cpp
msgid ""
@@ -4122,6 +4102,11 @@ msgid "Joystick button repetition interval"
msgstr "Intervalo de repetição do botão do Joystick"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "Tipo do Joystick"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Sensibilidade do frustum do Joystick"
@@ -4222,6 +4207,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tecla para pular. \n"
+"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4279,7 +4275,7 @@ msgid ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
"Tecla para mover o jogador para trás.\n"
-"Também ira desabilitar o andar para frente automático quando ativo.\n"
+"Também ira desativar o andar para frente automático quando ativo.\n"
"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4364,6 +4360,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tecla para pular. \n"
+"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4733,7 +4740,7 @@ msgid ""
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Tecla para tirar fotos da tela.\n"
+"Tecla para tirar fotos do ecrã.\n"
"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -5119,10 +5126,6 @@ msgid "Main menu script"
msgstr "Menu principal de scripts"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Estilo do menu principal"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5138,6 +5141,14 @@ msgid "Makes all liquids opaque"
msgstr "Torna todos os líquidos opacos"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Diretório do mapa"
@@ -5175,11 +5186,11 @@ msgid ""
"'altitude_dry': Reduces humidity with altitude."
msgstr ""
"Atributos de geração de mapa específicos ao gerador Valleys.\n"
-"'altitude_chill':Reduz o calor com a altitude.\n"
-"'humid_rivers':Aumenta a umidade em volta dos rios.\n"
-"'profundidade_variada_rios': Se habilitado, baixa umidade e alto calor faz "
-"com que que rios se tornem mais rasos e eventualmente sumam.\n"
-"'altitude_dry': Reduz a umidade com a altitude."
+"'altitude_chill': Reduz o calor com a altitude.\n"
+"'humid_rivers': Aumenta a humidade à volta de rios.\n"
+"'profundidade_variada_rios': se ativado, baixa a humidade e alto calor faz \n"
+"com que rios se tornem mais rasos e eventualmente sumam.\n"
+"'altitude_dry': reduz a humidade com a altitude."
#: src/settings_translation_file.cpp
msgid "Map generation attributes specific to Mapgen v5."
@@ -5241,7 +5252,7 @@ msgstr "Gerador de mundo Carpathian"
#: src/settings_translation_file.cpp
msgid "Mapgen Carpathian specific flags"
-msgstr "Flags específicas do gerador de mundo Carpathian"
+msgstr "Flags específicas do gerador do mundo Carpathian"
#: src/settings_translation_file.cpp
msgid "Mapgen Flat"
@@ -5324,7 +5335,8 @@ msgid "Maximum FPS"
msgstr "FPS máximo"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "Máximo FPS quando o jogo é pausado."
#: src/settings_translation_file.cpp
@@ -5390,6 +5402,13 @@ msgstr ""
"automaticamente."
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr "Número máximo de chunks carregados forçadamente."
@@ -5422,7 +5441,7 @@ msgstr "Número máximo de mensagens recentes mostradas"
#: src/settings_translation_file.cpp
msgid "Maximum number of statically stored objects in a block."
-msgstr "Número máximo de objetos estaticamente armazenados em um bloco."
+msgstr "Número máximo de objetos estaticamente armazenados num bloco."
#: src/settings_translation_file.cpp
msgid "Maximum objects per block"
@@ -5450,7 +5469,7 @@ msgid ""
"0 to disable queueing and -1 to make the queue size unlimited."
msgstr ""
"Tamanho máximo da fila do chat.\n"
-"0 para desabilitar a fila e -1 para a tornar ilimitada."
+"0 para desativar a fila e -1 para a tornar ilimitada."
#: src/settings_translation_file.cpp
msgid "Maximum time in ms a file download (e.g. a mod download) may take."
@@ -5647,14 +5666,6 @@ msgid "Noises"
msgstr "Ruidos"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Amostragem de normalmaps"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Intensidade de normalmaps"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "Número de seguimentos de emersão"
@@ -5701,10 +5712,6 @@ msgstr ""
"memória (4096 = 100 MB, como uma regra de ouro)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "Número de iterações de oclusão de paralaxe."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Repositório de conteúdo online"
@@ -5732,34 +5739,6 @@ msgstr ""
"formspec está aberto."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "Enviesamento do efeito de oclusão de paralaxe, normalmente escala/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Escala do efeito de oclusão de paralaxe."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Oclusão de paralaxe"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Enviesamento de oclusão paralaxe"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Iterações de oclusão paralaxe"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Modo de oclusão paralaxe"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "Escala de Oclusão de paralaxe"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5830,6 +5809,16 @@ msgid "Pitch move mode"
msgstr "Modo movimento pitch"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Tecla de voar"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "Intervalo de repetição do clique direito"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5862,9 +5851,9 @@ msgid ""
"Prevent digging and placing from repeating when holding the mouse buttons.\n"
"Enable this when you dig or place too often by accident."
msgstr ""
-"Evita remoção e colocação de blocos repetidos quando os botoes do mouse são "
-"segurados.\n"
-"Habilite isto quando você cava ou coloca blocos constantemente por acidente."
+"Evita remoção e colocação de blocos repetidos quando os botoes do rato são "
+"seguros.\n"
+"Ative isto quando cava ou põe blocos constantemente por acidente."
#: src/settings_translation_file.cpp
msgid "Prevent mods from doing insecure things like running shell commands."
@@ -5876,8 +5865,8 @@ msgid ""
"Print the engine's profiling data in regular intervals (in seconds).\n"
"0 = disable. Useful for developers."
msgstr ""
-"Intervalo de impressão de dados do analisador (em segundos). 0 = "
-"desabilitado. Útil para desenvolvedores."
+"Intervalo de impressão de dados do analisador (em segundos). 0 = desativado. "
+"Útil para desenvolvedores."
#: src/settings_translation_file.cpp
msgid "Privileges that players with basic_privs can grant"
@@ -5981,15 +5970,13 @@ msgstr ""
"Restringe o acesso de certas funções a nível de cliente em servidores.\n"
"Combine os byflags abaixo par restringir recursos de nível de cliente, ou "
"coloque 0 para nenhuma restrição:\n"
-"LOAD_CLIENT_MODS: 1 (desabilita o carregamento de mods de cliente)\n"
-"CHAT_MESSAGES: 2 (desabilita a chamada send_chat_message no lado do "
-"cliente)\n"
-"READ_ITEMDEFS: 4 (desabilita a chamada get_item_def no lado do cliente)\n"
-"READ_NODEDEFS: 8 (desabilita a chamada get_node_def no lado do cliente)\n"
+"LOAD_CLIENT_MODS: 1 (desativa o carregamento de mods de cliente)\n"
+"CHAT_MESSAGES: 2 (desativa a chamada send_chat_message no lado do cliente)\n"
+"READ_ITEMDEFS: 4 (desativa a chamada get_item_def no lado do cliente)\n"
+"READ_NODEDEFS: 8 (desativa a chamada get_node_def no lado do cliente)\n"
"LOOKUP_NODES_LIMIT: 16 (limita a chamada get_node no lado do cliente para "
"csm_restriction_noderange)\n"
-"READ_PLAYERINFO: 32 (desabilita a chamada get_player_names no lado do "
-"cliente)"
+"READ_PLAYERINFO: 32 (desativa a chamada get_player_names no lado do cliente)"
#: src/settings_translation_file.cpp
msgid "Ridge mountain spread noise"
@@ -6012,10 +5999,6 @@ msgid "Right key"
msgstr "Tecla para a direita"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Intervalo de repetição do clique direito"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "Profundidade do canal do rio"
@@ -6185,7 +6168,7 @@ msgstr ""
"7 = Conjunto de mandelbrot \"Variation\" 4D.\n"
"8 = Conjunto de julia \"Variation\" 4D.\n"
"9 = Conjunto de mandelbrot \"Mandelbrot/Mandelbar\" 3D.\n"
-"10 = Conjunto de julia \"Mandelbrot/Mandelbar\" 3D.\n"
+"10 = Conjunto de julia \"Mandelbrot/Mandelbar\" 3D.\n"
"11 = Conjunto de mandelbrot \"Ãrvore de natal\" 3D.\n"
"12 = Conjunto de julia \"Ãrvore de natal\" 3D..\n"
"13 = Conjunto de mandelbrot \"Bulbo de Mandelbrot\" 3D.\n"
@@ -6314,6 +6297,20 @@ msgid "Show entity selection boxes"
msgstr "Mostrar as caixas de seleção entidades"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Defina o idioma. Deixe vazio para usar a linguagem do sistema.\n"
+"Apos mudar isso uma reinicialização é necessária."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Fonte em negrito por predefinição"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Mensagem de desligamento"
@@ -6422,9 +6419,9 @@ msgid ""
msgstr ""
"Especifica a URL no qual os clientes buscam a mídia ao em vez de usar o "
"UDP.\n"
-"$filename deve ser acessível a partir de $remote_media$filename via cURL \n"
+"$filename deve ser acessível de $remote_media$filename via cURL \n"
"(obviamente, remote_media deve terminar com uma barra \"/\").\n"
-"Arquivos que não estão presentes serão obtidos da maneira usual por UDP."
+"Ficheiros que não estão presentes serão obtidos da maneira usual por UDP."
#: src/settings_translation_file.cpp
msgid ""
@@ -6465,10 +6462,6 @@ msgid "Strength of 3D mode parallax."
msgstr "Intensidade de paralaxe."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Intensidade de normalmaps gerados."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6562,7 +6555,7 @@ msgid ""
"this option allows enforcing it for certain node types. Note though that\n"
"that is considered EXPERIMENTAL and may not work properly."
msgstr ""
-"Texturas em um nó podem ser alinhadas ao próprio nó ou ao mundo.\n"
+"Texturas num nó podem ser alinhadas ao próprio nó ou ao mundo.\n"
"O modo antigo serve melhor para coisas como maquinas, móveis, etc, enquanto "
"o novo faz com que escadas e microblocos encaixem melhor a sua volta.\n"
"Entretanto, como essa é uma possibilidade nova, não deve ser usada em "
@@ -6575,6 +6568,11 @@ msgid "The URL for the content repository"
msgstr "A url para o repositório de conteúdo"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "The deadzone of the joystick"
+msgstr "O identificador do joystick para usar"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6600,7 +6598,7 @@ msgstr "O identificador do joystick para usar"
#: src/settings_translation_file.cpp
msgid "The length in pixels it takes for touch screen interaction to start."
msgstr ""
-"A largura em pixels necessária para interação de tela de toque começar."
+"A largura em pixels necessária para a interação de ecrã de toque começar."
#: src/settings_translation_file.cpp
msgid ""
@@ -6642,19 +6640,21 @@ msgstr ""
"Isto deve ser configurado junto com o alcance_objeto_ativo."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"The rendering back-end for Irrlicht.\n"
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
-"Renderizador de fundo para o irrlight.\n"
+"Renderizador de fundo para o Irrlicht.\n"
"Uma reinicialização é necessária após alterar isso.\n"
-"Note: no android, use o OGLES1 caso em dúvida! O aplicativo pode falhar ao "
-"abrir em outro caso.\n"
-"Em outras plataformas, OpenGL é recomendo, e é o único driver com suporte a "
+"Note: no Android, use o OGLES1 caso em dúvida! A app pode falhar ao abrir em "
+"outro caso.\n"
+"Em outras plataformas, OpenGL é recomdado, e é o único driver com suporte "
+"a \n"
"sombreamento atualmente."
#: src/settings_translation_file.cpp
@@ -6692,6 +6692,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6699,10 +6705,10 @@ msgstr ""
"quando pressionando uma combinação de botão no joystick."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
"O tempo em segundos entre repetidos cliques direitos ao segurar o botão "
"direito do mouse."
@@ -6717,9 +6723,9 @@ msgid ""
"enabled. Also the vertical distance over which humidity drops by 10 if\n"
"'altitude_dry' is enabled."
msgstr ""
-"A distancia vertical onde o calor cai por 20 caso 'altitude_chill' esteja "
-"habilitado. Também é a distancia vertical onde a umidade cai por 10 se "
-"'altitude_dry' estiver habilitado."
+"A distância vertical onde o calor cai por 20 caso 'altitude_chill' esteja \n"
+"ativado. Também é a distância vertical onde a humidade cai por 10 se \n"
+"'altitude_dry' estiver ativado."
#: src/settings_translation_file.cpp
msgid "Third of 4 2D noises that together define hill/mountain range height."
@@ -6773,7 +6779,7 @@ msgstr "Atraso de dica de ferramenta"
#: src/settings_translation_file.cpp
msgid "Touch screen threshold"
-msgstr "Limiar a tela de toque"
+msgstr "Limiar o ecrã de toque"
#: src/settings_translation_file.cpp
msgid "Trees noise"
@@ -6866,6 +6872,17 @@ msgstr ""
"O downscaling correto de gama não é suportado."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "Use a filtragem trilinear ao dimensionamento de texturas."
@@ -6936,7 +6953,7 @@ msgstr "Velocidade de subida vertical, em nós por segundo."
#: src/settings_translation_file.cpp
msgid "Vertical screen synchronization."
-msgstr "Sincronização vertical da tela."
+msgstr "Sincronização vertical do ecrã."
#: src/settings_translation_file.cpp
msgid "Video driver"
@@ -7107,6 +7124,12 @@ msgstr ""
"compilado."
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
"Determina se animações das texturas dos cubos devem ser dessincronizadas "
@@ -7218,7 +7241,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Y of upper limit of large caves."
-msgstr "Limite Y máximo de grandes cavernas."
+msgstr "Limite Y máximo de grandes cavernas."
#: src/settings_translation_file.cpp
msgid "Y-distance over which caverns expand to full size."
@@ -7254,6 +7277,24 @@ msgid "Y-level of seabed."
msgstr "Nível Y do fundo do mar."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "Tempo limite de descarregamento de ficheiro via cURL"
@@ -7265,83 +7306,92 @@ msgstr "limite paralelo de cURL"
msgid "cURL timeout"
msgstr "Tempo limite de cURL"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Ativar/Desativar câmera cinemática"
-
-#~ msgid "Select Package File:"
-#~ msgstr "Selecionar o ficheiro do pacote:"
-
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Limite Y máximo de lava em grandes cavernas."
-
-#~ msgid "Waving Water"
-#~ msgstr "Ãgua ondulante"
-
-#~ msgid "Whether dungeons occasionally project from the terrain."
-#~ msgstr "Se dungeons ocasionalmente se projetam do terreno."
-
-#~ msgid "Projecting dungeons"
-#~ msgstr "Projetando dungeons"
-
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Nível Y para o qual as sombras de ilhas flutuantes se estendem."
-
-#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
#~ msgstr ""
-#~ "Nível em Y do ponto médio da montanha flutuante e da superfície do lago."
+#~ "0 = oclusão paralaxe com dados de inclinação (mais rápido).\n"
+#~ "1 = mapeamento de relevo (mais lento, mais preciso)."
-#~ msgid "Waving water"
-#~ msgstr "Balançar das Ondas"
-
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
#~ msgstr ""
-#~ "Variação da altura da colina e profundidade do lago no terreno liso da "
-#~ "Terra Flutuante."
+#~ "Ajustar a gama de codificação para a tabela de claridade. Os números mais "
+#~ "elevados são mais brilhantes.\n"
+#~ "Esta configuração é somente para o cliente e é ignorada pelo servidor."
-#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
#~ msgstr ""
-#~ "Altura máxima típica, acima e abaixo do ponto médio, do terreno da "
-#~ "montanha flutuante."
+#~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do "
+#~ "ponto médio."
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Esta fonte será usada para determinados idiomas."
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Tem a certeza que deseja reiniciar o seu mundo?"
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "Força do aumento médio da curva de luz."
+#~ msgid "Back"
+#~ msgstr "Voltar"
-#~ msgid "Shadow limit"
-#~ msgstr "Limite de mapblock"
+#~ msgid "Bump Mapping"
+#~ msgstr "Bump mapping"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "Caminho para TrueTypeFont ou bitmap."
+#~ msgid "Bumpmapping"
+#~ msgstr "Bump mapping"
-#~ msgid "Lightness sharpness"
-#~ msgstr "Nitidez da iluminação"
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "Centro do aumento da curva de luz."
-#~ msgid "Lava depth"
-#~ msgstr "Profundidade da lava"
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "Mudanças para a interface do menu principal:\n"
+#~ "- Total: Múltiplos mundos de um jogador, escolha de jogo, escolha de "
+#~ "pacote de texturas, etc.\n"
+#~ "- Simples: Um mundo de um jogador, sem escolha de jogo ou pacote de "
+#~ "texturas. Pode ser \n"
+#~ "necessário para ecrãs menores."
-#~ msgid "IPv6 support."
-#~ msgstr "Suporte IPv6."
+#~ msgid "Config mods"
+#~ msgstr "Configurar mods"
-#~ msgid "Gamma"
-#~ msgstr "Gama"
+#~ msgid "Configure"
+#~ msgstr "Configurar"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Opacidade da sombra da fonte (entre 0 e 255)."
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "Controla a densidade do terreno montanhoso nas ilhas flutuantes.\n"
+#~ "É um parâmetro adicionado ao valor de ruído 'mgv7_np_mountain'."
-#~ msgid "Floatland mountain height"
-#~ msgstr "Altura da terra flutuante montanhosa"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr "Controla a largura dos túneis, um valor menor cria túneis maiores."
-#~ msgid "Floatland base height noise"
-#~ msgstr "Altura base de ruído de terra flutuante"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Cor do cursor (R,G,B)."
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Ativa mapeamento de tons fílmico"
+#~ msgid "Darkness sharpness"
+#~ msgstr "Nitidez da escuridão"
-#~ msgid "Enable VBO"
-#~ msgstr "Ativar VBO"
+#~ msgid ""
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
+#~ msgstr ""
+#~ "Define áreas de terra flutuante em terreno suavizado.\n"
+#~ "Terrenos suavizados ocorrem quando o ruído é menor que zero."
+
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Define nível de amostragem de textura.\n"
+#~ "Um valor mais alto resulta em mapas normais mais suaves."
#~ msgid ""
#~ "Deprecated, define and locate cave liquids using biome definitions "
@@ -7352,57 +7402,209 @@ msgstr "Tempo limite de cURL"
#~ "biomas.\n"
#~ "Y do limite superior de lava em grandes cavernas."
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Descarregando e instalando $1, por favor aguarde..."
+
+#~ msgid "Enable VBO"
+#~ msgstr "Ativar VBO"
+
#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Define áreas de terra flutuante em terreno suavizado.\n"
-#~ "Terrenos suavizados ocorrem quando o ruído é menor que zero."
+#~ "Ativa o bumpmapping para texturas. Mapas normais devem ser fornecidos "
+#~ "pelo pack de\n"
+#~ "texturas ou gerado automaticamente.\n"
+#~ "Requer que as sombras sejam ativadas."
-#~ msgid "Darkness sharpness"
-#~ msgstr "Nitidez da escuridão"
-
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
-#~ msgstr "Controla a largura dos túneis, um valor menor cria túneis maiores."
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Ativa mapeamento de tons fílmico"
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Controla a densidade do terreno montanhoso nas ilhas flutuantes.\n"
-#~ "É um parâmetro adicionado ao valor de ruído 'mgv7_np_mountain'."
+#~ "Ativa geração de normalmap (efeito de relevo) ao voar.\n"
+#~ "Requer texturização bump mapping para ser ativado."
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "Centro do aumento da curva de luz."
-
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do "
-#~ "ponto médio."
+#~ "Ativa mapeamento de oclusão de paralaxe.\n"
+#~ "Requer sombreadores ativados."
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
#~ msgstr ""
-#~ "Ajustar a gama de codificação para a tabela de claridade. Os números mais "
-#~ "elevados são mais brilhantes.\n"
-#~ "Esta configuração é somente para o cliente e é ignorada pelo servidor."
+#~ "Opção experimental, pode causar espaços visíveis entre blocos\n"
+#~ "quando definido com num úmero superior a 0."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Caminho para onde salvar screenshots."
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS em menu de pausa"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "Força da oclusão paralaxe"
+#~ msgid "Floatland base height noise"
+#~ msgstr "Altura base de ruído de terra flutuante"
+
+#~ msgid "Floatland mountain height"
+#~ msgstr "Altura da terra flutuante montanhosa"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Opacidade da sombra da fonte (entre 0 e 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "Gama"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Gerar Normal maps"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Gerar mapa de normais"
+
+#~ msgid "IPv6 support."
+#~ msgstr "Suporte IPv6."
+
+#~ msgid "Lava depth"
+#~ msgstr "Profundidade da lava"
+
+#~ msgid "Lightness sharpness"
+#~ msgstr "Nitidez da iluminação"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "Limite de filas emerge no disco"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Descarregando e instalando $1, por favor aguarde..."
+#~ msgid "Main"
+#~ msgstr "Principal"
-#~ msgid "Back"
-#~ msgstr "Voltar"
+#~ msgid "Main menu style"
+#~ msgstr "Estilo do menu principal"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Minimapa em modo radar, zoom 2x"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Minimapa em modo radar, zoom 4x"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Minimapa em modo de superfície, zoom 2x"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Minimapa em modo de superfície, zoom 4x"
+
+#~ msgid "Name/Password"
+#~ msgstr "Nome/palavra-passe"
+
+#~ msgid "No"
+#~ msgstr "Não"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Amostragem de normalmaps"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Intensidade de normalmaps"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "Número de iterações de oclusão de paralaxe."
#~ msgid "Ok"
#~ msgstr "Ok"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr ""
+#~ "Enviesamento do efeito de oclusão de paralaxe, normalmente escala/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Escala do efeito de oclusão de paralaxe."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Oclusão de paralaxe"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Oclusão de paralaxe"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Enviesamento de oclusão paralaxe"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Iterações de oclusão paralaxe"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Modo de oclusão paralaxe"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Escala de Oclusão de paralaxe"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "Força da oclusão paralaxe"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "Caminho para TrueTypeFont ou bitmap."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Caminho para onde salvar screenshots."
+
+#~ msgid "Projecting dungeons"
+#~ msgstr "Projetando dungeons"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Reiniciar mundo singleplayer"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Selecionar o ficheiro do pacote:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "Limite de mapblock"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Iniciar Um Jogador"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Intensidade de normalmaps gerados."
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "Força do aumento médio da curva de luz."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Esta fonte será usada para determinados idiomas."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Ativar/Desativar câmera cinemática"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr ""
+#~ "Altura máxima típica, acima e abaixo do ponto médio, do terreno da "
+#~ "montanha flutuante."
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr ""
+#~ "Variação da altura da colina e profundidade do lago no terreno liso da "
+#~ "Terra Flutuante."
+
+#~ msgid "View"
+#~ msgstr "Vista"
+
+#~ msgid "Waving Water"
+#~ msgstr "Ãgua ondulante"
+
+#~ msgid "Waving water"
+#~ msgstr "Balançar das Ondas"
+
+#~ msgid "Whether dungeons occasionally project from the terrain."
+#~ msgstr "Se dungeons ocasionalmente se projetam do terreno."
+
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Limite Y máximo de lava em grandes cavernas."
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr ""
+#~ "Nível em Y do ponto médio da montanha flutuante e da superfície do lago."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Nível Y para o qual as sombras de ilhas flutuantes se estendem."
+
+#~ msgid "Yes"
+#~ msgstr "Sim"
diff --git a/po/pt_BR/minetest.po b/po/pt_BR/minetest.po
index fc31640c4..295a59bc5 100644
--- a/po/pt_BR/minetest.po
+++ b/po/pt_BR/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Portuguese (Brazil) (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2019-12-11 13:36+0000\n"
-"Last-Translator: ramon.venson <ramon.venson@gmail.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-23 15:50+0000\n"
+"Last-Translator: Victor Barcelos Lacerda <victornuti.1@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"minetest/minetest/pt_BR/>\n"
"Language: pt_BR\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 3.10-dev\n"
+"X-Generator: Weblate 4.5\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -24,7 +24,7 @@ msgstr "Você morreu"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -46,10 +46,6 @@ msgstr "Reconectar"
msgid "The server has requested a reconnect:"
msgstr "O servidor solicitou uma nova conexão:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Carregando..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Versão do protocolo incompatível. "
@@ -63,20 +59,15 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "O servidor suporta versões de protocolo entre $1 e $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Tente reabilitar a lista de servidores públicos e verifique sua conexão com "
-"a internet."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
-msgstr "Nós apenas suportamos a versão de protocolo $1."
+msgstr "Suportamos apenas o protocolo de versão $1."
#: builtin/mainmenu/common.lua
msgid "We support protocol versions between version $1 and $2."
-msgstr "Nós suportamos as versões de protocolo entre $1 e $2 ."
+msgstr "Suportamos protocolos com versões entre $1 e $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Nós suportamos as versões de protocolo entre $1 e $2 ."
msgid "Cancel"
msgstr "Cancelar"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Dependências:"
@@ -117,7 +109,7 @@ msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "Encontre Mais Mods"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -132,9 +124,8 @@ msgid "No game description provided."
msgstr "Nenhuma descrição de jogo disponível."
#: builtin/mainmenu/dlg_config_world.lua
-#, fuzzy
msgid "No hard dependencies"
-msgstr "Sem dependências."
+msgstr "Sem dependências"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No modpack description provided."
@@ -162,25 +153,64 @@ msgid "enabled"
msgstr "habilitado"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" já existe. Gostaria de sobrescrevê-lo?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "As dependências $1 e $2 serão instaladas."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 por $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 baixando,\n"
+"$2 na fila"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 baixando..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "$1 dependências obrigatórias não puderam ser encontradas."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 será instalado, e $2 dependências serão ignoradas."
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Todos os pacotes"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Já instalado"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Voltar ao menu principal"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Jogo Base:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "ContentDB não está disponível quando Minetest é compilado sem cURL"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
-msgstr "Carregando..."
+msgstr "Baixando..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
-msgstr "Falhou em baixar $1"
+msgstr "Falha ao baixar $1"
#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -192,22 +222,45 @@ msgid "Install"
msgstr "Instalar"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "Instalar $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "Instalar dependências ausentes"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Modulos (Mods)"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No packages could be retrieved"
-msgstr "Nenhum pacote pode ser recuperado"
+msgstr "Nenhum pacote pôde ser recuperado"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No results"
msgstr "Sem resultados"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Buscar"
+msgid "No updates"
+msgstr "Sem atualizações"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "Não encontrado"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Sobrescrever"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "Verifique se o jogo base está correto."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "Na fila"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -222,8 +275,12 @@ msgid "Update"
msgstr "Atualizar"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr ""
+msgid "Update All [$1]"
+msgstr "Atualizar tudo [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Veja mais informações em um navegador da web"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -231,45 +288,39 @@ msgstr "Já existe um mundo com o nome \"$1\""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "Terreno adicional"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
-msgstr "Frio de altitude"
+msgstr "Altitude fria"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Altitude dry"
-msgstr "Frio de altitude"
+msgstr "Altitude seca"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biome blending"
-msgstr "Ruído do bioma"
+msgstr "Transição de bioma"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biomes"
-msgstr "Ruído do bioma"
+msgstr "Biomas"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caverns"
-msgstr "Barulho da caverna"
+msgstr "Cavernas"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caves"
-msgstr "Octavos"
+msgstr "Cavernas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
msgstr "Criar"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "Monitorização"
+msgstr "Decorações"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -277,26 +328,23 @@ msgstr "Baixe um jogo, como Minetest Game, do site minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download one from minetest.net"
-msgstr "Baixe um apartir do site minetest.net"
+msgstr "Baixe um a partir do site minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Dungeons"
-msgstr "Y mínimo da dungeon"
+msgstr "Masmorras (Dungeons)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "Terreno plano"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floating landmasses in the sky"
-msgstr "Densidade da Ilha Flutuante montanhosa"
+msgstr "Ilhas flutuantes no céu"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floatlands (experimental)"
-msgstr "Nível de água"
+msgstr "Ilhas flutuantes (experimental)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -304,28 +352,27 @@ msgstr "Jogo"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Gera terrenos não fractais: Oceanos e subterrâneos"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "Colinas"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Humid rivers"
-msgstr "Driver de vídeo"
+msgstr "Rios húmidos"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "Aumenta a humidade perto de rios"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "Lagos"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "Baixa humidade e calor elevado resultam em rios rasos ou secos"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -333,25 +380,23 @@ msgstr "Gerador de mapa"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen flags"
-msgstr "Flags do gerador de mundo"
+msgstr "Opções do gerador de mapas"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mapgen-specific flags"
-msgstr "Flags específicas do gerador de mundo V5"
+msgstr "Parâmetros específicos do gerador de mapas"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mountains"
-msgstr "Ruído da montanha"
+msgstr "Montanhas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "Fluxo de lama"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "Conectar túneis e cavernas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
@@ -359,75 +404,72 @@ msgstr "Nenhum jogo selecionado"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "Reduz calor com a altitude"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "Reduz humidade com a altitude"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Rivers"
-msgstr "Tamanho do Rio"
+msgstr "Rios"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "Rios ao nível do mar"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Seed"
-msgstr "Seed"
+msgstr "Semente (Seed)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "Transição suave entre biomas"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
+"Estruturas que aparecem no terreno (sem efeito em árvores e grama da selva "
+"criada pelo v6)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "Estruturas que aparecem no terreno, geralmente árvores e plantas"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
-msgstr ""
+msgstr "Temperado, Deserto"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgstr "Temperado, Deserto, Selva"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "Temperado, Deserto, Selva, Tundra, Taiga"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Terrain surface erosion"
-msgstr "Altura do terreno"
+msgstr "Erosão na superfície do terreno"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "Ãrvores e relva da selva"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Vary river depth"
-msgstr "Profundidade do Rio"
+msgstr "Variar altura dos rios"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "Cavernas muito grandes nas profundezas do subsolo"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Warning: The Development Test is meant for developers."
-msgstr ""
-"Aviso: O game \"minimal development test\" apenas serve para desenvolvedores."
+msgstr "Aviso: O jogo Development Test é projetado para desenvolvedores."
#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
@@ -465,7 +507,7 @@ msgstr "Aceitar"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid "Rename Modpack:"
-msgstr "Renomear pacote de módulos:"
+msgstr "Renomear Modpack:"
#: builtin/mainmenu/dlg_rename_modpack.lua
msgid ""
@@ -473,7 +515,7 @@ msgid ""
"override any renaming here."
msgstr ""
"Esse modpack possui um nome explícito em seu modpack.conf que vai "
-"sobrescrever qualquer renomeio aqui."
+"sobrescrever qualquer nome aqui."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "(No description of setting given)"
@@ -521,7 +563,7 @@ msgstr "Persistência"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a valid integer."
-msgstr "Por favor insira um inteiro válido."
+msgstr "Por favor, insira um inteiro válido."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a valid number."
@@ -529,13 +571,17 @@ msgstr "Por favor, insira um número válido."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Restore Default"
-msgstr "Restaurar para o padrão"
+msgstr "Restaurar Padrão"
#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
msgid "Scale"
msgstr "Escala"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Buscar"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Selecione o diretório"
@@ -592,7 +638,7 @@ msgstr "valor absoluto"
#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "defaults"
-msgstr "Padrões"
+msgstr "padrão"
#. ~ "eased" is a noise parameter flag.
#. It is used to make the map smoother and
@@ -608,34 +654,33 @@ msgstr "$1 (Habilitado)"
#: builtin/mainmenu/pkgmgr.lua
msgid "$1 mods"
-msgstr "$1 módulos"
+msgstr "$1 mods"
#: builtin/mainmenu/pkgmgr.lua
msgid "Failed to install $1 to $2"
-msgstr "Não foi possível instalar $1 para $2"
+msgstr "Não foi possível instalar $1 em $2"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install Mod: Unable to find real mod name for: $1"
-msgstr ""
-"Instalação de módulo: não foi possível encontrar o nome real do módulo: $1"
+msgstr "Instalação de mod: não foi possível encontrar o nome real do mod: $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install Mod: Unable to find suitable folder name for modpack $1"
msgstr ""
-"Instalação do Mod: não foi possível encontrar o nome da pasta adequado para "
+"Instalação de mod: não foi possível encontrar o nome da pasta adequado para "
"o modpack $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install: Unsupported file type \"$1\" or broken archive"
-msgstr "Instalar: Tipo de arquivo \"$1\" não suportado ou corrompido"
+msgstr "Instalação: Tipo de arquivo \"$1\" não suportado ou corrompido"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install: file: \"$1\""
-msgstr "Instalar: arquivo: \"$1\""
+msgstr "Instalação: arquivo: \"$1\""
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to find a valid mod or modpack"
-msgstr "Incapaz de encontrar um módulo ou modpack válido"
+msgstr "Incapaz de encontrar um mod ou modpack válido"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a $1 as a texture pack"
@@ -647,12 +692,27 @@ msgstr "Não foi possível instalar um jogo como um $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a mod as a $1"
-msgstr "Não foi possível instalar um módulo como um $1"
+msgstr "Não foi possível instalar um mod como um $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a modpack as a $1"
msgstr "Não foi possível instalar um modpack como um $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Carregando..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Scripting de cliente está desabilitado"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Tente reativar a lista de servidores públicos e verifique sua conexão com a "
+"internet."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Procurar conteúdo online"
@@ -663,7 +723,7 @@ msgstr "Conteúdo"
#: builtin/mainmenu/tab_content.lua
msgid "Disable Texture Pack"
-msgstr "Desabilitar pacote de texturas"
+msgstr "Desabilitar Pacote de Texturas"
#: builtin/mainmenu/tab_content.lua
msgid "Information:"
@@ -671,7 +731,7 @@ msgstr "Informação:"
#: builtin/mainmenu/tab_content.lua
msgid "Installed Packages:"
-msgstr "Pacotes instalados:"
+msgstr "Pacotes Instalados:"
#: builtin/mainmenu/tab_content.lua
msgid "No dependencies."
@@ -679,7 +739,7 @@ msgstr "Sem dependências."
#: builtin/mainmenu/tab_content.lua
msgid "No package description available"
-msgstr "Nenhuma descrição do pacote disponível"
+msgstr "Nenhuma descrição de pacote disponível"
#: builtin/mainmenu/tab_content.lua
msgid "Rename"
@@ -687,67 +747,75 @@ msgstr "Renomear"
#: builtin/mainmenu/tab_content.lua
msgid "Uninstall Package"
-msgstr "Desinstalar o pacote"
+msgstr "Desinstalar Pacote"
#: builtin/mainmenu/tab_content.lua
msgid "Use Texture Pack"
-msgstr "Usar pacote de texturas"
+msgstr "Usar Pacote de Texturas"
#: builtin/mainmenu/tab_credits.lua
msgid "Active Contributors"
-msgstr "Colaboradores ativos"
+msgstr "Colaboradores Ativos"
#: builtin/mainmenu/tab_credits.lua
msgid "Core Developers"
-msgstr "Desenvolvedores principais"
+msgstr "Desenvolvedores Principais"
#: builtin/mainmenu/tab_credits.lua
msgid "Credits"
msgstr "Créditos"
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr "Abrir diretório de dados do usuário"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Abre o diretório que contém mundos, jogos, mods fornecidos pelo usuário,\n"
+"e pacotes de textura em um gerenciador / navegador de arquivos."
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
-msgstr "Colaboradores anteriores"
+msgstr "Colaboradores Anteriores"
#: builtin/mainmenu/tab_credits.lua
msgid "Previous Core Developers"
-msgstr "Desenvolvedores principais anteriores"
+msgstr "Desenvolvedores Principais Anteriores"
#: builtin/mainmenu/tab_local.lua
msgid "Announce Server"
-msgstr "Anunciar servidor"
+msgstr "Anunciar Servidor"
#: builtin/mainmenu/tab_local.lua
msgid "Bind Address"
-msgstr "Endereço de Bind"
+msgstr "Endereço"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Configurar"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
-msgstr "Modo criativo"
+msgstr "Modo Criativo"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
-msgstr "Habilitar dano"
+msgstr "Habilitar Dano"
#: builtin/mainmenu/tab_local.lua
msgid "Host Game"
-msgstr "Criar Jogo"
+msgstr "Hospedar Jogo"
#: builtin/mainmenu/tab_local.lua
msgid "Host Server"
-msgstr "Criar Servidor"
+msgstr "Hospedar Servidor"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "Instalar jogos do ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Nome / Senha"
+msgid "Name"
+msgstr "Nome"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -758,6 +826,10 @@ msgid "No world created or selected!"
msgstr "Nenhum mundo criado ou selecionado!"
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "Senha"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Jogar"
@@ -766,55 +838,59 @@ msgid "Port"
msgstr "Porta"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "Selecione Mods"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Selecione um mundo:"
#: builtin/mainmenu/tab_local.lua
msgid "Server Port"
-msgstr "Porta do servidor"
+msgstr "Porta do Servidor"
#: builtin/mainmenu/tab_local.lua
msgid "Start Game"
-msgstr "Iniciar o jogo"
+msgstr "Iniciar Jogo"
#: builtin/mainmenu/tab_online.lua
msgid "Address / Port"
msgstr "Endereço / Porta"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Conectar"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Modo criativo"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Dano habilitado"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
-msgstr "Deletar Favorito"
+msgstr "Rem. Favorito"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
-msgstr "Favoritos"
+msgstr "Favorito"
#: builtin/mainmenu/tab_online.lua
msgid "Join Game"
-msgstr "Juntar-se ao jogo"
+msgstr "Entrar em um Jogo"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Nome / Senha"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP habilitado"
@@ -840,11 +916,7 @@ msgstr "Todas as configurações"
#: builtin/mainmenu/tab_settings.lua
msgid "Antialiasing:"
-msgstr "Antialiasing:"
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Você tem certeza que deseja resetar seu mundo um-jogador?"
+msgstr "Anti-aliasing:"
#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
@@ -854,10 +926,6 @@ msgstr "Salvar automaticamente o tamanho da tela"
msgid "Bilinear Filter"
msgstr "Filtragem bi-linear"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Bump mapping"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Mudar teclas"
@@ -871,10 +939,6 @@ msgid "Fancy Leaves"
msgstr "Folhas com transparência"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Gerar Normal maps"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmap (filtro)"
@@ -883,10 +947,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap + Filtro Anisotrópico"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Não"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Sem filtros"
@@ -914,19 +974,11 @@ msgstr "Folhas Opacas"
msgid "Opaque Water"
msgstr "Ãgua opaca"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Oclusão de paralaxe"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Partículas"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Resetar mundo um-jogador"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Tela:"
@@ -939,6 +991,10 @@ msgid "Shaders"
msgstr "Sombreadores"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr "Sombreadores (experimental)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Sombreadores(indisponível)"
@@ -975,30 +1031,13 @@ msgid "Waving Leaves"
msgstr "Folhas Balançam"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
msgid "Waving Liquids"
-msgstr "Nós que balancam"
+msgstr "Líquidos com ondas"
#: builtin/mainmenu/tab_settings.lua
msgid "Waving Plants"
msgstr "Plantas balançam"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Sim"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Configurar Mods"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Principal"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Iniciar Um jogador"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Erro de conexão (tempo excedido)."
@@ -1050,7 +1089,7 @@ msgstr "Nome de jogador muito longo."
#: src/client/clientlauncher.cpp
msgid "Please choose a name!"
-msgstr "Por favor escolha um nome!"
+msgstr "Por favor, escolha um nome!"
#: src/client/clientlauncher.cpp
msgid "Provided password file failed to open: "
@@ -1058,7 +1097,7 @@ msgstr "Arquivo de senha fornecido falhou em abrir : "
#: src/client/clientlauncher.cpp
msgid "Provided world path doesn't exist: "
-msgstr "O caminho do mundo providenciado não existe. "
+msgstr "Caminho informado para o mundo não existe: "
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string. Put either "no" or "yes"
@@ -1086,7 +1125,7 @@ msgstr "- Endereço: "
#: src/client/game.cpp
msgid "- Creative Mode: "
-msgstr "Modo Criativo: "
+msgstr "- Modo Criativo: "
#: src/client/game.cpp
msgid "- Damage: "
@@ -1161,43 +1200,30 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
"Controles:\n"
-"\n"
-"- %s1: andar para frente\n"
-"\n"
-"- %s2: andar para trás\n"
-"\n"
-"- %s3: andar para a esquerda\n"
-"\n"
-"-%s4: andar para a direita\n"
-"\n"
-"- %s5: pular/escalar\n"
-"\n"
-"- %s6: esgueirar/descer\n"
-"\n"
-"- %s7: soltar item\n"
-"\n"
-"- %s8: inventário\n"
-"\n"
+"- %s: mover para frente\n"
+"- %s: mover para trás\n"
+"- %s: mover para esquerda\n"
+"- %s: mover para direita\n"
+"- %s: pular/subir\n"
+"- %s: cavar/socar\n"
+"- %s: colocar/usar\n"
+"- %s: andar furtivamente/descer\n"
+"- %s: soltar item\n"
+"- %s: inventário\n"
"- Mouse: virar/olhar\n"
-"\n"
-"- Botão esquerdo do mouse: cavar/dar soco\n"
-"\n"
-"- Botão direito do mouse: colocar/usar\n"
-"\n"
"- Roda do mouse: selecionar item\n"
-"\n"
-"- %s9: bate-papo\n"
+"- %s: bate-papo\n"
#: src/client/game.cpp
msgid "Creating client..."
@@ -1273,7 +1299,7 @@ msgstr "Modo rápido habilitado"
#: src/client/game.cpp
msgid "Fast mode enabled (note: no 'fast' privilege)"
-msgstr "Modo rápido habilitado(note: sem privilégio 'fast')"
+msgstr "Modo rápido habilitado (nota: sem o privilégio 'fast')"
#: src/client/game.cpp
msgid "Fly mode disabled"
@@ -1328,34 +1354,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Minipapa atualmente desabilitado por jogo ou mod"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Minimapa escondido"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Minimapa em modo radar, zoom 1x"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Minimapa em modo radar, zoom 2x"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Minimapa em modo radar, zoom 4x"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Minimapa em modo de superfície, zoom 1x"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Minimapa em modo de superfície, zoom 2x"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Minimapa em modo de superfície, zoom 4x"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Modo atravessar paredes desabilitado"
@@ -1417,11 +1415,11 @@ msgstr "Som mutado"
#: src/client/game.cpp
msgid "Sound system is disabled"
-msgstr ""
+msgstr "Sistema de som está desativado"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "Sistema de som não é suportado nesta versão"
#: src/client/game.cpp
msgid "Sound unmuted"
@@ -1440,7 +1438,7 @@ msgstr "Distancia de visualização está no máximo:%d"
#: src/client/game.cpp
#, c-format
msgid "Viewing range is at minimum: %d"
-msgstr "Distancia de visualização está no mínima:%d"
+msgstr "Alcance de visualização é no mínimo: %d"
#: src/client/game.cpp
#, c-format
@@ -1747,6 +1745,24 @@ msgstr "Botão X 2"
msgid "Zoom"
msgstr "Zoom"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Minimapa escondido"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Minimapa em modo radar, Zoom %dx"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Minimapa em modo de superfície, Zoom %dx"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "Minimapa em modo de textura"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "As senhas não correspondem!"
@@ -1756,7 +1772,7 @@ msgid "Register and Join"
msgstr "Registrar e entrar"
#: src/gui/guiConfirmRegistration.cpp
-#, fuzzy, c-format
+#, c-format
msgid ""
"You are about to join this server with the name \"%s\" for the first time.\n"
"If you proceed, a new account using your credentials will be created on this "
@@ -1764,11 +1780,12 @@ msgid ""
"Please retype your password and click 'Register and Join' to confirm account "
"creation, or click 'Cancel' to abort."
msgstr ""
-"Você está prestes a entrar no servidor em %1$s com o nome \"%2$s\" pela "
-"primeira vez. Se continuar, uma nova conta usando suas credenciais será "
-"criada neste servidor.\n"
-"Por favor, redigite sua senha e clique registrar e entrar para confirmar a "
-"criação da conta ou clique em cancelar para abortar."
+"Você está prestes a entrar no servidor com o nome \"%s\" pela primeira "
+"vez. \n"
+"Se continuar, uma nova conta usando suas credenciais será criada neste "
+"servidor.\n"
+"Por favor, confirme sua senha e clique em \"Registrar e Entrar\" para "
+"confirmar a criação da conta, ou clique em \"Cancelar\" para abortar."
#: src/gui/guiFormSpecMenu.cpp
msgid "Proceed"
@@ -1854,11 +1871,11 @@ msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
msgid "Local command"
-msgstr "Comandos de Local"
+msgstr "Comando local"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Mute"
-msgstr "Mutar"
+msgstr "Mudo"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Next item"
@@ -1913,9 +1930,8 @@ msgid "Toggle noclip"
msgstr "Alternar noclip"
#: src/gui/guiKeyChangeMenu.cpp
-#, fuzzy
msgid "Toggle pitchmove"
-msgstr "Ativar histórico de conversa"
+msgstr "Ativar Voar seguindo a câmera"
#: src/gui/guiKeyChangeMenu.cpp
msgid "press key"
@@ -1982,7 +1998,6 @@ msgstr ""
"estiver fora do circulo principal."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
"Can be used to move a desired point to (0, 0) to create a\n"
@@ -1993,13 +2008,17 @@ msgid ""
"situations.\n"
"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
msgstr ""
-"(X,Y,Z) Espaço do fractal a partir centro do mundo em unidades de 'escala'.\n"
-"Pode ser usado para mover um ponto desejado para (0, 0) para criar um ponto "
-"de spawn apropriado, ou para permitir zoom em um ponto desejado aumentando "
-"sua escala.\n"
-"O padrão é configurado para ponto de spawn mandelbrot, pode ser necessário "
-"altera-lo em outras situações.\n"
-"Variam de -2 a 2. Multiplica por \"escala\" para compensação de nós."
+"(X,Y,Z) compensação do fractal a partir centro do mundo em unidades de "
+"'escala'.\n"
+"Pode ser usado para mover um ponto desejado para (0, 0) para criar um\n"
+"ponto de spawn flexível ou para permitir zoom em um ponto desejado,\n"
+"aumentando 'escala'.\n"
+"O padrão é ajustado para um ponto de spawn adequado para conjuntos de\n"
+"Mandelbrot com parâmetros padrão, podendo ser necessário alterá-lo em "
+"outras \n"
+"situações.\n"
+"Variam aproximadamente de -2 a 2. Multiplique por 'escala' para compensar em "
+"nodes."
#: src/settings_translation_file.cpp
msgid ""
@@ -2013,19 +2032,11 @@ msgid ""
msgstr ""
"(X,Y,Z) Escala fractal em nós.\n"
"Tamanho fractal atual será de 2 a 3 vezes maior.\n"
-"Esses números podem ser muito grandes, o fractal não tem que encaixar dentro "
-"do mundo.\n"
+"Esses números podem ser muito grandes, o fractal\n"
+"não tem que encaixar dentro do mundo.\n"
"Aumente estes para 'ampliar' nos detalhes do fractal.\n"
-"Padrão é para uma forma espremida verticalmente para uma ilha, coloque todos "
-"os 3 números iguais para a forma crua."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = oclusão paralaxe com dados de inclinação (mais rápido).\n"
-"1 = mapeamento de relevo (mais lento, mais preciso)."
+"Padrão é para uma forma espremida verticalmente para\n"
+"uma ilha, coloque todos os 3 números iguais para a forma crua."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
@@ -2037,7 +2048,7 @@ msgstr "Ruído 2D que controla o formato/tamanho de colinas."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of step mountains."
-msgstr "Ruído 2D que controla o formato/tamanho de montanhas de etapa."
+msgstr "Ruído 2D que controla o formato/tamanho de montanhas de caminhada."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
@@ -2049,12 +2060,13 @@ msgstr "2D noise que controla o tamanho/ocorrência de colinas."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the size/occurrence of step mountain ranges."
-msgstr "Ruído 2D que controla o tamanho/ocorrência de montanhas de passo."
+msgstr ""
+"Ruído 2D que controla o tamanho/ocorrência de intervalos de montanhas de "
+"caminhar."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "2D noise that locates the river valleys and channels."
-msgstr "Ruído 2D que controla o formato/tamanho de colinas."
+msgstr "Ruído 2D que localiza os vales e canais dos rios."
#: src/settings_translation_file.cpp
msgid "3D clouds"
@@ -2065,20 +2077,19 @@ msgid "3D mode"
msgstr "modo 3D"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "3D mode parallax strength"
-msgstr "Intensidade de normalmaps"
+msgstr "Força de paralaxe do modo 3D"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
-msgstr "barulho 3D que define cavernas gigantes."
+msgstr "Ruído 3D que define cavernas gigantes."
#: src/settings_translation_file.cpp
msgid ""
"3D noise defining mountain structure and height.\n"
"Also defines structure of floatland mountain terrain."
msgstr ""
-"barulho 3D que define estrutura de montanha e altura.\n"
+"Ruído 3D que define estrutura de montanha e altura.\n"
"Também define a estrutura do terreno da montanha das ilhas flutuantes."
#: src/settings_translation_file.cpp
@@ -2088,6 +2099,12 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
+"Ruído 3D definindo as estruturas de terras flutuantes\n"
+"Se alterar da predefinição, a 'escala' do ruído (0.7 por predefinição) pode "
+"precisar\n"
+"ser ajustada, já que o afunilamento das terras flutuantes funciona melhor "
+"quando o ruído tem\n"
+"um valor entre -2.0 e 2.0."
#: src/settings_translation_file.cpp
msgid "3D noise defining structure of river canyon walls."
@@ -2156,9 +2173,12 @@ msgid "ABM interval"
msgstr "Intervalo do ABM"
#: src/settings_translation_file.cpp
-#, fuzzy
+msgid "ABM time budget"
+msgstr "Alocação de tempo do ABM"
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
-msgstr "Limite absoluto de filas emergentes"
+msgstr "Limite absoluto de filas de blocos para emergir"
#: src/settings_translation_file.cpp
msgid "Acceleration in air"
@@ -2215,6 +2235,11 @@ msgid ""
"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
"to be sure) creates a solid floatland layer."
msgstr ""
+"Ajusta a densidade da camada de ilhas flutuantes.\n"
+"Aumente o valor para aumentar a densidade. Pode ser positivo ou negativo.\n"
+"Valor = 0.0: 50% do volume é ilhas flutuantes.\n"
+"Valor = 2.0 (pode ser maior dependendo do 'mgv7_np_floatland', sempre teste\n"
+"para ter certeza) cria uma camada sólida de ilhas flutuantes."
#: src/settings_translation_file.cpp
msgid "Advanced"
@@ -2228,6 +2253,12 @@ msgid ""
"This only has significant effect on daylight and artificial\n"
"light, it has very little effect on natural night light."
msgstr ""
+"Altera a curva da luz aplicando-lhe a 'correção gama'.\n"
+"Valores altos tornam os níveis médios e baixos de luminosidade mais "
+"brilhantes.\n"
+"O valor '1.0' mantêm a curva de luz inalterada.\n"
+"Isto só tem um efeito significativo sobre a luz do dia e a luz \n"
+"artificial, tem pouquíssimo efeito na luz natural da noite."
#: src/settings_translation_file.cpp
msgid "Always fly and fast"
@@ -2267,7 +2298,7 @@ msgstr "Concatenar nome do item a descrição."
#: src/settings_translation_file.cpp
msgid "Apple trees noise"
-msgstr "Barulho das Ãrvores de Macieira"
+msgstr "Ruído de Ãrvores de Macieira"
#: src/settings_translation_file.cpp
msgid "Arm inertia"
@@ -2278,8 +2309,8 @@ msgid ""
"Arm inertia, gives a more realistic movement of\n"
"the arm when the camera moves."
msgstr ""
-"Inercia dos braços fornece um movimento mais realista dos braços quando a "
-"câmera mexe."
+"Inercia dos braços, fornece um movimento mais realista dos\n"
+"braços quando movimenta a câmera."
#: src/settings_translation_file.cpp
msgid "Ask to reconnect after crash"
@@ -2299,14 +2330,18 @@ msgid ""
"optimization.\n"
"Stated in mapblocks (16 nodes)."
msgstr ""
-"Nesta distância, o servidor otimizará agressivamente quais blocos são "
-"enviados aos clientes.\n"
+"Nesta distância, o servidor otimizará agressivamente quais blocos serão "
+"enviados\n"
+"aos clientes.\n"
"Pequenos valores potencialmente melhoram muito o desempenho, à custa de "
-"falhas de renderização visíveis(alguns blocos não serão processados debaixo "
-"da água e nas cavernas, bem como às vezes em terra).\n"
-"Configure isso como um valor maior do que a "
-"distância_máxima_de_envio_do_bloco para desabilitar essa otimização.\n"
-"Especificado em barreiras do mapa (16 nós)."
+"falhas\n"
+"de renderização visíveis (alguns blocos não serão processados debaixo da "
+"água e nas\n"
+"cavernas, bem como às vezes em terra).\n"
+"Configurando isso para um valor maior do que a "
+"distância_máxima_de_envio_do_bloco\n"
+"para desabilitar essa otimização.\n"
+"Especificado em barreiras do mapa (16 nodes)."
#: src/settings_translation_file.cpp
msgid "Automatic forward key"
@@ -2350,11 +2385,11 @@ msgstr "Privilégios básicos"
#: src/settings_translation_file.cpp
msgid "Beach noise"
-msgstr "barulho de praia"
+msgstr "Ruído de praias"
#: src/settings_translation_file.cpp
msgid "Beach noise threshold"
-msgstr "Limitar o barulho da praia"
+msgstr "Limiar do ruído de praias."
#: src/settings_translation_file.cpp
msgid "Bilinear filtering"
@@ -2383,24 +2418,20 @@ msgid "Block send optimize distance"
msgstr "Distância otimizada de envio de bloco"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Bold and italic font path"
-msgstr "Caminho de fonte monoespaçada"
+msgstr "Caminho de fonte em negrito e itálico"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Bold and italic monospace font path"
-msgstr "Caminho de fonte monoespaçada"
+msgstr "Caminho de fonte monoespaçada para negrito e itálico"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Bold font path"
-msgstr "Caminho da fonte"
+msgstr "Caminho da fonte em negrito"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Bold monospace font path"
-msgstr "Caminho de fonte monoespaçada"
+msgstr "Caminho de fonte monoespaçada em negrito"
#: src/settings_translation_file.cpp
msgid "Build inside player"
@@ -2411,19 +2442,15 @@ msgid "Builtin"
msgstr "Embutido"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Bump mapping"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
"Increasing can reduce artifacting on weaker GPUs.\n"
"0.1 = Default, 0.25 = Good value for weaker tablets."
msgstr ""
-"Distancia do plano próximo da câmera em nós, entre 0 e 0.5\n"
-"A maioria dos usuários não precisarão mudar isto.\n"
+"Distancia do plano próximo da câmera em nós, entre 0 e 0.25\n"
+"Só funciona em plataformas GLES. A maioria dos usuários não precisarão mudar "
+"isto.\n"
"Aumentar pode reduzir a ocorrencia de artefatos em GPUs mais fracas.\n"
"0.1 = Padrão, 0.25 = Bom valor para tablets fracos."
@@ -2441,15 +2468,15 @@ msgstr "Tecla para alternar atualização da câmera"
#: src/settings_translation_file.cpp
msgid "Cave noise"
-msgstr "Barulho nas caverna"
+msgstr "Ruído de cavernas"
#: src/settings_translation_file.cpp
msgid "Cave noise #1"
-msgstr "Barulho na caverna #1"
+msgstr "Ruído de cavernas #1"
#: src/settings_translation_file.cpp
msgid "Cave noise #2"
-msgstr "Barulho na caverna #2"
+msgstr "Ruído de cavernas #2"
#: src/settings_translation_file.cpp
msgid "Cave width"
@@ -2457,11 +2484,11 @@ msgstr "Largura da caverna"
#: src/settings_translation_file.cpp
msgid "Cave1 noise"
-msgstr "Barulho na caverna1"
+msgstr "Ruídos de Cave1"
#: src/settings_translation_file.cpp
msgid "Cave2 noise"
-msgstr "Barulho na caverna2"
+msgstr "Ruídos de Cave2"
#: src/settings_translation_file.cpp
msgid "Cavern limit"
@@ -2469,7 +2496,7 @@ msgstr "Limite da caverna"
#: src/settings_translation_file.cpp
msgid "Cavern noise"
-msgstr "Barulho da caverna"
+msgstr "Ruído de cavernas"
#: src/settings_translation_file.cpp
msgid "Cavern taper"
@@ -2488,44 +2515,28 @@ msgid ""
"Center of light curve boost range.\n"
"Where 0.0 is minimum light level, 1.0 is maximum light level."
msgstr ""
+"Centro da faixa de aumento da curva de luz.\n"
+"Onde 0.0 é o nível mínimo de luz, 1.0 é o nível máximo de luz."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Mudanças para a interface do menu principal:\n"
-" - Total: Múltiplos mundos de um jogador, escolha de jogo, escolha de pacote "
-"de texturas, etc.\n"
-"- Simples: Um mundo de um jogador, sem escolha de jogo ou pacote de "
-"texturas. Pode ser necessário para telas menores."
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat font size"
-msgstr "Tamanho da fonte"
+msgstr "Tamanho da fonte do chat"
#: src/settings_translation_file.cpp
msgid "Chat key"
msgstr "Tecla de Chat"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat log level"
-msgstr "Nível de log do Debug"
+msgstr "Nível de log do chat"
#: src/settings_translation_file.cpp
msgid "Chat message count limit"
msgstr "Limite do contador de mensagens de bate-papo"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat message format"
-msgstr "Tamanho máximo da mensagem de conversa"
+msgstr "Formato da mensagem de chat"
#: src/settings_translation_file.cpp
msgid "Chat message kick threshold"
@@ -2672,6 +2683,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "Lista negra de flags do ContentDB"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "Máximo de downloads simultâneos de ContentDB"
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "Url do ContentDB"
@@ -2720,6 +2735,9 @@ msgid ""
"Value >= 10.0 completely disables generation of tunnels and avoids the\n"
"intensive noise calculations."
msgstr ""
+"Controla a largura dos túneis, um valor menor cria túneis mais largos.\n"
+"Valor >= 10,0 desabilita completamente a geração de túneis e evita os\n"
+"cálculos intensivos de ruído."
#: src/settings_translation_file.cpp
msgid "Crash message"
@@ -2734,16 +2752,24 @@ msgid "Crosshair alpha"
msgstr "Alpha do cursor"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr "Alpha do cursor (o quanto ele é opaco, níveis entre 0 e 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Alpha do cursor (o quanto ele é opaco, níveis entre 0 e 255).\n"
+"Também controla a cor da cruz do objeto"
#: src/settings_translation_file.cpp
msgid "Crosshair color"
msgstr "Cor do cursor"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Cor do cursor (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Cor da cruz (R, G, B).\n"
+"Também controla a cor da cruz do objeto"
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2771,7 +2797,7 @@ msgstr "Tecla de abaixar volume"
#: src/settings_translation_file.cpp
msgid "Decrease this to increase liquid resistance to movement."
-msgstr ""
+msgstr "Diminua isto para aumentar a resistência do líquido ao movimento."
#: src/settings_translation_file.cpp
msgid "Dedicated server step"
@@ -2806,9 +2832,8 @@ msgid "Default report format"
msgstr "Formato de reporte padrão"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Default stack size"
-msgstr "Jogo padrão"
+msgstr "Tamanho padrão de stack"
#: src/settings_translation_file.cpp
msgid ""
@@ -2850,21 +2875,12 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Define localizações e terrenos de morros e lagos opcionais."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Define processo amostral de textura.\n"
-"Um valor mais alto resulta em mapas de normais mais suaves."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Define o nível base do solo."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Defines the depth of the river channel."
-msgstr "Define o nível base do solo."
+msgstr "Define a profundidade do canal do rio."
#: src/settings_translation_file.cpp
msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
@@ -2873,14 +2889,12 @@ msgstr ""
"ilimitado)."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Defines the width of the river channel."
-msgstr "Define estruturas de canais de grande porte (rios)."
+msgstr "Define a largura do canal do rio."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Defines the width of the river valley."
-msgstr "Define áreas onde na árvores têm maçãs."
+msgstr "Define a largura do vale do rio."
#: src/settings_translation_file.cpp
msgid "Defines tree areas and tree density."
@@ -2920,27 +2934,30 @@ msgid ""
"Description of server, to be displayed when players join and in the "
"serverlist."
msgstr ""
-"Descrição do servidor, a ser exibida quando os jogadores se se conectarem e "
-"na lista de servidores."
+"Descrição do servidor, a ser exibida quando os jogadores se conectarem e na "
+"lista de servidores."
#: src/settings_translation_file.cpp
msgid "Desert noise threshold"
msgstr "Limite do ruído de deserto"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Deserts occur when np_biome exceeds this value.\n"
"When the 'snowbiomes' flag is enabled, this is ignored."
msgstr ""
-"Deserto ocorre quando \"np_biome\" excede esse valor.\n"
-"Quando o novo sistema de biomas está habilitado, isso é ignorado."
+"Os desertos ocorrem quando np_biome excede este valor.\n"
+"Quando a marcação 'snowbiomes' está ativada, isto é ignorado."
#: src/settings_translation_file.cpp
msgid "Desynchronize block animation"
msgstr "Dessincronizar animação do bloco"
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr "Tecla para escavar"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Partículas de Escavação"
@@ -2981,15 +2998,16 @@ msgid "Dungeon minimum Y"
msgstr "Y mínimo da dungeon"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Dungeon noise"
-msgstr "Y mínimo da dungeon"
+msgstr "Ruído de masmorra"
#: src/settings_translation_file.cpp
msgid ""
"Enable IPv6 support (for both client and server).\n"
"Required for IPv6 connections to work at all."
msgstr ""
+"Habilitar suporte IPv6 (tanto para cliente quanto para servidor).\n"
+"Necessário para que as conexões IPv6 funcionem."
#: src/settings_translation_file.cpp
msgid ""
@@ -3004,7 +3022,8 @@ msgid "Enable console window"
msgstr "Habilitar janela de console"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Habilitar modo criativo para mundos novos."
#: src/settings_translation_file.cpp
@@ -3078,6 +3097,8 @@ msgid ""
"Enable vertex buffer objects.\n"
"This should greatly improve graphics performance."
msgstr ""
+"Ativa vertex buffer objects.\n"
+"Isso deve melhorar muito a performance gráfica."
#: src/settings_translation_file.cpp
msgid ""
@@ -3088,14 +3109,14 @@ msgstr ""
"Por exemplo: 0 para não ver balançando; 1.0 para normal; 2.0 para duplo."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Enable/disable running an IPv6 server.\n"
"Ignored if bind_address is set.\n"
"Needs enable_ipv6 to be enabled."
msgstr ""
"Habilitar/desabilitar a execução de um IPv6 do servidor. \n"
-"Ignorado se bind_address estiver definido."
+"Ignorado se bind_address estiver definido.\n"
+"Precisa de enable_ipv6 para ser ativado."
#: src/settings_translation_file.cpp
msgid ""
@@ -3104,24 +3125,17 @@ msgid ""
"appearance of high dynamic range images. Mid-range contrast is slightly\n"
"enhanced, highlights and shadows are gradually compressed."
msgstr ""
+"Permite o mapeamento de tom do filme 'Uncharted 2', de Hable.\n"
+"Simula a curva de tons do filme fotográfico e como isso se aproxima da\n"
+"aparência de imagens de alto alcance dinâmico (HDR). O contraste de médio "
+"alcance é ligeiramente\n"
+"melhorado, os destaques e as sombras são gradualmente comprimidos."
#: src/settings_translation_file.cpp
msgid "Enables animation of inventory items."
msgstr "Habilita itens animados no inventário."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Ativar texturização bump mapping para texturas. Normalmaps precisam ser "
-"fornecidos pelo\n"
-"pacote de textura ou a necessidade de ser auto-gerada.\n"
-"Requer shaders a serem ativados."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Ativar armazenamento em cache de direção de face girada das malhas."
@@ -3131,27 +3145,16 @@ msgstr "Habilitar minimapa."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Ativa geração de normalmap (efeito de relevo) ao voar.\n"
-"Requer texturização bump mapping para ser ativado."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Ativar mapeamento de oclusão de paralaxe.\n"
-"Requer shaders a serem ativados."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
"Changing this setting requires a restart."
msgstr ""
+"Ativa o sistema de som.\n"
+"Se desativado, isso desabilita completamente todos os sons em todos os "
+"lugares\n"
+"e os controles de som dentro do jogo se tornarão não funcionais.\n"
+"Mudar esta configuração requer uma reinicialização."
#: src/settings_translation_file.cpp
msgid "Engine profiling data print interval"
@@ -3163,14 +3166,6 @@ msgstr "Metodos de entidade"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Opção experimental, pode causar espaços visíveis entre blocos\n"
-"quando definido como número maior do que 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3178,10 +3173,18 @@ msgid ""
"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
"flatter lowlands, suitable for a solid floatland layer."
msgstr ""
+"Expoente de estreitamento das ilhas flutuantes. Altera o comportamento de "
+"afilamento.\n"
+"Valor = 1.0 cria um afunilamento linear uniforme.\n"
+"Valores> 1.0 criam um estreitamento suave adequado para as ilhas flutuantes\n"
+"padrão (separadas).\n"
+"Valores <1.0 (por exemplo 0.25) criam um nível de superfície mais definido "
+"com\n"
+"planícies mais planas, adequadas para uma camada sólida de ilhas flutuantes."
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS no menu de pausa"
+msgid "FPS when unfocused or paused"
+msgstr "FPS quando o jogo é pausado ou perde o foco"
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3196,9 +3199,8 @@ msgid "Fall bobbing factor"
msgstr "Fator de balanço em queda"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Fallback font path"
-msgstr "Fonte Alternativa"
+msgstr "Fonte reserva"
#: src/settings_translation_file.cpp
msgid "Fallback font shadow"
@@ -3299,39 +3301,32 @@ msgid "Fixed virtual joystick"
msgstr "Joystick virtual fixo"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland density"
-msgstr "Densidade da Ilha Flutuante montanhosa"
+msgstr "Densidade das terras flutuantes"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland maximum Y"
-msgstr "Y máximo da dungeon"
+msgstr "Y máximo das terras flutuantes"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland minimum Y"
-msgstr "Y mínimo da dungeon"
+msgstr "Y mínimo das terras flutuantes"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland noise"
-msgstr "Ruído base de Ilha Flutuante"
+msgstr "Ruído das terras flutuantes"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland taper exponent"
-msgstr "Expoente de terras flutuantes montanhosas"
+msgstr "Expoente de conicidade das ilhas flutuantes"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland tapering distance"
-msgstr "Ruído base de Ilha Flutuante"
+msgstr "Distância de afilamento da ilha flutuante"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland water level"
-msgstr "Nível de água"
+msgstr "Nível de água da ilha flutuante"
#: src/settings_translation_file.cpp
msgid "Fly key"
@@ -3355,11 +3350,11 @@ msgstr "Tecla de comutação de névoa"
#: src/settings_translation_file.cpp
msgid "Font bold by default"
-msgstr ""
+msgstr "Fonte em negrito por padrão"
#: src/settings_translation_file.cpp
msgid "Font italic by default"
-msgstr ""
+msgstr "Fonte em itálico por padrão"
#: src/settings_translation_file.cpp
msgid "Font shadow"
@@ -3375,21 +3370,24 @@ msgstr "Tamanho da fonte"
#: src/settings_translation_file.cpp
msgid "Font size of the default font in point (pt)."
-msgstr ""
+msgstr "Tamanho da fonte padrão em pontos (pt)."
#: src/settings_translation_file.cpp
msgid "Font size of the fallback font in point (pt)."
-msgstr ""
+msgstr "Tamanho da fonte reserva em pontos (pt)."
#: src/settings_translation_file.cpp
msgid "Font size of the monospace font in point (pt)."
-msgstr ""
+msgstr "Tamanho da fonte de largura fixa em pontos (pt)."
#: src/settings_translation_file.cpp
msgid ""
"Font size of the recent chat text and chat prompt in point (pt).\n"
"Value 0 will use the default font size."
msgstr ""
+"Tamanho da fonte do texto de bate-papo recente e do prompt do bate-papo em "
+"pontos (pt).\n"
+"O valor 0 irá utilizar o tamanho padrão de fonte."
#: src/settings_translation_file.cpp
msgid ""
@@ -3397,6 +3395,9 @@ msgid ""
"placeholders:\n"
"@name, @message, @timestamp (optional)"
msgstr ""
+"Formato das mensagem de bate-papo dos jogadores. Os textos abaixo são "
+"palavras-chave válidas:\n"
+"@name, @message, @timestamp (opcional)"
#: src/settings_translation_file.cpp
msgid "Format of screenshots."
@@ -3509,10 +3510,6 @@ msgid "GUI scaling filter txr2img"
msgstr "Filtro txr2img de escala da GUI"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Gerar mapa de normais"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Chamadas de retorno Globais"
@@ -3529,18 +3526,20 @@ msgstr ""
"todas as decorações."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Gradient of light curve at maximum light level.\n"
"Controls the contrast of the highest light levels."
-msgstr "Curva gradiente de iluminaçao no nível de luz maximo."
+msgstr ""
+"Gradiente da curva de luz no nível de luz máximo.\n"
+"Controla o contraste dos níveis de luz mais altos."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Gradient of light curve at minimum light level.\n"
"Controls the contrast of the lowest light levels."
-msgstr "Curva gradiente de iluminação no nível de luz mínimo."
+msgstr ""
+"Gradiente da curva de luz no nível de luz mínimo.\n"
+"Controla o contraste dos níveis de luz mais baixos."
#: src/settings_translation_file.cpp
msgid "Graphics"
@@ -3571,19 +3570,16 @@ msgid "HUD toggle key"
msgstr "Tecla de comutação HUD"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
-"Manipulação para chamadas de API Lua reprovados:\n"
-"- legacy: (tentar) imitar o comportamento antigo (padrão para a "
-"liberação).\n"
-"- log: imitação e log de retraçamento da chamada reprovada (padrão para "
-"depuração).\n"
-"- error: abortar no uso da chamada reprovada (sugerido para "
+"Lidando com funções obsoletas da API Lua:\n"
+"-...none: não registra funções obsoletas.\n"
+"-...log: imita e registra as funções obsoletas chamadas (padrão).\n"
+"-...error: aborta quando chama uma função obsoleta (sugerido para "
"desenvolvedores de mods)."
#: src/settings_translation_file.cpp
@@ -3618,7 +3614,7 @@ msgstr "Ruído de altura"
#: src/settings_translation_file.cpp
msgid "Height select noise"
-msgstr "Parâmetros de ruido de seleção de altura do gerador de mundo v6"
+msgstr "Parâmetros de ruido de seleção de altura"
#: src/settings_translation_file.cpp
msgid "High-precision FPU"
@@ -3626,11 +3622,11 @@ msgstr "FPU de alta precisão"
#: src/settings_translation_file.cpp
msgid "Hill steepness"
-msgstr "Esparsamento das colinas no gerador de mundo plano"
+msgstr "Inclinação dos morros"
#: src/settings_translation_file.cpp
msgid "Hill threshold"
-msgstr "Threshold das colinas no gerador de mundo plano"
+msgstr "Limite das colinas no gerador de mundo plano"
#: src/settings_translation_file.cpp
msgid "Hilliness1 noise"
@@ -3657,18 +3653,24 @@ msgid ""
"Horizontal acceleration in air when jumping or falling,\n"
"in nodes per second per second."
msgstr ""
+"Aceleração horizontal no ar ao saltar ou cair,\n"
+"em nós por segundo por segundo."
#: src/settings_translation_file.cpp
msgid ""
"Horizontal and vertical acceleration in fast mode,\n"
"in nodes per second per second."
msgstr ""
+"Aceleração horizontal e vertical no modo rápido,\n"
+"em nós por segundo por segundo."
#: src/settings_translation_file.cpp
msgid ""
"Horizontal and vertical acceleration on ground or when climbing,\n"
"in nodes per second per second."
msgstr ""
+"Aceleração horizontal e vertical no solo ou ao escalar,\n"
+"em nós por segundo por segundo."
#: src/settings_translation_file.cpp
msgid "Hotbar next key"
@@ -3816,6 +3818,9 @@ msgid ""
"If negative, liquid waves will move backwards.\n"
"Requires waving liquids to be enabled."
msgstr ""
+"A velocidade com que as ondas líquidas se movem. Maior = mais rápido.\n"
+"Se negativo, as ondas líquidas se moverão para trás.\n"
+"Requer que a ondulação de líquidos esteja ativada."
#: src/settings_translation_file.cpp
msgid ""
@@ -3956,6 +3961,12 @@ msgid ""
"deleting an older debug.txt.1 if it exists.\n"
"debug.txt is only moved if this setting is positive."
msgstr ""
+"Se o tamanho do arquivo debug.txt exceder o número de megabytes "
+"especificado\n"
+"nesta configuração quando ele for aberto, o arquivo é movido para debug."
+"txt.1,\n"
+"excluindo um debug.txt.1 mais antigo, se houver.\n"
+"debug.txt só é movido se esta configuração for positiva."
#: src/settings_translation_file.cpp
msgid "If this is set, players will always (re)spawn at the given position."
@@ -3993,15 +4004,15 @@ msgstr "Tecla de aumentar volume"
#: src/settings_translation_file.cpp
msgid "Initial vertical speed when jumping, in nodes per second."
-msgstr ""
+msgstr "Velocidade vertical inicial ao saltar, em nós por segundo."
#: src/settings_translation_file.cpp
msgid ""
"Instrument builtin.\n"
"This is usually only needed by core/builtin contributors"
msgstr ""
-"Monitoração imbutida.\n"
-"Isto é usualmente apenas nessesário por contribuidores core/builtin"
+"Monitoração embutida.\n"
+"Isto é necessário apenas por contribuidores core/builtin"
#: src/settings_translation_file.cpp
msgid "Instrument chatcommands on registration."
@@ -4062,14 +4073,12 @@ msgid "Invert vertical mouse movement."
msgstr "Inverta o movimento vertical do mouse."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Italic font path"
-msgstr "Caminho de fonte monoespaçada"
+msgstr "Caminho da fonte em itálico"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Italic monospace font path"
-msgstr "Caminho de fonte monoespaçada"
+msgstr "Caminho da fonte em itálico monoespaçada"
#: src/settings_translation_file.cpp
msgid "Item entity TTL"
@@ -4101,6 +4110,10 @@ msgid "Joystick button repetition interval"
msgstr "Intervalo de repetição do botão do Joystick"
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr "\"Zona morta\" do joystick"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Sensibilidade do frustum do Joystick"
@@ -4196,7 +4209,17 @@ msgid ""
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Tecla para diminuir o alcance de visão.\n"
+"Tecla para diminuir o volume.\n"
+"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tecla para escavar. \n"
"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4226,7 +4249,7 @@ msgid ""
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Tecla para aumentar o alcance de visão.\n"
+"Tecla para aumentar o volume.\n"
"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4298,7 +4321,7 @@ msgid ""
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"Tecla para pular. \n"
+"Tecla para por o som em mudo. \n"
"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4344,6 +4367,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Tecla para colocar objetos. \n"
+"Consulte http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4900,15 +4933,15 @@ msgstr "Profundidade de cavernas grandes"
#: src/settings_translation_file.cpp
msgid "Large cave maximum number"
-msgstr ""
+msgstr "Número máximo de cavernas grandes"
#: src/settings_translation_file.cpp
msgid "Large cave minimum number"
-msgstr ""
+msgstr "Número mínimo de cavernas grandes"
#: src/settings_translation_file.cpp
msgid "Large cave proportion flooded"
-msgstr ""
+msgstr "Proporção inundada de cavernas grandes"
#: src/settings_translation_file.cpp
msgid "Large chat console key"
@@ -4944,13 +4977,12 @@ msgstr ""
"geralmente atualizados em rede."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Length of liquid waves.\n"
"Requires waving liquids to be enabled."
msgstr ""
-"Definido como true habilita balanço folhas.\n"
-"Requer sombreadores serem ativados."
+"Comprimento das ondas líquidas.\n"
+"Requer que a ondulação de líquidos esteja ativada."
#: src/settings_translation_file.cpp
msgid "Length of time between Active Block Modifier (ABM) execution cycles"
@@ -4985,34 +5017,28 @@ msgstr ""
"- verbose"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Light curve boost"
-msgstr "Aumento leve da curva de luz"
+msgstr "Aumento da curva de luz"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Light curve boost center"
-msgstr "Centro do aumento leve da curva de luz"
+msgstr "Centro do aumento da curva de luz"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Light curve boost spread"
-msgstr "Extensão do aumento leve da curva de luz"
+msgstr "Extensão do aumento da curva de luz"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Light curve gamma"
-msgstr "Aumento leve da curva de luz"
+msgstr "Gamma da curva de luz"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Light curve high gradient"
-msgstr "Aumento leve da curva de luz"
+msgstr "Gradiente alto da curva de luz"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Light curve low gradient"
-msgstr "Centro do aumento leve da curva de luz"
+msgstr "Gradiente baixo da curva de luz"
#: src/settings_translation_file.cpp
msgid ""
@@ -5056,9 +5082,8 @@ msgid "Liquid queue purge time"
msgstr "Tempo para limpar a lista de espera para a atualização de líquidos"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Liquid sinking"
-msgstr "Velocidade do afundamento de liquido"
+msgstr "Afundamento do líquido"
#: src/settings_translation_file.cpp
msgid "Liquid update interval in seconds."
@@ -5091,19 +5116,14 @@ msgid "Lower Y limit of dungeons."
msgstr "Menor limite Y de dungeons."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Lower Y limit of floatlands."
-msgstr "Menor limite Y de dungeons."
+msgstr "Menor limite Y de ilhas flutuantes."
#: src/settings_translation_file.cpp
msgid "Main menu script"
msgstr "Menu principal do script"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Estilo do menu principal"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5119,6 +5139,14 @@ msgid "Makes all liquids opaque"
msgstr "Torna todos os líquidos opacos"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr "Nível de Compressão de Mapa no Armazenamento em Disco"
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr "Nível de Compressão do Mapa na Transferência em Rede"
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Diretório do mapa"
@@ -5127,23 +5155,22 @@ msgid "Map generation attributes specific to Mapgen Carpathian."
msgstr "Atributos de geração de mapa específicos ao gerador Carpathian."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen Flat.\n"
"Occasional lakes and hills can be added to the flat world."
msgstr ""
-"Atributos de geração de mapas específicos para o gerador de mundo plano.\n"
+"Atributos de geração de mapas específicos para o Gerador de mundo Plano.\n"
"Lagos e colinas ocasionalmente podem ser adicionados ao mundo plano."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen Fractal.\n"
"'terrain' enables the generation of non-fractal terrain:\n"
"ocean, islands and underground."
msgstr ""
-"Atributos de geração de mapa específicos ao gerador V7.\n"
-"'ridges' habilitam os rios."
+"Atributos de geração de mapas específicos para o Gerador de mundo Fractal.\n"
+"'terreno' permite a geração de terreno não fractal:\n"
+"oceano, ilhas e subterrâneos."
#: src/settings_translation_file.cpp
msgid ""
@@ -5158,7 +5185,7 @@ msgstr ""
"'altitude_chill':Reduz o calor com a altitude.\n"
"'humid_rivers':Aumenta a umidade em volta dos rios.\n"
"'profundidade_variada_rios': Se habilitado, baixa umidade e alto calor faz "
-"com que que rios se tornem mais rasos e eventualmente sumam.\n"
+"com que rios se tornem mais rasos e eventualmente sumam.\n"
"'altitude_dry': Reduz a umidade com a altitude."
#: src/settings_translation_file.cpp
@@ -5166,28 +5193,29 @@ msgid "Map generation attributes specific to Mapgen v5."
msgstr "Atributos de geração de mapa específicos ao gerador V5."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen v6.\n"
"The 'snowbiomes' flag enables the new 5 biome system.\n"
"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n"
"the 'jungles' flag is ignored."
msgstr ""
-"Atributos de geração de mapas específico para o gerador de mundo v6.\n"
-" O 'snowbiomes' flag habilita o novo sistema de bioma 5.\n"
-"Quando o sistema de novo bioma estiver habilitado, selvas são "
-"automaticamente habilitadas e a flag 'jungles' é ignorada."
+"Atributos de geração de mapas específicos para Gerador de mapas v6.\n"
+"A opção 'snowbiomes' habilita o novo sistema de 5 biomas.\n"
+"Quando a opção 'snowbiomes' está ativada, as selvas são ativadas "
+"automaticamente e\n"
+"a opção 'jungles' é ignorada."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen v7.\n"
"'ridges': Rivers.\n"
"'floatlands': Floating land masses in the atmosphere.\n"
"'caverns': Giant caves deep underground."
msgstr ""
-"Atributos de geração de mapa específicos ao gerador V7.\n"
-"'ridges' habilitam os rios."
+"Atributos de geração de mapas específicos para Gerador de mapas v7.\n"
+"'ridges': rios.\n"
+"'floatlands': massas de terra flutuantes na atmosfera.\n"
+"'caverns': cavernas gigantes no subsolo."
#: src/settings_translation_file.cpp
msgid "Map generation limit"
@@ -5236,9 +5264,8 @@ msgid "Mapgen Fractal"
msgstr "Gerador de mundo Fractal"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Mapgen Fractal specific flags"
-msgstr "Flags específicas do gerador de mundo plano"
+msgstr "Opções específicas do Gerador de mapas Fractal"
#: src/settings_translation_file.cpp
msgid "Mapgen V5"
@@ -5305,8 +5332,9 @@ msgid "Maximum FPS"
msgstr "FPS máximo"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
-msgstr "Máximo FPS quando o jogo é pausado."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
+msgstr ""
+"FPS máximo quando a janela não está com foco, ou quando o jogo é pausado."
#: src/settings_translation_file.cpp
msgid "Maximum forceloaded blocks"
@@ -5318,17 +5346,19 @@ msgstr "Largura máxima da hotbar"
#: src/settings_translation_file.cpp
msgid "Maximum limit of random number of large caves per mapchunk."
-msgstr ""
+msgstr "Limite máximo do número aleatório de cavernas grandes por mapchunk."
#: src/settings_translation_file.cpp
msgid "Maximum limit of random number of small caves per mapchunk."
-msgstr ""
+msgstr "Limite máximo do número aleatório de cavernas pequenas por mapchunk."
#: src/settings_translation_file.cpp
msgid ""
"Maximum liquid resistance. Controls deceleration when entering liquid at\n"
"high speed."
msgstr ""
+"Resistência líquida máxima. Controla desaceleração ao entrar num líquido\n"
+"em alta velocidade."
#: src/settings_translation_file.cpp
msgid ""
@@ -5346,25 +5376,32 @@ msgstr ""
"Número máximo de blocos que podem ser enfileirados para o carregamento."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Maximum number of blocks to be queued that are to be generated.\n"
"This limit is enforced per player."
msgstr ""
-"Número máximo de blocos para serem enfileirados que estão a ser gerados.\n"
-"Definido em branco para uma quantidade apropriada ser escolhida "
-"automaticamente."
+"Número máximo de blocos para serem enfileirado, dos que estão para ser "
+"gerados.\n"
+"Esse limite é forçado para cada jogador."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Maximum number of blocks to be queued that are to be loaded from file.\n"
"This limit is enforced per player."
msgstr ""
-"Número máximo de blocos para ser enfileirado que serão carregados do "
-"arquivo.\n"
-"Definido em branco para uma quantidade apropriada ser escolhida "
-"automaticamente."
+"Número máximo de blocos para serem enfileirado, dos que estão para ser "
+"carregados do arquivo.\n"
+"Esse limite é forçado para cada jogador."
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+"Número máximo de downloads paralelos. Downloads excedendo esse limite "
+"esperarão numa fila.\n"
+"Deve ser menor que curl_parallel_limit."
#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
@@ -5461,7 +5498,7 @@ msgstr "Método usado para destacar o objeto selecionado."
#: src/settings_translation_file.cpp
msgid "Minimal level of logging to be written to chat."
-msgstr ""
+msgstr "Nível mínimo de registro a ser impresso no chat."
#: src/settings_translation_file.cpp
msgid "Minimap"
@@ -5476,13 +5513,12 @@ msgid "Minimap scan height"
msgstr "Altura de escaneamento do minimapa"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Minimum limit of random number of large caves per mapchunk."
-msgstr "Ruído 3D que determina o número de cavernas por pedaço de mapa."
+msgstr "Limite mínimo do número aleatório de grandes cavernas por mapchunk."
#: src/settings_translation_file.cpp
msgid "Minimum limit of random number of small caves per mapchunk."
-msgstr ""
+msgstr "Limite mínimo do número aleatório de cavernas pequenas por mapchunk."
#: src/settings_translation_file.cpp
msgid "Minimum texture size"
@@ -5553,19 +5589,17 @@ msgid "Mute sound"
msgstr "Mutar som"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Name of map generator to be used when creating a new world.\n"
"Creating a world in the main menu will override this.\n"
"Current mapgens in a highly unstable state:\n"
"- The optional floatlands of v7 (disabled by default)."
msgstr ""
-"Nome do gerador de mapa usando quando criar um novo mundo.\n"
-"Criar um mundo no menu principal vai sobrescrever isto.\n"
-"Geradores de mapa estáveis atualmente:\n"
-"v5, v6, v7(exceto terras flutuantes), singlenode.\n"
-"'estável' significa que a forma do terreno em um mundo existente não será "
-"alterado no futuro. Note que biomas definidos por jogos ainda podem mudar."
+"Nome do gerador de mapas a ser usado ao criar um novo mundo.\n"
+"Criar um mundo no menu principal substituirá isso.\n"
+"Geradores de mapa atuais em um estado altamente instável:\n"
+"- A opção de ilhas flutuantes do Gerador de mapas de v7 (desabilitado por "
+"padrão)."
#: src/settings_translation_file.cpp
msgid ""
@@ -5586,9 +5620,8 @@ msgstr ""
"servidores."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Near plane"
-msgstr "plano próximo"
+msgstr "Plano próximo"
#: src/settings_translation_file.cpp
msgid "Network"
@@ -5627,19 +5660,10 @@ msgid "Noises"
msgstr "Ruidos"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Amostragem de normalmaps"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Intensidade de normalmaps"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "Número de seguimentos de emersão"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Number of emerge threads to use.\n"
"Value 0:\n"
@@ -5652,17 +5676,19 @@ msgid ""
"processes, especially in singleplayer and/or when running Lua code in\n"
"'on_generated'. For many users the optimum setting may be '1'."
msgstr ""
-"Número de thread emergentes para usar.\n"
-"Vazio ou valor 0:\n"
-"- Seleção automática. O número de threads emergentes será 'número de "
-"processadores - 2', com limite mínimo de 1.\n"
+"Número de threads de emersão a serem usadas.\n"
+"Valor 0:\n"
+"- Seleção automática. O número de threads de emersão será\n"
+"- 'número de processadores - 2', com um limite inferior de 1.\n"
"Qualquer outro valor:\n"
-"- Especifica o número de threads emergentes com limite mínimo de 1.\n"
-"Alerta: aumentando o número de threads emergentes aumenta a velocidade do "
-"gerador, mas pode prejudicar o desemepenho interferindo com outros "
-"processos, especialmente in singleplayer e/ou quando executando código lua "
-"em 'on_generated'.\n"
-"Para muitos usuários a opção mais recomendada é 1."
+"- Especifica o número de threads de emersão, com um limite inferior de 1.\n"
+"AVISO: Aumentar o número de threads de emersão aumenta a velocidade do motor "
+"de\n"
+"geração de mapas, mas isso pode prejudicar o desempenho do jogo, "
+"interferindo com outros\n"
+"processos, especialmente em singleplayer e / ou ao executar código Lua em "
+"eventos\n"
+"'on_generated'. Para muitos usuários, a configuração ideal pode ser '1'."
#: src/settings_translation_file.cpp
msgid ""
@@ -5676,10 +5702,6 @@ msgstr ""
"memória (4096 = 100 MB, como uma regra de ouro)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "Número de iterações de oclusão de paralaxe."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Repositório de conteúdo online"
@@ -5690,12 +5712,12 @@ msgstr "Líquidos Opacos"
#: src/settings_translation_file.cpp
msgid ""
"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255."
-msgstr ""
+msgstr "Opacidade (alpha) das sombras atrás da fonte padrão, entre 0 e 255."
#: src/settings_translation_file.cpp
msgid ""
"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255."
-msgstr ""
+msgstr "Opacidade (alpha) da sombra atrás da fonte alternativa, entre 0 e 255."
#: src/settings_translation_file.cpp
msgid ""
@@ -5707,34 +5729,6 @@ msgstr ""
"formspec está aberto."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "Viés geral do efeito de oclusão de paralaxe, geralmente de escala/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Escala global do efeito de oclusão de paralaxe."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Oclusão de paralaxe"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Viés de oclusão de paralaxe"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Iterações de oclusão de paralaxe"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Modo de oclusão de paralaxe"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "Escala de Oclusão de paralaxe"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5742,12 +5736,20 @@ msgid ""
"This font will be used for certain languages or if the default font is "
"unavailable."
msgstr ""
+"Caminho da fonte alternativa.\n"
+"Se a configuração \"freetype\" estiver ativa: Deve ser uma fonte TrueType.\n"
+"Se a configuração \"freetype\" não estiver ativa: Deve ser uma fonte bitmap "
+"ou de vetores XML.\n"
+"Essa fonte será usada por certas línguas ou se a padrão não estiver "
+"disponível."
#: src/settings_translation_file.cpp
msgid ""
"Path to save screenshots at. Can be an absolute or relative path.\n"
"The folder will be created if it doesn't already exist."
msgstr ""
+"Caminho para salvar capturas de tela. Pode ser absoluto ou relativo.\n"
+"A pasta será criada se já não existe."
#: src/settings_translation_file.cpp
msgid ""
@@ -5770,6 +5772,11 @@ msgid ""
"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
"The fallback font will be used if the font cannot be loaded."
msgstr ""
+"Caminho para a fonte padrão.\n"
+"Se a configuração \"freetype\" estiver ativa: Deve ser uma fonte TrueType.\n"
+"Se a configuração \"freetype\" não estiver ativa: Deve ser uma fonte bitmap "
+"ou de vetores XML.\n"
+"A fonte alternativa será usada se não for possível carregar essa."
#: src/settings_translation_file.cpp
msgid ""
@@ -5778,6 +5785,11 @@ msgid ""
"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
"This font is used for e.g. the console and profiler screen."
msgstr ""
+"Caminho para a fonte monoespaçada.\n"
+"Se a configuração \"freetype\" estiver ativa: Deve ser uma fonte TrueType.\n"
+"Se a configuração \"freetype\" não estiver ativa: Deve ser uma fonte bitmap "
+"ou de vetores XML.\n"
+"Essa fonte será usada, por exemplo, no console e na tela de depuração."
#: src/settings_translation_file.cpp
msgid "Pause on lost window focus"
@@ -5786,11 +5798,11 @@ msgstr "Pausa quando o foco da janela é perdido"
#: src/settings_translation_file.cpp
msgid "Per-player limit of queued blocks load from disk"
msgstr ""
+"Limite de blocos na fila de espera de carregamento do disco por jogador"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Per-player limit of queued blocks to generate"
-msgstr "Limite de filas emerge para gerar"
+msgstr "Limite por jogador de blocos enfileirados para gerar"
#: src/settings_translation_file.cpp
msgid "Physics"
@@ -5805,6 +5817,14 @@ msgid "Pitch move mode"
msgstr "Modo movimento pitch"
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr "Tecla de colocar"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr "Intervalo de repetição da ação colocar"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5872,7 +5892,7 @@ msgstr "Analizando"
#: src/settings_translation_file.cpp
msgid "Prometheus listener address"
-msgstr ""
+msgstr "Endereço do Prometheus"
#: src/settings_translation_file.cpp
msgid ""
@@ -5881,10 +5901,14 @@ msgid ""
"enable metrics listener for Prometheus on that address.\n"
"Metrics can be fetch on http://127.0.0.1:30000/metrics"
msgstr ""
+"Endereço do Prometheus\n"
+"Se o minetest for compilado com a opção ENABLE_PROMETHEUS ativa,\n"
+"habilita a obtenção de métricas do Prometheus neste endereço.\n"
+"As métricas podem ser obtidas em http://127.0.0.1:30000/metrics"
#: src/settings_translation_file.cpp
msgid "Proportion of large caves that contain liquid."
-msgstr ""
+msgstr "Proporção de cavernas grandes que contém líquido."
#: src/settings_translation_file.cpp
msgid ""
@@ -5913,9 +5937,8 @@ msgid "Recent Chat Messages"
msgstr "Mensagens de chat recentes"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Regular font path"
-msgstr "Diretorio de reporte"
+msgstr "Caminho da fonte regular"
#: src/settings_translation_file.cpp
msgid "Remote media"
@@ -5988,18 +6011,12 @@ msgid "Right key"
msgstr "Tecla direita"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Intervalo de repetição do clique direito"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River channel depth"
-msgstr "Profundidade do Rio"
+msgstr "Profundidade do canal do rio"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River channel width"
-msgstr "Profundidade do Rio"
+msgstr "Largura do canal do rio"
#: src/settings_translation_file.cpp
msgid "River depth"
@@ -6014,9 +6031,8 @@ msgid "River size"
msgstr "Tamanho do Rio"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "River valley width"
-msgstr "Profundidade do Rio"
+msgstr "Largura do vale do rio"
#: src/settings_translation_file.cpp
msgid "Rollback recording"
@@ -6132,7 +6148,6 @@ msgid "Selection box width"
msgstr "Largura da caixa de seleção"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Selects one of 18 fractal types.\n"
"1 = 4D \"Roundy\" Mandelbrot set.\n"
@@ -6225,31 +6240,28 @@ msgstr ""
"clientes."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Set to true to enable waving leaves.\n"
"Requires shaders to be enabled."
msgstr ""
-"Definido como true habilita balanço folhas.\n"
-"Requer sombreadores serem ativados."
+"Definido como true habilita o balanço das folhas.\n"
+"Requer que os sombreadores estejam ativados."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Set to true to enable waving liquids (like water).\n"
"Requires shaders to be enabled."
msgstr ""
-"Definido como true permite ondulação da água.\n"
-"Requer sombreadores seres ativados."
+"Definido como true permite ondulação de líquidos (como a água).\n"
+"Requer que os sombreadores estejam ativados."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Set to true to enable waving plants.\n"
"Requires shaders to be enabled."
msgstr ""
"Definido como true permite balanço de plantas.\n"
-"Requer sombreadores serem ativados."
+"Requer que os sombreadores estejam ativados."
#: src/settings_translation_file.cpp
msgid "Shader path"
@@ -6267,18 +6279,20 @@ msgstr ""
"Só funcionam com o modo de vídeo OpenGL."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
"drawn."
-msgstr "Fonte de compensador de sombra, se 0 então sombra não será desenhada."
+msgstr ""
+"Distância (em pixels) da sombra da fonte padrão. Se 0, então a sombra não "
+"será desenhada."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
"be drawn."
-msgstr "Fonte de compensador de sombra, se 0 então sombra não será desenhada."
+msgstr ""
+"Distância (em pixels) da sombra da fonte de backup. Se 0, então nenhuma "
+"sombra será desenhada."
#: src/settings_translation_file.cpp
msgid "Shape of the minimap. Enabled = round, disabled = square."
@@ -6293,6 +6307,19 @@ msgid "Show entity selection boxes"
msgstr "Mostrar as caixas de seleção entidades"
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Mostrar caixas de seleção de entidades\n"
+"É necessário reiniciar após alterar isso."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Fonte em negrito por padrão"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Mensagem de desligamento"
@@ -6331,11 +6358,11 @@ msgstr "Inclinação e preenchimento trabalham juntos para modificar as alturas.
#: src/settings_translation_file.cpp
msgid "Small cave maximum number"
-msgstr ""
+msgstr "Número máximo de cavernas pequenas"
#: src/settings_translation_file.cpp
msgid "Small cave minimum number"
-msgstr ""
+msgstr "Número mínimo de cavernas pequenas"
#: src/settings_translation_file.cpp
msgid "Small-scale humidity variation for blending biomes on borders."
@@ -6378,7 +6405,7 @@ msgstr "Velocidade da furtividade"
#: src/settings_translation_file.cpp
msgid "Sneaking speed, in nodes per second."
-msgstr ""
+msgstr "Velocidade ao esgueirar-se, em nós (blocos) por segundo."
#: src/settings_translation_file.cpp
msgid "Sound"
@@ -6411,16 +6438,19 @@ msgid ""
"Note that mods or games may explicitly set a stack for certain (or all) "
"items."
msgstr ""
+"Especifica o tamanho padrão da pilha de nós, items e ferramentas.\n"
+"Note que mods e games talvez definam explicitamente um tamanho para certos "
+"(ou todos) os itens."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Spread of light curve boost range.\n"
"Controls the width of the range to be boosted.\n"
"Standard deviation of the light curve boost Gaussian."
msgstr ""
-"Extensão do aumento médio da curva da luz.\n"
-"Desvio padrão do aumento médio gaussiano."
+"Ampliação da faixa de aumento da curva de luz.\n"
+"Controla a largura do intervalo a ser aumentado.\n"
+"O desvio padrão da gaussiana do aumento da curva de luz."
#: src/settings_translation_file.cpp
msgid "Static spawnpoint"
@@ -6439,13 +6469,8 @@ msgid "Step mountain spread noise"
msgstr "Extensão do ruído da montanha de passo"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Strength of 3D mode parallax."
-msgstr "Intensidade de paralaxe."
-
-#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Intensidade de normalmaps gerados."
+msgstr "Força da paralaxe do modo 3D."
#: src/settings_translation_file.cpp
msgid ""
@@ -6453,6 +6478,9 @@ msgid ""
"The 3 'boost' parameters define a range of the light\n"
"curve that is boosted in brightness."
msgstr ""
+"Aumento da força da curva de luz.\n"
+"Os 3 parâmetros de 'aumento' definem uma faixa\n"
+"da curva de luz que é aumentada em brilho."
#: src/settings_translation_file.cpp
msgid "Strict protocol checking"
@@ -6475,6 +6503,21 @@ msgid ""
"server-intensive extreme water flow and to avoid vast flooding of the\n"
"world surface below."
msgstr ""
+"Nível de superfície de água opcional colocada em uma camada sólida de "
+"flutuação.\n"
+"A água está desativada por padrão e só será colocada se este valor for "
+"definido\n"
+"acima de 'mgv7_floatland_ymax' - 'mgv7_floatland_taper' (o início do\n"
+"afilamento superior).\n"
+"*** AVISO, POTENCIAL PERIGO PARA OS MUNDOS E DESEMPENHO DO SERVIDOR ***:\n"
+"Ao habilitar a colocação de água, as áreas flutuantes devem ser configuradas "
+"e testadas\n"
+"para ser uma camada sólida, definindo 'mgv7_floatland_density' para 2.0 (ou "
+"outro\n"
+"valor necessário dependendo de 'mgv7_np_floatland'), para evitar\n"
+"fluxo de água extremo intensivo do servidor e para evitar grandes inundações "
+"do\n"
+"superfície do mundo abaixo."
#: src/settings_translation_file.cpp
msgid "Synchronous SQLite"
@@ -6554,6 +6597,10 @@ msgid "The URL for the content repository"
msgstr "A url para o repositório de conteúdo"
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr "A zona morta do joystick"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6589,6 +6636,11 @@ msgid ""
"Default is 1.0 (1/2 node).\n"
"Requires waving liquids to be enabled."
msgstr ""
+"A altura máxima da superfície de líquidos com ondas.\n"
+"4.0 = Altura da onda é dois nós.\n"
+"0.0 = Onda nem se move.\n"
+"O padrão é 1.0 (meio nó).\n"
+"Requer ondas em líquidos habilitada."
#: src/settings_translation_file.cpp
msgid "The network interface that the server listens on."
@@ -6604,7 +6656,6 @@ msgstr ""
"servidor e dos modificadores."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"The radius of the volume of blocks around every player that is subject to "
"the\n"
@@ -6614,11 +6665,12 @@ msgid ""
"maintained.\n"
"This should be configured together with active_object_send_range_blocks."
msgstr ""
-"O raio do volume de blocos em volta de cada jogador que é sujeito a coisas "
-"de bloco ativo, em mapblocks (16 nós).\n"
-"Em blocos ativos, objetos são carregados e ABMs executam.\n"
-"Isto é também o alcançe mínimo em que objetos ativos(mobs) são mantidos.\n"
-"Isto deve ser configurado junto com o alcance_objeto_ativo."
+"O raio do volume dos blocos em torno de cada jogador que está sujeito ao\n"
+"material de bloco ativo, declarado em mapblocks (16 nós).\n"
+"Nos blocos ativos, os objetos são carregados e os ABMs executados.\n"
+"Este também é o intervalo mínimo no qual os objetos ativos (mobs) são "
+"mantidos.\n"
+"Isso deve ser configurado junto com active_object_send_range_blocks."
#: src/settings_translation_file.cpp
msgid ""
@@ -6626,15 +6678,15 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
-"Renderizador de fundo para o irrlight.\n"
-"Uma reinicialização é necessária após alterar isso.\n"
-"Note: no android, use o OGLES1 caso em dúvida! O aplicativo pode falhar ao "
-"abrir em outro caso.\n"
-"Em outras plataformas, OpenGL é recomendo, e é o único driver com suporte a "
-"sombreamento atualmente."
+"O back-end de renderização para Irrlicht.\n"
+"É necessário reiniciar após alterar isso.\n"
+"Nota: No Android, use OGLES1 se não tiver certeza! O aplicativo pode falhar "
+"ao iniciar de outra forma.\n"
+"Em outras plataformas, OpenGL é recomendado.\n"
+"Shaders são suportados por OpenGL (somente desktop) e OGLES2 (experimental)"
#: src/settings_translation_file.cpp
msgid ""
@@ -6671,6 +6723,14 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+"O tempo disponível permitido para ABMs executarem em cada passo (como uma "
+"fração do intervalo do ABM)"
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6679,12 +6739,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
-"O tempo em segundos entre repetidos cliques direitos ao segurar o botão "
-"direito do mouse."
+"O tempo em segundos que leva entre as colocações de nó repetidas ao segurar\n"
+"o botão de colocar."
#: src/settings_translation_file.cpp
msgid "The type of joystick"
@@ -6764,7 +6823,6 @@ msgid "Trilinear filtering"
msgstr "Filtragem tri-linear"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"True = 256\n"
"False = 128\n"
@@ -6787,7 +6845,6 @@ msgid "Undersampling"
msgstr "Subamostragem"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Undersampling is similar to using a lower screen resolution, but it applies\n"
"to the game world only, keeping the GUI intact.\n"
@@ -6795,10 +6852,12 @@ msgid ""
"image.\n"
"Higher values result in a less detailed image."
msgstr ""
-"A subamostragem é semelhante ao uso de resolução de tela menor, mas se "
-"aplica apenas ao mundo do jogo, mantendo a GUI (Interface Gráfica do "
-"Usuário) intacta. Deve dar um aumento significativo no desempenho ao custo "
-"de uma imagem menos detalhada."
+"A subamostragem é semelhante a usar uma resolução de tela inferior, mas se "
+"aplica\n"
+"apenas para o mundo do jogo, mantendo a GUI intacta.\n"
+"Deve dar um aumento significativo de desempenho ao custo de uma imagem menos "
+"detalhada.\n"
+"Valores mais altos resultam em uma imagem menos detalhada."
#: src/settings_translation_file.cpp
msgid "Unlimited player transfer distance"
@@ -6813,9 +6872,8 @@ msgid "Upper Y limit of dungeons."
msgstr "Limite topo Y de dungeons."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Upper Y limit of floatlands."
-msgstr "Limite topo Y de dungeons."
+msgstr "Limite máximo Y para as ilhas flutuantes."
#: src/settings_translation_file.cpp
msgid "Use 3D cloud look instead of flat."
@@ -6845,6 +6903,27 @@ msgstr ""
"O downscaling correto de gama não é suportado."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+"Use o anti-serrilhamento de várias amostras (MSAA) para suavizar as bordas "
+"do bloco.\n"
+"Este algoritmo suaviza a janela de visualização 3D enquanto mantém a imagem "
+"nítida,\n"
+"mas não afeta o interior das texturas\n"
+"(que é especialmente perceptível com texturas transparentes).\n"
+"Espaços visíveis aparecem entre os nós quando os sombreadores são "
+"desativados.\n"
+"Se definido como 0, MSAA é desativado.\n"
+"É necessário reiniciar após alterar esta opção."
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "Use a filtragem trilinear ao dimensionamento de texturas."
@@ -6911,7 +6990,7 @@ msgstr "Controla o esparsamento/altura das colinas."
#: src/settings_translation_file.cpp
msgid "Vertical climbing speed, in nodes per second."
-msgstr ""
+msgstr "Velocidade vertical de escalda, em nós por segundo."
#: src/settings_translation_file.cpp
msgid "Vertical screen synchronization."
@@ -6956,13 +7035,12 @@ msgid "Volume"
msgstr "Volume do som"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Volume of all sounds.\n"
"Requires the sound system to be enabled."
msgstr ""
-"Ativar mapeamento de oclusão de paralaxe.\n"
-"Requer shaders a serem ativados."
+"Volume de todos os sons.\n"
+"Requer que o sistema de som esteja ativado."
#: src/settings_translation_file.cpp
msgid ""
@@ -6979,7 +7057,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Walking and flying speed, in nodes per second."
-msgstr ""
+msgstr "Velocidade do andar e voar, em nós por segundo."
#: src/settings_translation_file.cpp
msgid "Walking speed"
@@ -6988,6 +7066,7 @@ msgstr "Velocidade de caminhada"
#: src/settings_translation_file.cpp
msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
msgstr ""
+"Velocidade do caminhar, voar e escalar no modo rápido, em nós por segundo."
#: src/settings_translation_file.cpp
msgid "Water level"
@@ -7006,22 +7085,18 @@ msgid "Waving leaves"
msgstr "Balanço das árvores"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids"
-msgstr "Nós que balancam"
+msgstr "Líquidos ondulantes"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave height"
-msgstr "Altura de balanço da água"
+msgstr "Altura da onda nos líquidos ondulantes"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave speed"
msgstr "Velocidade de balanço da água"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wavelength"
msgstr "Comprimento de balanço da água"
@@ -7077,14 +7152,20 @@ msgstr ""
"texturas."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Whether FreeType fonts are used, requires FreeType support to be compiled "
"in.\n"
"If disabled, bitmap and XML vectors fonts are used instead."
msgstr ""
-"Se forem utilizadas fontes freetype, requer suporte a freetype para ser "
-"compilado."
+"Se as fontes FreeType são usadas, requer que suporte FreeType tenha sido "
+"compilado.\n"
+"Se desativado, fontes de bitmap e de vetores XML são usadas em seu lugar."
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
@@ -7125,6 +7206,10 @@ msgid ""
"In-game, you can toggle the mute state with the mute key or by using the\n"
"pause menu."
msgstr ""
+"Quando mutar os sons. Você pode mutar os sons a qualquer hora, a não ser\n"
+"que o sistema de som esteja desabilitado (enable_sound=false).\n"
+"No jogo, você pode habilitar o estado de mutado com o botão de mutar\n"
+"ou usando o menu de pausa."
#: src/settings_translation_file.cpp
msgid ""
@@ -7211,6 +7296,12 @@ msgid ""
"For a solid floatland layer, this controls the height of hills/mountains.\n"
"Must be less than or equal to half the distance between the Y limits."
msgstr ""
+"Distância de Y sobre a qual as ilhas flutuantes diminuem de densidade total "
+"para nenhuma densidade.\n"
+"O afunilamento começa nesta distância do limite Y.\n"
+"Para uma ilha flutuante sólida, isso controla a altura das colinas / "
+"montanhas.\n"
+"Deve ser menor ou igual a metade da distância entre os limites Y."
#: src/settings_translation_file.cpp
msgid "Y-level of average terrain surface."
@@ -7233,6 +7324,36 @@ msgid "Y-level of seabed."
msgstr "Nível Y do fundo do mar."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Nível de compressão ZLib a ser usada ao salvar mapblocks no disco.\n"
+"-1 - Nível de compressão padrão do Zlib\n"
+"0 - Nenhuma compressão; o mais rápido\n"
+"9 - Melhor compressão; o mais devagar\n"
+"(níveis 1-3 usam método \"rápido\" do Zlib, enquanto que 4-9 usam método "
+"normal)"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Nível de compressão ZLib a ser usada ao mandar mapblocks para o cliente.\n"
+"-1 - Nível de compressão padrão do Zlib\n"
+"0 - Nenhuma compressão; o mais rápido\n"
+"9 - Melhor compressão; o mais devagar\n"
+"(níveis 1-3 usam método \"rápido\" do Zlib, enquanto que 4-9 usam método "
+"normal)"
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "Tempo limite de download de arquivo via cURL"
@@ -7244,83 +7365,78 @@ msgstr "limite paralelo de cURL"
msgid "cURL timeout"
msgstr "Tempo limite de cURL"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Alternar modo de câmera cinemática"
-
-#~ msgid "Select Package File:"
-#~ msgstr "Selecionar o arquivo do pacote:"
-
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Limite Y máximo de lava em grandes cavernas."
-
-#~ msgid "Waving Water"
-#~ msgstr "Ondas na água"
-
-#~ msgid "Whether dungeons occasionally project from the terrain."
-#~ msgstr "Se dungeons ocasionalmente se projetam do terreno."
-
-#~ msgid "Projecting dungeons"
-#~ msgstr "Projetando dungeons"
-
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Nível Y para o qual as sombras de ilhas flutuantes se estendem."
-
-#~ msgid "Y-level of floatland midpoint and lake surface."
-#~ msgstr ""
-#~ "Nível em Y do ponto médio da montanha flutuante e da superfície do lago."
-
-#~ msgid "Waving water"
-#~ msgstr "Balanço da água"
-
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
#~ msgstr ""
-#~ "Variação da altura da colina e profundidade do lago no terreno liso da "
-#~ "Terra Flutuante."
+#~ "0 = oclusão paralaxe com dados de inclinação (mais rápido).\n"
+#~ "1 = mapeamento de relevo (mais lento, mais preciso)."
#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
#~ msgstr ""
-#~ "Altura máxima típica, acima e abaixo do ponto médio, do terreno da "
-#~ "montanha flutuante."
+#~ "Ajustar a gama de codificação para a tabela de claridade. Os números mais "
+#~ "elevados são mais brilhantes.\n"
+#~ "Esta configuração é somente para o cliente e é ignorada pelo servidor."
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Esta fonte será usada para determinados idiomas."
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgstr ""
+#~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do "
+#~ "ponto médio."
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "Força do aumento médio da curva de luz."
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Você tem certeza que deseja resetar seu mundo um-jogador?"
-#~ msgid "Shadow limit"
-#~ msgstr "Limite de mapblock"
+#~ msgid "Back"
+#~ msgstr "Backspace"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "Caminho para TrueTypeFont ou bitmap."
+#~ msgid "Bump Mapping"
+#~ msgstr "Bump mapping"
-#~ msgid "Lightness sharpness"
-#~ msgstr "Nitidez da iluminação"
+#~ msgid "Bumpmapping"
+#~ msgstr "Bump mapping"
-#~ msgid "Lava depth"
-#~ msgstr "Profundidade da lava"
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "Centro do aumento da curva de luz."
-#~ msgid "IPv6 support."
-#~ msgstr "Suporte a IPv6."
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "Mudanças para a interface do menu principal:\n"
+#~ " - Total: Múltiplos mundos de um jogador, escolha de jogo, escolha de "
+#~ "pacote de texturas, etc.\n"
+#~ "- Simples: Um mundo de um jogador, sem escolha de jogo ou pacote de "
+#~ "texturas. Pode ser necessário para telas menores."
-#~ msgid "Gamma"
-#~ msgstr "Gama"
+#~ msgid "Config mods"
+#~ msgstr "Configurar Mods"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Fonte alpha de sombra (opacidade, entre 0 e 255)."
+#~ msgid "Configure"
+#~ msgstr "Configurar"
-#~ msgid "Floatland mountain height"
-#~ msgstr "Altura da Ilha Flutuante montanhosa"
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "Controla a densidade do terreno montanhoso nas ilhas flutuantes.\n"
+#~ "É um parâmetro adicionado ao valor de ruído 'mgv7_np_mountain'."
-#~ msgid "Floatland base height noise"
-#~ msgstr "Altura base de ruído de Ilha Flutuante"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Controla a largura dos túneis, um valor menor cria túneis mais largos."
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Habilitar efeito \"filmic tone mapping\""
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Cor do cursor (R,G,B)."
-#~ msgid "Enable VBO"
-#~ msgstr "Habilitar VBO"
+#~ msgid "Darkness sharpness"
+#~ msgstr "Nitidez da escuridão"
#~ msgid ""
#~ "Defines areas of floatland smooth terrain.\n"
@@ -7329,51 +7445,216 @@ msgstr "Tempo limite de cURL"
#~ "Define áreas de Ilha Flutuante em terreno suavizado.\n"
#~ "Terrenos suavizados ocorrem quando o ruído é menor que zero."
-#~ msgid "Darkness sharpness"
-#~ msgstr "Nitidez da escuridão"
-
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
#~ msgstr ""
-#~ "Controla a largura dos túneis, um valor menor cria túneis mais largos."
+#~ "Define processo amostral de textura.\n"
+#~ "Um valor mais alto resulta em mapas de normais mais suaves."
+
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Baixando e instalando $1, por favor aguarde..."
+
+#~ msgid "Enable VBO"
+#~ msgstr "Habilitar VBO"
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Controla a densidade do terreno montanhoso nas ilhas flutuantes.\n"
-#~ "É um parâmetro adicionado ao valor de ruído 'mgv7_np_mountain'."
+#~ "Ativar texturização bump mapping para texturas. Normalmaps precisam ser "
+#~ "fornecidos pelo\n"
+#~ "pacote de textura ou a necessidade de ser auto-gerada.\n"
+#~ "Requer shaders a serem ativados."
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "Centro do aumento da curva de luz."
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Habilitar efeito \"filmic tone mapping\""
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgid ""
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Altera como terras flutuantes montanhosas afunilam acima e abaixo do "
-#~ "ponto médio."
+#~ "Ativa geração de normalmap (efeito de relevo) ao voar.\n"
+#~ "Requer texturização bump mapping para ser ativado."
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Ajustar a gama de codificação para a tabela de claridade. Os números mais "
-#~ "elevados são mais brilhantes.\n"
-#~ "Esta configuração é somente para o cliente e é ignorada pelo servidor."
+#~ "Ativar mapeamento de oclusão de paralaxe.\n"
+#~ "Requer shaders a serem ativados."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Caminho para onde salvar screenshots."
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
+#~ msgstr ""
+#~ "Opção experimental, pode causar espaços visíveis entre blocos\n"
+#~ "quando definido como número maior do que 0."
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "Insinsidade de oclusão de paralaxe"
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS no menu de pausa"
+
+#~ msgid "Floatland base height noise"
+#~ msgstr "Altura base de ruído de Ilha Flutuante"
+
+#~ msgid "Floatland mountain height"
+#~ msgstr "Altura da Ilha Flutuante montanhosa"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Fonte alpha de sombra (opacidade, entre 0 e 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "Gama"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Gerar Normal maps"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Gerar mapa de normais"
+
+#~ msgid "IPv6 support."
+#~ msgstr "Suporte a IPv6."
+
+#~ msgid "Lava depth"
+#~ msgstr "Profundidade da lava"
+
+#~ msgid "Lightness sharpness"
+#~ msgstr "Nitidez da iluminação"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "Limite de filas emerge no disco"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Baixando e instalando $1, por favor aguarde..."
+#~ msgid "Main"
+#~ msgstr "Principal"
-#~ msgid "Back"
-#~ msgstr "Backspace"
+#~ msgid "Main menu style"
+#~ msgstr "Estilo do menu principal"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Minimapa em modo radar, zoom 2x"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Minimapa em modo radar, zoom 4x"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Minimapa em modo de superfície, zoom 2x"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Minimapa em modo de superfície, zoom 4x"
+
+#~ msgid "Name/Password"
+#~ msgstr "Nome / Senha"
+
+#~ msgid "No"
+#~ msgstr "Não"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Amostragem de normalmaps"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Intensidade de normalmaps"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "Número de iterações de oclusão de paralaxe."
#~ msgid "Ok"
#~ msgstr "Ok"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr ""
+#~ "Viés geral do efeito de oclusão de paralaxe, geralmente de escala/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Escala global do efeito de oclusão de paralaxe."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Oclusão de paralaxe"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Oclusão de paralaxe"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Viés de oclusão de paralaxe"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Iterações de oclusão de paralaxe"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Modo de oclusão de paralaxe"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Escala de Oclusão de paralaxe"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "Insinsidade de oclusão de paralaxe"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "Caminho para TrueTypeFont ou bitmap."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Caminho para onde salvar screenshots."
+
+#~ msgid "Projecting dungeons"
+#~ msgstr "Projetando dungeons"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Resetar mundo um-jogador"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Selecionar o arquivo do pacote:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "Limite de mapblock"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Iniciar Um jogador"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Intensidade de normalmaps gerados."
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "Força do aumento médio da curva de luz."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Esta fonte será usada para determinados idiomas."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Alternar modo de câmera cinemática"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr ""
+#~ "Altura máxima típica, acima e abaixo do ponto médio, do terreno da "
+#~ "montanha flutuante."
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr ""
+#~ "Variação da altura da colina e profundidade do lago no terreno liso da "
+#~ "Terra Flutuante."
+
+#~ msgid "View"
+#~ msgstr "Vista"
+
+#~ msgid "Waving Water"
+#~ msgstr "Ondas na água"
+
+#~ msgid "Waving water"
+#~ msgstr "Balanço da água"
+
+#~ msgid "Whether dungeons occasionally project from the terrain."
+#~ msgstr "Se dungeons ocasionalmente se projetam do terreno."
+
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Limite Y máximo de lava em grandes cavernas."
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr ""
+#~ "Nível em Y do ponto médio da montanha flutuante e da superfície do lago."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Nível Y para o qual as sombras de ilhas flutuantes se estendem."
+
+#~ msgid "Yes"
+#~ msgstr "Sim"
diff --git a/po/ro/minetest.po b/po/ro/minetest.po
index f7c6b6fef..48ad46e2c 100644
--- a/po/ro/minetest.po
+++ b/po/ro/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Romanian (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-04 16:41+0000\n"
-"Last-Translator: f0roots <f0rootss@gmail.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-11-24 11:29+0000\n"
+"Last-Translator: Nicolae Crefelean <kneekoo@yahoo.com>\n"
"Language-Team: Romanian <https://hosted.weblate.org/projects/minetest/"
"minetest/ro/>\n"
"Language: ro\n"
@@ -13,7 +13,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.4-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -25,7 +25,7 @@ msgstr "Ai murit"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -41,15 +41,11 @@ msgstr "Meniul principal"
#: builtin/fstk/ui.lua
msgid "Reconnect"
-msgstr "Reconectează-te"
+msgstr "Reconectare"
#: builtin/fstk/ui.lua
msgid "The server has requested a reconnect:"
-msgstr "Serverul cere o reconectare :"
-
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Se încarcă..."
+msgstr "Serverul cere o reconectare:"
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
@@ -61,23 +57,18 @@ msgstr "Serverul forțează versiunea protocolului $1. "
#: builtin/mainmenu/common.lua
msgid "Server supports protocol versions between $1 and $2. "
-msgstr "Acest Server suporta versiunile protocolului intre $1 si $2. "
-
-#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Încercați să activați lista de servere publică și să vă verificați "
-"conexiunea la internet."
+msgstr "Serverul permite versiuni ale protocolului între $1 și $2. "
#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
-msgstr "Suportam doar versiunea de protocol $1."
+msgstr "Permitem doar versiunea de protocol $1."
#: builtin/mainmenu/common.lua
msgid "We support protocol versions between version $1 and $2."
msgstr "Acceptăm versiuni de protocol între versiunea 1$ și 2$."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -87,7 +78,8 @@ msgstr "Acceptăm versiuni de protocol între versiunea 1$ și 2$."
msgid "Cancel"
msgstr "Anulează"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Dependențe:"
@@ -97,7 +89,7 @@ msgstr "Dezactivează toate"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Disable modpack"
-msgstr "Dezactiveaza pachet mod"
+msgstr "Dezactivează modpack-ul"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable all"
@@ -105,7 +97,7 @@ msgstr "Activează tot"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable modpack"
-msgstr "Activeaza pachet mod"
+msgstr "Activează modpack-ul"
#: builtin/mainmenu/dlg_config_world.lua
msgid ""
@@ -117,7 +109,7 @@ msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "Găsește mai multe modificări"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -161,25 +153,65 @@ msgid "enabled"
msgstr "activat"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Descărcare..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Toate pachetele"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Tastă deja folosită"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "ÃŽnapoi la meniul principal"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Găzduiește joc"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "ContentDB nu este disponibilă când Minetest e compilat fără cURL"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
-msgstr "Se încarcă..."
+msgstr "Descărcare..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
-msgstr "Nu a putut descărca $1"
+msgstr "Nu s-a putut descărca $1"
#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -191,9 +223,19 @@ msgid "Install"
msgstr "Instalează"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Instalează"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Dependențe opționale:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
-msgstr "Moduri"
+msgstr "Modificări"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No packages could be retrieved"
@@ -201,16 +243,32 @@ msgstr "Nu s-au putut prelua pachete"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No results"
-msgstr "Fara rezultate"
+msgstr "Fără rezultate"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Caută"
+#, fuzzy
+msgid "No updates"
+msgstr "Actualizare"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
-msgstr "Pachete de textură"
+msgstr "Pachete de texturi"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Uninstall"
@@ -221,79 +279,76 @@ msgid "Update"
msgstr "Actualizare"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
-msgstr "O lume cu numele \"$1\" deja există"
+msgstr "Deja există o lume numită \"$1\""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "Teren suplimentar"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
-msgstr "Altitudine de frisoane"
+msgstr "Răcire la altitudine"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Altitude dry"
-msgstr "Altitudine de frisoane"
+msgstr "Ariditate la altitudine"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biome blending"
-msgstr "Biome zgomot"
+msgstr "Amestec de biom"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biomes"
-msgstr "Biome zgomot"
+msgstr "Biomuri"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caverns"
-msgstr "Pragul cavernei"
+msgstr "Caverne"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caves"
-msgstr "Octava"
+msgstr "Peșteri"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
msgstr "Creează"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "Informații:"
+msgstr "Decorațiuni"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
-msgstr "Descărcați un joc, cum ar fi Minetest Game, de pe minetest.net"
+msgstr "Descărcați un joc, precum Minetest Game, de pe minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download one from minetest.net"
msgstr "Descărcați unul de pe minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Dungeons"
-msgstr "Zgomotul temnițelor"
+msgstr "Temnițe"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "Teren plat"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
-msgstr ""
+msgstr "Mase de teren plutitoare în cer"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floatlands (experimental)"
-msgstr ""
+msgstr "Terenuri plutitoare (experimental)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -301,27 +356,28 @@ msgstr "Joc"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Generare terenuri fără fracturi: Oceane și sub pământ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "Dealuri"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Humid rivers"
-msgstr ""
+msgstr "Râuri umede"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "Mărește umiditea în jurul râurilor"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "Lacuri"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
msgstr ""
+"Umiditatea redusă și căldura ridicată cauzează râuri superficiale sau uscate"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -332,21 +388,20 @@ msgid "Mapgen flags"
msgstr "Steagurile Mapgen"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mapgen-specific flags"
-msgstr "Steaguri specifice Mapgen V5"
+msgstr "Steaguri specifice Mapgen"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mountains"
-msgstr ""
+msgstr "Munți"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "Curgere de noroi"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "Rețea de tunele și peșteri"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
@@ -354,20 +409,19 @@ msgstr "Nici un joc selectat"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "Reduce căldura cu altitudinea"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "Reduce umiditatea cu altitudinea"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Rivers"
-msgstr "Zgomotul râului"
+msgstr "Râuri"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "Râuri la nivelul mării"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -376,51 +430,51 @@ msgstr "Seminţe"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "Tranziție lină între biomi"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
+"Structuri care apar pe teren (fără efect asupra copacilor și a ierbii de "
+"junglă creați de v6)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "Structuri care apar pe teren, tipic copaci și plante"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
-msgstr ""
+msgstr "Temperat, Deșert"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgstr "Temperat, Deșert, Junglă"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "Temperat, Deșert, Junglă, Tundră, Taiga"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Terrain surface erosion"
-msgstr ""
+msgstr "Eroziunea suprafeței terenului"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "Copaci și iarbă de junglă"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Vary river depth"
-msgstr ""
+msgstr "Adâncimea râului variază"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "Caverne foarte mari adânc în pământ"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Warning: The Development Test is meant for developers."
-msgstr ""
-"Avertisment: Testul de dezvoltare minimă este destinat dezvoltatorilor."
+msgstr "Avertisment: Testul de dezvoltare este destinat dezvoltatorilor."
#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
@@ -529,6 +583,10 @@ msgid "Scale"
msgstr "Scală"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Caută"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Selectează directorul"
@@ -645,6 +703,21 @@ msgstr "Imposibil de instalat un mod ca $1"
msgid "Unable to install a modpack as a $1"
msgstr "Imposibil de instalat un pachet de moduri ca $ 1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Se încarcă..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Scripturile din partea clientului sunt dezactivate"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Încercați să activați lista de servere publică și să vă verificați "
+"conexiunea la internet."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Căutați conținut online"
@@ -698,6 +771,17 @@ msgid "Credits"
msgstr "Credite"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Selectează directorul"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Foști contribuitori"
@@ -714,14 +798,10 @@ msgid "Bind Address"
msgstr "Adresa legată"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Configurează"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Modul Creativ"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Activează Daune"
@@ -735,11 +815,11 @@ msgstr "Găzduiește Server"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "Instalarea jocurilor din ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Nume/Parolă"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -750,6 +830,11 @@ msgid "No world created or selected!"
msgstr "Nicio lume creată sau selectată!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Noua parolă"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Joacă jocul"
@@ -758,6 +843,11 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Selectează lumea:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Selectează lumea:"
@@ -773,23 +863,23 @@ msgstr "ÃŽncepe Jocul"
msgid "Address / Port"
msgstr "Adresă / Port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Conectează"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Modul Creativ"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Daune activate"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Åžterge Favorit"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Favorit"
@@ -797,16 +887,16 @@ msgstr "Favorit"
msgid "Join Game"
msgstr "Alatură-te jocului"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Nume / Parolă"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP activat"
@@ -835,10 +925,6 @@ msgid "Antialiasing:"
msgstr "Antialiasing:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Eşti sigur că vrei să resetezi lumea proprie ?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Salvează automat dimensiunea ecranului"
@@ -846,10 +932,6 @@ msgstr "Salvează automat dimensiunea ecranului"
msgid "Bilinear Filter"
msgstr "Filtrare Biliniară"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Cartografiere cu denivelări"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Modifică tastele"
@@ -863,10 +945,6 @@ msgid "Fancy Leaves"
msgstr "Frunze luxsoase"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Generați Hărți Normale"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Hartă mip"
@@ -875,10 +953,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Hartă mip + filtru aniso."
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Nu"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Fără Filtru"
@@ -906,19 +980,11 @@ msgstr "Frunze opace"
msgid "Opaque Water"
msgstr "Apă opacă"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Ocluzie Parallax"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Particule"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Resetează lume proprie"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Ecran:"
@@ -931,6 +997,11 @@ msgid "Shaders"
msgstr "Umbră"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Terenuri plutitoare (experimental)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Shaders (indisponibil)"
@@ -974,22 +1045,6 @@ msgstr "Fluturarea lichidelor"
msgid "Waving Plants"
msgstr "Plante legănătoare"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Da"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Configurează moduri"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Principal"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Începeți Jucător singur"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Conexiunea a expirat."
@@ -1144,20 +1199,20 @@ msgid "Continue"
msgstr "Continuă"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1305,34 +1360,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Hartă mip dezactivată de joc sau mod"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Hartă mip ascunsă"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Hartă mip în modul radar, Zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Hartă mip în modul radar, Zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Hartă mip în modul radar, Zoom x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Hartă mip în modul de suprafață, Zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Hartă mip în modul de suprafață, Zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Hartă mip în modul de suprafață, Zoom x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Modul Noclip este dezactivat"
@@ -1394,11 +1421,11 @@ msgstr "Sunet dezactivat"
#: src/client/game.cpp
msgid "Sound system is disabled"
-msgstr ""
+msgstr "Sistem audio dezactivat"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "Sistemul audio nu e suportat în această construcție"
#: src/client/game.cpp
msgid "Sound unmuted"
@@ -1724,6 +1751,25 @@ msgstr "X Butonul 2"
msgid "Zoom"
msgstr "Mărire"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Hartă mip ascunsă"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Hartă mip în modul radar, Zoom x1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Hartă mip în modul de suprafață, Zoom x1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Hartă mip în modul de suprafață, Zoom x1"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Parolele nu se potrivesc!"
@@ -1999,14 +2045,6 @@ msgstr ""
"o insulă, setați toate cele 3 numere egale pentru forma brută."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = ocluzia de paralax cu informații despre panta (mai rapid).\n"
-"1 = mapare în relief (mai lentă, mai exactă)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "Zgomot 2D care controlează forma/dimensiunea munților crestați."
@@ -2045,7 +2083,7 @@ msgstr "Mod 3D"
#: src/settings_translation_file.cpp
msgid "3D mode parallax strength"
-msgstr ""
+msgstr "Mod 3D putere paralaxă"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
@@ -2066,6 +2104,10 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
+"Zgomot 3D care definește structura insulelor plutitoare (floatlands).\n"
+"Dacă este modificată valoarea implicită, 'scala' (0.7) ar putea trebui\n"
+"să fie ajustată, formarea floatland funcționează optim cu un zgomot\n"
+"în intervalul aproximativ -2.0 până la 2.0."
#: src/settings_translation_file.cpp
msgid "3D noise defining structure of river canyon walls."
@@ -2133,9 +2175,12 @@ msgid "ABM interval"
msgstr "Interval ABM"
#: src/settings_translation_file.cpp
-#, fuzzy
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
-msgstr "Limita absolută a cozilor emergente"
+msgstr "Limita absolută a cozilor de blocuri procesate"
#: src/settings_translation_file.cpp
msgid "Acceleration in air"
@@ -2192,6 +2237,13 @@ msgid ""
"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
"to be sure) creates a solid floatland layer."
msgstr ""
+"Ajustează densitatea stratului floatland.\n"
+"Mărește valoarea pentru creșterea densității. Poate fi pozitivă sau "
+"negativă.\n"
+"Valoarea = 0.0: 50% din volum este floatland.\n"
+"Valoarea = 2.0 (poate fi mai mare în funcție de 'mgv7_np_floatland'; "
+"testați\n"
+"pentru siguranță) va crea un strat solid floatland."
#: src/settings_translation_file.cpp
msgid "Advanced"
@@ -2391,10 +2443,6 @@ msgid "Builtin"
msgstr "Incorporat"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Hartă pentru Denivelări"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2413,88 +2461,79 @@ msgstr "Netezirea camerei"
#: src/settings_translation_file.cpp
msgid "Camera smoothing in cinematic mode"
-msgstr ""
+msgstr "Cameră fluidă în modul cinematic"
#: src/settings_translation_file.cpp
msgid "Camera update toggle key"
-msgstr ""
+msgstr "Tasta de comutare a actualizării camerei"
#: src/settings_translation_file.cpp
msgid "Cave noise"
-msgstr ""
+msgstr "Zgomotul peșterilor"
#: src/settings_translation_file.cpp
msgid "Cave noise #1"
-msgstr ""
+msgstr "Zgomotul 1 al peșterilor"
#: src/settings_translation_file.cpp
msgid "Cave noise #2"
-msgstr ""
+msgstr "Zgomotul 2 al peșterilor"
#: src/settings_translation_file.cpp
msgid "Cave width"
-msgstr ""
+msgstr "Lățime peșteri"
#: src/settings_translation_file.cpp
msgid "Cave1 noise"
-msgstr ""
+msgstr "Zgomot peșteri1"
#: src/settings_translation_file.cpp
msgid "Cave2 noise"
-msgstr ""
+msgstr "Zgomot peșteri2"
#: src/settings_translation_file.cpp
msgid "Cavern limit"
-msgstr ""
+msgstr "Limita cavernelor"
#: src/settings_translation_file.cpp
msgid "Cavern noise"
-msgstr ""
+msgstr "Zgomotul cavernelor"
#: src/settings_translation_file.cpp
msgid "Cavern taper"
-msgstr ""
+msgstr "Subțiere caverne"
#: src/settings_translation_file.cpp
msgid "Cavern threshold"
-msgstr "Pragul cavernei"
+msgstr "Pragul cavernelor"
#: src/settings_translation_file.cpp
msgid "Cavern upper limit"
-msgstr ""
+msgstr "Limita superioară a cavernelor"
#: src/settings_translation_file.cpp
msgid ""
"Center of light curve boost range.\n"
"Where 0.0 is minimum light level, 1.0 is maximum light level."
msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
+"Centrul razei de amplificare a curbei de lumină.\n"
+"Aici 0.0 este nivelul minim de lumină, iar 1.0 este nivelul maxim."
#: src/settings_translation_file.cpp
msgid "Chat font size"
-msgstr ""
+msgstr "Dimensiunea fontului din chat"
#: src/settings_translation_file.cpp
msgid "Chat key"
msgstr "Tasta de chat"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat log level"
-msgstr "Cheia de comutare a chatului"
+msgstr "Nivelul de raportare în chat"
#: src/settings_translation_file.cpp
msgid "Chat message count limit"
-msgstr ""
+msgstr "Limita mesajelor din chat"
#: src/settings_translation_file.cpp
msgid "Chat message format"
@@ -2506,7 +2545,7 @@ msgstr "Pragul de lansare a mesajului de chat"
#: src/settings_translation_file.cpp
msgid "Chat message max length"
-msgstr ""
+msgstr "Lungimea maximă a unui mesaj din chat"
#: src/settings_translation_file.cpp
msgid "Chat toggle key"
@@ -2518,7 +2557,7 @@ msgstr "Comenzi de chat"
#: src/settings_translation_file.cpp
msgid "Chunk size"
-msgstr ""
+msgstr "Dimensiunea unui chunk"
#: src/settings_translation_file.cpp
msgid "Cinematic mode"
@@ -2530,7 +2569,7 @@ msgstr "Tasta modului cinematografic"
#: src/settings_translation_file.cpp
msgid "Clean transparent textures"
-msgstr ""
+msgstr "Texturi transparente curate"
#: src/settings_translation_file.cpp
msgid "Client"
@@ -2538,7 +2577,7 @@ msgstr "Client"
#: src/settings_translation_file.cpp
msgid "Client and Server"
-msgstr ""
+msgstr "Client și server"
#: src/settings_translation_file.cpp
msgid "Client modding"
@@ -2550,11 +2589,11 @@ msgstr "Restricții de modificare de partea clientului"
#: src/settings_translation_file.cpp
msgid "Client side node lookup range restriction"
-msgstr ""
+msgstr "Restricția razei de căutare a nodurilor în clienți"
#: src/settings_translation_file.cpp
msgid "Climbing speed"
-msgstr ""
+msgstr "Viteza escaladării"
#: src/settings_translation_file.cpp
msgid "Cloud radius"
@@ -2566,7 +2605,7 @@ msgstr "Nori"
#: src/settings_translation_file.cpp
msgid "Clouds are a client side effect."
-msgstr ""
+msgstr "Norii sunt un efect pe client."
#: src/settings_translation_file.cpp
msgid "Clouds in menu"
@@ -2586,12 +2625,22 @@ msgid ""
"These flags are independent from Minetest versions,\n"
"so see a full list at https://content.minetest.net/help/content_flags/"
msgstr ""
+"Listă separată de virgule cu etichete de ascuns din depozitul de conținut.\n"
+"\"nonfree\" se poate folosi pentru ascunderea pachetelor care nu sunt "
+"'software liber',\n"
+"conform definiției Free Software Foundation.\n"
+"Puteți specifica și clasificarea conținutului.\n"
+"Aceste etichete nu depind de versiunile Minetest.\n"
+"Puteți vedea lista completă la https://content.minetest.net/help/"
+"content_flags/"
#: src/settings_translation_file.cpp
msgid ""
"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
"allow them to upload and download data to/from the internet."
msgstr ""
+"Listă separată de virgule, cu modificări care au acces la API-uri HTTP,\n"
+"care la permit încărcarea și descărcarea de date în/din internet."
#: src/settings_translation_file.cpp
msgid ""
@@ -2632,6 +2681,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "URL-ul ContentDB"
@@ -2688,7 +2741,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2696,7 +2751,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2797,12 +2854,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2873,6 +2924,11 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Tasta dreapta"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Particule pentru săpare"
@@ -2933,7 +2989,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3021,14 +3077,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -3038,18 +3086,6 @@ msgstr "Activează minimap."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3066,12 +3102,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3081,7 +3111,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3384,10 +3414,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3441,8 +3467,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3909,6 +3935,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3989,6 +4019,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4088,6 +4125,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4644,10 +4688,6 @@ msgid "Main menu script"
msgstr "Scriptul meniului principal"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Stilul meniului principal"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4661,6 +4701,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4824,7 +4872,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4873,6 +4921,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5102,14 +5157,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5135,10 +5182,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5164,34 +5207,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5257,6 +5272,15 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Tasta de mutare a pitch"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5412,10 +5436,6 @@ msgid "Right key"
msgstr "Tasta dreapta"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5667,6 +5687,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5796,10 +5826,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5893,6 +5919,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5951,8 +5981,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5978,15 +6008,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6122,6 +6157,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6324,6 +6370,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6446,6 +6498,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6457,21 +6527,45 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
-#, fuzzy
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Intră pe rapid"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = ocluzia de paralax cu informații despre panta (mai rapid).\n"
+#~ "1 = mapare în relief (mai lentă, mai exactă)."
-#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "Selectează Fișierul Modului:"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Eşti sigur că vrei să resetezi lumea proprie ?"
-#, fuzzy
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Activează Daune"
+#~ msgid "Back"
+#~ msgstr "ÃŽnapoi"
-#, fuzzy
-#~ msgid "Enable VBO"
-#~ msgstr "Activează MP"
+#~ msgid "Bump Mapping"
+#~ msgstr "Cartografiere cu denivelări"
+
+#~ msgid "Bumpmapping"
+#~ msgstr "Hartă pentru Denivelări"
+
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "Modifică interfața meniului principal:\n"
+#~ "- Complet: Lumi multiple singleplayer, selector de joc, selector de "
+#~ "texturi etc.\n"
+#~ "- Simplu: Doar o lume singleplayer, fără selectoare de joc sau "
+#~ "texturi.\n"
+#~ "Poate fi necesar pentru ecrane mai mici."
+
+#~ msgid "Config mods"
+#~ msgstr "Configurează moduri"
+
+#~ msgid "Configure"
+#~ msgstr "Configurează"
#, fuzzy
#~ msgid "Darkness sharpness"
@@ -6480,8 +6574,63 @@ msgstr ""
#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr "Se descarca si se instaleaza $ 1, vă rugăm să așteptați ..."
-#~ msgid "Back"
-#~ msgstr "ÃŽnapoi"
+#, fuzzy
+#~ msgid "Enable VBO"
+#~ msgstr "Activează MP"
+
+#, fuzzy
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Activează Daune"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Generați Hărți Normale"
+
+#~ msgid "Main"
+#~ msgstr "Principal"
+
+#~ msgid "Main menu style"
+#~ msgstr "Stilul meniului principal"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Hartă mip în modul radar, Zoom x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Hartă mip în modul radar, Zoom x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Hartă mip în modul de suprafață, Zoom x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Hartă mip în modul de suprafață, Zoom x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Nume/Parolă"
+
+#~ msgid "No"
+#~ msgstr "Nu"
#~ msgid "Ok"
#~ msgstr "Ok"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Ocluzie Parallax"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Resetează lume proprie"
+
+#, fuzzy
+#~ msgid "Select Package File:"
+#~ msgstr "Selectează Fișierul Modului:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Începeți Jucător singur"
+
+#, fuzzy
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Intră pe rapid"
+
+#~ msgid "View"
+#~ msgstr "Vizualizare"
+
+#~ msgid "Yes"
+#~ msgstr "Da"
diff --git a/po/ru/minetest.po b/po/ru/minetest.po
index e626d58b3..9f78a12da 100644
--- a/po/ru/minetest.po
+++ b/po/ru/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Russian (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-18 13:41+0000\n"
-"Last-Translator: Maksim Gamarnik <MoNTE48@mail.ua>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-13 08:50+0000\n"
+"Last-Translator: Ertu (Er2, Err) <er2official@outlook.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/minetest/"
"minetest/ru/>\n"
"Language: ru\n"
@@ -13,7 +13,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.1.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -47,10 +47,6 @@ msgstr "ПереподключитьÑÑ"
msgid "The server has requested a reconnect:"
msgstr "Сервер запроÑил переподключение:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Загрузка..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "ÐеÑоответÑтвие верÑии протокола. "
@@ -61,22 +57,18 @@ msgstr "Сервер требует протокол верÑии $1. "
#: builtin/mainmenu/common.lua
msgid "Server supports protocol versions between $1 and $2. "
-msgstr "Сервер поддерживает верÑии протокола между $1 и $2. "
-
-#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Попробуйте обновить ÑпиÑок публичных Ñерверов и проверьте ÑвÑзь Ñ Ð˜Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð¾Ð¼."
+msgstr "Сервер поддерживает верÑии протокола Ñ $1 по $2. "
#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
-msgstr "ПоддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ протокол верÑии $1."
+msgstr "Мы поддерживаем только протокол верÑии $1."
#: builtin/mainmenu/common.lua
msgid "We support protocol versions between version $1 and $2."
-msgstr "Мы поддерживаем верÑии протоколов между $1 и $2."
+msgstr "ПоддерживаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ протоколы верÑий Ñ $1 по $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +78,8 @@ msgstr "Мы поддерживаем верÑии протоколов межд
msgid "Cancel"
msgstr "Отмена"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "ЗавиÑимоÑти:"
@@ -157,22 +150,61 @@ msgstr "Мир:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "enabled"
-msgstr "включен"
+msgstr "включено"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" уже ÑущеÑтвует. ПерезапиÑать?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "ЗавиÑимоÑти $1 и $2 будут уÑтановлены."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 из $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 ÑкачиваетÑÑ,\n"
+"$2 в очереди"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 ÑкачиваетÑÑ…"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "Ðе удалоÑÑŒ найти требуемые завиÑимоÑти $1."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "Будет уÑтановлен $1, а завиÑимоÑти $2 будут пропущены."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Ð’Ñе дополнениÑ"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Уже уÑтановлено"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Ðазад в главное меню"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Ð‘Ð°Ð·Ð¾Ð²Ð°Ñ Ð¸Ð³Ñ€Ð°:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr "ContentDB недоÑтупен, когда Minetest Ñкомпилирован без cURL"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
msgstr "Загрузка..."
@@ -190,6 +222,14 @@ msgid "Install"
msgstr "УÑтановить"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "УÑтановить $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "УÑтановить недоÑтающие завиÑимоÑти"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Моды"
@@ -203,9 +243,24 @@ msgid "No results"
msgstr "Ðичего не найдено"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "ИÑкать"
+msgid "No updates"
+msgstr "Ðет обновлений"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "Ðе найдено"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "ПерезапиÑать"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "ПожалуйÑта, убедитеÑÑŒ, что Ð±Ð°Ð·Ð¾Ð²Ð°Ñ Ð¸Ð³Ñ€Ð° верна."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "В очереди"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -220,8 +275,12 @@ msgid "Update"
msgstr "Обновить"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "Вид"
+msgid "Update All [$1]"
+msgstr "Обновить вÑе [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "ПоÑмотреть дополнительную информацию в веб-браузере"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -233,41 +292,35 @@ msgstr "Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¼ÐµÑтноÑть"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
-msgstr "Ð’Ñ‹Ñота нивального поÑÑа"
+msgstr "Ð’Ñ‹Ñота над уровнем морÑ"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Altitude dry"
msgstr "Ð’Ñ‹Ñота нивального поÑÑа"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biome blending"
-msgstr "Шум биомов"
+msgstr "Смешивание биомов"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biomes"
-msgstr "Шум биомов"
+msgstr "Биомы"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caverns"
-msgstr "Шум пещеры"
+msgstr "Пещеры"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caves"
-msgstr "Октавы"
+msgstr "Пещеры"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
msgstr "Создать"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "Итерации"
+msgstr "УкрашениÑ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -278,23 +331,20 @@ msgid "Download one from minetest.net"
msgstr "Ð’Ñ‹ можете Ñкачать их на minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Dungeons"
-msgstr "Шум подземельÑ"
+msgstr "ПодземельÑ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
msgstr "ПлоÑÐºÐ°Ñ Ð¼ÐµÑтноÑть"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floating landmasses in the sky"
-msgstr "ПлотноÑть гор на парÑщих оÑтровах"
+msgstr "ПарÑщие оÑтрова на небе"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floatlands (experimental)"
-msgstr "Уровень парÑщих оÑтровов"
+msgstr "ПарÑщие оÑтрова (ÑкÑпериментальный)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -302,20 +352,19 @@ msgstr "Игра"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Создать нефрактальную меÑтноÑть: океаны и подземельÑ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
msgstr "Холмы"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Humid rivers"
-msgstr "Видеодрайвер"
+msgstr "ВлажноÑть рек"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "Увеличивает влажноÑть вокруг рек"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
@@ -324,6 +373,7 @@ msgstr "Озёра"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
msgstr ""
+"Пониженную влажноÑть и выÑокую температуру вызывают отмель или выÑыхание рек"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -334,18 +384,16 @@ msgid "Mapgen flags"
msgstr "Флаги картогенератора"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mapgen-specific flags"
-msgstr "Специальные флаги картогенератора V5"
+msgstr "Специальные флаги картогенератора"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mountains"
-msgstr "Шум гор"
+msgstr "Горы"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "ГрÑзевой поток"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
@@ -364,13 +412,12 @@ msgid "Reduces humidity with altitude"
msgstr "Уменьшает влажноÑть Ñ Ð²Ñ‹Ñотой"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Rivers"
-msgstr "Размер рек"
+msgstr "Реки"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "Реки на уровне морÑ"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -386,46 +433,44 @@ msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
+"Структуры, поÑвлÑющиеÑÑ Ð½Ð° поверхноÑти (не влиÑет на Ð´ÐµÑ€ÐµÐ²ÑŒÑ Ð¸ тропичеÑкую "
+"траву, Ñгенерированные v6)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "Структуры, поÑвлÑющиеÑÑ Ð½Ð° поверхноÑти, типично Ð´ÐµÑ€ÐµÐ²ÑŒÑ Ð¸ раÑтениÑ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
-msgstr ""
+msgstr "Умеренный поÑÑ, ПуÑтынÑ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgstr "Умеренный поÑÑ, ПуÑтынÑ, Джунгли"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "Умеренный поÑÑ, ПуÑтынÑ, Джунгли, Тундра, Тайга"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Terrain surface erosion"
-msgstr "Базовый шум поверхноÑти"
+msgstr "Разрушение поверхноÑти меÑтноÑти"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
msgstr "Ð”ÐµÑ€ÐµÐ²ÑŒÑ Ð¸ Джунгли-трава"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Vary river depth"
-msgstr "Глубина рек"
+msgstr "Изменить глубину рек"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "Очень большие пещеры глубоко под землей"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Warning: The Development Test is meant for developers."
-msgstr ""
-"Внимание: «Minimal development test» предназначен только Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð²."
+msgstr "Внимание: «The Development Test» предназначен Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð²."
#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
@@ -470,8 +515,8 @@ msgid ""
"This modpack has an explicit name given in its modpack.conf which will "
"override any renaming here."
msgstr ""
-"Этот модпак имеет Ñвное имÑ, указанное в modpack.conf, который переопределит "
-"любое переименование здеÑÑŒ."
+"Этот пакет модов имеет имÑ, Ñвно указанное в modpack.conf, которое не "
+"изменитÑÑ Ð¾Ñ‚ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð´ÐµÑÑŒ."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "(No description of setting given)"
@@ -527,13 +572,17 @@ msgstr "ПожалуйÑта, введите допуÑтимое чиÑло."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Restore Default"
-msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ð½Ð°Ñтроек"
+msgstr "ВоÑÑтановить Ñтандартные наÑтройки"
#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
msgid "Scale"
msgstr "МаÑштаб"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "ИÑкать"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Выбрать каталог"
@@ -590,7 +639,7 @@ msgstr "абÑÐ¾Ð»ÑŽÑ‚Ð½Ð°Ñ Ð²ÐµÐ»Ð¸Ñ‡Ð¸Ð½Ð°"
#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "defaults"
-msgstr "Ñтандартные"
+msgstr "Базовый"
#. ~ "eased" is a noise parameter flag.
#. It is used to make the map smoother and
@@ -610,7 +659,7 @@ msgstr "$1 модов"
#: builtin/mainmenu/pkgmgr.lua
msgid "Failed to install $1 to $2"
-msgstr "Ðе удалоÑÑŒ уÑтановить $1 в $2"
+msgstr "Ðевозможно уÑтановить $1 в $2"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install Mod: Unable to find real mod name for: $1"
@@ -633,8 +682,7 @@ msgstr "УÑтановка мода: файл \"$1\""
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to find a valid mod or modpack"
msgstr ""
-"УÑтановка мода: не удаётÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ подходÑщий каталог Ð´Ð»Ñ Ð¼Ð¾Ð´Ð° или пакета "
-"модов $1"
+"УÑтановка мода: не удаётÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ подходÑщий каталог Ð´Ð»Ñ Ð¼Ð¾Ð´Ð° или пакета модов"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a $1 as a texture pack"
@@ -652,6 +700,20 @@ msgstr "Ðе удаётÑÑ ÑƒÑтановить мод как $1"
msgid "Unable to install a modpack as a $1"
msgstr "Ðе удаётÑÑ ÑƒÑтановить пакет модов как $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Загрузка..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "КлиентÑкие моды отключены"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Попробуйте обновить ÑпиÑок публичных Ñерверов и проверьте ÑвÑзь Ñ Ð˜Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð¾Ð¼."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "ПоиÑк дополнений в Ñети"
@@ -705,6 +767,18 @@ msgid "Credits"
msgstr "БлагодарноÑти"
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr "Открыть каталог данных пользователÑ"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Открывает каталог, Ñодержащий пользовательÑкие миры, игры, моды,\n"
+"и пакеты текÑтур в файловом менеджере / проводнике."
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Прошлые учаÑтники"
@@ -721,14 +795,10 @@ msgid "Bind Address"
msgstr "ÐÐ´Ñ€ÐµÑ Ð¿Ñ€Ð¸Ð²Ñзки"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "ÐаÑтроить"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Режим творчеÑтва"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Включить урон"
@@ -742,11 +812,11 @@ msgstr "ЗапуÑтить Ñервер"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr "УÑтановите игры из ContentDB"
+msgstr "УÑтановить игры из ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "ИмÑ/Пароль"
+msgid "Name"
+msgstr "ИмÑ"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -757,6 +827,10 @@ msgid "No world created or selected!"
msgstr "Мир не Ñоздан или не выбран!"
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "Пароль"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Играть"
@@ -765,6 +839,10 @@ msgid "Port"
msgstr "Порт"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "Выберите моды"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Выберите мир:"
@@ -780,25 +858,23 @@ msgstr "Ðачать игру"
msgid "Address / Port"
msgstr "ÐÐ´Ñ€ÐµÑ / Порт"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "ПодключитьÑÑ"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Режим творчеÑтва"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Урон включён"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
-msgstr ""
-"Убрать из\n"
-"избранных"
+msgstr "Убрать из избранного"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "В избранные"
@@ -806,16 +882,16 @@ msgstr "В избранные"
msgid "Join Game"
msgstr "ПодключитьÑÑ Ðº игре"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Ð˜Ð¼Ñ / Пароль"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Пинг"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP разрешён"
@@ -844,10 +920,6 @@ msgid "Antialiasing:"
msgstr "Сглаживание:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Уверены, что хотите ÑброÑить мир одиночной игры?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Запоминать размер окна"
@@ -855,10 +927,6 @@ msgstr "Запоминать размер окна"
msgid "Bilinear Filter"
msgstr "Ð‘Ð¸Ð»Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Бампмаппинг"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Смена управлениÑ"
@@ -872,10 +940,6 @@ msgid "Fancy Leaves"
msgstr "КраÑÐ¸Ð²Ð°Ñ Ð»Ð¸Ñтва"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Создавать карты нормалей"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Мипмаппинг"
@@ -884,12 +948,8 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Мипмаппинг + анизотр. фильтр"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Ðет"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
-msgstr "Без фильтрации (пикÑельное)"
+msgstr "Без фильтрации"
#: builtin/mainmenu/tab_settings.lua
msgid "No Mipmap"
@@ -915,19 +975,11 @@ msgstr "ÐÐµÐ¿Ñ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð°Ñ Ð»Ð¸Ñтва"
msgid "Opaque Water"
msgstr "ÐÐµÐ¿Ñ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð°Ñ Ð²Ð¾Ð´Ð°"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Объёмные текÑтуры"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "ЧаÑтицы"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ð¾Ð´Ð¸Ð½Ð¾Ñ‡Ð½Ð¾Ð¹ игры"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Экран:"
@@ -940,6 +992,10 @@ msgid "Shaders"
msgstr "Шейдеры"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr "Шейдеры (ÑкÑпериментально)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Шейдеры (недоÑтупно)"
@@ -965,7 +1021,7 @@ msgstr "Тональное отображение"
#: builtin/mainmenu/tab_settings.lua
msgid "Touchthreshold: (px)"
-msgstr "Порог чувÑтвительноÑти: (px)"
+msgstr "ЧувÑтвительноÑть: (px)"
#: builtin/mainmenu/tab_settings.lua
msgid "Trilinear Filter"
@@ -977,28 +1033,12 @@ msgstr "Покачивание лиÑтвы"
#: builtin/mainmenu/tab_settings.lua
msgid "Waving Liquids"
-msgstr "Покачивание жидкоÑтей"
+msgstr "ВолниÑтые жидкоÑти"
#: builtin/mainmenu/tab_settings.lua
msgid "Waving Plants"
msgstr "Покачивание раÑтений"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Да"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "ÐаÑтройка модов"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Главное меню"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Ðачать одиночную игру"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Тайм-аут ÑоединениÑ."
@@ -1122,7 +1162,7 @@ msgstr "Ðвтобег включён"
#: src/client/game.cpp
msgid "Camera update disabled"
-msgstr "Обновление камеры отключено"
+msgstr "Обновление камеры выключено"
#: src/client/game.cpp
msgid "Camera update enabled"
@@ -1160,13 +1200,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1272,7 +1312,7 @@ msgstr "Режим полёта включён"
#: src/client/game.cpp
msgid "Fly mode enabled (note: no 'fly' privilege)"
-msgstr "Режим полёта включён (но: нет привилегии «fly»)"
+msgstr "Режим полёта включён (но нет привилегии «fly»)"
#: src/client/game.cpp
msgid "Fog disabled"
@@ -1315,34 +1355,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Миникарта ÑÐµÐ¹Ñ‡Ð°Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð° игрой или модом"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Миникарта Ñкрыта"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Миникарта в режиме радара, увеличение x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Миникарта в режиме радара, увеличение x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Миникарта в режиме радара, увеличение x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Миникарта в поверхноÑтном режиме, увеличение x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Миникарта в поверхноÑтном режиме, увеличение x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Миникарта в поверхноÑтном режиме, увеличение x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Режим Ð¿Ñ€Ð¾Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ñквозь Ñтены отключён"
@@ -1352,7 +1364,7 @@ msgstr "Режим Ð¿Ñ€Ð¾Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ñквозь Ñтены включён
#: src/client/game.cpp
msgid "Noclip mode enabled (note: no 'noclip' privilege)"
-msgstr "Режим Ð¿Ñ€Ð¾Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ñквозь Ñтены включён (но: нет привилегии «noclip»)"
+msgstr "Режим Ð¿Ñ€Ð¾Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ñквозь Ñтены включён (но нет привилегии «noclip»)"
#: src/client/game.cpp
msgid "Node definitions..."
@@ -1541,7 +1553,7 @@ msgstr "Insert"
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
msgid "Left"
-msgstr "Влево"
+msgstr "Лево"
#: src/client/keycode.cpp
msgid "Left Button"
@@ -1566,7 +1578,7 @@ msgstr "Левый Win"
#. ~ Key name, common on Windows keyboards
#: src/client/keycode.cpp
msgid "Menu"
-msgstr "Menu"
+msgstr "КонтекÑтное меню"
#: src/client/keycode.cpp
msgid "Middle Button"
@@ -1734,6 +1746,24 @@ msgstr "Доп. кнопка 2"
msgid "Zoom"
msgstr "Приближение"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Миникарта Ñкрыта"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Миникарта в режиме радара, увеличение x%d"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Миникарта в поверхноÑтном режиме, увеличение x%d"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "Минимальный размер текÑтуры"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Пароли не Ñовпадают!"
@@ -1780,11 +1810,11 @@ msgstr "Ðазад"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Change camera"
-msgstr "Камера"
+msgstr "Изменить камеру"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Chat"
-msgstr "Сообщение"
+msgstr "Чат"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Command"
@@ -1816,11 +1846,11 @@ msgstr "Вперёд"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Inc. range"
-msgstr "ВидимоÑть +"
+msgstr "Увеличить видимоÑть"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Inc. volume"
-msgstr "ГромкоÑть +"
+msgstr "Увеличить громкоÑть"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Inventory"
@@ -1842,11 +1872,11 @@ msgstr ""
#: src/gui/guiKeyChangeMenu.cpp
msgid "Local command"
-msgstr "Команда клиента"
+msgstr "Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Mute"
-msgstr "Звук"
+msgstr "Заглушить"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Next item"
@@ -1858,7 +1888,7 @@ msgstr "Пред. предмет"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Range select"
-msgstr "ВидимоÑть"
+msgstr "ДальноÑть прориÑовки"
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
@@ -1870,15 +1900,15 @@ msgstr "КраÑтьÑÑ"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Special"
-msgstr "ИÑпользовать"
+msgstr "ОÑобенный"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle HUD"
-msgstr "Игровой интерфейÑ"
+msgstr "Вкл/выкл игровой интерфейÑ"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle chat log"
-msgstr "Чат"
+msgstr "Вкл/выкл иÑторию чата"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fast"
@@ -1999,20 +2029,13 @@ msgid ""
"Default is for a vertically-squashed shape suitable for\n"
"an island, set all 3 numbers equal for the raw shape."
msgstr ""
-"(Х,Y,Z) шкала фрактала в нодах.\n"
-"ФактичеÑкий фрактальный размер будет в 2-3 раза больше.\n"
-"Эти чиÑла могут быть очень большими, фракталу нет нужды заполнÑть мир.\n"
-"Увеличьте их, чтобы увеличить «маÑштаб» детали фрактала.\n"
-"Ð”Ð»Ñ Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾ Ñжатой фигуры, что подходит\n"
-"оÑтрову, Ñделайте вÑе 3 чиÑла равными Ð´Ð»Ñ Ð½ÐµÐ¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð½Ð¾Ð¹ формы."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = ÐŸÐ°Ñ€Ð°Ð»Ð»Ð°ÐºÑ Ð¾ÐºÐºÐ»ÑŽÐ·Ð¸Ð¸ Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÐµÐ¹ о Ñклоне (быÑтро).\n"
-"1 = Рельефный маппинг (медленно, но качеÑтвенно)."
+"(Ð¥,Y,Z) маÑштаб фрактала в нодах.\n"
+"ФактичеÑкий размер фрактала будет в 2-3 раза больше.\n"
+"Эти чиÑла могут быть очень большими, фракталу нет нужды\n"
+"заполнÑть мир. Увеличьте их, чтобы увеличить «маÑштаб»\n"
+"детали фрактала. По умолчанию Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ…Ð¾Ð´ÑÑ‚ длÑ\n"
+"вертикально Ñжатой фигуры, что подходит оÑтрову, длÑ\n"
+"необработанной формы Ñделайте вÑе 3 Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ€Ð°Ð²Ð½Ñ‹Ð¼Ð¸."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
@@ -2053,9 +2076,8 @@ msgid "3D mode"
msgstr "3D-режим"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "3D mode parallax strength"
-msgstr "Сила карт нормалей"
+msgstr "Сила параллакÑа в 3D-режиме"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
@@ -2076,6 +2098,11 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
+"3D шум, определÑющий Ñтроение парÑщих оÑтровов.\n"
+"ЕÑли изменен по-умолчанию, 'уровень' шума (0.7 по-умолчанию) возможно "
+"необходимо уÑтановить,\n"
+"так как функции ÑÑƒÐ¶ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ñщих оÑтровов лучше вÑего работают, \n"
+"когда значение шума находитьÑÑ Ð² диапазоне от -2.0 до 2.0."
#: src/settings_translation_file.cpp
msgid "3D noise defining structure of river canyon walls."
@@ -2088,7 +2115,7 @@ msgstr "Трёхмерный шум, определÑющий рельеф меÑ
#: src/settings_translation_file.cpp
msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
msgstr ""
-"3D-шум Ð´Ð»Ñ Ð³Ð¾Ñ€Ð½Ñ‹Ñ… выÑтупов, Ñкал и Ñ‚. д. Ð’ оÑновном небольшие вариации."
+"3D шум Ð´Ð»Ñ Ð³Ð¾Ñ€Ð½Ñ‹Ñ… выÑтупов, Ñкал и Ñ‚. д. Ð’ оÑновном небольшие вариации."
#: src/settings_translation_file.cpp
msgid "3D noise that determines number of dungeons per mapchunk."
@@ -2113,9 +2140,10 @@ msgstr ""
"- anaglyph: голубой/пурпурный цвет в 3D.\n"
"- interlaced: чётные/нечётные линии отображают два разных кадра Ð´Ð»Ñ "
"Ñкранов, поддерживающих полÑризацию.\n"
-"- topbottom: Разделение Ñкрана верх/низ\n"
+"- topbottom: Разделение Ñкрана верх/низ.\n"
"- sidebyside: Разделение Ñкрана право/лево.\n"
-"- pageflip: Ð§ÐµÑ‚Ñ‹Ñ€Ñ‘Ñ…ÐºÑ€Ð°Ñ‚Ð½Ð°Ñ Ð±ÑƒÑ„ÐµÑ€Ð¸Ð·Ð°Ñ†Ð¸Ñ (QuadBuffer).\n"
+"- crossview: 3D на оÑнове автоÑтереограммы.\n"
+"- pageflip: 3D на оÑнове четырёхкратной буферизации.\n"
"Примечание: в режиме interlaced шейдеры должны быть включены."
#: src/settings_translation_file.cpp
@@ -2136,12 +2164,15 @@ msgstr "Сообщение, которое будет показано вÑем
#: src/settings_translation_file.cpp
msgid "ABM interval"
-msgstr "Интервал ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÐºÐ°Ñ€Ñ‚Ñ‹"
+msgstr "ABM интервал"
+
+#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Absolute limit of queued blocks to emerge"
-msgstr "ÐбÑолютный лимит поÑвлÑющихÑÑ Ð·Ð°Ð¿Ñ€Ð¾Ñов"
+msgstr "ÐбÑолютный предел поÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¾Ð² в очереди"
#: src/settings_translation_file.cpp
msgid "Acceleration in air"
@@ -2173,9 +2204,9 @@ msgid ""
"Leave this blank to start a local server.\n"
"Note that the address field in the main menu overrides this setting."
msgstr ""
-"ÐдреÑ, к которому приÑоединитьÑÑ.\n"
-"ОÑтавьте Ñто поле, чтобы запуÑтить локальный Ñервер.\n"
-"ПРИМЕЧÐÐИЕ: Ñто поле адреÑа перезапишет Ñту наÑтройку в главном меню."
+"ÐдреÑ, к которому нужно приÑоединитьÑÑ.\n"
+"ОÑтавьте Ñто поле пуÑтым, чтобы запуÑтить локальный Ñервер.\n"
+"Обратите внимание, что поле адреÑа в главном меню перезапишет Ñту наÑтройку."
#: src/settings_translation_file.cpp
msgid "Adds particles when digging a node."
@@ -2198,6 +2229,13 @@ msgid ""
"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
"to be sure) creates a solid floatland layer."
msgstr ""
+"Регулирует плотноÑть ÑÐ»Ð¾Ñ Ð¿Ð°Ñ€Ñщих оÑтровов.\n"
+"Увеличьте значение, чтобы увеличить плотноÑть. Может быть положительным или "
+"отрицательным.\n"
+"Значение = 0,0: 50% объема парÑщих оÑтровов.\n"
+"Значение = 2,0 (может быть выше в завиÑимоÑти от 'mgv7_np_floatland', вÑегда "
+"теÑтируйте) \n"
+"Ñоздает Ñплошной Ñлой парÑщих оÑтровов."
#: src/settings_translation_file.cpp
msgid "Advanced"
@@ -2300,15 +2338,15 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Automatic forward key"
-msgstr "Клавиша авто-вперёд"
+msgstr "ÐвтоматичеÑÐºÐ°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ° вперед"
#: src/settings_translation_file.cpp
msgid "Automatically jump up single-node obstacles."
-msgstr "ÐвтоматичеÑки запрыгивать на препÑÑ‚ÑÑ‚Ð²Ð¸Ñ Ð²Ñ‹Ñотой в одну ноду."
+msgstr "ÐвтоматичеÑкий подъем на одиночные блоки."
#: src/settings_translation_file.cpp
msgid "Automatically report to the serverlist."
-msgstr "ÐвтоматичеÑки анонÑировать в ÑпиÑок Ñерверов."
+msgstr "ÐвтоматичеÑÐºÐ°Ñ Ð¶Ð°Ð»Ð¾Ð±Ð° на Ñервер-лиÑÑ‚."
#: src/settings_translation_file.cpp
msgid "Autosave screen size"
@@ -2316,7 +2354,7 @@ msgstr "Запоминать размер окна"
#: src/settings_translation_file.cpp
msgid "Autoscaling mode"
-msgstr "Режим автомаÑштабированиÑ"
+msgstr "Режим автоматичеÑкого маÑштабированиÑ"
#: src/settings_translation_file.cpp
msgid "Backward key"
@@ -2324,7 +2362,7 @@ msgstr "Клавиша назад"
#: src/settings_translation_file.cpp
msgid "Base ground level"
-msgstr "Уровень земли"
+msgstr "Базовый уровень земли"
#: src/settings_translation_file.cpp
msgid "Base terrain height."
@@ -2376,7 +2414,7 @@ msgstr "Путь к жирному и курÑивному шрифту"
#: src/settings_translation_file.cpp
msgid "Bold and italic monospace font path"
-msgstr "Путь к жирному и курÑиву моноширинного шрифта"
+msgstr "Путь к жирному и курÑивному моноширинному шрифту"
#: src/settings_translation_file.cpp
msgid "Bold font path"
@@ -2395,10 +2433,6 @@ msgid "Builtin"
msgstr "Ð’Ñтроенный"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Бампмаппинг"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2477,33 +2511,16 @@ msgstr ""
"где 0.0 — минимальный уровень Ñвета, а 1.0 — макÑимальный."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Изменение интерфейÑа в главном меню:\n"
-"- Full: неÑколько однопользовательÑких миров, выбор игры, выбор пакета "
-"текÑтур и Ñ‚. д.\n"
-"- Simple: один однопользовательÑкий мир без выбора игр или текÑтур. Может "
-"быть полезно Ð´Ð»Ñ Ð½ÐµÐ±Ð¾Ð»ÑŒÑˆÐ¸Ñ… Ñкранов."
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat font size"
-msgstr "Размер шрифта"
+msgstr "Размер шрифта чата"
#: src/settings_translation_file.cpp
msgid "Chat key"
msgstr "Кнопка чата"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat log level"
-msgstr "Отладочный уровень"
+msgstr "Уровень журнала чата"
#: src/settings_translation_file.cpp
msgid "Chat message count limit"
@@ -2612,8 +2629,8 @@ msgid ""
"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
"allow them to upload and download data to/from the internet."
msgstr ""
-"СпиÑок доверенных модов через запÑтую, которым разрешён доÑтуп к HTTP API, "
-"что позволÑет им отправлÑть и принимать данные через Интернет."
+"Разделенный запÑтыми ÑпиÑок модов, которые позволÑÑŽÑ‚ получить доÑтуп к API "
+"Ð´Ð»Ñ HTTP, что позволить им загружать и Ñкачивать данные из интернета."
#: src/settings_translation_file.cpp
msgid ""
@@ -2657,6 +2674,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "Чёрный ÑпиÑок флагов ContentDB"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "МакÑимальное количеÑтво одновременных загрузок ContentDB"
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "ÐÐ´Ñ€ÐµÑ ContentDB"
@@ -2723,16 +2744,24 @@ msgid "Crosshair alpha"
msgstr "ПрозрачноÑть перекреÑтиÑ"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr "ПрозрачноÑть прицела (от 0 (прозрачно) до 255 (непрозрачно))."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"ПрозрачноÑть прицела (от 0 (прозрачно) до 255 (непрозрачно)).\n"
+"Также контролирует цвет перекреÑÑ‚Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°"
#: src/settings_translation_file.cpp
msgid "Crosshair color"
msgstr "Цвет перекреÑтиÑ"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Цвет перекреÑÑ‚Ð¸Ñ (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Цвет прицела (R, G, B).\n"
+"Также контролирует цвет перекреÑÑ‚Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°"
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2795,9 +2824,8 @@ msgid "Default report format"
msgstr "Формат отчёта по умолчанию"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Default stack size"
-msgstr "Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ Ð¸Ð³Ñ€Ð°"
+msgstr "Размер Ñтака по умолчанию"
#: src/settings_translation_file.cpp
msgid ""
@@ -2839,14 +2867,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "ОпределÑет раÑположение и поверхноÑть дополнительных холмов и озёр."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"ОпределÑет шаг выборки текÑтуры.\n"
-"Более выÑокое значение приводит к более гладким картам нормалей."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "ОпределÑет базовый уровень земли."
@@ -2927,6 +2947,10 @@ msgid "Desynchronize block animation"
msgstr "РаÑÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð°Ð½Ð¸Ð¼Ð°Ñ†Ð¸Ð¸ блоков"
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr "Кнопка копать"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "ЧаÑтицы при рытье"
@@ -2991,7 +3015,8 @@ msgid "Enable console window"
msgstr "Включить окно конÑоли"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Включить творчеÑкий режим Ð´Ð»Ñ Ð²Ð½Ð¾Ð²ÑŒ Ñозданных карт."
#: src/settings_translation_file.cpp
@@ -3094,23 +3119,16 @@ msgid ""
"appearance of high dynamic range images. Mid-range contrast is slightly\n"
"enhanced, highlights and shadows are gradually compressed."
msgstr ""
+"Включает кинематографичеÑкое отображение тонов «Uncharted 2».\n"
+"Имитирует кривую тона фотопленки и приближает\n"
+"изображение к большему динамичеÑкому диапазону. Средний контраÑÑ‚ Ñлегка\n"
+"уÑиливаетÑÑ, блики и тени поÑтепенно ÑжимаютÑÑ."
#: src/settings_translation_file.cpp
msgid "Enables animation of inventory items."
msgstr "Включить анимацию предметов в инвентаре."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Включает бампмаппинг Ð´Ð»Ñ Ñ‚ÐµÐºÑтур. Карты нормалей должны быть предоÑтавлены\n"
-"пакетом текÑтур или Ñгенерированы автоматичеÑки.\n"
-"Требует, чтобы шейдеры были включены."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Включает кÑширование повёрнутых мешей."
@@ -3120,22 +3138,6 @@ msgstr "Включить мини-карту."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Включает генерацию карт нормалей \"на лету\" (Ñффект тиÑнениÑ).\n"
-"Требует, чтобы бампмаппинг был включён."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Включает Parallax Occlusion.\n"
-"Требует, чтобы шейдеры были включены."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3156,14 +3158,6 @@ msgstr "Методы ÑущноÑтей"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"ЭкÑÐ¿ÐµÑ€Ð¸Ð¼ÐµÐ½Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ, может привеÑти к видимым зазорам\n"
-"между блоками, когда значение больше, чем 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3171,10 +3165,16 @@ msgid ""
"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
"flatter lowlands, suitable for a solid floatland layer."
msgstr ""
+"Степень ÑÑƒÐ¶ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ñщих оÑтровов. ИзменÑет характер ÑужениÑ.\n"
+"Значение = 1.0 задает равномерное, линейное Ñужение.\n"
+"Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ > 1.0 задают гладкое Ñужение, подходит Ð´Ð»Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ñ…\n"
+" парÑщих оÑтровов по-умолчанию.\n"
+"Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ < 1.0 (например, 0.25) задают более точный уровень поверхноÑти\n"
+"Ñ Ð±Ð¾Ð»ÐµÐµ плоÑкими низинами, подходит Ð´Ð»Ñ Ð¼Ð°ÑÑивного ÑƒÑ€Ð¾Ð²Ð½Ñ Ð¿Ð°Ñ€Ñщих оÑтровов."
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "ÐšÐ°Ð´Ñ€Ð¾Ð²Ð°Ñ Ñ‡Ð°Ñтота во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð°ÑƒÐ·Ñ‹"
+msgid "FPS when unfocused or paused"
+msgstr "МакÑимум кадровой чаÑтоты при паузе."
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3290,39 +3290,32 @@ msgid "Fixed virtual joystick"
msgstr "ФикÑÐ°Ñ†Ð¸Ñ Ð²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ джойÑтика"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland density"
-msgstr "ПлотноÑть гор на парÑщих оÑтровах"
+msgstr "ПлотноÑть парÑщих оÑтровов"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland maximum Y"
-msgstr "МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Y подземельÑ"
+msgstr "МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Y парÑщих оÑтровов"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland minimum Y"
-msgstr "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Y подземельÑ"
+msgstr "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Y парÑщих оÑтровов"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland noise"
-msgstr "Базовый шум парÑщих оÑтровов"
+msgstr "Шум парÑщих оÑтровов"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland taper exponent"
-msgstr "ЭкÑпонента гор на парÑщих оÑтровах"
+msgstr "ЭкÑпонента конуÑа на парÑщих оÑтровах"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland tapering distance"
-msgstr "Базовый шум парÑщих оÑтровов"
+msgstr "РаÑÑтоÑние ÑÑƒÐ¶ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ñщих оÑтровов"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland water level"
-msgstr "Уровень парÑщих оÑтровов"
+msgstr "Уровень воды на парÑщих оÑтровах"
#: src/settings_translation_file.cpp
msgid "Fly key"
@@ -3381,6 +3374,8 @@ msgid ""
"Font size of the recent chat text and chat prompt in point (pt).\n"
"Value 0 will use the default font size."
msgstr ""
+"Размер шрифта поÑледнего чата и подÑказки чата в точке (pt).\n"
+"Значение 0 будет иÑпользовать размер шрифта по умолчанию."
#: src/settings_translation_file.cpp
msgid ""
@@ -3430,7 +3425,7 @@ msgstr "ÐепрозрачноÑть фона формы в полноÑкран
#: src/settings_translation_file.cpp
msgid "Forward key"
-msgstr "Клавиша вперёд"
+msgstr "Клавиша вперёд"
#: src/settings_translation_file.cpp
msgid "Fourth of 4 2D noises that together define hill/mountain range height."
@@ -3502,10 +3497,6 @@ msgid "GUI scaling filter txr2img"
msgstr "Фильтр txr2img Ð´Ð»Ñ Ð¼Ð°ÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñа"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Генерировать карты нормалей"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Глобальные обратные вызовы"
@@ -3521,18 +3512,20 @@ msgstr ""
"контролирует вÑе декорации."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Gradient of light curve at maximum light level.\n"
"Controls the contrast of the highest light levels."
-msgstr "Градиент кривой Ñвета на макÑимальном уровне оÑвещённоÑти."
+msgstr ""
+"Градиент кривой Ñвета на макÑимальном уровне оÑвещённоÑти.\n"
+"Контролирует контраÑтноÑть Ñамых выÑоких уровней оÑвещенноÑти."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Gradient of light curve at minimum light level.\n"
"Controls the contrast of the lowest light levels."
-msgstr "Градиент кривой Ñвета на минимальном уровне оÑвещённоÑти."
+msgstr ""
+"Градиент кривой Ñвета на минимальном уровне оÑвещённоÑти.\n"
+"Контролирует контраÑтноÑть Ñамых низких уровней оÑвещенноÑти."
#: src/settings_translation_file.cpp
msgid "Graphics"
@@ -3563,16 +3556,14 @@ msgid "HUD toggle key"
msgstr "Клавиша Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð³Ñ€Ð¾Ð²Ð¾Ð³Ð¾ интерфейÑа"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Обработка уÑтаревших вызовов Lua API:\n"
-"- legacy: (пытатьÑÑ) имитировать прежнее поведение (по умолчанию Ð´Ð»Ñ "
-"релиза).\n"
+"- none: не запиÑывать уÑтаревшие вызовы\n"
"- log: имитировать и журналировать уÑтаревшие вызовы (по умолчанию Ð´Ð»Ñ "
"отладки).\n"
"- error: прерывание при иÑпользовании уÑтаревших вызовов (рекомендовано "
@@ -3813,6 +3804,9 @@ msgid ""
"If negative, liquid waves will move backwards.\n"
"Requires waving liquids to be enabled."
msgstr ""
+"Как быÑтро будут покачиватьÑÑ Ð²Ð¾Ð»Ð½Ñ‹ жидкоÑтей. Выше = быÑтрее\n"
+"ЕÑли отрицательно, жидкие волны будут двигатьÑÑ Ð½Ð°Ð·Ð°Ð´.\n"
+"Требует, чтобы волниÑтые жидкоÑти были включены."
#: src/settings_translation_file.cpp
msgid ""
@@ -4089,6 +4083,10 @@ msgid "Joystick button repetition interval"
msgstr "Интервал повторного клика кнопкой джойÑтика"
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr "ÐœÐµÑ€Ñ‚Ð²Ð°Ñ Ð·Ð¾Ð½Ð° джойÑтика"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "ЧувÑтвительноÑть джойÑтика"
@@ -4192,6 +4190,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Клавиша копаниÑ.\n"
+"См. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4333,6 +4341,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Клавиша прыжка.\n"
+"См. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4899,7 +4918,7 @@ msgstr "Минимальное количеÑтво больших пещер"
#: src/settings_translation_file.cpp
msgid "Large cave proportion flooded"
-msgstr ""
+msgstr "ÐŸÑ€Ð¾Ð¿Ð¾Ñ€Ñ†Ð¸Ñ Ð·Ð°Ñ‚Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ‹Ñ… больших пещер"
#: src/settings_translation_file.cpp
msgid "Large chat console key"
@@ -4936,13 +4955,12 @@ msgstr ""
"обновлÑÑŽÑ‚ÑÑ Ð¿Ð¾ Ñети."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Length of liquid waves.\n"
"Requires waving liquids to be enabled."
msgstr ""
-"УÑтановка в true включает покачивание лиÑтвы.\n"
-"Требует, чтобы шейдеры были включены."
+"Длина волн жидкоÑтей.\n"
+"ТребуетÑÑ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ волниÑтых жидкоÑтей."
#: src/settings_translation_file.cpp
msgid "Length of time between Active Block Modifier (ABM) execution cycles"
@@ -4977,34 +4995,28 @@ msgstr ""
"- verbose (подробноÑти)"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Light curve boost"
-msgstr "Средний подъём кривой Ñвета"
+msgstr "УÑиление кривой Ñвета"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Light curve boost center"
-msgstr "Центр Ñреднего подъёма кривой Ñвета"
+msgstr "Центр уÑÐ¸Ð»ÐµÐ½Ð¸Ñ ÐºÑ€Ð¸Ð²Ð¾Ð¹ Ñвета"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Light curve boost spread"
-msgstr "РаÑпроÑтранение Ñреднего роÑта кривой Ñвета"
+msgstr "РаÑпроÑтранение уÑÐ¸Ð»ÐµÐ½Ð¸Ñ Ñ€Ð¾Ñта кривой Ñвета"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Light curve gamma"
-msgstr "Средний подъём кривой Ñвета"
+msgstr "Гамма кривой Ñвета"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Light curve high gradient"
-msgstr "Средний подъём кривой Ñвета"
+msgstr "Ð’Ñ‹Ñокий градиент кривой Ñвета"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Light curve low gradient"
-msgstr "Центр Ñреднего подъёма кривой Ñвета"
+msgstr "Ðизкий градиент кривой Ñвета"
#: src/settings_translation_file.cpp
msgid ""
@@ -5083,19 +5095,14 @@ msgid "Lower Y limit of dungeons."
msgstr "Ðижний лимит Y Ð´Ð»Ñ Ð¿Ð¾Ð´Ð·ÐµÐ¼ÐµÐ»Ð¸Ð¹."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Lower Y limit of floatlands."
-msgstr "Ðижний лимит Y Ð´Ð»Ñ Ð¿Ð¾Ð´Ð·ÐµÐ¼ÐµÐ»Ð¸Ð¹."
+msgstr "Ðижний лимит Y Ð´Ð»Ñ Ð¿Ð°Ñ€Ñщих оÑтровов."
#: src/settings_translation_file.cpp
msgid "Main menu script"
msgstr "Скрипт главного меню"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Стиль главного меню"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5111,6 +5118,14 @@ msgid "Makes all liquids opaque"
msgstr "Сделать вÑе жидкоÑти непрозрачными"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr "Уровень ÑÐ¶Ð°Ñ‚Ð¸Ñ ÐºÐ°Ñ€Ñ‚Ñ‹ Ð´Ð»Ñ Ð´Ð¸Ñкового хранилища"
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr "Уровень ÑÐ¶Ð°Ñ‚Ð¸Ñ ÐºÐ°Ñ€Ñ‚Ñ‹ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ по Ñети"
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Каталог ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÐºÐ°Ñ€Ñ‚"
@@ -5119,7 +5134,6 @@ msgid "Map generation attributes specific to Mapgen Carpathian."
msgstr "Ðтрибуты генерации карт Ð´Ð»Ñ Mapgen Carpathian."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen Flat.\n"
"Occasional lakes and hills can be added to the flat world."
@@ -5128,14 +5142,13 @@ msgstr ""
"Иногда озера и холмы могут добавлÑтьÑÑ Ð² плоÑкий мир."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen Fractal.\n"
"'terrain' enables the generation of non-fractal terrain:\n"
"ocean, islands and underground."
msgstr ""
"Ðтрибуты генерации Ð´Ð»Ñ ÐºÐ°Ñ€Ñ‚Ð¾Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° плоÑкоÑти.\n"
-"«terrain» включает генерацию нефрактального рельефа:\n"
+"'terrain' включает генерацию нефрактального рельефа:\n"
"океаны, оÑтрова и подземельÑ."
#: src/settings_translation_file.cpp
@@ -5171,15 +5184,16 @@ msgstr ""
"активируютÑÑ Ð´Ð¶ÑƒÐ½Ð³Ð»Ð¸, а флаг «jungles» игнорируетÑÑ."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen v7.\n"
"'ridges': Rivers.\n"
"'floatlands': Floating land masses in the atmosphere.\n"
"'caverns': Giant caves deep underground."
msgstr ""
-"Ðтрибуты генерации карт Ð´Ð»Ñ Mapgen v7.\n"
-"«хребты» включают реки."
+"Ðтрибуты генерации карт, Ñпецифичные Ð´Ð»Ñ Mapgen v7.\n"
+"'ridges': Реки.\n"
+"'floatlands': ПарÑщие оÑтрова Ñуши в атмоÑфере.\n"
+"'caverns': ГигантÑкие пещеры глубоко под землей."
#: src/settings_translation_file.cpp
msgid "Map generation limit"
@@ -5294,8 +5308,9 @@ msgid "Maximum FPS"
msgstr "МакÑимум кадровой чаÑтоты (FPS)"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
-msgstr "МакÑимум кадровой чаÑтоты при паузе."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
+msgstr ""
+"МакÑимальный FPS, когда окно не ÑфокуÑировано, или когда игра приоÑтановлена."
#: src/settings_translation_file.cpp
msgid "Maximum forceloaded blocks"
@@ -5307,20 +5322,21 @@ msgstr "МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð° горÑчей панели"
#: src/settings_translation_file.cpp
msgid "Maximum limit of random number of large caves per mapchunk."
-msgstr "МакÑимальный порог Ñлучайного количеÑтва больших пещер на куÑок карты"
+msgstr ""
+"МакÑимальный предел Ñлучайного количеÑтва больших пещер на куÑок карты."
#: src/settings_translation_file.cpp
msgid "Maximum limit of random number of small caves per mapchunk."
msgstr ""
+"МакÑимальный предел Ñлучайного количеÑтва маленьких пещер на куÑок карты."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Maximum liquid resistance. Controls deceleration when entering liquid at\n"
"high speed."
msgstr ""
"МакÑимальное Ñопротивление жидкоÑти. Контролирует замедление\n"
-"при поÑтуплении жидкоÑти Ñ Ð²Ñ‹Ñокой ÑкороÑтью."
+"при погружении в жидкоÑть на выÑокой ÑкороÑти."
#: src/settings_translation_file.cpp
msgid ""
@@ -5339,22 +5355,31 @@ msgstr ""
"загрузки."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Maximum number of blocks to be queued that are to be generated.\n"
"This limit is enforced per player."
msgstr ""
-"МакÑимальное количеÑтво блоков в очереди на генерацию. ОÑтавьте пуÑтым Ð´Ð»Ñ "
-"автоматичеÑкого выбора подходÑщего значениÑ."
+"МакÑимальное количеÑтво блоков в очередь, которые должны быть Ñформированы.\n"
+"Это ограничение применÑетÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ игрока."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Maximum number of blocks to be queued that are to be loaded from file.\n"
"This limit is enforced per player."
msgstr ""
-"МакÑимальное количеÑтво блоков в очереди на загрузку из файла. ОÑтавьте "
-"пуÑтым Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого выбора подходÑщего значениÑ."
+"МакÑимальное количеÑтво блоков в очередь, которые должны быть загружены из "
+"файла.\n"
+"Это ограничение применÑетÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ игрока."
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+"МакÑимальное количеÑтво одновременных загрузок. Загрузки, превышающие Ñтот "
+"лимит, будут поÑтавлены в очередь.\n"
+"Это должно быть меньше curl_parallel_limit."
#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
@@ -5451,7 +5476,7 @@ msgstr "Метод подÑветки выделенного объекта."
#: src/settings_translation_file.cpp
msgid "Minimal level of logging to be written to chat."
-msgstr ""
+msgstr "Минимальный уровень запиÑи в чат."
#: src/settings_translation_file.cpp
msgid "Minimap"
@@ -5466,13 +5491,12 @@ msgid "Minimap scan height"
msgstr "Ð’Ñ‹Ñота ÑÐºÐ°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¸Ð½Ð¸ÐºÐ°Ñ€Ñ‚Ñ‹"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Minimum limit of random number of large caves per mapchunk."
-msgstr "3D-шум, определÑющий количеÑтво подземелий в куÑке карты."
+msgstr "Минимальный предел Ñлучайного количеÑтва больших пещер на куÑок карты."
#: src/settings_translation_file.cpp
msgid "Minimum limit of random number of small caves per mapchunk."
-msgstr ""
+msgstr "Минимальное количеÑтво маленьких пещер на куÑок карты."
#: src/settings_translation_file.cpp
msgid "Minimum texture size"
@@ -5571,9 +5595,8 @@ msgid ""
msgstr "Ð˜Ð¼Ñ Ñервера, отображаемое при входе и в ÑпиÑке Ñерверов."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Near plane"
-msgstr "Ð‘Ð»Ð¸Ð·ÐºÐ°Ñ Ð¿Ð»Ð¾ÑкоÑть отÑечениÑ"
+msgstr "БлижнÑÑ Ð¿Ð»Ð¾ÑкоÑть"
#: src/settings_translation_file.cpp
msgid "Network"
@@ -5612,19 +5635,10 @@ msgid "Noises"
msgstr "Шумы"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Выборка карт нормалей"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Сила карт нормалей"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "КоличеÑтво emerge-потоков"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Number of emerge threads to use.\n"
"Value 0:\n"
@@ -5638,19 +5652,16 @@ msgid ""
"'on_generated'. For many users the optimum setting may be '1'."
msgstr ""
"КоличеÑтво возникающих потоков Ð´Ð»Ñ Ð¸ÑпользованиÑ.\n"
-"Ð’ÐИМÐÐИЕ: Пока могут поÑвлÑтьÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ¸, вызывающие Ñбой, еÑли\n"
-"«num_emerge_threads» больше 1. Строго рекомендуетÑÑ Ð¸Ñпользовать\n"
-"значение «1», до тех пор, пока предупреждение не будет убрано.\n"
"Значение 0:\n"
"- ÐвтоматичеÑкий выбор. КоличеÑтво потоков будет\n"
-"- «чиÑло процеÑÑоров - 2», минимально — 1.\n"
+"- 'чиÑло процеÑÑоров - 2', минимально — 1.\n"
"Любое другое значение:\n"
"- Указывает количеÑтво потоков, минимально — 1.\n"
"Ð’ÐИМÐÐИЕ: Увеличение чиÑла потоков улучшает быÑтродейÑтвие движка\n"
"картогенератора, но может Ñнижать производительноÑть игры, Ð¼ÐµÑˆÐ°Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼\n"
"процеÑÑам, оÑобенно в одиночной игре и при запуÑке кода Lua в "
-"«on_generated».\n"
-"Ð”Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð½Ñтва пользователей наилучшим значением может быть «1»."
+"'on_generated'.\n"
+"Ð”Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð½Ñтва пользователей наилучшим значением может быть '1'."
#: src/settings_translation_file.cpp
msgid ""
@@ -5665,10 +5676,6 @@ msgstr ""
"памÑти (4096=100 MБ, как правило)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "КоличеÑтво итераций Parallax Occlusion."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Сетевой репозиторий"
@@ -5679,12 +5686,12 @@ msgstr "Ðепрозрачные жидкоÑти"
#: src/settings_translation_file.cpp
msgid ""
"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255."
-msgstr ""
+msgstr "ÐепрозрачноÑть (альфа) тени позади шрифта по умолчанию, между 0 и 255."
#: src/settings_translation_file.cpp
msgid ""
"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255."
-msgstr ""
+msgstr "ÐепрозрачноÑть (альфа) тени за резервным шрифтом, между 0 и 255."
#: src/settings_translation_file.cpp
msgid ""
@@ -5696,34 +5703,6 @@ msgstr ""
"форма уже открыта."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "Общее Ñмещение Ñффекта Parallax Occlusion, обычно маÑштаб/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Общее Ñмещение Ñффекта Parallax Occlusion."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Включить параллакÑ"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Смещение параллакÑа"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Повторение параллакÑа"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Режим параллакÑа"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "МаÑштаб параллакÑной окклюзии"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5731,12 +5710,20 @@ msgid ""
"This font will be used for certain languages or if the default font is "
"unavailable."
msgstr ""
+"Путь к резервному шрифту.\n"
+"ЕÑли параметр «freetype» включён: должен быть шрифтом TrueType.\n"
+"ЕÑли параметр «freetype» отключён: должен быть векторным XML-шрифтом.\n"
+"Этот шрифт будет иÑпользоватьÑÑ Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… Ñзыков или еÑли Ñтандартный "
+"шрифт недоÑтупен."
#: src/settings_translation_file.cpp
msgid ""
"Path to save screenshots at. Can be an absolute or relative path.\n"
"The folder will be created if it doesn't already exist."
msgstr ""
+"Путь Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñкриншотов. Может быть абÑолютным или отноÑительным "
+"путем.\n"
+"Папка будет Ñоздана, еÑли она еще не ÑущеÑтвует."
#: src/settings_translation_file.cpp
msgid ""
@@ -5758,6 +5745,11 @@ msgid ""
"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
"The fallback font will be used if the font cannot be loaded."
msgstr ""
+"Путь к шрифту по умолчанию.\n"
+"ЕÑли параметр «freetype» включен: должен быть шрифт TrueType.\n"
+"ЕÑли параметр «freetype» отключен: Ñто должен быть раÑтровый или векторный "
+"шрифт XML.\n"
+"Резервный шрифт будет иÑпользоватьÑÑ, еÑли шрифт не может быть загружен."
#: src/settings_translation_file.cpp
msgid ""
@@ -5766,6 +5758,11 @@ msgid ""
"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
"This font is used for e.g. the console and profiler screen."
msgstr ""
+"Путь к моноширинному шрифту.\n"
+"ЕÑли параметр «freetype» включен: должен быть шрифт TrueType.\n"
+"ЕÑли параметр «freetype» отключен: Ñто должен быть раÑтровый или векторный "
+"шрифт XML.\n"
+"Этот шрифт иÑпользуетÑÑ, например, Ð´Ð»Ñ Ñкран конÑоли и Ñкрана профилей."
#: src/settings_translation_file.cpp
msgid "Pause on lost window focus"
@@ -5773,12 +5770,11 @@ msgstr "Пауза при потере фокуÑа"
#: src/settings_translation_file.cpp
msgid "Per-player limit of queued blocks load from disk"
-msgstr ""
+msgstr "Ограничение поочередной загрузки блоков Ñ Ð´Ð¸Ñка на игрока"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Per-player limit of queued blocks to generate"
-msgstr "Ограничение очередей emerge Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸"
+msgstr "Ограничение Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ игрока в очереди блоков Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸"
#: src/settings_translation_file.cpp
msgid "Physics"
@@ -5793,6 +5789,16 @@ msgid "Pitch move mode"
msgstr "Режим Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð²Ð½Ð¸Ð·/вверх по направлению взглÑда"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Клавиша полёта"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "Интервал повторного клика правой кнопкой"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5862,7 +5868,7 @@ msgstr "Профилирование"
#: src/settings_translation_file.cpp
msgid "Prometheus listener address"
-msgstr ""
+msgstr "Ð°Ð´Ñ€ÐµÑ Ð¿Ñ€Ð¸Ñ‘Ð¼Ð½Ð¸ÐºÐ° Prometheus"
#: src/settings_translation_file.cpp
msgid ""
@@ -5871,10 +5877,14 @@ msgid ""
"enable metrics listener for Prometheus on that address.\n"
"Metrics can be fetch on http://127.0.0.1:30000/metrics"
msgstr ""
+"ÐÐ´Ñ€ÐµÑ Ð¿Ñ€Ð¸Ñ‘Ð¼Ð½Ð¸ÐºÐ° Prometheus.\n"
+"ЕÑли мой теÑÑ‚ Ñкомпилирован Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ð¾Ð¹ опцией ENABLE_PROMETHEUS,\n"
+"включить приемник метрик Ð´Ð»Ñ Prometheus по Ñтому адреÑу.\n"
+"Метрики можно получить на http://127.0.0.1:30000/metrics"
#: src/settings_translation_file.cpp
msgid "Proportion of large caves that contain liquid."
-msgstr ""
+msgstr "Ð”Ð¾Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ñ… пещер, которые Ñодержат жидкоÑть."
#: src/settings_translation_file.cpp
msgid ""
@@ -5902,9 +5912,8 @@ msgid "Recent Chat Messages"
msgstr "Ðедавние ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ‡Ð°Ñ‚Ð°"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Regular font path"
-msgstr "Путь Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ñ‡Ñ‘Ñ‚Ð¾Ð²"
+msgstr "Стандартный путь шрифта"
#: src/settings_translation_file.cpp
msgid "Remote media"
@@ -5975,10 +5984,6 @@ msgid "Right key"
msgstr "ÐŸÑ€Ð°Ð²Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° меню"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Интервал повторного клика правой кнопкой"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "Глубина руÑла реки"
@@ -6118,7 +6123,6 @@ msgid "Selection box width"
msgstr "Толщина рамки выделениÑ"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Selects one of 18 fractal types.\n"
"1 = 4D \"Roundy\" Mandelbrot set.\n"
@@ -6211,7 +6215,6 @@ msgstr ""
"в чат."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Set to true to enable waving leaves.\n"
"Requires shaders to be enabled."
@@ -6220,16 +6223,14 @@ msgstr ""
"Требует, чтобы шейдеры были включены."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Set to true to enable waving liquids (like water).\n"
"Requires shaders to be enabled."
msgstr ""
-"УÑтановка в true включает волны на воде.\n"
+"УÑтановка в true включает волниÑтые жидкоÑти (например, вода).\n"
"Требует, чтобы шейдеры были включены."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Set to true to enable waving plants.\n"
"Requires shaders to be enabled."
@@ -6253,18 +6254,20 @@ msgstr ""
"Работают только Ñ Ð²Ð¸Ð´ÐµÐ¾-бÑкендом OpenGL."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
"drawn."
-msgstr "Смещение тени шрифта. ЕÑли указан 0, то тень не будет показана."
+msgstr ""
+"Смещение тени Ñтандартного шрифта (в пикÑелÑÑ…). ЕÑли указан 0, то тень не "
+"будет показана."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
"be drawn."
-msgstr "Смещение тени шрифта. ЕÑли указан 0, то тень не будет показана."
+msgstr ""
+"Смещение тени резервного шрифта (в пикÑелÑÑ…). ЕÑли указан 0, то тень не "
+"будет показана."
#: src/settings_translation_file.cpp
msgid "Shape of the minimap. Enabled = round, disabled = square."
@@ -6279,6 +6282,20 @@ msgid "Show entity selection boxes"
msgstr "Показывать облаÑть Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð¾Ð²"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"УÑтановка Ñзыка. ОÑтавьте пуÑтым Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемного Ñзыка.\n"
+"Требует перезапуÑка поÑле изменениÑ."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Стандартный жирный шрифт"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Сообщение о выключении"
@@ -6321,11 +6338,11 @@ msgstr "Склон и заполнение работают ÑовмеÑтно Ð
#: src/settings_translation_file.cpp
msgid "Small cave maximum number"
-msgstr ""
+msgstr "МакÑимальное количеÑтво маленьких пещер"
#: src/settings_translation_file.cpp
msgid "Small cave minimum number"
-msgstr ""
+msgstr "Минимальное количеÑтво маленьких пещер"
#: src/settings_translation_file.cpp
msgid "Small-scale humidity variation for blending biomes on borders."
@@ -6400,16 +6417,19 @@ msgid ""
"Note that mods or games may explicitly set a stack for certain (or all) "
"items."
msgstr ""
+"УÑтанавливает размер Ñтека нодов, предметов и инÑтрументов по-умолчанию.\n"
+"Обратите внимание, что моды или игры могут Ñвно уÑтановить Ñтек Ð´Ð»Ñ "
+"определенных (или вÑех) предметов."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Spread of light curve boost range.\n"
"Controls the width of the range to be boosted.\n"
"Standard deviation of the light curve boost Gaussian."
msgstr ""
-"РаÑпроÑтранение Ñреднего подъёма кривой Ñвета.\n"
-"Стандартное отклонение Ñреднего подъёма по ГауÑÑу."
+"Диапазон ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ ÐºÑ€Ð¸Ð²Ð¾Ð¹ Ñвета.\n"
+"Регулирует ширину увеличиваемого диапазона.\n"
+"Стандартное отклонение уÑÐ¸Ð»ÐµÐ½Ð¸Ñ ÐºÑ€Ð¸Ð²Ð¾Ð¹ Ñвета по ГауÑÑу."
#: src/settings_translation_file.cpp
msgid "Static spawnpoint"
@@ -6428,13 +6448,8 @@ msgid "Step mountain spread noise"
msgstr "Шаг шума раÑпроÑÑ‚Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð³Ð¾Ñ€"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Strength of 3D mode parallax."
-msgstr "Сила параллакÑа."
-
-#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Сила Ñгенерированных карт нормалей."
+msgstr "Сила параллакÑа в 3D режиме."
#: src/settings_translation_file.cpp
msgid ""
@@ -6442,6 +6457,9 @@ msgid ""
"The 3 'boost' parameters define a range of the light\n"
"curve that is boosted in brightness."
msgstr ""
+"Сила иÑÐºÐ°Ð¶ÐµÐ½Ð¸Ñ Ñвета.\n"
+"3 параметра 'уÑилениÑ' определÑÑŽÑ‚ предел иÑÐºÐ°Ð¶ÐµÐ½Ð¸Ñ Ñвета,\n"
+"который увеличиваетÑÑ Ð² оÑвещении."
#: src/settings_translation_file.cpp
msgid "Strict protocol checking"
@@ -6464,6 +6482,21 @@ msgid ""
"server-intensive extreme water flow and to avoid vast flooding of the\n"
"world surface below."
msgstr ""
+"Уровень поверхноÑти необÑзательной воды размещенной на твердом Ñлое парÑщих "
+"оÑтровов. \n"
+"Вода по умолчанию отключена и будет размещена только в том Ñлучае, еÑли Ñто "
+"значение \n"
+"будет уÑтановлено выше «mgv7_floatland_ymax» - «mgv7_floatland_taper» \n"
+"(начало верхнего ÑужениÑ).\n"
+"*** ПРЕДУПРЕЖДЕÐИЕ, ПОТЕÐЦИÐЛЬÐÐЯ ОПÐСÐОСТЬ ДЛЯ МИРОВ И РÐБОТЫ СЕРВЕРР***:\n"
+"При включении Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð²Ð¾Ð´Ñ‹ парÑщих оÑтровов должны быть Ñконфигурированы "
+"и проверены \n"
+"на наличие Ñплошного ÑлоÑ, уÑтановив «mgv7_floatland_density» на 2,0 (или "
+"другое \n"
+"требуемое значение в завиÑимоÑти от «mgv7_np_floatland»), чтобы избежать \n"
+"чрезмерного интенÑивного потока воды на Ñервере и избежать обширного "
+"затоплениÑ\n"
+"поверхноÑти мира внизу."
#: src/settings_translation_file.cpp
msgid "Synchronous SQLite"
@@ -6544,6 +6577,10 @@ msgid "The URL for the content repository"
msgstr "ÐÐ´Ñ€ÐµÑ Ñетевого репозиториÑ"
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr "ÐœÐµÑ€Ñ‚Ð²Ð°Ñ Ð·Ð¾Ð½Ð° джойÑтика"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6580,6 +6617,11 @@ msgid ""
"Default is 1.0 (1/2 node).\n"
"Requires waving liquids to be enabled."
msgstr ""
+"МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ñ‹Ñота поверхноÑти волниÑтых жидкоÑтей.\n"
+"4.0 = выÑота волны равна двум нодам.\n"
+"0.0 = волна не двигаетÑÑ Ð²Ð¾Ð¾Ð±Ñ‰Ðµ.\n"
+"Значение по умолчанию — 1.0 (1/2 ноды).\n"
+"Требует, чтобы волниÑтые жидкоÑти были включены."
#: src/settings_translation_file.cpp
msgid "The network interface that the server listens on."
@@ -6595,7 +6637,6 @@ msgstr ""
"наÑтройке мода."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"The radius of the volume of blocks around every player that is subject to "
"the\n"
@@ -6605,21 +6646,23 @@ msgid ""
"maintained.\n"
"This should be configured together with active_object_send_range_blocks."
msgstr ""
-"Ð Ð°Ð´Ð¸ÑƒÑ Ð¾Ð±ÑŠÑ‘Ð¼Ð° блоков вокруг каждого игрока, в котором дейÑтвуют\n"
-"активные блоки, определённые в блоках карты (16 нод).\n"
-"Ð’ активных блоках загружаютÑÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ñ‹ и работает ABM.\n"
-"Также Ñто минимальный диапазон, в котором обрабатываютÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ðµ объекты "
+"Ð Ð°Ð´Ð¸ÑƒÑ Ð¾Ð±ÑŠÑ‘Ð¼Ð° блоков вокруг каждого игрока, на которого раÑпроÑтранÑетÑÑ "
+"дейÑтвие\n"
+"активного материала блока, указанного в mapblocks (16 узлов).\n"
+"Ð’ активные блоки загружаютÑÑ Ð¾Ð±ÑŠÐµÐºÑ‚Ñ‹ и запуÑкаютÑÑ ÐŸÐ Ðž.\n"
+"Это также минимальный диапазон, в котором поддерживаютÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ‹Ðµ объекты "
"(мобы).\n"
-"Ðеобходимо наÑтраивать вмеÑте Ñ active_object_range."
+"Это должно быть наÑтроено вмеÑте Ñ active_object_send_range_blocks."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"The rendering back-end for Irrlicht.\n"
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
"Программный Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð²Ð¸Ð·ÑƒÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ Ð´Ð»Ñ Irrlicht.\n"
"ПоÑле Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñтого параметра потребуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑк.\n"
@@ -6660,6 +6703,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6667,10 +6716,10 @@ msgstr ""
"когда зажата ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ ÐºÐ½Ð¾Ð¿Ð¾Ðº на джойÑтике."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr "Задержка в Ñекундах между кликами при зажатой правой кнопке мыши."
#: src/settings_translation_file.cpp
@@ -6753,7 +6802,6 @@ msgid "Trilinear filtering"
msgstr "Ð¢Ñ€Ð¸Ð»Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"True = 256\n"
"False = 128\n"
@@ -6803,9 +6851,8 @@ msgid "Upper Y limit of dungeons."
msgstr "Верхний лимит Y Ð´Ð»Ñ Ð¿Ð¾Ð´Ð·ÐµÐ¼ÐµÐ»Ð¸Ð¹."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Upper Y limit of floatlands."
-msgstr "Верхний лимит Y Ð´Ð»Ñ Ð¿Ð¾Ð´Ð·ÐµÐ¼ÐµÐ»Ð¸Ð¹."
+msgstr "Верхний лимит Y Ð´Ð»Ñ Ð¿Ð°Ñ€Ñщих оÑтровов."
#: src/settings_translation_file.cpp
msgid "Use 3D cloud look instead of flat."
@@ -6836,6 +6883,26 @@ msgstr ""
"Гамма-ÐºÐ¾Ñ€Ñ€ÐµÐºÑ†Ð¸Ñ Ð¿Ñ€Ð¸ уменьшении маÑштаба не поддерживаетÑÑ."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+"ИÑпользуйте многовыборочное Ñглаживание (MSAA) Ð´Ð»Ñ ÑÐ³Ð»Ð°Ð¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÐºÑ€Ð°ÐµÐ² "
+"блоков.\n"
+"Этот алгоритм Ñглаживает облаÑть проÑмотра 3D, ÑохранÑÑ Ñ€ÐµÐ·ÐºÐ¾Ñть "
+"изображениÑ,\n"
+"но Ñто не влиÑет на внутренноÑти текÑтур\n"
+"(что оÑобенно заметно на прозрачных текÑтурах).\n"
+"Когда шейдеры отключены, между узлами поÑвлÑÑŽÑ‚ÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ñ‹Ðµ пробелы.\n"
+"ЕÑли уÑтановлено значение 0, MSAA отключено.\n"
+"ПоÑле Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñтой опции требуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ°."
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "ИÑпользовать трилинейную фильтрацию Ð´Ð»Ñ Ð¼Ð°ÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚ÐµÐºÑтур."
@@ -6944,13 +7011,12 @@ msgid "Volume"
msgstr "ГромкоÑть"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Volume of all sounds.\n"
"Requires the sound system to be enabled."
msgstr ""
-"Включает Parallax Occlusion.\n"
-"Требует, чтобы шейдеры были включены."
+"ГромкоÑть вÑех звуков.\n"
+"ТребуетÑÑ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ звуковую ÑиÑтему."
#: src/settings_translation_file.cpp
msgid ""
@@ -6997,24 +7063,20 @@ msgid "Waving leaves"
msgstr "Покачивание лиÑтвы"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids"
-msgstr "Покачивание жидкоÑтей"
+msgstr "ВолниÑтые жидкоÑти"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave height"
-msgstr "Ð’Ñ‹Ñота волн на воде"
+msgstr "Ð’Ñ‹Ñота волн волниÑтых жидкоÑтей"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave speed"
-msgstr "СкороÑть волн на воде"
+msgstr "СкороÑть волн волниÑтых жидкоÑтей"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wavelength"
-msgstr "Длина волн на воде"
+msgstr "Длина волн волниÑтых жидкоÑтей"
#: src/settings_translation_file.cpp
msgid "Waving plants"
@@ -7068,14 +7130,20 @@ msgstr ""
"автомаÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚ÐµÐºÑтур."
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Whether FreeType fonts are used, requires FreeType support to be compiled "
"in.\n"
"If disabled, bitmap and XML vectors fonts are used instead."
msgstr ""
-"ИÑпользовать шрифты FreeType. Поддержка FreeType должна быть включена при "
-"Ñборке."
+"ИÑпользовать ли шрифты FreeType. Поддержка FreeType должна быть включена при "
+"Ñборке.\n"
+"ЕÑли отключено, иÑпользуютÑÑ Ñ€Ð°Ñтровые и XML-векторные изображениÑ."
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
@@ -7114,6 +7182,10 @@ msgid ""
"In-game, you can toggle the mute state with the mute key or by using the\n"
"pause menu."
msgstr ""
+"Отключить ли звуки. Ð’Ñ‹ можете включить звуки в любое времÑ, еÑли \n"
+"Ð·Ð²ÑƒÐºÐ¾Ð²Ð°Ñ ÑиÑтема не отключена (enable_sound=false). \n"
+"Ð’ игре, вы можете отключить их Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ клавиши mute\n"
+"или Ð²Ñ‹Ð·Ñ‹Ð²Ð°Ñ Ð¼ÐµÐ½ÑŽ паузы."
#: src/settings_translation_file.cpp
msgid ""
@@ -7198,6 +7270,10 @@ msgid ""
"For a solid floatland layer, this controls the height of hills/mountains.\n"
"Must be less than or equal to half the distance between the Y limits."
msgstr ""
+"Y-раÑÑтоÑние, на котором равнины ÑужаютÑÑ Ð¾Ñ‚ полной плотноÑти до нулÑ.\n"
+"Сужение начинаетÑÑ Ð½Ð° Ñтом раÑÑтоÑнии от предела Y.\n"
+"Ð”Ð»Ñ Ñ‚Ð²ÐµÑ€Ð´Ð¾Ð³Ð¾ ÑÐ»Ð¾Ñ Ð¿Ð°Ñ€Ñщих оÑтровов Ñто контролирует выÑоту холмов/гор.\n"
+"Должно быть меньше или равно половине раÑÑтоÑÐ½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ пределами Y."
#: src/settings_translation_file.cpp
msgid "Y-level of average terrain surface."
@@ -7220,6 +7296,35 @@ msgid "Y-level of seabed."
msgstr "Y-уровень морÑкого дна."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Уровень ÑÐ¶Ð°Ñ‚Ð¸Ñ ZLib Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ Ñохранении картографичеÑких блоков "
+"на диÑке.\n"
+"-1 - уровень ÑÐ¶Ð°Ñ‚Ð¸Ñ Zlib по умолчанию\n"
+"0 - без компреÑÑора, Ñамый быÑтрый\n"
+"9 - лучшее Ñжатие, Ñамое медленное\n"
+"(уровни 1-3 иÑпользуют \"быÑтрый\" метод Zlib, 4-9 иÑпользуют обычный метод)"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Уровень ÑÐ¶Ð°Ñ‚Ð¸Ñ ZLib Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ отправке блоков карты клиенту.\n"
+"-1 - уровень ÑÐ¶Ð°Ñ‚Ð¸Ñ Zlib по умолчанию\n"
+"0 - без компреÑÑора, Ñамый быÑтрый\n"
+"9 - лучшее Ñжатие, Ñамое медленное\n"
+"(уровни 1-3 иÑпользуют \"быÑтрый\" метод Zlib, 4-9 иÑпользуют обычный метод)"
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "Тайм-аут загрузки файла Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ cURL"
@@ -7231,80 +7336,91 @@ msgstr "Лимит одновременных Ñоединений cURL"
msgid "cURL timeout"
msgstr "cURL тайм-аут"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Кино"
-
-#~ msgid "Select Package File:"
-#~ msgstr "Выберите файл дополнениÑ:"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = ÐŸÐ°Ñ€Ð°Ð»Ð»Ð°ÐºÑ Ð¾ÐºÐºÐ»ÑŽÐ·Ð¸Ð¸ Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÐµÐ¹ о Ñклоне (быÑтро).\n"
+#~ "1 = Рельефный маппинг (медленно, но качеÑтвенно)."
-#, fuzzy
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Верхний предел по Y Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ñ… пÑевдоÑлучайных пещер."
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "Регулирует гамма-кодировку таблиц оÑвещениÑ. Более выÑокие Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ "
+#~ "Ñрче.\n"
+#~ "Этот параметр предназначен только Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð° и игнорируетÑÑ Ñервером."
-#~ msgid "Waving Water"
-#~ msgstr "Волны на воде"
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgstr "УправлÑет Ñужением оÑтровов горного типа ниже Ñредней точки."
-#~ msgid "Projecting dungeons"
-#~ msgstr "ПроÑтупающие подземельÑ"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Уверены, что хотите ÑброÑить мир одиночной игры?"
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Y-уровень, на который раÑпроÑтранÑÑŽÑ‚ÑÑ Ñ‚ÐµÐ½Ð¸ Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой."
+#~ msgid "Back"
+#~ msgstr "Ðазад"
-#~ msgid "Y-level of floatland midpoint and lake surface."
-#~ msgstr "Y-уровень Ñередины поплавка и поверхноÑти озера."
+#~ msgid "Bump Mapping"
+#~ msgstr "Бампмаппинг"
-#~ msgid "Waving water"
-#~ msgstr "Волны на воде"
+#~ msgid "Bumpmapping"
+#~ msgstr "Бампмаппинг"
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
-#~ msgstr ""
-#~ "Ð’Ð°Ñ€Ð¸Ð°Ñ†Ð¸Ñ Ð²Ñ‹Ñоты холмов и глубин озёр на гладкой меÑтноÑти парÑщих "
-#~ "оÑтровов."
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "Центр Ñреднего подъёма кривой Ñвета."
#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
#~ msgstr ""
-#~ "Ð¢Ð¸Ð¿Ð¸Ñ‡Ð½Ð°Ñ Ð¼Ð°ÐºÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ñ‹Ñота, выше и ниже Ñредней точки гор парÑщих "
-#~ "оÑтровов."
-
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Этот шрифт будет иÑпользован Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… Ñзыков."
-
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "Сила Ñреднего подъёма кривой Ñвета."
-
-#~ msgid "Shadow limit"
-#~ msgstr "Лимит теней"
-
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "Путь к шрифту TrueType или картинке Ñо шрифтом."
-
-#~ msgid "Lightness sharpness"
-#~ msgstr "РезкоÑть оÑвещённоÑти"
+#~ "Изменение интерфейÑа в главном меню:\n"
+#~ "- Full: неÑколько однопользовательÑких миров, выбор игры, выбор пакета "
+#~ "текÑтур и Ñ‚. д.\n"
+#~ "- Simple: один однопользовательÑкий мир без выбора игр или текÑтур. "
+#~ "Может быть полезно Ð´Ð»Ñ Ð½ÐµÐ±Ð¾Ð»ÑŒÑˆÐ¸Ñ… Ñкранов."
-#~ msgid "Lava depth"
-#~ msgstr "Глубина лавы"
+#~ msgid "Config mods"
+#~ msgstr "ÐаÑтройка модов"
-#~ msgid "IPv6 support."
-#~ msgstr "Поддержка IPv6."
+#~ msgid "Configure"
+#~ msgstr "ÐаÑтроить"
-#~ msgid "Gamma"
-#~ msgstr "Гамма"
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "Контролирует плотноÑть горной меÑтноÑти парÑщих оÑтровов.\n"
+#~ "ЯвлÑетÑÑ Ñмещением, добавлÑемым к значению шума 'mgv7_np_mountain'."
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "ПрозрачноÑть тени шрифта (непрозрачноÑть от 0 до 255)."
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Контролирует ширину тоннелей. Меньшие Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñоздают более широкие "
+#~ "тоннели."
-#~ msgid "Floatland mountain height"
-#~ msgstr "Ð’Ñ‹Ñота гор на парÑщих оÑтровах"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Цвет перекреÑÑ‚Ð¸Ñ (R,G,B)."
-#~ msgid "Floatland base height noise"
-#~ msgstr "Шум базовой выÑоты парÑщих оÑтровов"
+#~ msgid "Darkness sharpness"
+#~ msgstr "РезкоÑть темноты"
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Включить кинематографичеÑкое тональное отображение"
+#~ msgid ""
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
+#~ msgstr ""
+#~ "ОпределÑет облаÑти гладкой поверхноÑти на парÑщих оÑтровах.\n"
+#~ "Гладкие парÑщие оÑтрова поÑвлÑÑŽÑ‚ÑÑ, когда шум больше нолÑ."
-#~ msgid "Enable VBO"
-#~ msgstr "Включить объекты буфера вершин (VBO)"
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "ОпределÑет шаг выборки текÑтуры.\n"
+#~ "Более выÑокое значение приводит к более гладким картам нормалей."
#~ msgid ""
#~ "Deprecated, define and locate cave liquids using biome definitions "
@@ -7315,59 +7431,207 @@ msgstr "cURL тайм-аут"
#~ "определений биома.\n"
#~ "Y верхней границы лавы в больших пещерах."
-#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
+#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr ""
-#~ "ОпределÑет облаÑти гладкой поверхноÑти на парÑщих оÑтровах.\n"
-#~ "Гладкие парÑщие оÑтрова поÑвлÑÑŽÑ‚ÑÑ, когда шум больше нолÑ."
+#~ "ЗагружаетÑÑ Ð¸ уÑтанавливаетÑÑ $1.\n"
+#~ "ПожалуйÑта, подождите..."
-#~ msgid "Darkness sharpness"
-#~ msgstr "РезкоÑть темноты"
+#~ msgid "Enable VBO"
+#~ msgstr "Включить объекты буфера вершин (VBO)"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Контролирует ширину тоннелей. Меньшие Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñоздают более широкие "
-#~ "тоннели."
+#~ "Включает бампмаппинг Ð´Ð»Ñ Ñ‚ÐµÐºÑтур. Карты нормалей должны быть "
+#~ "предоÑтавлены\n"
+#~ "пакетом текÑтур или Ñгенерированы автоматичеÑки.\n"
+#~ "Требует, чтобы шейдеры были включены."
+
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Включить кинематографичеÑкое тональное отображение"
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Контролирует плотноÑть горной меÑтноÑти парÑщих оÑтровов.\n"
-#~ "ЯвлÑетÑÑ Ñмещением, добавлÑемым к значению шума 'mgv7_np_mountain'."
-
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "Центр Ñреднего подъёма кривой Ñвета."
+#~ "Включает генерацию карт нормалей \"на лету\" (Ñффект тиÑнениÑ).\n"
+#~ "Требует, чтобы бампмаппинг был включён."
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
-#~ msgstr "УправлÑет Ñужением оÑтровов горного типа ниже Ñредней точки."
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "Включает Parallax Occlusion.\n"
+#~ "Требует, чтобы шейдеры были включены."
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
#~ msgstr ""
-#~ "Регулирует гамма-кодировку таблиц оÑвещениÑ. Более выÑокие Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ "
-#~ "Ñрче.\n"
-#~ "Этот параметр предназначен только Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð° и игнорируетÑÑ Ñервером."
+#~ "ЭкÑÐ¿ÐµÑ€Ð¸Ð¼ÐµÐ½Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ, может привеÑти к видимым зазорам\n"
+#~ "между блоками, когда значение больше, чем 0."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Путь Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñкриншотов."
+#~ msgid "FPS in pause menu"
+#~ msgstr "ÐšÐ°Ð´Ñ€Ð¾Ð²Ð°Ñ Ñ‡Ð°Ñтота во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð°ÑƒÐ·Ñ‹"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "Сила параллакÑа"
+#~ msgid "Floatland base height noise"
+#~ msgstr "Шум базовой выÑоты парÑщих оÑтровов"
+
+#~ msgid "Floatland mountain height"
+#~ msgstr "Ð’Ñ‹Ñота гор на парÑщих оÑтровах"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "ПрозрачноÑть тени шрифта (непрозрачноÑть от 0 до 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "Гамма"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Создавать карты нормалей"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Генерировать карты нормалей"
+
+#~ msgid "IPv6 support."
+#~ msgstr "Поддержка IPv6."
+
+#~ msgid "Lava depth"
+#~ msgstr "Глубина лавы"
+
+#~ msgid "Lightness sharpness"
+#~ msgstr "РезкоÑть оÑвещённоÑти"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "Ограничение очередей emerge на диÑке"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr ""
-#~ "ЗагружаетÑÑ Ð¸ уÑтанавливаетÑÑ $1.\n"
-#~ "ПожалуйÑта, подождите..."
+#~ msgid "Main"
+#~ msgstr "Главное меню"
-#~ msgid "Back"
-#~ msgstr "Ðазад"
+#~ msgid "Main menu style"
+#~ msgstr "Стиль главного меню"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Миникарта в режиме радара, увеличение x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Миникарта в режиме радара, увеличение x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Миникарта в поверхноÑтном режиме, увеличение x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Миникарта в поверхноÑтном режиме, увеличение x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "ИмÑ/Пароль"
+
+#~ msgid "No"
+#~ msgstr "Ðет"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Выборка карт нормалей"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Сила карт нормалей"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "КоличеÑтво итераций Parallax Occlusion."
#~ msgid "Ok"
#~ msgstr "Oк"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "Общее Ñмещение Ñффекта Parallax Occlusion, обычно маÑштаб/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Общее Ñмещение Ñффекта Parallax Occlusion."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Объёмные текÑтуры"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Включить параллакÑ"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Смещение параллакÑа"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Повторение параллакÑа"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Режим параллакÑа"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "МаÑштаб параллакÑной окклюзии"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "Сила параллакÑа"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "Путь к шрифту TrueType или картинке Ñо шрифтом."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Путь Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñкриншотов."
+
+#~ msgid "Projecting dungeons"
+#~ msgstr "ПроÑтупающие подземельÑ"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Ð¡Ð±Ñ€Ð¾Ñ Ð¾Ð´Ð¸Ð½Ð¾Ñ‡Ð½Ð¾Ð¹ игры"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Выберите файл дополнениÑ:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "Лимит теней"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Ðачать одиночную игру"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Сила Ñгенерированных карт нормалей."
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "Сила Ñреднего подъёма кривой Ñвета."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Этот шрифт будет иÑпользован Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… Ñзыков."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Кино"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr ""
+#~ "Ð¢Ð¸Ð¿Ð¸Ñ‡Ð½Ð°Ñ Ð¼Ð°ÐºÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ñ‹Ñота, выше и ниже Ñредней точки гор парÑщих "
+#~ "оÑтровов."
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr ""
+#~ "Ð’Ð°Ñ€Ð¸Ð°Ñ†Ð¸Ñ Ð²Ñ‹Ñоты холмов и глубин озёр на гладкой меÑтноÑти парÑщих "
+#~ "оÑтровов."
+
+#~ msgid "View"
+#~ msgstr "Вид"
+
+#~ msgid "Waving Water"
+#~ msgstr "Волны на воде"
+
+#~ msgid "Waving water"
+#~ msgstr "Волны на воде"
+
+#, fuzzy
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Верхний предел по Y Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ñ… пÑевдоÑлучайных пещер."
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr "Y-уровень Ñередины поплавка и поверхноÑти озера."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Y-уровень, на который раÑпроÑтранÑÑŽÑ‚ÑÑ Ñ‚ÐµÐ½Ð¸ Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой."
+
+#~ msgid "Yes"
+#~ msgstr "Да"
diff --git a/po/sk/minetest.po b/po/sk/minetest.po
index 843c924e3..c8249c0f0 100644
--- a/po/sk/minetest.po
+++ b/po/sk/minetest.po
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-07-08 20:47+0000\n"
-"Last-Translator: rubenwardy <rw@rubenwardy.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-13 08:50+0000\n"
+"Last-Translator: Marian <daretmavi@gmail.com>\n"
"Language-Team: Slovak <https://hosted.weblate.org/projects/minetest/minetest/"
"sk/>\n"
"Language: sk\n"
@@ -17,259 +17,350 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Weblate 4.2-dev\n"
-
-#: builtin/client/death_formspec.lua src/client/game.cpp
-msgid "You died"
-msgstr "Zomrel si"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
msgstr "Oživiť"
+#: builtin/client/death_formspec.lua src/client/game.cpp
+msgid "You died"
+msgstr "Zomrel si"
+
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
msgstr "OK"
#: builtin/fstk/ui.lua
-msgid "The server has requested a reconnect:"
-msgstr "Server požadoval obnovu spojenia:"
+msgid "An error occurred in a Lua script:"
+msgstr "Chyba v lua skripte:"
#: builtin/fstk/ui.lua
-msgid "Reconnect"
-msgstr "Znova pripojiť"
+msgid "An error occurred:"
+msgstr "Chyba:"
#: builtin/fstk/ui.lua
msgid "Main menu"
msgstr "Hlavné menu"
#: builtin/fstk/ui.lua
-msgid "An error occurred in a Lua script:"
-msgstr "Chyba v lua skripte:"
+msgid "Reconnect"
+msgstr "Znova pripojiť"
#: builtin/fstk/ui.lua
-msgid "An error occurred:"
-msgstr "Chyba:"
+msgid "The server has requested a reconnect:"
+msgstr "Server požadoval obnovu spojenia:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Nahrávam..."
+#: builtin/mainmenu/common.lua
+msgid "Protocol version mismatch. "
+msgstr "Nesúhlas verzií protokolov. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Skús znova povoliť verejný zoznam serverov a skontroluj internetové "
-"pripojenie."
+msgid "Server enforces protocol version $1. "
+msgstr "Server vyžaduje protokol verzie $1. "
#: builtin/mainmenu/common.lua
msgid "Server supports protocol versions between $1 and $2. "
msgstr "Server podporuje verzie protokolov: $1 - $2. "
#: builtin/mainmenu/common.lua
-msgid "Server enforces protocol version $1. "
-msgstr "Server vyžaduje protokol verzie $1. "
+msgid "We only support protocol version $1."
+msgstr "Podporujeme len protokol verzie $1."
#: builtin/mainmenu/common.lua
msgid "We support protocol versions between version $1 and $2."
msgstr "Podporujeme verzie protokolov: $1 - $2."
-#: builtin/mainmenu/common.lua
-msgid "We only support protocol version $1."
-msgstr "Podporujeme len protokol verzie $1."
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_delete_content.lua
+#: builtin/mainmenu/dlg_delete_world.lua
+#: builtin/mainmenu/dlg_rename_modpack.lua
+#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp
+#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
+#: src/gui/guiPasswordChange.cpp
+msgid "Cancel"
+msgstr "Zruš"
-#: builtin/mainmenu/common.lua
-msgid "Protocol version mismatch. "
-msgstr "Nesúhlas verzií protokolov. "
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
+msgid "Dependencies:"
+msgstr "Závislosti:"
#: builtin/mainmenu/dlg_config_world.lua
-msgid "World:"
-msgstr "Svet:"
+msgid "Disable all"
+msgstr "Deaktivuj všetko"
#: builtin/mainmenu/dlg_config_world.lua
-msgid "No modpack description provided."
-msgstr "Popis balíka rozšírení nie je k dispozícií."
+msgid "Disable modpack"
+msgstr "Deaktivuj balíÄek rozšírení"
#: builtin/mainmenu/dlg_config_world.lua
-msgid "No game description provided."
-msgstr "Popis hry nie je k dispozícií."
+msgid "Enable all"
+msgstr "Aktivuj všetko"
+
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "Enable modpack"
+msgstr "Aktivuj balíÄek rozšírení"
+
+#: builtin/mainmenu/dlg_config_world.lua
+msgid ""
+"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
+"characters [a-z0-9_] are allowed."
+msgstr ""
+"Nepodarilo sa aktivovať rozšírenie \"$1\" lebo obsahuje nepovolené znaky. "
+"Povolené sú len znaky [a-z0-9_]."
+
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "Find More Mods"
+msgstr "Nájdi viac rozšírení"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
-msgstr "Rozšírenie:"
+msgstr "Mod:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No (optional) dependencies"
msgstr "Bez (voliteľných) závislostí"
#: builtin/mainmenu/dlg_config_world.lua
+msgid "No game description provided."
+msgstr "Popis hry nie je k dispozícií."
+
+#: builtin/mainmenu/dlg_config_world.lua
msgid "No hard dependencies"
msgstr "Bez povinných závislostí"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
-msgid "Optional dependencies:"
-msgstr "Voliteľné závislosti:"
-
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
-msgid "Dependencies:"
-msgstr "Závislosti:"
+#: builtin/mainmenu/dlg_config_world.lua
+msgid "No modpack description provided."
+msgstr "Popis balíka rozšírení nie je k dispozícií."
#: builtin/mainmenu/dlg_config_world.lua
msgid "No optional dependencies"
msgstr "Bez voliteľných závislostí"
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+msgid "Optional dependencies:"
+msgstr "Voliteľné závislosti:"
+
#: builtin/mainmenu/dlg_config_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
msgid "Save"
msgstr "Ulož"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
-#: builtin/mainmenu/dlg_delete_content.lua
-#: builtin/mainmenu/dlg_delete_world.lua
-#: builtin/mainmenu/dlg_rename_modpack.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua src/client/keycode.cpp
-#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
-#: src/gui/guiPasswordChange.cpp
-msgid "Cancel"
-msgstr "Zruš"
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Find More Mods"
-msgstr "Nájdi viac rozšírení"
-
#: builtin/mainmenu/dlg_config_world.lua
-msgid "Disable modpack"
-msgstr "Deaktivuj rozšírenie"
-
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Enable modpack"
-msgstr "Povoľ rozšírenie"
+msgid "World:"
+msgstr "Svet:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "enabled"
-msgstr "povolené"
+msgstr "aktívne"
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Disable all"
-msgstr "Deaktivuj všetko"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" už exituje. Chcel by si ho prepísať?"
-#: builtin/mainmenu/dlg_config_world.lua
-msgid "Enable all"
-msgstr "Povoľ všetko"
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "Závislosti $1 a $2 budú nainštalované."
-#: builtin/mainmenu/dlg_config_world.lua
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 od $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid ""
-"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
-"characters [a-z0-9_] are allowed."
+"$1 downloading,\n"
+"$2 queued"
msgstr ""
-"Nepodarilo sa aktivovať rozšírenie \"$1\" lebo obsahuje nepovolené znaky. "
-"Povolené sú len znaky [a-z0-9_]."
+"$1 sťahujem,\n"
+"$2 Äaká v rade"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr "ContentDB nie je k dispozícií ak bol Minetest skompilovaný bez cURL"
+msgid "$1 downloading..."
+msgstr "$1 sťahujem..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "$1 požadované závislosti nie je možné nájsť."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 bude nainÅ¡talovaný, a $2 závislosti budú preskoÄené."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "VÅ¡etky balíÄky"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Už je nainštalované"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Back to Main Menu"
+msgstr "Naspäť do hlavného menu"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Základná hra:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "ContentDB is not available when Minetest was compiled without cURL"
+msgstr "ContentDB nie je k dispozícií ak bol Minetest skompilovaný bez cURL"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Downloading..."
+msgstr "SÅ¥ahujem..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Failed to download $1"
+msgstr "Nepodarilo sa stiahnuť $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
msgstr "Hry"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install"
+msgstr "Inštaluj"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "Inštaluj $1"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "Nainštaluj chýbajúce závislosti"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Rozšírenia"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Texture packs"
-msgstr "BalíÄky textúr"
+msgid "No packages could be retrieved"
+msgstr "Nepodarilo sa stiahnuÅ¥ žiadne balíÄky"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Failed to download $1"
-msgstr "Nepodarilo sa stiahnuť $1"
+msgid "No results"
+msgstr "Bez výsledku"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Hľadaj"
+msgid "No updates"
+msgstr "Bez aktualizácií"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Back to Main Menu"
-msgstr "Naspäť do hlavného menu"
+msgid "Not found"
+msgstr "Nenájdené"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "No results"
-msgstr "Bez výsledku"
+msgid "Overwrite"
+msgstr "Prepíš"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "No packages could be retrieved"
-msgstr "Nepodarilo sa stiahnuÅ¥ žiadne balíÄky"
+msgid "Please check that the base game is correct."
+msgstr "Prosím skontroluj Äi je základná hra v poriadku."
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Downloading..."
-msgstr "SÅ¥ahujem..."
+msgid "Queued"
+msgstr "Čaká v rade"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Install"
-msgstr "Inštaluj"
+msgid "Texture packs"
+msgstr "BalíÄky textúr"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Uninstall"
+msgstr "Odinštaluj"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Update"
msgstr "Aktualizuj"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Uninstall"
-msgstr "Odinštaluj"
+msgid "Update All [$1]"
+msgstr "Aktualizuj všetky [$1]"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "Zobraziť"
+msgid "View more information in a web browser"
+msgstr "Pozri si viac informácií vo webovom prehliadaÄi"
+
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "A world named \"$1\" already exists"
+msgstr "Svet menom \"$1\" už existuje"
+
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Additional terrain"
+msgstr "DodatoÄný terén"
+
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Altitude chill"
+msgstr "Ochladenie s nadmorskou výškou"
+
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Altitude dry"
+msgstr "Sucho v nadmorskej výške"
+
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Biome blending"
+msgstr "Miešanie ekosystémov"
+
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Biomes"
+msgstr "Ekosystémy"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caverns"
msgstr "Jaskyne"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Very large caverns deep in the underground"
-msgstr "Obrovské jaskyne hlboko v podzemí"
+msgid "Caves"
+msgstr "Jaskyne"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Sea level rivers"
-msgstr "Rieky na úrovni hladiny mora"
+msgid "Create"
+msgstr "Vytvor"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Rivers"
-msgstr "Rieky"
+msgid "Decorations"
+msgstr "Dekorácie"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mountains"
-msgstr "Hory"
+msgid "Download a game, such as Minetest Game, from minetest.net"
+msgstr "Stiahni si hru, ako napr. Minetest Game z minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Floatlands (experimental)"
-msgstr "Lietajúce krajiny (experimentálne)"
+msgid "Download one from minetest.net"
+msgstr "Stiahni jednu z minetest.net"
+
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Dungeons"
+msgstr "Kobky"
+
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Flat terrain"
+msgstr "Rovný terén"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
msgstr "Poletujúce pevniny na oblohe"
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Altitude chill"
-msgstr "Ochladenie s nadmorskou výškou"
-
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Reduces heat with altitude"
-msgstr "Znižuje teplotu s nadmorskou výškou"
+msgid "Floatlands (experimental)"
+msgstr "Lietajúce krajiny (experimentálne)"
+
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Game"
+msgstr "Hra"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Altitude dry"
-msgstr "Sucho v nadmorskej výške"
+msgid "Generate non-fractal terrain: Oceans and underground"
+msgstr "Generuj nefragmentovaný terén: oceány a podzemie"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Reduces humidity with altitude"
-msgstr "Znižuje vlhkosť s nadmorskou výškou"
+msgid "Hills"
+msgstr "Kopce"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Humid rivers"
@@ -280,8 +371,8 @@ msgid "Increases humidity around rivers"
msgstr "Zvyšuje vlhkosť v okolí riek"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Vary river depth"
-msgstr "Premenlivá hĺbka riek"
+msgid "Lakes"
+msgstr "Jazerá"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
@@ -289,69 +380,58 @@ msgstr ""
"Nízka vlhkosť a vysoké teploty spôsobujú znižovanie hladín, alebo vysychanie "
"riek"
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Hills"
-msgstr "Kopce"
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Lakes"
-msgstr "Jazerá"
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Additional terrain"
-msgstr "DodatoÄný terén"
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Mapgen"
+msgstr "Generátor mapy"
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr "Generuj nefragmentovaný terén: oceány a podzemie"
+#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
+msgid "Mapgen flags"
+msgstr "Príznaky generátora máp"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Trees and jungle grass"
-msgstr "Stromy a vysoká tráva"
+msgid "Mapgen-specific flags"
+msgstr "Špecifické príznaky generátora máp"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Flat terrain"
-msgstr "Rovný terén"
+msgid "Mountains"
+msgstr "Hory"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
msgstr "Prúd bahna"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Terrain surface erosion"
-msgstr "Erózia terénu"
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr "Mierne pásmo, Púšť, Džungľa, Tundra, Tajga"
+msgid "Network of tunnels and caves"
+msgstr "Sieť tunelov a jaskýň"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert, Jungle"
-msgstr "Mierne pásmo, Púšť, Džungľa"
+msgid "No game selected"
+msgstr "Nie je zvolená hra"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Temperate, Desert"
-msgstr "Mierne pásmo, Púšť"
+msgid "Reduces heat with altitude"
+msgstr "Znižuje teplotu s nadmorskou výškou"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "You have no games installed."
-msgstr "Nie je nainštalovaná žiadna hra."
+msgid "Reduces humidity with altitude"
+msgstr "Znižuje vlhkosť s nadmorskou výškou"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Download one from minetest.net"
-msgstr "Stiahni jednu z minetest.net"
+msgid "Rivers"
+msgstr "Rieky"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Caves"
-msgstr "Jaskyne"
+msgid "Sea level rivers"
+msgstr "Rieky na úrovni hladiny mora"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Dungeons"
-msgstr "Kobky"
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Seed"
+msgstr "Semienko"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Decorations"
-msgstr "Dekorácie"
+msgid "Smooth transition between biomes"
+msgstr "Plynulý prechod medzi ekosystémami"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
@@ -366,65 +446,44 @@ msgid "Structures appearing on the terrain, typically trees and plants"
msgstr "Štruktúry objavujúce sa na povrchu, typicky stromy a rastliny"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Network of tunnels and caves"
-msgstr "Sieť tunelov a jaskýň"
+msgid "Temperate, Desert"
+msgstr "Mierne pásmo, Púšť"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Biomes"
-msgstr "Ekosystémy"
+msgid "Temperate, Desert, Jungle"
+msgstr "Mierne pásmo, Púšť, Džungľa"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Biome blending"
-msgstr "Miešanie ekosystémov"
+msgid "Temperate, Desert, Jungle, Tundra, Taiga"
+msgstr "Mierne pásmo, Púšť, Džungľa, Tundra, Tajga"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Smooth transition between biomes"
-msgstr "Plynulý prechod medzi ekosystémami"
+msgid "Terrain surface erosion"
+msgstr "Erózia terénu"
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Mapgen flags"
-msgstr "Príznaky generátora máp"
+#: builtin/mainmenu/dlg_create_world.lua
+msgid "Trees and jungle grass"
+msgstr "Stromy a vysoká tráva"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Mapgen-specific flags"
-msgstr "Špecifické príznaky generátora máp"
+msgid "Vary river depth"
+msgstr "Premenlivá hĺbka riek"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Warning: The Development Test is meant for developers."
-msgstr "Varovanie: Vývojarský Test je urÄený vývojárom."
+msgid "Very large caverns deep in the underground"
+msgstr "Obrovské jaskyne hlboko v podzemí"
#: builtin/mainmenu/dlg_create_world.lua
-msgid "Download a game, such as Minetest Game, from minetest.net"
-msgstr "Stiahni si hru, ako napr. Minetest Game z minetest.net"
+msgid "Warning: The Development Test is meant for developers."
+msgstr "Varovanie: Vývojarský Test je urÄený vývojárom."
#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
msgstr "Meno sveta"
#: builtin/mainmenu/dlg_create_world.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Seed"
-msgstr "Semienko"
-
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Mapgen"
-msgstr "Generátor mapy"
-
-#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
-msgid "Game"
-msgstr "Hra"
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "Create"
-msgstr "Vytvor"
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "A world named \"$1\" already exists"
-msgstr "Svet menom \"$1\" už existuje"
-
-#: builtin/mainmenu/dlg_create_world.lua
-msgid "No game selected"
-msgstr "Nie je zvolená hra"
+msgid "You have no games installed."
+msgstr "Nie je nainštalovaná žiadna hra."
#: builtin/mainmenu/dlg_delete_content.lua
msgid "Are you sure you want to delete \"$1\"?"
@@ -453,6 +512,10 @@ msgid "Accept"
msgstr "Prijať"
#: builtin/mainmenu/dlg_rename_modpack.lua
+msgid "Rename Modpack:"
+msgstr "Premenuj balíÄek rozšírení:"
+
+#: builtin/mainmenu/dlg_rename_modpack.lua
msgid ""
"This modpack has an explicit name given in its modpack.conf which will "
"override any renaming here."
@@ -460,100 +523,81 @@ msgstr ""
"Tento balíÄek rozšírení má vo svojom modpack.conf explicitne zadané meno, "
"ktoré prepíše akékoľvek tunajšie premenovanie."
-#: builtin/mainmenu/dlg_rename_modpack.lua
-msgid "Rename Modpack:"
-msgstr "Premenuj balíÄek rozšírení:"
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "(No description of setting given)"
+msgstr "(Nie je zadaný popis nastavenia)"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Disabled"
-msgstr "Zablokované"
+msgid "2D Noise"
+msgstr "2D šum"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Enabled"
-msgstr "Povolené"
+msgid "< Back to Settings page"
+msgstr "< Späť na nastavenia"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Browse"
msgstr "Prehliadaj"
-#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
-msgid "Offset"
-msgstr "Ofset"
-
-#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
-msgid "Scale"
-msgstr "Mierka"
-
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "X spread"
-msgstr "Rozptyl X"
+msgid "Disabled"
+msgstr "Vypnuté"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Y spread"
-msgstr "Rozptyl Y"
+msgid "Edit"
+msgstr "Upraviť"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "2D Noise"
-msgstr "2D šum"
+msgid "Enabled"
+msgstr "Aktivované"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Z spread"
-msgstr "Rozptyl Z"
+msgid "Lacunarity"
+msgstr "Lakunarita"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Octaves"
msgstr "Oktávy"
+#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
+msgid "Offset"
+msgstr "Ofset"
+
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Persistance"
msgstr "Vytrvalosť"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Lacunarity"
-msgstr "Lakunarita"
-
-#. ~ "defaults" is a noise parameter flag.
-#. It describes the default processing options
-#. for noise settings in main menu -> "All Settings".
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "defaults"
-msgstr "štandardné hodnoty (defaults)"
+msgid "Please enter a valid integer."
+msgstr "Prosím zadaj platné celé Äíslo."
-#. ~ "eased" is a noise parameter flag.
-#. It is used to make the map smoother and
-#. can be enabled in noise settings in
-#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "eased"
-msgstr "zjemnené (eased)"
+msgid "Please enter a valid number."
+msgstr "Prosím vlož platné Äíslo."
-#. ~ "absvalue" is a noise parameter flag.
-#. It is short for "absolute value".
-#. It can be enabled in noise settings in
-#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "absvalue"
-msgstr "Absolútna hodnota (absvalue)"
+msgid "Restore Default"
+msgstr "Obnov štandardné hodnoty"
-#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "X"
-msgstr "X"
+#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
+msgid "Scale"
+msgstr "Mierka"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Y"
-msgstr "Y"
+msgid "Search"
+msgstr "Hľadaj"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Z"
-msgstr "Z"
+msgid "Select directory"
+msgstr "Zvoľ adresár"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "(No description of setting given)"
-msgstr "(Nie je zadaný popis nastavenia)"
+msgid "Select file"
+msgstr "Zvoľ súbor"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Please enter a valid integer."
-msgstr "Prosím zadaj platné celé Äíslo."
+msgid "Show technical names"
+msgstr "Zobraz technické názvy"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "The value must be at least $1."
@@ -564,52 +608,68 @@ msgid "The value must not be larger than $1."
msgstr "Hodnota nesmie byť vyššia ako $1."
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Please enter a valid number."
-msgstr "Prosím vlož platné Äíslo."
+msgid "X"
+msgstr "X"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Select directory"
-msgstr "Zvoľ adresár"
+msgid "X spread"
+msgstr "Rozptyl X"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Select file"
-msgstr "Zvoľ súbor"
+msgid "Y"
+msgstr "Y"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "< Back to Settings page"
-msgstr "< Späť na nastavenia"
+msgid "Y spread"
+msgstr "Rozptyl Y"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Edit"
-msgstr "Upraviť"
+msgid "Z"
+msgstr "Z"
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Restore Default"
-msgstr "Obnov štandardné hodnoty"
+msgid "Z spread"
+msgstr "Rozptyl Z"
+#. ~ "absvalue" is a noise parameter flag.
+#. It is short for "absolute value".
+#. It can be enabled in noise settings in
+#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
-msgid "Show technical names"
-msgstr "Zobraz technické názvy"
+msgid "absvalue"
+msgstr "Absolútna hodnota (absvalue)"
+
+#. ~ "defaults" is a noise parameter flag.
+#. It describes the default processing options
+#. for noise settings in main menu -> "All Settings".
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "defaults"
+msgstr "štandardné hodnoty (defaults)"
+
+#. ~ "eased" is a noise parameter flag.
+#. It is used to make the map smoother and
+#. can be enabled in noise settings in
+#. main menu -> "All Settings".
+#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "eased"
+msgstr "zjemnené (eased)"
#: builtin/mainmenu/pkgmgr.lua
msgid "$1 (Enabled)"
-msgstr "$1 (povolený)"
+msgstr "$1 (Aktivované)"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a $1 as a texture pack"
-msgstr "Nie je možné nainÅ¡talovaÅ¥ $1 ako balíÄek textúr"
+msgid "$1 mods"
+msgstr "$1 rozšírenia"
#: builtin/mainmenu/pkgmgr.lua
msgid "Failed to install $1 to $2"
msgstr "Zlyhala inštalácia $1 na $2"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to find a valid mod or modpack"
-msgstr "Nie je možné nájsÅ¥ platné rozšírenie, alebo balíÄek rozšírení"
-
-#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a modpack as a $1"
-msgstr "Nie je možné nainÅ¡talovaÅ¥ balíÄek rozšírení $1"
+msgid "Install Mod: Unable to find real mod name for: $1"
+msgstr ""
+"InÅ¡talácia rozšírenia: Nie je možné nájsÅ¥ skutoÄné meno rozšírenia pre: $1"
#: builtin/mainmenu/pkgmgr.lua
msgid "Install Mod: Unable to find suitable folder name for modpack $1"
@@ -618,434 +678,432 @@ msgstr ""
"rozšírení $1"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Unable to install a mod as a $1"
-msgstr "Nie je možné nainštalovať rozšírenie $1"
+msgid "Install: Unsupported file type \"$1\" or broken archive"
+msgstr "Inštalácia: Nepodporovaný typ súboru \"$1\", alebo poškodený archív"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install Mod: Unable to find real mod name for: $1"
-msgstr ""
-"InÅ¡talácia rozšírenia: Nie je možné nájsÅ¥ skutoÄné meno rozšírenia pre: $1"
+msgid "Install: file: \"$1\""
+msgstr "Inštalácia: súbor: \"$1\""
+
+#: builtin/mainmenu/pkgmgr.lua
+msgid "Unable to find a valid mod or modpack"
+msgstr "Nie je možné nájsÅ¥ platné rozšírenie, alebo balíÄek rozšírení"
+
+#: builtin/mainmenu/pkgmgr.lua
+msgid "Unable to install a $1 as a texture pack"
+msgstr "Nie je možné nainÅ¡talovaÅ¥ $1 ako balíÄek textúr"
#: builtin/mainmenu/pkgmgr.lua
msgid "Unable to install a game as a $1"
msgstr "Nie je možné nainštalovať hru $1"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install: file: \"$1\""
-msgstr "Inštalácia: súbor: \"$1\""
+msgid "Unable to install a mod as a $1"
+msgstr "Nie je možné nainštalovať rozšírenie $1"
#: builtin/mainmenu/pkgmgr.lua
-msgid "Install: Unsupported file type \"$1\" or broken archive"
-msgstr "Inštalácia: Nepodporovaný typ súboru \"$1\", alebo poškodený archív"
+msgid "Unable to install a modpack as a $1"
+msgstr "Nie je možné nainÅ¡talovaÅ¥ balíÄek rozšírení $1"
-#: builtin/mainmenu/pkgmgr.lua
-msgid "$1 mods"
-msgstr "$1 rozšírenia"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Nahrávam..."
-#: builtin/mainmenu/tab_content.lua
-msgid "Installed Packages:"
-msgstr "NainÅ¡talované balíÄky:"
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Skriptovanie na strane klienta je zakázané"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Skús znova povoliť verejný zoznam serverov a skontroluj internetové "
+"pripojenie."
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
-msgstr "Prehliadaj online obsah"
+msgstr "Hľadaj nový obsah na internete"
#: builtin/mainmenu/tab_content.lua
-msgid "No package description available"
-msgstr "Nie je k dispozícií popis balíÄka"
+msgid "Content"
+msgstr "Doplnky"
#: builtin/mainmenu/tab_content.lua
-msgid "Rename"
-msgstr "Premenuj"
+msgid "Disable Texture Pack"
+msgstr "Deaktivuj balíÄek textúr"
#: builtin/mainmenu/tab_content.lua
-msgid "No dependencies."
-msgstr "Bez závislostí."
+msgid "Information:"
+msgstr "Informácie:"
#: builtin/mainmenu/tab_content.lua
-msgid "Disable Texture Pack"
-msgstr "Deaktivuj balíÄek textúr"
+msgid "Installed Packages:"
+msgstr "NainÅ¡talované balíÄky:"
#: builtin/mainmenu/tab_content.lua
-msgid "Use Texture Pack"
-msgstr "Použi balíÄek textúr"
+msgid "No dependencies."
+msgstr "Bez závislostí."
#: builtin/mainmenu/tab_content.lua
-msgid "Information:"
-msgstr "Informácie:"
+msgid "No package description available"
+msgstr "Nie je k dispozícií popis balíÄka"
+
+#: builtin/mainmenu/tab_content.lua
+msgid "Rename"
+msgstr "Premenuj"
#: builtin/mainmenu/tab_content.lua
msgid "Uninstall Package"
msgstr "OdinÅ¡taluj balíÄek"
#: builtin/mainmenu/tab_content.lua
-msgid "Content"
-msgstr "Obsah"
+msgid "Use Texture Pack"
+msgstr "Použi balíÄek textúr"
#: builtin/mainmenu/tab_credits.lua
-msgid "Credits"
-msgstr "Uznanie"
+msgid "Active Contributors"
+msgstr "Aktívny prispievatelia"
#: builtin/mainmenu/tab_credits.lua
msgid "Core Developers"
msgstr "Hlavný vývojari"
#: builtin/mainmenu/tab_credits.lua
-msgid "Active Contributors"
-msgstr "Aktívny prispievatelia"
+msgid "Credits"
+msgstr "PoÄakovanie"
#: builtin/mainmenu/tab_credits.lua
-msgid "Previous Core Developers"
-msgstr "Predchádzajúci hlavný vývojári"
+msgid "Open User Data Directory"
+msgstr "Otvor adresár s užívateľskými dátami"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Otvor adresár, ktorý obsahuje svety, hry, mody a textúry\n"
+"od užívateľov v správcovi/prieskumníkovi súborov."
#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Predchádzajúci prispievatelia"
-#: builtin/mainmenu/tab_local.lua
-msgid "Install games from ContentDB"
-msgstr "Inštaluj hru z ContentDB"
+#: builtin/mainmenu/tab_credits.lua
+msgid "Previous Core Developers"
+msgstr "Predchádzajúci hlavný vývojári"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Konfigurácia"
+msgid "Announce Server"
+msgstr "Zverejni server"
#: builtin/mainmenu/tab_local.lua
-msgid "New"
-msgstr "Nový"
+msgid "Bind Address"
+msgstr "PriraÄ adresu"
#: builtin/mainmenu/tab_local.lua
-msgid "Select World:"
-msgstr "Zvoľ si svet:"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Kreatívny mód"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
-msgstr "Povoľ poškodenie"
+msgstr "Aktivuj zranenie"
+
+#: builtin/mainmenu/tab_local.lua
+msgid "Host Game"
+msgstr "Hosťuj hru"
#: builtin/mainmenu/tab_local.lua
msgid "Host Server"
msgstr "Hosťuj server"
#: builtin/mainmenu/tab_local.lua
-msgid "Host Game"
-msgstr "Hosťuj hru"
+msgid "Install games from ContentDB"
+msgstr "Inštaluj hry z ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Announce Server"
-msgstr "Zverejni server"
+msgid "Name"
+msgstr "Meno"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Meno/Heslo"
+msgid "New"
+msgstr "Nový"
#: builtin/mainmenu/tab_local.lua
-msgid "Bind Address"
-msgstr "PriraÄ adresu"
+msgid "No world created or selected!"
+msgstr "Nie je vytvorený ani zvolený svet!"
+
+#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "Heslo"
+
+#: builtin/mainmenu/tab_local.lua
+msgid "Play Game"
+msgstr "Hraj hru"
#: builtin/mainmenu/tab_local.lua
msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
-msgid "Server Port"
-msgstr "Port servera"
+msgid "Select Mods"
+msgstr "Zvoľ mody"
#: builtin/mainmenu/tab_local.lua
-msgid "Play Game"
-msgstr ""
+msgid "Select World:"
+msgstr "Zvoľ si svet:"
#: builtin/mainmenu/tab_local.lua
-msgid "No world created or selected!"
-msgstr ""
+msgid "Server Port"
+msgstr "Port servera"
#: builtin/mainmenu/tab_local.lua
msgid "Start Game"
-msgstr ""
+msgstr "Spusti hru"
#: builtin/mainmenu/tab_online.lua
msgid "Address / Port"
-msgstr ""
+msgstr "Adresa / Port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Name / Password"
-msgstr ""
-
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
-msgstr ""
+msgstr "Pripojiť sa"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
+msgid "Creative mode"
+msgstr "Kreatívny mód"
+
+#: builtin/mainmenu/tab_online.lua
+msgid "Damage enabled"
+msgstr "Poškodenie je aktivované"
+
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
-msgstr ""
+msgstr "Zmaž obľúbené"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
-msgstr ""
+msgstr "Obľúbené"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Ping"
-msgstr ""
+#: builtin/mainmenu/tab_online.lua
+msgid "Join Game"
+msgstr "Pripoj sa do hry"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Creative mode"
-msgstr ""
+#: builtin/mainmenu/tab_online.lua
+msgid "Name / Password"
+msgstr "Meno / Heslo"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "Damage enabled"
-msgstr ""
+#: builtin/mainmenu/tab_online.lua
+msgid "Ping"
+msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
-msgid "PvP enabled"
-msgstr ""
-
#: builtin/mainmenu/tab_online.lua
-msgid "Join Game"
-msgstr ""
+msgid "PvP enabled"
+msgstr "PvP je aktívne"
#: builtin/mainmenu/tab_settings.lua
-msgid "Opaque Leaves"
-msgstr ""
+msgid "2x"
+msgstr "2x"
#: builtin/mainmenu/tab_settings.lua
-msgid "Simple Leaves"
-msgstr ""
+msgid "3D Clouds"
+msgstr "3D mraky"
#: builtin/mainmenu/tab_settings.lua
-msgid "Fancy Leaves"
-msgstr ""
+msgid "4x"
+msgstr "4x"
#: builtin/mainmenu/tab_settings.lua
-msgid "Node Outlining"
-msgstr ""
+msgid "8x"
+msgstr "8x"
#: builtin/mainmenu/tab_settings.lua
-msgid "Node Highlighting"
-msgstr ""
+msgid "All Settings"
+msgstr "Všetky nastavenia"
#: builtin/mainmenu/tab_settings.lua
-msgid "None"
-msgstr ""
+msgid "Antialiasing:"
+msgstr "Vyhladzovanie:"
#: builtin/mainmenu/tab_settings.lua
-msgid "No Filter"
-msgstr ""
+msgid "Autosave Screen Size"
+msgstr "Automat. ulož. veľkosti okna"
#: builtin/mainmenu/tab_settings.lua
msgid "Bilinear Filter"
-msgstr ""
+msgstr "Bilineárny filter"
+
+#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
+msgid "Change Keys"
+msgstr "Zmeň ovládacie klávesy"
#: builtin/mainmenu/tab_settings.lua
-msgid "Trilinear Filter"
-msgstr ""
+msgid "Connected Glass"
+msgstr "Prepojené sklo"
#: builtin/mainmenu/tab_settings.lua
-msgid "No Mipmap"
-msgstr ""
+msgid "Fancy Leaves"
+msgstr "Ozdobné listy"
#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
-msgstr ""
+msgstr "Mipmapy"
#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap + Aniso. Filter"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "2x"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "4x"
-msgstr ""
+msgstr "Mipmapy + Aniso. filter"
#: builtin/mainmenu/tab_settings.lua
-msgid "8x"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
+msgid "No Filter"
+msgstr "Žiaden filter"
#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr ""
+msgid "No Mipmap"
+msgstr "Žiadne Mipmapy"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr ""
+msgid "Node Highlighting"
+msgstr "Nasvietenie kocky"
#: builtin/mainmenu/tab_settings.lua
-msgid "Smooth Lighting"
-msgstr ""
+msgid "Node Outlining"
+msgstr "Obrys kocky"
#: builtin/mainmenu/tab_settings.lua
-msgid "Particles"
-msgstr ""
+msgid "None"
+msgstr "Žiadne"
#: builtin/mainmenu/tab_settings.lua
-msgid "3D Clouds"
-msgstr ""
+msgid "Opaque Leaves"
+msgstr "Nepriehľadné listy"
#: builtin/mainmenu/tab_settings.lua
msgid "Opaque Water"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Connected Glass"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "Texturing:"
-msgstr ""
+msgstr "Nepriehľadná voda"
#: builtin/mainmenu/tab_settings.lua
-msgid "Antialiasing:"
-msgstr ""
+msgid "Particles"
+msgstr "ÄŒastice"
#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
-msgstr ""
+msgstr "Zobrazenie:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Autosave Screen Size"
-msgstr ""
+msgid "Settings"
+msgstr "Nastavenia"
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
msgid "Shaders"
-msgstr ""
+msgstr "Shadery"
#: builtin/mainmenu/tab_settings.lua
-msgid "Shaders (unavailable)"
-msgstr ""
+msgid "Shaders (experimental)"
+msgstr "Shadery (experimentálne)"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr ""
+msgid "Shaders (unavailable)"
+msgstr "Shadery (nedostupné)"
-#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
-msgid "Change Keys"
-msgstr ""
+#: builtin/mainmenu/tab_settings.lua
+msgid "Simple Leaves"
+msgstr "Jednoduché listy"
#: builtin/mainmenu/tab_settings.lua
-msgid "All Settings"
-msgstr ""
+msgid "Smooth Lighting"
+msgstr "Jemné osvetlenie"
#: builtin/mainmenu/tab_settings.lua
-msgid "Touchthreshold: (px)"
-msgstr ""
+msgid "Texturing:"
+msgstr "Textúrovanie:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
+msgid "To enable shaders the OpenGL driver needs to be used."
+msgstr "Aby mohli byť aktivované shadery, musí sa použiť OpenGL."
#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
msgid "Tone Mapping"
-msgstr ""
+msgstr "Tone Mapping (Optim. farieb)"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
+msgid "Touchthreshold: (px)"
+msgstr "Dotykový prah: (px)"
#: builtin/mainmenu/tab_settings.lua
-msgid "Waving Liquids"
-msgstr ""
+msgid "Trilinear Filter"
+msgstr "Trilineárny filter"
#: builtin/mainmenu/tab_settings.lua
msgid "Waving Leaves"
-msgstr ""
+msgstr "Vlniace sa listy"
#: builtin/mainmenu/tab_settings.lua
-msgid "Waving Plants"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
-msgid "To enable shaders the OpenGL driver needs to be used."
-msgstr ""
+msgid "Waving Liquids"
+msgstr "Vlniace sa kvapaliny"
#: builtin/mainmenu/tab_settings.lua
-msgid "Settings"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
+msgid "Waving Plants"
+msgstr "Vlniace sa rastliny"
#: src/client/client.cpp
msgid "Connection timed out."
-msgstr ""
+msgstr "Časový limit pripojenia vypršal."
#: src/client/client.cpp
-msgid "Loading textures..."
-msgstr ""
+msgid "Done!"
+msgstr "Hotovo!"
#: src/client/client.cpp
-msgid "Rebuilding shaders..."
-msgstr ""
+msgid "Initializing nodes"
+msgstr "Inicializujem kocky"
#: src/client/client.cpp
msgid "Initializing nodes..."
-msgstr ""
+msgstr "Inicializujem kocky..."
#: src/client/client.cpp
-msgid "Initializing nodes"
-msgstr ""
+msgid "Loading textures..."
+msgstr "Nahrávam textúry..."
#: src/client/client.cpp
-msgid "Done!"
-msgstr ""
+msgid "Rebuilding shaders..."
+msgstr "Obnovujem shadery..."
#: src/client/clientlauncher.cpp
-msgid "Main Menu"
-msgstr ""
+msgid "Connection error (timed out?)"
+msgstr "Chyba spojenia (Äasový limit?)"
#: src/client/clientlauncher.cpp
-msgid "Player name too long."
-msgstr ""
+msgid "Could not find or load game \""
+msgstr "Nie je možné nájsť alebo nahrať hru \""
#: src/client/clientlauncher.cpp
-msgid "Connection error (timed out?)"
-msgstr ""
+msgid "Invalid gamespec."
+msgstr "Chybná špec. hry."
#: src/client/clientlauncher.cpp
-msgid "Provided password file failed to open: "
-msgstr ""
+msgid "Main Menu"
+msgstr "Hlavné menu"
#: src/client/clientlauncher.cpp
-msgid "Please choose a name!"
-msgstr ""
+msgid "No world selected and no address provided. Nothing to do."
+msgstr "Nie je zvolený svet ani poskytnutá adresa. Niet Äo robiÅ¥."
#: src/client/clientlauncher.cpp
-msgid "No world selected and no address provided. Nothing to do."
-msgstr ""
+msgid "Player name too long."
+msgstr "Meno hráÄa je príliÅ¡ dlhé."
#: src/client/clientlauncher.cpp
-msgid "Provided world path doesn't exist: "
-msgstr ""
+msgid "Please choose a name!"
+msgstr "Prosím zvoľ si meno!"
#: src/client/clientlauncher.cpp
-msgid "Could not find or load game \""
-msgstr ""
+msgid "Provided password file failed to open: "
+msgstr "Dodaný súbor s heslom nie je možné otvoriť: "
#: src/client/clientlauncher.cpp
-msgid "Invalid gamespec."
-msgstr ""
+msgid "Provided world path doesn't exist: "
+msgstr "Zadaná cesta k svetu neexistuje: "
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string. Put either "no" or "yes"
@@ -1057,641 +1115,668 @@ msgstr ""
#. When in doubt, test your translation.
#: src/client/fontengine.cpp
msgid "needs_fallback_font"
-msgstr ""
+msgstr "no"
#: src/client/game.cpp
-msgid "Shutting down..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Creating server..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Creating client..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Resolving address..."
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Connecting to server..."
+msgid ""
+"\n"
+"Check debug.txt for details."
msgstr ""
+"\n"
+"Pozri detaily v debug.txt."
#: src/client/game.cpp
-msgid "Item definitions..."
-msgstr ""
+msgid "- Address: "
+msgstr "- Adresa: "
#: src/client/game.cpp
-msgid "Node definitions..."
-msgstr ""
+msgid "- Creative Mode: "
+msgstr "- Kreatívny mód: "
#: src/client/game.cpp
-msgid "Media..."
-msgstr ""
+msgid "- Damage: "
+msgstr "- Poškodenie: "
#: src/client/game.cpp
-msgid "KiB/s"
-msgstr ""
+msgid "- Mode: "
+msgstr "- Mode: "
#: src/client/game.cpp
-msgid "MiB/s"
-msgstr ""
+msgid "- Port: "
+msgstr "- Port: "
#: src/client/game.cpp
-msgid "Client side scripting is disabled"
-msgstr ""
+msgid "- Public: "
+msgstr "- Verejný: "
+#. ~ PvP = Player versus Player
#: src/client/game.cpp
-msgid "Sound muted"
-msgstr ""
+msgid "- PvP: "
+msgstr "- PvP: "
#: src/client/game.cpp
-msgid "Sound unmuted"
-msgstr ""
+msgid "- Server Name: "
+msgstr "- Meno servera: "
#: src/client/game.cpp
-msgid "Sound system is disabled"
-msgstr ""
+msgid "Automatic forward disabled"
+msgstr "Automatický pohyb vpred je zakázaný"
#: src/client/game.cpp
-#, c-format
-msgid "Volume changed to %d%%"
-msgstr ""
+msgid "Automatic forward enabled"
+msgstr "Automatický pohyb vpred je aktivovaný"
#: src/client/game.cpp
-msgid "Sound system is not supported on this build"
-msgstr ""
+msgid "Camera update disabled"
+msgstr "Aktualizácia kamery je zakázaná"
#: src/client/game.cpp
-msgid "ok"
-msgstr ""
+msgid "Camera update enabled"
+msgstr "Aktualizácia kamery je aktivovaná"
#: src/client/game.cpp
-msgid "Fly mode enabled"
-msgstr ""
+msgid "Change Password"
+msgstr "Zmeniť heslo"
#: src/client/game.cpp
-msgid "Fly mode enabled (note: no 'fly' privilege)"
-msgstr ""
+msgid "Cinematic mode disabled"
+msgstr "Filmový režim je zakázaný"
#: src/client/game.cpp
-msgid "Fly mode disabled"
-msgstr ""
+msgid "Cinematic mode enabled"
+msgstr "Filmový režim je aktivovaný"
#: src/client/game.cpp
-msgid "Pitch move mode enabled"
-msgstr ""
+msgid "Client side scripting is disabled"
+msgstr "Skriptovanie na strane klienta je zakázané"
#: src/client/game.cpp
-msgid "Pitch move mode disabled"
-msgstr ""
+msgid "Connecting to server..."
+msgstr "Pripájam sa k serveru..."
#: src/client/game.cpp
-msgid "Fast mode enabled"
-msgstr ""
+msgid "Continue"
+msgstr "PokraÄuj"
#: src/client/game.cpp
-msgid "Fast mode enabled (note: no 'fast' privilege)"
+#, c-format
+msgid ""
+"Controls:\n"
+"- %s: move forwards\n"
+"- %s: move backwards\n"
+"- %s: move left\n"
+"- %s: move right\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
+"- %s: drop item\n"
+"- %s: inventory\n"
+"- Mouse: turn/look\n"
+"- Mouse wheel: select item\n"
+"- %s: chat\n"
msgstr ""
+"Ovládanie:\n"
+"- %s: pohyb vpred\n"
+"- %s: pohyb vzad\n"
+"- %s: pohyb doľava\n"
+"- %s: pohyb doprava\n"
+"- %s: skoÄ/vylez\n"
+"- %s: kop/udri\n"
+"- %s: polož/použi\n"
+"- %s: zakrádaj sa/choÄ dole\n"
+"- %s: odhoÄ vec\n"
+"- %s: inventár\n"
+"- MyÅ¡: otoÄ sa/obzeraj sa\n"
+"- Myš koliesko: zvoľ si vec\n"
+"- %s: komunikácia\n"
#: src/client/game.cpp
-msgid "Fast mode disabled"
-msgstr ""
+msgid "Creating client..."
+msgstr "Vytváram klienta..."
#: src/client/game.cpp
-msgid "Noclip mode enabled"
-msgstr ""
+msgid "Creating server..."
+msgstr "Vytváram server..."
#: src/client/game.cpp
-msgid "Noclip mode enabled (note: no 'noclip' privilege)"
-msgstr ""
+msgid "Debug info and profiler graph hidden"
+msgstr "Ladiace informácie a Profilový graf sú skryté"
#: src/client/game.cpp
-msgid "Noclip mode disabled"
-msgstr ""
+msgid "Debug info shown"
+msgstr "Ladiace informácie zobrazené"
#: src/client/game.cpp
-msgid "Cinematic mode enabled"
-msgstr ""
+msgid "Debug info, profiler graph, and wireframe hidden"
+msgstr "Ladiace informácie, Profilový graf a Obrysy sú skryté"
#: src/client/game.cpp
-msgid "Cinematic mode disabled"
+msgid ""
+"Default Controls:\n"
+"No menu visible:\n"
+"- single tap: button activate\n"
+"- double tap: place/use\n"
+"- slide finger: look around\n"
+"Menu/Inventory visible:\n"
+"- double tap (outside):\n"
+" -->close\n"
+"- touch stack, touch slot:\n"
+" --> move stack\n"
+"- touch&drag, tap 2nd finger\n"
+" --> place single item to slot\n"
msgstr ""
+"Štandardné ovládanie:\n"
+"Menu nie je zobrazené:\n"
+"- jeden klik: tlaÄidlo aktivuj\n"
+"- dvojklik: polož/použi\n"
+"- posun prstom: pozeraj sa dookola\n"
+"Menu/Inventár je zobrazené/ý:\n"
+"- dvojklik (mimo):\n"
+" -->zatvor\n"
+"- klik na kôpku, klik na pozíciu:\n"
+" --> presuň kôpku \n"
+"- chyť a prenes, klik druhým prstom\n"
+" --> polož jednu vec na pozíciu\n"
#: src/client/game.cpp
-msgid "Automatic forward enabled"
-msgstr ""
+msgid "Disabled unlimited viewing range"
+msgstr "Neobmedzená dohľadnosť je zakázaná"
#: src/client/game.cpp
-msgid "Automatic forward disabled"
-msgstr ""
+msgid "Enabled unlimited viewing range"
+msgstr "Neobmedzená dohľadnosť je aktivovaná"
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
+msgid "Exit to Menu"
+msgstr "Návrat do menu"
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
+msgid "Exit to OS"
+msgstr "UkonÄiÅ¥ hru"
#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
+msgid "Fast mode disabled"
+msgstr "Rýchly režim je zakázaný"
#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
+msgid "Fast mode enabled"
+msgstr "Rýchly režim je aktívny"
#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
+msgid "Fast mode enabled (note: no 'fast' privilege)"
+msgstr "Rýchly režim je aktivovaný (poznámka: chýba právo 'fast')"
#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
+msgid "Fly mode disabled"
+msgstr "Režim lietania je zakázaný"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
+msgid "Fly mode enabled"
+msgstr "Režim lietania je aktívny"
#: src/client/game.cpp
-msgid "Minimap currently disabled by game or mod"
-msgstr ""
+msgid "Fly mode enabled (note: no 'fly' privilege)"
+msgstr "Režim lietania je aktívny (poznámka: chýba právo 'fly')"
#: src/client/game.cpp
msgid "Fog disabled"
-msgstr ""
+msgstr "Hmla je vypnutá"
#: src/client/game.cpp
msgid "Fog enabled"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Debug info shown"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Profiler graph shown"
-msgstr ""
+msgstr "Hmla je aktivovaná"
#: src/client/game.cpp
-msgid "Wireframe shown"
-msgstr ""
+msgid "Game info:"
+msgstr "Informácie o hre:"
#: src/client/game.cpp
-msgid "Debug info, profiler graph, and wireframe hidden"
-msgstr ""
+msgid "Game paused"
+msgstr "Hra je pozastavená"
#: src/client/game.cpp
-msgid "Debug info and profiler graph hidden"
-msgstr ""
+msgid "Hosting server"
+msgstr "Beží server"
#: src/client/game.cpp
-msgid "Camera update disabled"
-msgstr ""
+msgid "Item definitions..."
+msgstr "Definície vecí..."
#: src/client/game.cpp
-msgid "Camera update enabled"
-msgstr ""
+msgid "KiB/s"
+msgstr "KiB/s"
#: src/client/game.cpp
-#, c-format
-msgid "Viewing range is at maximum: %d"
-msgstr ""
+msgid "Media..."
+msgstr "Média..."
#: src/client/game.cpp
-#, c-format
-msgid "Viewing range changed to %d"
-msgstr ""
+msgid "MiB/s"
+msgstr "MiB/s"
#: src/client/game.cpp
-#, c-format
-msgid "Viewing range is at minimum: %d"
-msgstr ""
+msgid "Minimap currently disabled by game or mod"
+msgstr "Minimapa je aktuálne zakázaná hrou, alebo rozšírením"
#: src/client/game.cpp
-msgid "Enabled unlimited viewing range"
-msgstr ""
+msgid "Noclip mode disabled"
+msgstr "Režim prechádzania stenami je zakázaný"
#: src/client/game.cpp
-msgid "Disabled unlimited viewing range"
-msgstr ""
+msgid "Noclip mode enabled"
+msgstr "Režim prechádzania stenami je aktivovaný"
#: src/client/game.cpp
-msgid "Zoom currently disabled by game or mod"
+msgid "Noclip mode enabled (note: no 'noclip' privilege)"
msgstr ""
+"Režim prechádzania stenami je aktivovaný (poznámka: chýba právo 'noclip')"
#: src/client/game.cpp
-msgid ""
-"Default Controls:\n"
-"No menu visible:\n"
-"- single tap: button activate\n"
-"- double tap: place/use\n"
-"- slide finger: look around\n"
-"Menu/Inventory visible:\n"
-"- double tap (outside):\n"
-" -->close\n"
-"- touch stack, touch slot:\n"
-" --> move stack\n"
-"- touch&drag, tap 2nd finger\n"
-" --> place single item to slot\n"
-msgstr ""
+msgid "Node definitions..."
+msgstr "Definície kocky..."
#: src/client/game.cpp
-#, c-format
-msgid ""
-"Controls:\n"
-"- %s: move forwards\n"
-"- %s: move backwards\n"
-"- %s: move left\n"
-"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
-"- %s: drop item\n"
-"- %s: inventory\n"
-"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
-"- Mouse wheel: select item\n"
-"- %s: chat\n"
-msgstr ""
+msgid "Off"
+msgstr "Vypnutý"
#: src/client/game.cpp
-msgid "Continue"
-msgstr ""
+msgid "On"
+msgstr "Aktívny"
#: src/client/game.cpp
-msgid "Change Password"
-msgstr ""
+msgid "Pitch move mode disabled"
+msgstr "Režim pohybu podľa sklonu je zakázaný"
#: src/client/game.cpp
-msgid "Game paused"
-msgstr ""
+msgid "Pitch move mode enabled"
+msgstr "Režim pohybu podľa sklonu je aktívny"
#: src/client/game.cpp
-msgid "Sound Volume"
-msgstr ""
+msgid "Profiler graph shown"
+msgstr "Profilový graf je zobrazený"
#: src/client/game.cpp
-msgid "Exit to Menu"
-msgstr ""
+msgid "Remote server"
+msgstr "Vzdialený server"
#: src/client/game.cpp
-msgid "Exit to OS"
-msgstr ""
+msgid "Resolving address..."
+msgstr "Prekladám adresu..."
#: src/client/game.cpp
-msgid "Game info:"
-msgstr ""
+msgid "Shutting down..."
+msgstr "Vypínam..."
#: src/client/game.cpp
-msgid "- Mode: "
-msgstr ""
+msgid "Singleplayer"
+msgstr "Hra pre jedného hráÄa"
#: src/client/game.cpp
-msgid "Remote server"
-msgstr ""
+msgid "Sound Volume"
+msgstr "Hlasitosť"
#: src/client/game.cpp
-msgid "- Address: "
-msgstr ""
+msgid "Sound muted"
+msgstr "Zvuk je stlmený"
#: src/client/game.cpp
-msgid "Hosting server"
-msgstr ""
+msgid "Sound system is disabled"
+msgstr "Zvukový systém je zakázaný"
#: src/client/game.cpp
-msgid "- Port: "
-msgstr ""
+msgid "Sound system is not supported on this build"
+msgstr "Zvukový systém nie je podporovaný v tomto zostavení"
#: src/client/game.cpp
-msgid "Singleplayer"
-msgstr ""
+msgid "Sound unmuted"
+msgstr "Zvuk je obnovený"
#: src/client/game.cpp
-msgid "On"
-msgstr ""
+#, c-format
+msgid "Viewing range changed to %d"
+msgstr "Dohľadnosť je zmenená na %d"
#: src/client/game.cpp
-msgid "Off"
-msgstr ""
+#, c-format
+msgid "Viewing range is at maximum: %d"
+msgstr "Dohľadnosť je na maxime: %d"
#: src/client/game.cpp
-msgid "- Damage: "
-msgstr ""
+#, c-format
+msgid "Viewing range is at minimum: %d"
+msgstr "Dohľadnosť je na minime: %d"
#: src/client/game.cpp
-msgid "- Creative Mode: "
-msgstr ""
+#, c-format
+msgid "Volume changed to %d%%"
+msgstr "Hlasitosť zmenená na %d%%"
-#. ~ PvP = Player versus Player
#: src/client/game.cpp
-msgid "- PvP: "
-msgstr ""
+msgid "Wireframe shown"
+msgstr "Obrysy zobrazené"
#: src/client/game.cpp
-msgid "- Public: "
-msgstr ""
+msgid "Zoom currently disabled by game or mod"
+msgstr "ZväÄÅ¡enie je zakázané hrou, alebo rozšírením"
#: src/client/game.cpp
-msgid "- Server Name: "
-msgstr ""
+msgid "ok"
+msgstr "ok"
-#: src/client/game.cpp
-msgid ""
-"\n"
-"Check debug.txt for details."
-msgstr ""
+#: src/client/gameui.cpp
+msgid "Chat hidden"
+msgstr "KomunikaÄná konzola je skrytá"
#: src/client/gameui.cpp
msgid "Chat shown"
-msgstr ""
+msgstr "KomunikaÄná konzola je zobrazená"
#: src/client/gameui.cpp
-msgid "Chat hidden"
-msgstr ""
+msgid "HUD hidden"
+msgstr "HUD je skryrý"
#: src/client/gameui.cpp
msgid "HUD shown"
-msgstr ""
+msgstr "HUD je zobrazený"
#: src/client/gameui.cpp
-msgid "HUD hidden"
-msgstr ""
+msgid "Profiler hidden"
+msgstr "Profilovanie je skryté"
#: src/client/gameui.cpp
#, c-format
msgid "Profiler shown (page %d of %d)"
-msgstr ""
-
-#: src/client/gameui.cpp
-msgid "Profiler hidden"
-msgstr ""
+msgstr "Profilovanie je zobrazené (strana %d z %d)"
#: src/client/keycode.cpp
-msgid "Left Button"
-msgstr ""
+msgid "Apps"
+msgstr "Aplikácie"
#: src/client/keycode.cpp
-msgid "Right Button"
-msgstr ""
+msgid "Backspace"
+msgstr "Backspace"
#: src/client/keycode.cpp
-msgid "Middle Button"
-msgstr ""
+msgid "Caps Lock"
+msgstr "Caps Lock"
#: src/client/keycode.cpp
-msgid "X Button 1"
-msgstr ""
+msgid "Clear"
+msgstr "Zmaž"
#: src/client/keycode.cpp
-msgid "X Button 2"
-msgstr ""
+msgid "Control"
+msgstr "CTRL"
#: src/client/keycode.cpp
-msgid "Backspace"
-msgstr ""
+msgid "Down"
+msgstr "Dole"
#: src/client/keycode.cpp
-msgid "Tab"
-msgstr ""
+msgid "End"
+msgstr "End"
#: src/client/keycode.cpp
-msgid "Clear"
-msgstr ""
+msgid "Erase EOF"
+msgstr "Zmaž EOF"
#: src/client/keycode.cpp
-msgid "Return"
-msgstr ""
+msgid "Execute"
+msgstr "Spustiť"
#: src/client/keycode.cpp
-msgid "Shift"
-msgstr ""
+msgid "Help"
+msgstr "Pomoc"
#: src/client/keycode.cpp
-msgid "Control"
-msgstr ""
+msgid "Home"
+msgstr "Home"
-#. ~ Key name, common on Windows keyboards
#: src/client/keycode.cpp
-msgid "Menu"
-msgstr ""
+msgid "IME Accept"
+msgstr "IME Súhlas"
#: src/client/keycode.cpp
-msgid "Pause"
-msgstr ""
+msgid "IME Convert"
+msgstr "IME Konvertuj"
#: src/client/keycode.cpp
-msgid "Caps Lock"
-msgstr ""
+msgid "IME Escape"
+msgstr "IME Escape"
#: src/client/keycode.cpp
-msgid "Space"
-msgstr ""
+msgid "IME Mode Change"
+msgstr "IME Zmena módu"
#: src/client/keycode.cpp
-msgid "Page up"
-msgstr ""
+msgid "IME Nonconvert"
+msgstr "IME Nekonvertuj"
#: src/client/keycode.cpp
-msgid "Page down"
-msgstr ""
+msgid "Insert"
+msgstr "Vlož"
-#: src/client/keycode.cpp
-msgid "End"
-msgstr ""
+#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
+msgid "Left"
+msgstr "Vľavo"
#: src/client/keycode.cpp
-msgid "Home"
-msgstr ""
+msgid "Left Button"
+msgstr "Ľavé tlaÄítko"
-#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
-msgid "Left"
-msgstr ""
+#: src/client/keycode.cpp
+msgid "Left Control"
+msgstr "Ľavý CRTL"
#: src/client/keycode.cpp
-msgid "Up"
-msgstr ""
+msgid "Left Menu"
+msgstr "Ľavé Menu"
-#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
-msgid "Right"
-msgstr ""
+#: src/client/keycode.cpp
+msgid "Left Shift"
+msgstr "Ľavý Shift"
#: src/client/keycode.cpp
-msgid "Down"
-msgstr ""
+msgid "Left Windows"
+msgstr "Ľavá klávesa Windows"
-#. ~ Key name
+#. ~ Key name, common on Windows keyboards
#: src/client/keycode.cpp
-msgid "Select"
-msgstr ""
+msgid "Menu"
+msgstr "Menu"
-#. ~ "Print screen" key
#: src/client/keycode.cpp
-msgid "Print"
-msgstr ""
+msgid "Middle Button"
+msgstr "Stredné tlaÄítko"
#: src/client/keycode.cpp
-msgid "Execute"
-msgstr ""
+msgid "Num Lock"
+msgstr "Num Lock"
#: src/client/keycode.cpp
-msgid "Snapshot"
-msgstr ""
+msgid "Numpad *"
+msgstr "Numerická klávesnica *"
#: src/client/keycode.cpp
-msgid "Insert"
-msgstr ""
+msgid "Numpad +"
+msgstr "Numerická klávesnica +"
#: src/client/keycode.cpp
-msgid "Help"
-msgstr ""
+msgid "Numpad -"
+msgstr "Numerická klávesnica -"
#: src/client/keycode.cpp
-msgid "Left Windows"
-msgstr ""
+msgid "Numpad ."
+msgstr "Numerická klávesnica ."
#: src/client/keycode.cpp
-msgid "Right Windows"
-msgstr ""
+msgid "Numpad /"
+msgstr "Numerická klávesnica /"
#: src/client/keycode.cpp
msgid "Numpad 0"
-msgstr ""
+msgstr "Numerická klávesnica 0"
#: src/client/keycode.cpp
msgid "Numpad 1"
-msgstr ""
+msgstr "Numerická klávesnica 1"
#: src/client/keycode.cpp
msgid "Numpad 2"
-msgstr ""
+msgstr "Numerická klávesnica 2"
#: src/client/keycode.cpp
msgid "Numpad 3"
-msgstr ""
+msgstr "Numerická klávesnica 3"
#: src/client/keycode.cpp
msgid "Numpad 4"
-msgstr ""
+msgstr "Numerická klávesnica 4"
#: src/client/keycode.cpp
msgid "Numpad 5"
-msgstr ""
+msgstr "Numerická klávesnica 5"
#: src/client/keycode.cpp
msgid "Numpad 6"
-msgstr ""
+msgstr "Numerická klávesnica 6"
#: src/client/keycode.cpp
msgid "Numpad 7"
-msgstr ""
+msgstr "Numerická klávesnica 7"
#: src/client/keycode.cpp
msgid "Numpad 8"
-msgstr ""
+msgstr "Numerická klávesnica 8"
#: src/client/keycode.cpp
msgid "Numpad 9"
-msgstr ""
+msgstr "Numerická klávesnica 9"
#: src/client/keycode.cpp
-msgid "Numpad *"
-msgstr ""
+msgid "OEM Clear"
+msgstr "OEM Clear"
#: src/client/keycode.cpp
-msgid "Numpad +"
-msgstr ""
+msgid "Page down"
+msgstr "Page down"
#: src/client/keycode.cpp
-msgid "Numpad ."
-msgstr ""
+msgid "Page up"
+msgstr "Page up"
#: src/client/keycode.cpp
-msgid "Numpad -"
-msgstr ""
+msgid "Pause"
+msgstr "Pause"
#: src/client/keycode.cpp
-msgid "Numpad /"
-msgstr ""
+msgid "Play"
+msgstr "Hraj"
+#. ~ "Print screen" key
#: src/client/keycode.cpp
-msgid "Num Lock"
-msgstr ""
+msgid "Print"
+msgstr "PrtSc"
#: src/client/keycode.cpp
-msgid "Scroll Lock"
-msgstr ""
+msgid "Return"
+msgstr "Enter"
+
+#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
+msgid "Right"
+msgstr "Vpravo"
#: src/client/keycode.cpp
-msgid "Left Shift"
-msgstr ""
+msgid "Right Button"
+msgstr "Pravé tlaÄítko"
#: src/client/keycode.cpp
-msgid "Right Shift"
-msgstr ""
+msgid "Right Control"
+msgstr "Pravý CRTL"
#: src/client/keycode.cpp
-msgid "Left Control"
-msgstr ""
+msgid "Right Menu"
+msgstr "Pravé Menu"
#: src/client/keycode.cpp
-msgid "Right Control"
-msgstr ""
+msgid "Right Shift"
+msgstr "Pravý Shift"
#: src/client/keycode.cpp
-msgid "Left Menu"
-msgstr ""
+msgid "Right Windows"
+msgstr "Pravá klávesa Windows"
#: src/client/keycode.cpp
-msgid "Right Menu"
-msgstr ""
+msgid "Scroll Lock"
+msgstr "Scroll Lock"
+#. ~ Key name
#: src/client/keycode.cpp
-msgid "IME Escape"
-msgstr ""
+msgid "Select"
+msgstr "Vybrať"
#: src/client/keycode.cpp
-msgid "IME Convert"
-msgstr ""
+msgid "Shift"
+msgstr "Shift"
#: src/client/keycode.cpp
-msgid "IME Nonconvert"
-msgstr ""
+msgid "Sleep"
+msgstr "Spánok"
#: src/client/keycode.cpp
-msgid "IME Accept"
-msgstr ""
+msgid "Snapshot"
+msgstr "Snímka"
#: src/client/keycode.cpp
-msgid "IME Mode Change"
-msgstr ""
+msgid "Space"
+msgstr "Medzera"
#: src/client/keycode.cpp
-msgid "Apps"
-msgstr ""
+msgid "Tab"
+msgstr "Tab"
#: src/client/keycode.cpp
-msgid "Sleep"
-msgstr ""
+msgid "Up"
+msgstr "Hore"
#: src/client/keycode.cpp
-msgid "Erase EOF"
-msgstr ""
+msgid "X Button 1"
+msgstr "X tlaÄidlo 1"
#: src/client/keycode.cpp
-msgid "Play"
-msgstr ""
+msgid "X Button 2"
+msgstr "X tlaÄidlo 2"
#: src/client/keycode.cpp src/gui/guiKeyChangeMenu.cpp
msgid "Zoom"
-msgstr ""
+msgstr "Priblíž"
-#: src/client/keycode.cpp
-msgid "OEM Clear"
-msgstr ""
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Minimapa je skrytá"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Minimapa v radarovom režime, priblíženie x%d"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Minimapa v povrchovom režime, priblíženie x%d"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "Minimapa v móde textúry"
+
+#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
+msgid "Passwords do not match!"
+msgstr "Hesla sa nezhodujú!"
+
+#: src/gui/guiConfirmRegistration.cpp
+msgid "Register and Join"
+msgstr "Registrovať a pripojiť sa"
#: src/gui/guiConfirmRegistration.cpp
#, c-format
@@ -1702,196 +1787,195 @@ msgid ""
"Please retype your password and click 'Register and Join' to confirm account "
"creation, or click 'Cancel' to abort."
msgstr ""
-
-#: src/gui/guiConfirmRegistration.cpp
-msgid "Register and Join"
-msgstr ""
-
-#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
-msgid "Passwords do not match!"
-msgstr ""
+"Chystáš sa pripojiť k serveru \"%s\" po prvý krát.\n"
+"Ak budeÅ¡ pokraÄovaÅ¥, bude na tomto serveri vytvorený nový úÄet s tvojimi "
+"údajmi.\n"
+"Zapíš znova prosím svoje heslo a klikni 'Registrovať a pripojiť sa' pre "
+"potvrdenie súhlasu s vytvorením úÄtu, alebo klikni 'ZruÅ¡iÅ¥' pre návrat."
#: src/gui/guiFormSpecMenu.cpp
msgid "Proceed"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
-msgstr ""
+msgstr "PokraÄuj"
#: src/gui/guiKeyChangeMenu.cpp
msgid "\"Special\" = climb down"
-msgstr ""
+msgstr "\"Špeciál\"=šplhaj dole"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Double tap \"jump\" to toggle fly"
-msgstr ""
+msgid "Autoforward"
+msgstr "Automaticky pohyb vpred"
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Automatic jumping"
-msgstr ""
+msgstr "Automatické skákanie"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Key already in use"
-msgstr ""
+msgid "Backward"
+msgstr "Vzad"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "press key"
-msgstr ""
+msgid "Change camera"
+msgstr "Zmeň pohľad"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Forward"
-msgstr ""
+msgid "Chat"
+msgstr "Komunikácia"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Backward"
-msgstr ""
+msgid "Command"
+msgstr "Príkaz"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Special"
-msgstr ""
+msgid "Console"
+msgstr "Konzola"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Jump"
-msgstr ""
+msgid "Dec. range"
+msgstr "Zníž dohľad"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Sneak"
-msgstr ""
+msgid "Dec. volume"
+msgstr "Zníž hlasitosť"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Drop"
-msgstr ""
+msgid "Double tap \"jump\" to toggle fly"
+msgstr "2x stlaÄ \"skok\" pre prepnutie lietania"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inventory"
-msgstr ""
+msgid "Drop"
+msgstr "Zahodiť"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Prev. item"
-msgstr ""
+msgid "Forward"
+msgstr "Vpred"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Next item"
-msgstr ""
+msgid "Inc. range"
+msgstr "Zvýš dohľad"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Change camera"
-msgstr ""
+msgid "Inc. volume"
+msgstr "Zvýš hlasitosť"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle minimap"
-msgstr ""
+msgid "Inventory"
+msgstr "Inventár"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fly"
-msgstr ""
+msgid "Jump"
+msgstr "Skok"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle pitchmove"
-msgstr ""
+msgid "Key already in use"
+msgstr "Klávesa sa už používa"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fast"
+msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
msgstr ""
+"Priradenie kláves. (ak je toto menu rozbité, zmaž zbytoÄnosti z minetest."
+"conf)"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle noclip"
-msgstr ""
+msgid "Local command"
+msgstr "Lokálny príkaz"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Mute"
-msgstr ""
-
-#: src/gui/guiKeyChangeMenu.cpp
-msgid "Dec. volume"
-msgstr ""
+msgstr "Vypni zvuk"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inc. volume"
-msgstr ""
+msgid "Next item"
+msgstr "Ďalšia vec"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Autoforward"
-msgstr ""
+msgid "Prev. item"
+msgstr "Pred. vec"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Chat"
-msgstr ""
+msgid "Range select"
+msgstr "Zmena dohľadu"
#: src/gui/guiKeyChangeMenu.cpp src/settings_translation_file.cpp
msgid "Screenshot"
-msgstr ""
+msgstr "Fotka obrazovky"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Range select"
-msgstr ""
+msgid "Sneak"
+msgstr "Zakrádať sa"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Dec. range"
-msgstr ""
+msgid "Special"
+msgstr "Špeciál"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Inc. range"
-msgstr ""
+msgid "Toggle HUD"
+msgstr "Prepni HUD"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Console"
-msgstr ""
+msgid "Toggle chat log"
+msgstr "Prepni logovanie komunikácie"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Command"
-msgstr ""
+msgid "Toggle fast"
+msgstr "Prepni rýchly režim"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Local command"
-msgstr ""
+msgid "Toggle fly"
+msgstr "Prepni lietanie"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle HUD"
-msgstr ""
+msgid "Toggle fog"
+msgstr "Prepni hmlu"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle chat log"
-msgstr ""
+msgid "Toggle minimap"
+msgstr "Prepni minimapu"
#: src/gui/guiKeyChangeMenu.cpp
-msgid "Toggle fog"
-msgstr ""
+msgid "Toggle noclip"
+msgstr "Prepni režim prechádzania stenami"
-#: src/gui/guiPasswordChange.cpp
-msgid "Old Password"
-msgstr ""
+#: src/gui/guiKeyChangeMenu.cpp
+msgid "Toggle pitchmove"
+msgstr "Prepni režim pohybu podľa sklonu"
+
+#: src/gui/guiKeyChangeMenu.cpp
+msgid "press key"
+msgstr "stlaÄ klávesu"
#: src/gui/guiPasswordChange.cpp
-msgid "New Password"
-msgstr ""
+msgid "Change"
+msgstr "Zmeniť"
#: src/gui/guiPasswordChange.cpp
msgid "Confirm Password"
-msgstr ""
+msgstr "PotvrÄ heslo"
#: src/gui/guiPasswordChange.cpp
-msgid "Change"
-msgstr ""
+msgid "New Password"
+msgstr "Nové heslo"
-#: src/gui/guiVolumeChange.cpp
-msgid "Sound Volume: "
-msgstr ""
+#: src/gui/guiPasswordChange.cpp
+msgid "Old Password"
+msgstr "Staré heslo"
#: src/gui/guiVolumeChange.cpp
msgid "Exit"
-msgstr ""
+msgstr "Odísť"
#: src/gui/guiVolumeChange.cpp
msgid "Muted"
-msgstr ""
+msgstr "Zvuk stlmený"
+
+#: src/gui/guiVolumeChange.cpp
+msgid "Sound Volume: "
+msgstr "Hlasitosť: "
#. ~ Imperative, as in "Enter/type in text".
#. Don't forget the space.
#: src/gui/modalMenu.cpp
msgid "Enter "
-msgstr ""
+msgstr "Vlož "
#. ~ DO NOT TRANSLATE THIS LITERALLY!
#. This is a special string which needs to contain the translation's
@@ -1901,3811 +1985,4470 @@ msgid "LANG_CODE"
msgstr "sk"
#: src/settings_translation_file.cpp
-msgid "Controls"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Build inside player"
+msgid ""
+"(Android) Fixes the position of virtual joystick.\n"
+"If disabled, virtual joystick will center to first-touch's position."
msgstr ""
+"(Android) Zafixuje pozíciu virtuálneho joysticku.\n"
+"Ak je vypnuté, virtuálny joystick sa vycentruje na pozícií prvého dotyku."
#: src/settings_translation_file.cpp
msgid ""
-"If enabled, you can place blocks at the position (feet + eye level) where "
-"you stand.\n"
-"This is helpful when working with nodeboxes in small areas."
+"(Android) Use virtual joystick to trigger \"aux\" button.\n"
+"If enabled, virtual joystick will also tap \"aux\" button when out of main "
+"circle."
msgstr ""
+"(Android) Použije virtuálny joystick na stlaÄenie tlaÄidla \"aux\".\n"
+"Ak je aktivované, virtuálny joystick stlaÄí tlaÄidlo \"aux\" keÄ je mimo "
+"hlavný kruh."
#: src/settings_translation_file.cpp
-msgid "Flying"
+msgid ""
+"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
+"Can be used to move a desired point to (0, 0) to create a\n"
+"suitable spawn point, or to allow 'zooming in' on a desired\n"
+"point by increasing 'scale'.\n"
+"The default is tuned for a suitable spawn point for Mandelbrot\n"
+"sets with default parameters, it may need altering in other\n"
+"situations.\n"
+"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
msgstr ""
+"(X,Y,Z) posun fraktálu od stredu sveta v jednotkách 'mierky'.\n"
+"Môže byť použité pre posun požadovaného bodu do (0, 0) pre\n"
+"vytvorenie vhodného bodu pre ožitie, alebo pre povolenie 'priblíženia'\n"
+"na želaný bod zväÄÅ¡ením 'mierky'.\n"
+"Štandardne je to vyladené na vhodný bod oživenia pre Mandelbrot\n"
+"sadu so štandardnými parametrami, je možné, že bude potrebná úprava\n"
+"v iných situáciach.\n"
+"Rozsah je približne -2 to 2. ZväÄší podľa 'mierky' pre posun v kockách."
#: src/settings_translation_file.cpp
msgid ""
-"Player is able to fly without being affected by gravity.\n"
-"This requires the \"fly\" privilege on the server."
+"(X,Y,Z) scale of fractal in nodes.\n"
+"Actual fractal size will be 2 to 3 times larger.\n"
+"These numbers can be made very large, the fractal does\n"
+"not have to fit inside the world.\n"
+"Increase these to 'zoom' into the detail of the fractal.\n"
+"Default is for a vertically-squashed shape suitable for\n"
+"an island, set all 3 numbers equal for the raw shape."
msgstr ""
+"(X,Y,Z) mierka fraktálu v kockách.\n"
+"SkutoÄná veľkosÅ¥ fraktálu bude 2 až 3 krát väÄÅ¡ia.\n"
+"Tieto Äísla môžu byÅ¥ veľmi veľké, fraktál sa nemusí\n"
+"zmestiť do sveta.\n"
+"Zvýš pre 'priblíženie' detailu fraktálu.\n"
+"Å tandardne je vertikálne stlaÄený tvar vhodný pre\n"
+"ostrov, nastav vÅ¡etky 3 Äísla rovnaké pre nezmenený tvar."
#: src/settings_translation_file.cpp
-msgid "Pitch move mode"
-msgstr ""
+msgid "2D noise that controls the shape/size of ridged mountains."
+msgstr "2D šum, ktorý riadi tvar/veľkosť hrebeňa hôr."
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled, makes move directions relative to the player's pitch when flying "
-"or swimming."
-msgstr ""
+msgid "2D noise that controls the shape/size of rolling hills."
+msgstr "2D šum, ktorý riadi tvar/veľkosť vlnitosti kopcov."
#: src/settings_translation_file.cpp
-msgid "Fast movement"
-msgstr ""
+msgid "2D noise that controls the shape/size of step mountains."
+msgstr "2D šum, ktorý riadi tvar/veľkosť horských stepí."
#: src/settings_translation_file.cpp
-msgid ""
-"Fast movement (via the \"special\" key).\n"
-"This requires the \"fast\" privilege on the server."
-msgstr ""
+msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
+msgstr "2D šum, ktorý riadi veľkosť/výskyt hrebeňa kopcov."
#: src/settings_translation_file.cpp
-msgid "Noclip"
-msgstr ""
+msgid "2D noise that controls the size/occurrence of rolling hills."
+msgstr "2D šum, ktorý riadi veľkosť/výskyt zvlnenia kopcov."
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled together with fly mode, player is able to fly through solid "
-"nodes.\n"
-"This requires the \"noclip\" privilege on the server."
-msgstr ""
+msgid "2D noise that controls the size/occurrence of step mountain ranges."
+msgstr "2D šum, ktorý riadi veľkosť/výskyt horských stepí."
#: src/settings_translation_file.cpp
-msgid "Cinematic mode"
-msgstr ""
+msgid "2D noise that locates the river valleys and channels."
+msgstr "2D Å¡um, ktorý urÄuje údolia a kanály riek."
#: src/settings_translation_file.cpp
-msgid ""
-"Smooths camera when looking around. Also called look or mouse smoothing.\n"
-"Useful for recording videos."
-msgstr ""
+msgid "3D clouds"
+msgstr "3D mraky"
#: src/settings_translation_file.cpp
-msgid "Camera smoothing"
-msgstr ""
+msgid "3D mode"
+msgstr "3D režim"
#: src/settings_translation_file.cpp
-msgid "Smooths rotation of camera. 0 to disable."
-msgstr ""
+msgid "3D mode parallax strength"
+msgstr "3D režim stupeň paralaxy"
#: src/settings_translation_file.cpp
-msgid "Camera smoothing in cinematic mode"
-msgstr ""
+msgid "3D noise defining giant caverns."
+msgstr "3D šum definujúci gigantické dutiny/jaskyne."
#: src/settings_translation_file.cpp
-msgid "Smooths rotation of camera in cinematic mode. 0 to disable."
+msgid ""
+"3D noise defining mountain structure and height.\n"
+"Also defines structure of floatland mountain terrain."
msgstr ""
+"3D šum definujúci štruktúru a výšku hôr.\n"
+"Takisto definuje štruktúru pohorí lietajúcich pevnín."
#: src/settings_translation_file.cpp
-msgid "Invert mouse"
+msgid ""
+"3D noise defining structure of floatlands.\n"
+"If altered from the default, the noise 'scale' (0.7 by default) may need\n"
+"to be adjusted, as floatland tapering functions best when this noise has\n"
+"a value range of approximately -2.0 to 2.0."
msgstr ""
+"3D šum definujúci štruktúru lietajúcich pevnín.\n"
+"Ak je zmenený zo štandardného, 'mierka' šumu (štandardne 0.7) môže\n"
+"potrebovaÅ¥ nastavenie, keÄže zoÅ¡picaÅ¥ovanie lietajúcej pevniny funguje "
+"najlepšie,\n"
+"keÄ tento Å¡um má hodnotu približne v rozsahu -2.0 až 2.0."
#: src/settings_translation_file.cpp
-msgid "Invert vertical mouse movement."
-msgstr ""
+msgid "3D noise defining structure of river canyon walls."
+msgstr "3D šum definujúci štruktúru stien kaňona rieky."
#: src/settings_translation_file.cpp
-msgid "Mouse sensitivity"
-msgstr ""
+msgid "3D noise defining terrain."
+msgstr "3D šum definujúci terén."
#: src/settings_translation_file.cpp
-msgid "Mouse sensitivity multiplier."
-msgstr ""
+msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
+msgstr "3D Å¡um pre previsy, útesy, atÄ. hôr. Obvykle malé odchýlky."
#: src/settings_translation_file.cpp
-msgid "Special key for climbing/descending"
-msgstr ""
+msgid "3D noise that determines number of dungeons per mapchunk."
+msgstr "3D Å¡um definujúci poÄet kobiek na ÄasÅ¥ mapy (mapchunk)."
#: src/settings_translation_file.cpp
msgid ""
-"If enabled, \"special\" key instead of \"sneak\" key is used for climbing "
-"down and\n"
-"descending."
+"3D support.\n"
+"Currently supported:\n"
+"- none: no 3d output.\n"
+"- anaglyph: cyan/magenta color 3d.\n"
+"- interlaced: odd/even line based polarisation screen support.\n"
+"- topbottom: split screen top/bottom.\n"
+"- sidebyside: split screen side by side.\n"
+"- crossview: Cross-eyed 3d\n"
+"- pageflip: quadbuffer based 3d.\n"
+"Note that the interlaced mode requires shaders to be enabled."
msgstr ""
+"Podpora 3D.\n"
+"Aktuálne sú podporované:\n"
+"- none: žiaden 3D režim.\n"
+"- anaglyph: tyrkysovo/purpurová farba 3D.\n"
+"- interlaced: podpora polarizácie založenej na párnych/nepárnych riadkoch "
+"obrazu.\n"
+"- topbottom: rozdelená obrazovka hore/dole.\n"
+"- sidebyside: rozdelená obrazovka vedľa seba.\n"
+"- crossview: 3D prekrížených oÄí (Cross-eyed)\n"
+"- pageflip: 3D založené na quadbuffer\n"
+"Režim interlaced požaduje, aby boli aktivované shadery."
#: src/settings_translation_file.cpp
-msgid "Double tap jump for fly"
+msgid ""
+"A chosen map seed for a new map, leave empty for random.\n"
+"Will be overridden when creating a new world in the main menu."
msgstr ""
+"Zvolené semienko pre novú mapu, ponechaj prázdne pre náhodné.\n"
+"Pri vytvorení nového sveta z hlavného menu, bude prepísané."
#: src/settings_translation_file.cpp
-msgid "Double-tapping the jump key toggles fly mode."
-msgstr ""
+msgid "A message to be displayed to all clients when the server crashes."
+msgstr "Správa, ktorá sa zobrazí všetkým klientom pri páde servera."
#: src/settings_translation_file.cpp
-msgid "Always fly and fast"
-msgstr ""
+msgid "A message to be displayed to all clients when the server shuts down."
+msgstr "Správa, ktorá sa zobrazí vÅ¡etkým klientom, keÄ sa server vypína."
#: src/settings_translation_file.cpp
-msgid ""
-"If disabled, \"special\" key is used to fly fast if both fly and fast mode "
-"are\n"
-"enabled."
-msgstr ""
+msgid "ABM interval"
+msgstr "ABM interval"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
+msgid "ABM time budget"
+msgstr "Vyhradená doba ABM"
#: src/settings_translation_file.cpp
-msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
-msgstr ""
+msgid "Absolute limit of queued blocks to emerge"
+msgstr "Absolútny limit kociek vo fronte"
#: src/settings_translation_file.cpp
-msgid "Automatically jump up single-node obstacles."
-msgstr ""
+msgid "Acceleration in air"
+msgstr "Zrýchlenie vo vzduchu"
#: src/settings_translation_file.cpp
-msgid "Safe digging and placing"
-msgstr ""
+msgid "Acceleration of gravity, in nodes per second per second."
+msgstr "GravitaÄné zrýchlenie, v kockách za sekundu na druhú."
#: src/settings_translation_file.cpp
-msgid ""
-"Prevent digging and placing from repeating when holding the mouse buttons.\n"
-"Enable this when you dig or place too often by accident."
-msgstr ""
+msgid "Active Block Modifiers"
+msgstr "Aktívne modifikátory blokov (ABM)"
#: src/settings_translation_file.cpp
-msgid "Random input"
-msgstr ""
+msgid "Active block management interval"
+msgstr "Riadiaci interval aktívnych blokov"
#: src/settings_translation_file.cpp
-msgid "Enable random user input (only used for testing)."
-msgstr ""
+msgid "Active block range"
+msgstr "Rozsah aktívnych blokov"
#: src/settings_translation_file.cpp
-msgid "Continuous forward"
-msgstr ""
+msgid "Active object send range"
+msgstr "Zasielaný rozsah aktívnych objektov"
#: src/settings_translation_file.cpp
msgid ""
-"Continuous forward movement, toggled by autoforward key.\n"
-"Press the autoforward key again or the backwards movement to disable."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Touch screen threshold"
+"Address to connect to.\n"
+"Leave this blank to start a local server.\n"
+"Note that the address field in the main menu overrides this setting."
msgstr ""
+"Adresa pre pripojenie sa.\n"
+"Ponechaj prázdne pre spustenie lokálneho servera.\n"
+"Adresné políÄko v hlavnom menu prepíše toto nastavenie."
#: src/settings_translation_file.cpp
-msgid "The length in pixels it takes for touch screen interaction to start."
-msgstr ""
+msgid "Adds particles when digging a node."
+msgstr "Pridá Äasticové efekty pri vykopávaní kocky."
#: src/settings_translation_file.cpp
-msgid "Fixed virtual joystick"
+msgid ""
+"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
+"screens."
msgstr ""
+"Nastav dpi konfiguráciu podľa svojej obrazovky (nie pre X11/len pre Android) "
+"napr. pre 4k obrazovky."
#: src/settings_translation_file.cpp
+#, c-format
msgid ""
-"(Android) Fixes the position of virtual joystick.\n"
-"If disabled, virtual joystick will center to first-touch's position."
+"Adjusts the density of the floatland layer.\n"
+"Increase value to increase density. Can be positive or negative.\n"
+"Value = 0.0: 50% of volume is floatland.\n"
+"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
+"to be sure) creates a solid floatland layer."
msgstr ""
+"Nastav hustotu vrstvy lietajúcej pevniny.\n"
+"Zvýš hodnotu pre zvýšenie hustoty. Môže byť kladná, alebo záporná.\n"
+"Hodnota = 0.0: 50% objemu je lietajúca pevnina.\n"
+"Hodnota = 2.0 (môže byť vyššie v závislosti od 'mgv7_np_floatland', vždy "
+"otestuj\n"
+"aby si si bol istý) vytvorí pevnú úroveň lietajúcej pevniny."
#: src/settings_translation_file.cpp
-msgid "Virtual joystick triggers aux button"
-msgstr ""
+msgid "Advanced"
+msgstr "PokroÄilé"
#: src/settings_translation_file.cpp
msgid ""
-"(Android) Use virtual joystick to trigger \"aux\" button.\n"
-"If enabled, virtual joystick will also tap \"aux\" button when out of main "
-"circle."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Enable joysticks"
+"Alters the light curve by applying 'gamma correction' to it.\n"
+"Higher values make middle and lower light levels brighter.\n"
+"Value '1.0' leaves the light curve unaltered.\n"
+"This only has significant effect on daylight and artificial\n"
+"light, it has very little effect on natural night light."
msgstr ""
+"Zmení svetelnú krivku aplikovaním 'gamma korekcie'.\n"
+"Vyššie hodnoty robia stredné a nižšie tóny svetlejšími.\n"
+"Hodnota '1.0' ponechá svetelnú krivku nezmenenú.\n"
+"Toto má vplyv len na denné a umelé svetlo,\n"
+"ma len veľmi malý vplyv na prirodzené noÄné svetlo."
#: src/settings_translation_file.cpp
-msgid "Joystick ID"
-msgstr ""
+msgid "Always fly and fast"
+msgstr "Vždy zapnuté lietanie a rýchlosť"
#: src/settings_translation_file.cpp
-msgid "The identifier of the joystick to use"
-msgstr ""
+msgid "Ambient occlusion gamma"
+msgstr "Ambient occlusion gamma"
#: src/settings_translation_file.cpp
-msgid "Joystick type"
-msgstr ""
+msgid "Amount of messages a player may send per 10 seconds."
+msgstr "PoÄet správ, ktoré môže hrÃ¡Ä poslaÅ¥ za 10 sekúnd."
#: src/settings_translation_file.cpp
-msgid "The type of joystick"
-msgstr ""
+msgid "Amplifies the valleys."
+msgstr "ZväÄÅ¡uje údolia."
#: src/settings_translation_file.cpp
-msgid "Joystick button repetition interval"
-msgstr ""
+msgid "Anisotropic filtering"
+msgstr "Anisotropné filtrovanie"
#: src/settings_translation_file.cpp
-msgid ""
-"The time in seconds it takes between repeated events\n"
-"when holding down a joystick button combination."
-msgstr ""
+msgid "Announce server"
+msgstr "Zverejni server"
#: src/settings_translation_file.cpp
-msgid "Joystick frustum sensitivity"
-msgstr ""
+msgid "Announce to this serverlist."
+msgstr "Zverejni v zozname serverov."
#: src/settings_translation_file.cpp
-msgid ""
-"The sensitivity of the joystick axes for moving the\n"
-"ingame view frustum around."
-msgstr ""
+msgid "Append item name"
+msgstr "Pridaj názov položky/veci"
#: src/settings_translation_file.cpp
-msgid "Forward key"
-msgstr ""
+msgid "Append item name to tooltip."
+msgstr "Pridaj názov veci do popisku."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving the player forward.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Apple trees noise"
+msgstr "Šum jabloní"
#: src/settings_translation_file.cpp
-msgid "Backward key"
-msgstr ""
+msgid "Arm inertia"
+msgstr "ZotrvaÄnosÅ¥ ruky"
#: src/settings_translation_file.cpp
msgid ""
-"Key for moving the player backward.\n"
-"Will also disable autoforward, when active.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Arm inertia, gives a more realistic movement of\n"
+"the arm when the camera moves."
msgstr ""
+"ZotrvaÄnosÅ¥ ruky, vytvára realistickejší pohyb ruky\n"
+"pri pohybe kamery."
#: src/settings_translation_file.cpp
-msgid "Left key"
-msgstr ""
+msgid "Ask to reconnect after crash"
+msgstr "Ponúkni obnovu pripojenia po páde"
#: src/settings_translation_file.cpp
msgid ""
-"Key for moving the player left.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"At this distance the server will aggressively optimize which blocks are sent "
+"to\n"
+"clients.\n"
+"Small values potentially improve performance a lot, at the expense of "
+"visible\n"
+"rendering glitches (some blocks will not be rendered under water and in "
+"caves,\n"
+"as well as sometimes on land).\n"
+"Setting this to a value greater than max_block_send_distance disables this\n"
+"optimization.\n"
+"Stated in mapblocks (16 nodes)."
msgstr ""
+"V tento vzdialenosti bude server agresívne optimalizovať, ktoré\n"
+"bloky pošle klientovi.\n"
+"Malé hodnoty potenciálne výrazne zvýšia výkon, za cenu viditeľných\n"
+"chýb renderovania (niektoré bloky nebudú vyrenderované pod vodou a v "
+"jaskyniach,\n"
+"prípadne niekedy aj na súši).\n"
+"Nastavenie hodnoty vyššej ako max_block_send_distance deaktivuje túto\n"
+"optimalizáciu.\n"
+"Udávane v blokoch mapy (16 kociek)."
#: src/settings_translation_file.cpp
-msgid "Right key"
-msgstr ""
+msgid "Automatic forward key"
+msgstr "TlaÄidlo Automatický pohyb vpred"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving the player right.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Automatically jump up single-node obstacles."
+msgstr "Automaticky vyskoÄí na prekážku vysokú jedna kocka."
#: src/settings_translation_file.cpp
-msgid "Jump key"
-msgstr ""
+msgid "Automatically report to the serverlist."
+msgstr "Automaticky zápis do zoznamu serverov."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for jumping.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Autosave screen size"
+msgstr "Pamätať si veľkosť obrazovky"
#: src/settings_translation_file.cpp
-msgid "Sneak key"
-msgstr ""
+msgid "Autoscaling mode"
+msgstr "Režim automatickej zmeny mierky"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for sneaking.\n"
-"Also used for climbing down and descending in water if aux1_descends is "
-"disabled.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Backward key"
+msgstr "TlaÄidlo Vzad"
#: src/settings_translation_file.cpp
-msgid "Inventory key"
-msgstr ""
+msgid "Base ground level"
+msgstr "Základná úroveň dna"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the inventory.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Base terrain height."
+msgstr "Základná výška terénu."
#: src/settings_translation_file.cpp
-msgid "Special key"
-msgstr ""
+msgid "Basic"
+msgstr "Základné"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for moving fast in fast mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Basic privileges"
+msgstr "Základné práva"
#: src/settings_translation_file.cpp
-msgid "Chat key"
-msgstr ""
+msgid "Beach noise"
+msgstr "Šum pláže"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Beach noise threshold"
+msgstr "HraniÄná hodnota Å¡umu pláže"
#: src/settings_translation_file.cpp
-msgid "Command key"
-msgstr ""
+msgid "Bilinear filtering"
+msgstr "Bilineárne filtrovanie"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window to type commands.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Bind address"
+msgstr "Spájacia adresa"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for opening the chat window to type local commands.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Biome API temperature and humidity noise parameters"
+msgstr "Parametre šumu teploty a vlhkosti pre Biome API"
#: src/settings_translation_file.cpp
-msgid "Range select key"
-msgstr ""
+msgid "Biome noise"
+msgstr "Šum biómu"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling unlimited view range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Bits per pixel (aka color depth) in fullscreen mode."
+msgstr "PoÄet bitov na pixel (farebná hĺbka) v režime celej obrazovky."
#: src/settings_translation_file.cpp
-msgid "Fly key"
-msgstr ""
+msgid "Block send optimize distance"
+msgstr "Vzdialenosť pre optimalizáciu posielania blokov"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling flying.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Bold and italic font path"
+msgstr "Cesta k tuÄnému Å¡ikmému písmu"
#: src/settings_translation_file.cpp
-msgid "Pitch move key"
-msgstr ""
+msgid "Bold and italic monospace font path"
+msgstr "Cesta k tuÄnému Å¡ikmému písmu s pevnou šírkou"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling pitch move mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Bold font path"
+msgstr "Cesta k tuÄnému písmu"
#: src/settings_translation_file.cpp
-msgid "Fast key"
-msgstr ""
+msgid "Bold monospace font path"
+msgstr "Cesta k tuÄnému písmu s pevnou šírkou"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling fast mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Build inside player"
+msgstr "Stavanie vnútri hráÄa"
#: src/settings_translation_file.cpp
-msgid "Noclip key"
-msgstr ""
+msgid "Builtin"
+msgstr "Vstavané (Builtin)"
#: src/settings_translation_file.cpp
msgid ""
-"Key for toggling noclip mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Hotbar next key"
+"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
+"Only works on GLES platforms. Most users will not need to change this.\n"
+"Increasing can reduce artifacting on weaker GPUs.\n"
+"0.1 = Default, 0.25 = Good value for weaker tablets."
msgstr ""
+"Vzdialenosť kamery 'blízko orezanej roviny' v kockách, medzi 0 a 0.25\n"
+"Funguje len na GLES platformách. VäÄÅ¡ina toto nepotrebuje meniÅ¥.\n"
+"Zvýšenie môže zredukovať artefakty na slabších GPU.\n"
+"0.1 = Štandardná hodnota, 0.25 = Dobrá hodnota pre slabé tablety."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the next item in the hotbar.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Camera smoothing"
+msgstr "Plynulý pohyb kamery"
#: src/settings_translation_file.cpp
-msgid "Hotbar previous key"
-msgstr ""
+msgid "Camera smoothing in cinematic mode"
+msgstr "Plynulý pohyb kamery vo filmovom režime"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the previous item in the hotbar.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Camera update toggle key"
+msgstr "TlaÄidlo Aktualizácia pohľadu"
#: src/settings_translation_file.cpp
-msgid "Mute key"
-msgstr ""
+msgid "Cave noise"
+msgstr "Å um jaskyne"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for muting the game.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Cave noise #1"
+msgstr "Šum jaskýň #1"
#: src/settings_translation_file.cpp
-msgid "Inc. volume key"
-msgstr ""
+msgid "Cave noise #2"
+msgstr "Šum jaskýň #2"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for increasing the volume.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Cave width"
+msgstr "Šírka jaskyne"
#: src/settings_translation_file.cpp
-msgid "Dec. volume key"
-msgstr ""
+msgid "Cave1 noise"
+msgstr "Cave1 šum"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for decreasing the volume.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Cave2 noise"
+msgstr "Cave2 šum"
#: src/settings_translation_file.cpp
-msgid "Automatic forward key"
-msgstr ""
+msgid "Cavern limit"
+msgstr "Limit dutín"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling autoforward.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Cavern noise"
+msgstr "Šum dutín"
#: src/settings_translation_file.cpp
-msgid "Cinematic mode key"
-msgstr ""
+msgid "Cavern taper"
+msgstr "Zbiehavosť dutín"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling cinematic mode.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Cavern threshold"
+msgstr "HraniÄná hodnota dutín"
#: src/settings_translation_file.cpp
-msgid "Minimap key"
-msgstr ""
+msgid "Cavern upper limit"
+msgstr "Horný limit dutín"
#: src/settings_translation_file.cpp
msgid ""
-"Key for toggling display of minimap.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Center of light curve boost range.\n"
+"Where 0.0 is minimum light level, 1.0 is maximum light level."
msgstr ""
+"Centrum rozsahu zosilnenia svetelnej krivky.\n"
+"Kde 0.0 je minimálna úroveň, 1.0 je maximálna úroveň ."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for taking screenshots.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Chat font size"
+msgstr "VeľkosÅ¥ komunikaÄného písma"
#: src/settings_translation_file.cpp
-msgid "Drop item key"
-msgstr ""
+msgid "Chat key"
+msgstr "TlaÄidlo Komunikácia"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for dropping the currently selected item.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Chat log level"
+msgstr "Úroveň komunikaÄného logu"
#: src/settings_translation_file.cpp
-msgid "View zoom key"
-msgstr ""
+msgid "Chat message count limit"
+msgstr "Limit poÄtu správ"
#: src/settings_translation_file.cpp
-msgid ""
-"Key to use view zoom when possible.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Chat message format"
+msgstr "Formát komunikaÄných správ"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 1 key"
-msgstr ""
+msgid "Chat message kick threshold"
+msgstr "Hranica správ pre vylúÄenie"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the first hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Chat message max length"
+msgstr "Max dĺžka správy"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 2 key"
-msgstr ""
+msgid "Chat toggle key"
+msgstr "TlaÄidlo Prepnutie komunikácie"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the second hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Chatcommands"
+msgstr "KomunikaÄné príkazy"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 3 key"
-msgstr ""
+msgid "Chunk size"
+msgstr "VeľkosÅ¥ Äasti (chunk)"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the third hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Cinematic mode"
+msgstr "Filmový mód"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 4 key"
-msgstr ""
+msgid "Cinematic mode key"
+msgstr "TlaÄidlo Filmový režim"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the fourth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Clean transparent textures"
+msgstr "VyÄisti priehľadné textúry"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 5 key"
-msgstr ""
+msgid "Client"
+msgstr "Klient"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the fifth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Client and Server"
+msgstr "Klient a Server"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 6 key"
-msgstr ""
+msgid "Client modding"
+msgstr "Úpravy (modding) cez klienta"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the sixth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Client side modding restrictions"
+msgstr "Obmedzenia úprav na strane klienta"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 7 key"
-msgstr ""
+msgid "Client side node lookup range restriction"
+msgstr "Obmedzenie vyhľadávania dosahu kociek na strane klienta"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the seventh hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Climbing speed"
+msgstr "Rýchlosť šplhania"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 8 key"
-msgstr ""
+msgid "Cloud radius"
+msgstr "Polomer mrakov"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the eighth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Clouds"
+msgstr "Mraky"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 9 key"
-msgstr ""
+msgid "Clouds are a client side effect."
+msgstr "Mraky sú efektom na strane klienta."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the ninth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Clouds in menu"
+msgstr "Mraky v menu"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 10 key"
-msgstr ""
+msgid "Colored fog"
+msgstr "Farebná hmla"
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the tenth hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Comma-separated list of flags to hide in the content repository.\n"
+"\"nonfree\" can be used to hide packages which do not qualify as 'free "
+"software',\n"
+"as defined by the Free Software Foundation.\n"
+"You can also specify content ratings.\n"
+"These flags are independent from Minetest versions,\n"
+"so see a full list at https://content.minetest.net/help/content_flags/"
msgstr ""
+"Čiarkou oddelený zoznam príznakov, ktoré sa skryjú v zozname doplnkov.\n"
+"\"nonfree\" môže byť využité na skrytie doplnkov, ktoré nie je možné "
+"považovať za 'voľný softvér',\n"
+"tak ako je definovaný Free Software Foundation.\n"
+"Môžeš definovať aj hodnotenie obsahu.\n"
+"Tie to príznaky sú nezávislé od verzie Minetestu,\n"
+"viÄ. aj kompletný zoznam na https://content.minetest.net/help/content_flags/"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 11 key"
+msgid ""
+"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
+"allow them to upload and download data to/from the internet."
msgstr ""
+"Čiarkou oddelený zoznam rozšírení, ktoré majú povolené prístup na HTTP API,\n"
+"ktoré im dovolia posielať a sťahovať dáta z/na internet."
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 11th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Comma-separated list of trusted mods that are allowed to access insecure\n"
+"functions even when mod security is on (via request_insecure_environment())."
msgstr ""
+"Čiarkou oddelený zoznam dôveryhodných rozšírení, ktoré majú povolené\n"
+"nebezpeÄné funkcie aj keÄ je bezpeÄnosÅ¥ rozšírení aktívna (cez "
+"request_insecure_environment())."
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 12 key"
-msgstr ""
+msgid "Command key"
+msgstr "TlaÄidlo Príkaz"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 12th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Connect glass"
+msgstr "Prepojené sklo"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 13 key"
-msgstr ""
+msgid "Connect to external media server"
+msgstr "Pripoj sa na externý média server"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 13th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Connects glass if supported by node."
+msgstr "Prepojí sklo, ak je to podporované kockou."
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 14 key"
-msgstr ""
+msgid "Console alpha"
+msgstr "Priehľadnosť konzoly"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 14th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Console color"
+msgstr "Farba konzoly"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 15 key"
-msgstr ""
+msgid "Console height"
+msgstr "Výška konzoly"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 15th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "ContentDB Flag Blacklist"
+msgstr "Čierna listina príznakov z ContentDB"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 16 key"
-msgstr ""
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "ContentDB Maximum súbežných sťahovaní"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 16th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "ContentDB URL"
+msgstr "Cesta (URL) ku ContentDB"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 17 key"
-msgstr ""
+msgid "Continuous forward"
+msgstr "Neustály pohyb vpred"
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 17th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Continuous forward movement, toggled by autoforward key.\n"
+"Press the autoforward key again or the backwards movement to disable."
msgstr ""
+"Neustály pohyb vpred, prepína sa klávesou pre \"Automatický pohyb vpred\".\n"
+"Opätovne stlaÄ klávesu pre \"Automatický pohyb vpred\", alebo pohyb vzad pre "
+"vypnutie."
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 18 key"
-msgstr ""
+msgid "Controls"
+msgstr "Ovládanie"
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 18th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Controls length of day/night cycle.\n"
+"Examples:\n"
+"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged."
msgstr ""
+"Riadi dĺžku dňa a noci.\n"
+"Príklad:\n"
+"72 = 20min, 360 = 4min, 1 = 24hodín, 0 = deň/noc/Äokoľvek ostáva nezmenený."
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 19 key"
-msgstr ""
+msgid "Controls sinking speed in liquid."
+msgstr "Riadi rýchlosť ponárania v tekutinách."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 19th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Controls steepness/depth of lake depressions."
+msgstr "Riadi strmosť/hĺbku jazier."
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 20 key"
-msgstr ""
+msgid "Controls steepness/height of hills."
+msgstr "Riadi strmosť/výšku kopcov."
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 20th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Controls width of tunnels, a smaller value creates wider tunnels.\n"
+"Value >= 10.0 completely disables generation of tunnels and avoids the\n"
+"intensive noise calculations."
msgstr ""
+"Riadi šírku tunelov, menšia hodnota vytvára širšie tunely.\n"
+"Hodnota >= 10.0 úplne vypne generovanie tunelov, Äím sa vyhne\n"
+"nároÄným prepoÄtom Å¡umu."
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 21 key"
-msgstr ""
+msgid "Crash message"
+msgstr "Správa pri páde"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 21st hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Creative"
+msgstr "Kreatívny režim"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 22 key"
-msgstr ""
+msgid "Crosshair alpha"
+msgstr "PriehľadnosÅ¥ zameriavaÄa"
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 22nd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
+"PriehľadnosÅ¥ zameriavaÄa (nepriehľadnosÅ¥, medzi 0 a 255).\n"
+"Tiež nastavuje farbu objektu zameriavaÄa"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 23 key"
-msgstr ""
+msgid "Crosshair color"
+msgstr "Farba zameriavaÄa"
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 23rd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
+"Farba zameriavaÄa (R,G,B).\n"
+"Nastavuje farbu objektu zameriavaÄa"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 24 key"
-msgstr ""
+msgid "DPI"
+msgstr "DPI"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 24th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Damage"
+msgstr "Zranenie"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 25 key"
-msgstr ""
+msgid "Debug info toggle key"
+msgstr "TlaÄidlo Ladiace informácie"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 25th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Debug log file size threshold"
+msgstr "HraniÄná veľkosÅ¥ ladiaceho log súboru"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 26 key"
-msgstr ""
+msgid "Debug log level"
+msgstr "Úroveň ladiacich info"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 26th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Dec. volume key"
+msgstr "TlaÄidlo Zníž hlasitosÅ¥"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 27 key"
-msgstr ""
+msgid "Decrease this to increase liquid resistance to movement."
+msgstr "Zníž pre spomalenie teÄenia."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 27th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Dedicated server step"
+msgstr "UrÄený krok servera"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 28 key"
-msgstr ""
+msgid "Default acceleration"
+msgstr "Štandardné zrýchlenie"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 28th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Default game"
+msgstr "Štandardná hra"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 29 key"
+msgid ""
+"Default game when creating a new world.\n"
+"This will be overridden when creating a world from the main menu."
msgstr ""
+"Štandardná hra pri vytváraní nového sveta.\n"
+"Toto bude prepísané pri vytvorení nového sveta z hlavného menu."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 29th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Default password"
+msgstr "Štandardné heslo"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 30 key"
-msgstr ""
+msgid "Default privileges"
+msgstr "Štandardné práva"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 30th hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Default report format"
+msgstr "Štandardný formát záznamov"
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 31 key"
-msgstr ""
+msgid "Default stack size"
+msgstr "Štandardná veľkosť kôpky"
#: src/settings_translation_file.cpp
msgid ""
-"Key for selecting the 31st hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Default timeout for cURL, stated in milliseconds.\n"
+"Only has an effect if compiled with cURL."
msgstr ""
+"Å tandardný Äasový rámec pre cURL, zadaný v milisekundách.\n"
+"Má efekt len ak je skompilovaný s cURL."
#: src/settings_translation_file.cpp
-msgid "Hotbar slot 32 key"
-msgstr ""
+msgid "Defines areas where trees have apples."
+msgstr "Definuje oblasti, kde stromy majú jablká."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for selecting the 32nd hotbar slot.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Defines areas with sandy beaches."
+msgstr "Definuje oblasti s pieskovými plážami."
#: src/settings_translation_file.cpp
-msgid "HUD toggle key"
-msgstr ""
+msgid "Defines distribution of higher terrain and steepness of cliffs."
+msgstr "Definuje rozdelenie vyššieho terénu a strmosť útesov."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the HUD.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Defines distribution of higher terrain."
+msgstr "Definuje rozdelenie vyššieho terénu."
#: src/settings_translation_file.cpp
-msgid "Chat toggle key"
-msgstr ""
+msgid "Defines full size of caverns, smaller values create larger caverns."
+msgstr "Definuje plnú šírku dutín, menÅ¡ie hodnoty vytvoria väÄÅ¡ie dutiny."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of chat.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Defines large-scale river channel structure."
+msgstr "Vo veľkom merítku definuje štruktúru kanálov riek."
#: src/settings_translation_file.cpp
-msgid "Large chat console key"
-msgstr ""
+msgid "Defines location and terrain of optional hills and lakes."
+msgstr "Definuje umiestnenie a terén voliteľných kopcov a jazier."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the large chat console.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Defines the base ground level."
+msgstr "Definuje úroveň dna."
#: src/settings_translation_file.cpp
-msgid "Fog toggle key"
-msgstr ""
+msgid "Defines the depth of the river channel."
+msgstr "Definuje hĺbku koryta rieky."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of fog.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
msgstr ""
+"UrÄuje maximálnu vzdialenosÅ¥ zobrazenia hráÄa v blokoch (0 = neobmedzená)."
#: src/settings_translation_file.cpp
-msgid "Camera update toggle key"
-msgstr ""
+msgid "Defines the width of the river channel."
+msgstr "Definuje šírku pre koryto rieky."
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the camera update. Only used for development\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Defines the width of the river valley."
+msgstr "Definuje šírku údolia rieky."
#: src/settings_translation_file.cpp
-msgid "Debug info toggle key"
-msgstr ""
+msgid "Defines tree areas and tree density."
+msgstr "Definuje oblasti so stromami a hustotu stromov."
#: src/settings_translation_file.cpp
msgid ""
-"Key for toggling the display of debug info.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Delay between mesh updates on the client in ms. Increasing this will slow\n"
+"down the rate of mesh updates, thus reducing jitter on slower clients."
msgstr ""
+"Oneskorenie, kým sa Mesh aktualizuje na strane klienta v ms.\n"
+"Zvýšenie spomalí množstvo aktualizácie Mesh objektov, teda zníži chvenie na "
+"pomalších klientoch."
#: src/settings_translation_file.cpp
-msgid "Profiler toggle key"
-msgstr ""
+msgid "Delay in sending blocks after building"
+msgstr "Oneskorenie posielania blokov po výstavbe"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for toggling the display of the profiler. Used for development.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Delay showing tooltips, stated in milliseconds."
+msgstr "Oneskorenie zobrazenia popisku, zadané v milisekundách."
#: src/settings_translation_file.cpp
-msgid "Toggle camera mode key"
-msgstr ""
+msgid "Deprecated Lua API handling"
+msgstr "Zastaralé Lua API spracovanie"
#: src/settings_translation_file.cpp
-msgid ""
-"Key for switching between first- and third-person camera.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
-msgstr ""
+msgid "Depth below which you'll find giant caverns."
+msgstr "Hĺbka pod ktorou nájdeš gigantické dutiny/jaskyne."
#: src/settings_translation_file.cpp
-msgid "View range increase key"
-msgstr ""
+msgid "Depth below which you'll find large caves."
+msgstr "Hĺbka pod ktorou nájdeš veľké jaskyne."
#: src/settings_translation_file.cpp
msgid ""
-"Key for increasing the viewing range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Description of server, to be displayed when players join and in the "
+"serverlist."
msgstr ""
+"Zobrazovaný popis servera, keÄ sa hrÃ¡Ä na server pripojí a v zozname "
+"serverov."
#: src/settings_translation_file.cpp
-msgid "View range decrease key"
-msgstr ""
+msgid "Desert noise threshold"
+msgstr "HraniÄná hodnota Å¡umu púšte"
#: src/settings_translation_file.cpp
msgid ""
-"Key for decreasing the viewing range.\n"
-"See http://irrlicht.sourceforge.net/docu/namespaceirr."
-"html#a54da2a0e231901735e3da1b0edf72eb3"
+"Deserts occur when np_biome exceeds this value.\n"
+"When the 'snowbiomes' flag is enabled, this is ignored."
msgstr ""
+"Púšte sa objavia keÄ np_biome presiahne túto hodnotu.\n"
+"Ak je aktívny príznak 'snowbiomes', tak toto je ignorované."
#: src/settings_translation_file.cpp
-msgid "Graphics"
-msgstr ""
+msgid "Desynchronize block animation"
+msgstr "Nesynchronizuj animáciu blokov"
#: src/settings_translation_file.cpp
-msgid "In-Game"
-msgstr ""
+msgid "Dig key"
+msgstr "TlaÄidlo Kopanie"
#: src/settings_translation_file.cpp
-msgid "Basic"
-msgstr ""
+msgid "Digging particles"
+msgstr "Časticové efekty pri kopaní"
#: src/settings_translation_file.cpp
-msgid "VBO"
-msgstr ""
+msgid "Disable anticheat"
+msgstr "Zakáž anticheat"
#: src/settings_translation_file.cpp
-msgid ""
-"Enable vertex buffer objects.\n"
-"This should greatly improve graphics performance."
-msgstr ""
+msgid "Disallow empty passwords"
+msgstr "Zakáž prázdne heslá"
#: src/settings_translation_file.cpp
-msgid "Fog"
-msgstr ""
+msgid "Domain name of server, to be displayed in the serverlist."
+msgstr "Doménové meno servera, ktoré bude zobrazené v zozname serverov."
#: src/settings_translation_file.cpp
-msgid "Whether to fog out the end of the visible area."
-msgstr ""
+msgid "Double tap jump for fly"
+msgstr "Dvakrát skok pre lietanie"
#: src/settings_translation_file.cpp
-msgid "Leaves style"
-msgstr ""
+msgid "Double-tapping the jump key toggles fly mode."
+msgstr "Dvojnásobné stlaÄenie klávesy pre skok prepne režim lietania."
#: src/settings_translation_file.cpp
-msgid ""
-"Leaves style:\n"
-"- Fancy: all faces visible\n"
-"- Simple: only outer faces, if defined special_tiles are used\n"
-"- Opaque: disable transparency"
-msgstr ""
+msgid "Drop item key"
+msgstr "TlaÄidlo ZahoÄ vec"
#: src/settings_translation_file.cpp
-msgid "Connect glass"
-msgstr ""
+msgid "Dump the mapgen debug information."
+msgstr "Získaj ladiace informácie generátora máp."
#: src/settings_translation_file.cpp
-msgid "Connects glass if supported by node."
-msgstr ""
+msgid "Dungeon maximum Y"
+msgstr "Maximálne Y kobky"
#: src/settings_translation_file.cpp
-msgid "Smooth lighting"
-msgstr ""
+msgid "Dungeon minimum Y"
+msgstr "Minimálne Y kobky"
#: src/settings_translation_file.cpp
-msgid ""
-"Enable smooth lighting with simple ambient occlusion.\n"
-"Disable for speed or for different looks."
-msgstr ""
+msgid "Dungeon noise"
+msgstr "Å um kobky"
#: src/settings_translation_file.cpp
-msgid "Clouds"
+msgid ""
+"Enable IPv6 support (for both client and server).\n"
+"Required for IPv6 connections to work at all."
msgstr ""
+"Aktivuj IPv6 podporu (pre klienta ako i server).\n"
+"Požadované aby IPv6 spojenie vôbec mohlo fungovať."
#: src/settings_translation_file.cpp
-msgid "Clouds are a client side effect."
+msgid ""
+"Enable Lua modding support on client.\n"
+"This support is experimental and API can change."
msgstr ""
+"Aktivuj podporu úprav na klientovi pomocou Lua skriptov.\n"
+"Táto podpora je experimentálna a API sa môže zmeniť."
#: src/settings_translation_file.cpp
-msgid "3D clouds"
-msgstr ""
+msgid "Enable console window"
+msgstr "Aktivuj okno konzoly"
#: src/settings_translation_file.cpp
-msgid "Use 3D cloud look instead of flat."
-msgstr ""
+#, fuzzy
+msgid "Enable creative mode for all players"
+msgstr "Aktivuj kreatívny režim pre novo vytvorené mapy."
#: src/settings_translation_file.cpp
-msgid "Node highlighting"
-msgstr ""
+msgid "Enable joysticks"
+msgstr "Aktivuj joysticky"
#: src/settings_translation_file.cpp
-msgid "Method used to highlight selected object."
-msgstr ""
+msgid "Enable mod channels support."
+msgstr "Aktivuj podporu komunikaÄných kanálov rozšírení (mod channels)."
#: src/settings_translation_file.cpp
-msgid "Digging particles"
-msgstr ""
+msgid "Enable mod security"
+msgstr "Aktivuj rozšírenie pre zabezpeÄenie"
#: src/settings_translation_file.cpp
-msgid "Adds particles when digging a node."
-msgstr ""
+msgid "Enable players getting damage and dying."
+msgstr "Aktivuje aby mohol byÅ¥ hrÃ¡Ä zranený a zomrieÅ¥."
#: src/settings_translation_file.cpp
-msgid "Filtering"
-msgstr ""
+msgid "Enable random user input (only used for testing)."
+msgstr "Aktivuje náhodný užívateľský vstup (používa sa len pre testovanie)."
#: src/settings_translation_file.cpp
-msgid "Mipmapping"
-msgstr ""
+msgid "Enable register confirmation"
+msgstr "Aktivuj potvrdenie registrácie"
#: src/settings_translation_file.cpp
msgid ""
-"Use mip mapping to scale textures. May slightly increase performance,\n"
-"especially when using a high resolution texture pack.\n"
-"Gamma correct downscaling is not supported."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Anisotropic filtering"
+"Enable register confirmation when connecting to server.\n"
+"If disabled, new account will be registered automatically."
msgstr ""
+"Aktivuj potvrdzovanie registrácie pri pripájaní sa k serveru.\n"
+"Ak je zakázané, nové konto sa zaregistruje automaticky."
#: src/settings_translation_file.cpp
-msgid "Use anisotropic filtering when viewing at textures from an angle."
+msgid ""
+"Enable smooth lighting with simple ambient occlusion.\n"
+"Disable for speed or for different looks."
msgstr ""
+"Aktivuj jemné nasvietenie pomocou jednoduchej \"ambient occlusion\".\n"
+"Vypni pre zrýchlenie, alebo iný vzhľad."
#: src/settings_translation_file.cpp
-msgid "Bilinear filtering"
+msgid ""
+"Enable to disallow old clients from connecting.\n"
+"Older clients are compatible in the sense that they will not crash when "
+"connecting\n"
+"to new servers, but they may not support all new features that you are "
+"expecting."
msgstr ""
+"Aktivuj zakázanie pripojenia starých klientov.\n"
+"Starší klienti sú kompatibilný v tom zmysle, že nepadnú pri pripájaní\n"
+"k novým serverom, ale nemusia podporovaÅ¥ nové funkcie, ktoré oÄakávaÅ¡."
#: src/settings_translation_file.cpp
-msgid "Use bilinear filtering when scaling textures."
+msgid ""
+"Enable usage of remote media server (if provided by server).\n"
+"Remote servers offer a significantly faster way to download media (e.g. "
+"textures)\n"
+"when connecting to the server."
msgstr ""
+"Aktivuj použitie vzdialeného média servera (ak je poskytovaný serverom).\n"
+"Vzdialený server poskytuje výrazne rýchlejší spôsob pre sťahovanie médií "
+"(napr. textúr)\n"
+"pri pripojení na server."
#: src/settings_translation_file.cpp
-msgid "Trilinear filtering"
+msgid ""
+"Enable vertex buffer objects.\n"
+"This should greatly improve graphics performance."
msgstr ""
+"Aktivuj \"vertex buffer objects\".\n"
+"Toto by malo viditeľne zvýšiť grafický výkon."
#: src/settings_translation_file.cpp
-msgid "Use trilinear filtering when scaling textures."
+msgid ""
+"Enable view bobbing and amount of view bobbing.\n"
+"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
msgstr ""
+"Aktivuj pohupovanie sa a hodnotu pohupovania.\n"
+"Napr.: 0 pre žiadne pohupovanie; 1.0 pre normálne; 2.0 pre dvojnásobné."
#: src/settings_translation_file.cpp
-msgid "Clean transparent textures"
+msgid ""
+"Enable/disable running an IPv6 server.\n"
+"Ignored if bind_address is set.\n"
+"Needs enable_ipv6 to be enabled."
msgstr ""
+"Aktivuj/vypni IPv6 server.\n"
+"Ignorované, ak je nastavená bind_address .\n"
+"Vyžaduje povolené enable_ipv6."
#: src/settings_translation_file.cpp
msgid ""
-"Filtered textures can blend RGB values with fully-transparent neighbors,\n"
-"which PNG optimizers usually discard, sometimes resulting in a dark or\n"
-"light edge to transparent textures. Apply this filter to clean that up\n"
-"at texture load time."
+"Enables Hable's 'Uncharted 2' filmic tone mapping.\n"
+"Simulates the tone curve of photographic film and how this approximates the\n"
+"appearance of high dynamic range images. Mid-range contrast is slightly\n"
+"enhanced, highlights and shadows are gradually compressed."
msgstr ""
+"Aktivuje Hablov 'Uncharted 2' filmový tone mapping.\n"
+"Simuluje farebnú krivku fotografického filmu a ako sa približuje\n"
+"vzhľadu obrázku s veľkým dynamickým rozsahom. Stredový kontrast je mierne\n"
+"zlepšený, nasvietenie a tiene sú postupne zhustené."
#: src/settings_translation_file.cpp
-msgid "Minimum texture size"
-msgstr ""
+msgid "Enables animation of inventory items."
+msgstr "Aktivuje animáciu vecí v inventári."
#: src/settings_translation_file.cpp
-msgid ""
-"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
-"can be blurred, so automatically upscale them with nearest-neighbor\n"
-"interpolation to preserve crisp pixels. This sets the minimum texture size\n"
-"for the upscaled textures; higher values look sharper, but require more\n"
-"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n"
-"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n"
-"enabled.\n"
-"This is also used as the base node texture size for world-aligned\n"
-"texture autoscaling."
-msgstr ""
+msgid "Enables caching of facedir rotated meshes."
+msgstr "Aktivuje ukladanie tvárou rotovaných Mesh objektov do medzipamäti."
#: src/settings_translation_file.cpp
-msgid "FSAA"
-msgstr ""
+msgid "Enables minimap."
+msgstr "Aktivuje minimapu."
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
+"Enables the sound system.\n"
+"If disabled, this completely disables all sounds everywhere and the in-game\n"
+"sound controls will be non-functional.\n"
+"Changing this setting requires a restart."
msgstr ""
+"Aktivuje zvukový systém.\n"
+"Ak je zakázaný, tak kompletne zakáže všetky zvuky\n"
+"a ovládanie hlasitosti v hre bude nefunkÄné.\n"
+"Zmena tohto nastavenia si vyžaduje reštart hry."
#: src/settings_translation_file.cpp
-msgid "Undersampling"
-msgstr ""
+msgid "Engine profiling data print interval"
+msgstr "Interval tlaÄe profilových dát enginu"
#: src/settings_translation_file.cpp
-msgid ""
-"Undersampling is similar to using a lower screen resolution, but it applies\n"
-"to the game world only, keeping the GUI intact.\n"
-"It should give a significant performance boost at the cost of less detailed "
-"image.\n"
-"Higher values result in a less detailed image."
-msgstr ""
+msgid "Entity methods"
+msgstr "Metódy bytostí"
#: src/settings_translation_file.cpp
msgid ""
-"Shaders allow advanced visual effects and may increase performance on some "
-"video\n"
-"cards.\n"
-"This only works with the OpenGL video backend."
+"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
+"Value = 1.0 creates a uniform, linear tapering.\n"
+"Values > 1.0 create a smooth tapering suitable for the default separated\n"
+"floatlands.\n"
+"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
+"flatter lowlands, suitable for a solid floatland layer."
msgstr ""
+"Exponent zošpicatenia lietajúcej pevniny. Pozmeňuje fungovanie "
+"zošpicatenia.\n"
+"Hodnota = 1.0 vytvorí stále, lineárne zošpicatenie.\n"
+"Hodnoty > 1.0 vytvoria plynulé zošpicatenie, vhodné pre štandardné oddelené\n"
+"lietajúce pevniny.\n"
+"Hodnoty < 1.0 (napríklad 0.25) vytvoria viac vymedzený povrch s\n"
+"rovnejšími nížinami, vhodné ako pevná základná vrstva lietajúcej pevniny."
#: src/settings_translation_file.cpp
-msgid "Shader path"
-msgstr ""
+msgid "FPS when unfocused or paused"
+msgstr "FPS ak je hra nezameraná, alebo pozastavená"
#: src/settings_translation_file.cpp
-msgid ""
-"Path to shader directory. If no path is defined, default location will be "
-"used."
-msgstr ""
+msgid "FSAA"
+msgstr "FSAA"
#: src/settings_translation_file.cpp
-msgid "Filmic tone mapping"
-msgstr ""
+msgid "Factor noise"
+msgstr "Faktor šumu"
#: src/settings_translation_file.cpp
-msgid ""
-"Enables Hable's 'Uncharted 2' filmic tone mapping.\n"
-"Simulates the tone curve of photographic film and how this approximates the\n"
-"appearance of high dynamic range images. Mid-range contrast is slightly\n"
-"enhanced, highlights and shadows are gradually compressed."
-msgstr ""
+msgid "Fall bobbing factor"
+msgstr "Faktor pohupovania sa pri pádu"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
+msgid "Fallback font path"
+msgstr "Cesta k záložnému písmu"
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
+msgid "Fallback font shadow"
+msgstr "Tieň záložného písma"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
+msgid "Fallback font shadow alpha"
+msgstr "Priehľadnosť tieňa záložného fontu"
#: src/settings_translation_file.cpp
-msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
+msgid "Fallback font size"
+msgstr "Veľkosť záložného písma"
#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
+msgid "Fast key"
+msgstr "TlaÄidlo RýchlosÅ¥"
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
+msgid "Fast mode acceleration"
+msgstr "Zrýchlenie v rýchlom režime"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
+msgid "Fast mode speed"
+msgstr "Rýchlosť v rýchlom režime"
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
+msgid "Fast movement"
+msgstr "Rýchly pohyb"
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
+msgid ""
+"Fast movement (via the \"special\" key).\n"
+"This requires the \"fast\" privilege on the server."
msgstr ""
+"Rýchly pohyb (cez \"špeciálnu\" klávesu).\n"
+"Toto si na serveri vyžaduje privilégium \"fast\"."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
+msgid "Field of view"
+msgstr "Zorné pole"
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
+msgid "Field of view in degrees."
+msgstr "Zorné pole v stupňoch."
#: src/settings_translation_file.cpp
msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
+"File in client/serverlist/ that contains your favorite servers displayed in "
+"the\n"
+"Multiplayer Tab."
msgstr ""
+"Súbor v client/serverlist ktorý obsahuje obľúbené servery, ktoré\n"
+"sa zobrazujú v záložke Multiplayer."
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
+msgid "Filler depth"
+msgstr "Hĺbka výplne"
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
+msgid "Filler depth noise"
+msgstr "Šum hĺbky výplne"
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
+msgid "Filmic tone mapping"
+msgstr "Filmový tone mapping"
#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
+msgid ""
+"Filtered textures can blend RGB values with fully-transparent neighbors,\n"
+"which PNG optimizers usually discard, sometimes resulting in a dark or\n"
+"light edge to transparent textures. Apply this filter to clean that up\n"
+"at texture load time."
msgstr ""
+"Filtrované textúry môžu zmiešať svoje RGB hodnoty s plne priehľadnými "
+"susedmi,\n"
+"s PNG optimizérmi obvykle zmazané, niekdy môžu viesť k tmavým oblastiam\n"
+"alebo svetlým rohom na priehľadnej textúre.\n"
+"Aplikuj tento filter na ich vyÄistenie pri nahrávaní textúry."
#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
+msgid "Filtering"
+msgstr "Filtrovanie"
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
+msgid "First of 4 2D noises that together define hill/mountain range height."
+msgstr "Prvý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr."
#: src/settings_translation_file.cpp
-msgid "Waving Nodes"
-msgstr ""
+msgid "First of two 3D noises that together define tunnels."
+msgstr "Prvý z dvoch 3D šumov, ktoré spolu definujú tunely."
#: src/settings_translation_file.cpp
-msgid "Waving liquids"
-msgstr ""
+msgid "Fixed map seed"
+msgstr "Predvolené semienko mapy"
#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving liquids (like water).\n"
-"Requires shaders to be enabled."
-msgstr ""
+msgid "Fixed virtual joystick"
+msgstr "Pevný virtuálny joystick"
#: src/settings_translation_file.cpp
-msgid "Waving liquids wave height"
-msgstr ""
+msgid "Floatland density"
+msgstr "Hustota lietajúcej pevniny"
#: src/settings_translation_file.cpp
-msgid ""
-"The maximum height of the surface of waving liquids.\n"
-"4.0 = Wave height is two nodes.\n"
-"0.0 = Wave doesn't move at all.\n"
-"Default is 1.0 (1/2 node).\n"
-"Requires waving liquids to be enabled."
-msgstr ""
+msgid "Floatland maximum Y"
+msgstr "Maximálne Y lietajúcich pevnín"
#: src/settings_translation_file.cpp
-msgid "Waving liquids wavelength"
-msgstr ""
+msgid "Floatland minimum Y"
+msgstr "Minimálne Y lietajúcich pevnín"
#: src/settings_translation_file.cpp
-msgid ""
-"Length of liquid waves.\n"
-"Requires waving liquids to be enabled."
-msgstr ""
+msgid "Floatland noise"
+msgstr "Šum lietajúcich krajín"
#: src/settings_translation_file.cpp
-msgid "Waving liquids wave speed"
-msgstr ""
+msgid "Floatland taper exponent"
+msgstr "Exponent kužeľovitosti lietajúcej pevniny"
#: src/settings_translation_file.cpp
-msgid ""
-"How fast liquid waves will move. Higher = faster.\n"
-"If negative, liquid waves will move backwards.\n"
-"Requires waving liquids to be enabled."
-msgstr ""
+msgid "Floatland tapering distance"
+msgstr "Vzdialenosť špicatosti lietajúcich krajín"
#: src/settings_translation_file.cpp
-msgid "Waving leaves"
-msgstr ""
+msgid "Floatland water level"
+msgstr "Úroveň vody lietajúcich pevnín"
#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving leaves.\n"
-"Requires shaders to be enabled."
-msgstr ""
+msgid "Fly key"
+msgstr "TlaÄidlo Lietanie"
#: src/settings_translation_file.cpp
-msgid "Waving plants"
-msgstr ""
+msgid "Flying"
+msgstr "Lietanie"
#: src/settings_translation_file.cpp
-msgid ""
-"Set to true to enable waving plants.\n"
-"Requires shaders to be enabled."
-msgstr ""
+msgid "Fog"
+msgstr "Hmla"
#: src/settings_translation_file.cpp
-msgid "Advanced"
-msgstr ""
+msgid "Fog start"
+msgstr "ZaÄiatok hmly"
#: src/settings_translation_file.cpp
-msgid "Arm inertia"
-msgstr ""
+msgid "Fog toggle key"
+msgstr "TlaÄidlo Prepnutie hmly"
#: src/settings_translation_file.cpp
-msgid ""
-"Arm inertia, gives a more realistic movement of\n"
-"the arm when the camera moves."
-msgstr ""
+msgid "Font bold by default"
+msgstr "Å tandardne tuÄné písmo"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS"
-msgstr ""
+msgid "Font italic by default"
+msgstr "Štandardne šikmé písmo"
#: src/settings_translation_file.cpp
-msgid ""
-"If FPS would go higher than this, limit it by sleeping\n"
-"to not waste CPU power for no benefit."
-msgstr ""
+msgid "Font shadow"
+msgstr "Tieň písma"
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr ""
+msgid "Font shadow alpha"
+msgstr "Priehľadnosť tieňa písma"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
-msgstr ""
+msgid "Font size"
+msgstr "Veľkosť písma"
#: src/settings_translation_file.cpp
-msgid "Pause on lost window focus"
-msgstr ""
+msgid "Font size of the default font in point (pt)."
+msgstr "Veľkosť písma štandardného písma v bodoch (pt)."
#: src/settings_translation_file.cpp
-msgid ""
-"Open the pause menu when the window's focus is lost. Does not pause if a "
-"formspec is\n"
-"open."
-msgstr ""
+msgid "Font size of the fallback font in point (pt)."
+msgstr "Veľkosť písma záložného písma v bodoch (pt)."
#: src/settings_translation_file.cpp
-msgid "Viewing range"
-msgstr ""
+msgid "Font size of the monospace font in point (pt)."
+msgstr "Veľkosť písma s pevnou šírkou v bodoch (pt)."
#: src/settings_translation_file.cpp
-msgid "View distance in nodes."
+msgid ""
+"Font size of the recent chat text and chat prompt in point (pt).\n"
+"Value 0 will use the default font size."
msgstr ""
+"VeľkosÅ¥ písma aktuálneho komunikaÄného textu a príkazového riadku v bodoch "
+"(pt).\n"
+"Pri hodnote 0 bude použitá štandardná veľkosť písma."
#: src/settings_translation_file.cpp
-msgid "Near plane"
+msgid ""
+"Format of player chat messages. The following strings are valid "
+"placeholders:\n"
+"@name, @message, @timestamp (optional)"
msgstr ""
+"Formát komunikaÄných správ hráÄa. Nasledujúce reÅ¥azce sú platné zástupné "
+"symboly:\n"
+"@name, @message, @timestamp (voliteľné)"
#: src/settings_translation_file.cpp
-msgid ""
-"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
-"Only works on GLES platforms. Most users will not need to change this.\n"
-"Increasing can reduce artifacting on weaker GPUs.\n"
-"0.1 = Default, 0.25 = Good value for weaker tablets."
-msgstr ""
+msgid "Format of screenshots."
+msgstr "Formát obrázkov snímok obrazovky."
#: src/settings_translation_file.cpp
-msgid "Screen width"
-msgstr ""
+msgid "Formspec Default Background Color"
+msgstr "Formspec štandardná farba pozadia"
#: src/settings_translation_file.cpp
-msgid "Width component of the initial window size."
-msgstr ""
+msgid "Formspec Default Background Opacity"
+msgstr "Formspec štandardná nepriehľadnosť pozadia"
#: src/settings_translation_file.cpp
-msgid "Screen height"
-msgstr ""
+msgid "Formspec Full-Screen Background Color"
+msgstr "Formspec Celo-obrazovková farba pozadia"
#: src/settings_translation_file.cpp
-msgid "Height component of the initial window size."
-msgstr ""
+msgid "Formspec Full-Screen Background Opacity"
+msgstr "Formspec Celo-obrazovková nepriehľadnosť pozadia"
#: src/settings_translation_file.cpp
-msgid "Autosave screen size"
-msgstr ""
+msgid "Formspec default background color (R,G,B)."
+msgstr "Štandardná farba pozadia (R,G,B) v definícii formulára (Formspec)."
#: src/settings_translation_file.cpp
-msgid "Save window size automatically when modified."
+msgid "Formspec default background opacity (between 0 and 255)."
msgstr ""
+"Štandardná nepriehľadnosť pozadia (medzi 0 a 255) v definícii formulára "
+"(Formspec)."
#: src/settings_translation_file.cpp
-msgid "Full screen"
+msgid "Formspec full-screen background color (R,G,B)."
msgstr ""
+"Farba pozadia (R,G,B) v režime celej obrazovky v definícii formulára "
+"(Formspec)."
#: src/settings_translation_file.cpp
-msgid "Fullscreen mode."
+msgid "Formspec full-screen background opacity (between 0 and 255)."
msgstr ""
+"Nepriehľadnosť pozadia (0-255) v režime celej obrazovky v definícii "
+"formulára (Formspec)."
#: src/settings_translation_file.cpp
-msgid "Full screen BPP"
-msgstr ""
+msgid "Forward key"
+msgstr "TlaÄidlo Vpred"
#: src/settings_translation_file.cpp
-msgid "Bits per pixel (aka color depth) in fullscreen mode."
-msgstr ""
+msgid "Fourth of 4 2D noises that together define hill/mountain range height."
+msgstr "Štvrtý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr."
#: src/settings_translation_file.cpp
-msgid "VSync"
-msgstr ""
+msgid "Fractal type"
+msgstr "Typ fraktálu"
#: src/settings_translation_file.cpp
-msgid "Vertical screen synchronization."
-msgstr ""
+msgid "Fraction of the visible distance at which fog starts to be rendered"
+msgstr "Zlomok viditeľnej vzdialenosti od ktorej zaÄne byÅ¥ vykresľovaná hmla"
#: src/settings_translation_file.cpp
-msgid "Field of view"
-msgstr ""
+msgid "FreeType fonts"
+msgstr "FreeType písma"
#: src/settings_translation_file.cpp
-msgid "Field of view in degrees."
+msgid ""
+"From how far blocks are generated for clients, stated in mapblocks (16 "
+"nodes)."
msgstr ""
+"Z akej vzdialeností sú klientovi generované bloky, zadané v blokoch mapy (16 "
+"kociek)."
#: src/settings_translation_file.cpp
-msgid "Light curve gamma"
+msgid ""
+"From how far blocks are sent to clients, stated in mapblocks (16 nodes)."
msgstr ""
+"Z akej vzdialenosti sú bloky posielané klientovi, uvádzané v blokoch mapy "
+"(16 kociek)."
#: src/settings_translation_file.cpp
msgid ""
-"Alters the light curve by applying 'gamma correction' to it.\n"
-"Higher values make middle and lower light levels brighter.\n"
-"Value '1.0' leaves the light curve unaltered.\n"
-"This only has significant effect on daylight and artificial\n"
-"light, it has very little effect on natural night light."
+"From how far clients know about objects, stated in mapblocks (16 nodes).\n"
+"\n"
+"Setting this larger than active_block_range will also cause the server\n"
+"to maintain active objects up to this distance in the direction the\n"
+"player is looking. (This can avoid mobs suddenly disappearing from view)"
msgstr ""
+"Do akej vzdialenosti vedia klienti o objektoch, uvádzané v blokoch mapy (16 "
+"kociek).\n"
+"\n"
+"Nastavenie vyššie ako active_block_range spôsobí, že server bude\n"
+"uchovávať objekty až do udanej vzdialenosti v smere v ktorom sa\n"
+"hrÃ¡Ä pozerá. (Toto môže zabrániÅ¥ tomu aby mobovia zrazu zmizli z pohľadu)"
#: src/settings_translation_file.cpp
-msgid "Light curve low gradient"
-msgstr ""
+msgid "Full screen"
+msgstr "Celá obrazovka"
#: src/settings_translation_file.cpp
-msgid ""
-"Gradient of light curve at minimum light level.\n"
-"Controls the contrast of the lowest light levels."
-msgstr ""
+msgid "Full screen BPP"
+msgstr "BPP v režime celej obrazovky"
#: src/settings_translation_file.cpp
-msgid "Light curve high gradient"
-msgstr ""
+msgid "Fullscreen mode."
+msgstr "Režim celej obrazovky."
#: src/settings_translation_file.cpp
-msgid ""
-"Gradient of light curve at maximum light level.\n"
-"Controls the contrast of the highest light levels."
-msgstr ""
+msgid "GUI scaling"
+msgstr "Mierka GUI"
#: src/settings_translation_file.cpp
-msgid "Light curve boost"
-msgstr ""
+msgid "GUI scaling filter"
+msgstr "Filter mierky GUI"
#: src/settings_translation_file.cpp
-msgid ""
-"Strength of light curve boost.\n"
-"The 3 'boost' parameters define a range of the light\n"
-"curve that is boosted in brightness."
-msgstr ""
+msgid "GUI scaling filter txr2img"
+msgstr "Filter mierky GUI txr2img"
#: src/settings_translation_file.cpp
-msgid "Light curve boost center"
-msgstr ""
+msgid "Global callbacks"
+msgstr "Globálne odozvy"
#: src/settings_translation_file.cpp
msgid ""
-"Center of light curve boost range.\n"
-"Where 0.0 is minimum light level, 1.0 is maximum light level."
+"Global map generation attributes.\n"
+"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
+"and junglegrass, in all other mapgens this flag controls all decorations."
msgstr ""
+"Globálne atribúty pre generovanie máp.\n"
+"V generátore v6 príznak 'decorations' riadi všetky dekorácie okrem stromov\n"
+"a vysokej trávy, vo všetkých ostatných generátoroch tento príznak riadi "
+"všetky dekorácie."
#: src/settings_translation_file.cpp
-msgid "Light curve boost spread"
+msgid ""
+"Gradient of light curve at maximum light level.\n"
+"Controls the contrast of the highest light levels."
msgstr ""
+"Gradient svetelnej krivky na maximálnych úrovniach svetlosti.\n"
+"Upravuje kontrast najvyšších úrovni svetlosti."
#: src/settings_translation_file.cpp
msgid ""
-"Spread of light curve boost range.\n"
-"Controls the width of the range to be boosted.\n"
-"Standard deviation of the light curve boost Gaussian."
+"Gradient of light curve at minimum light level.\n"
+"Controls the contrast of the lowest light levels."
msgstr ""
+"Gradient svetelnej krivky na minimálnych úrovniach svetlosti.\n"
+"Upravuje kontrast najnižších úrovni svetlosti."
#: src/settings_translation_file.cpp
-msgid "Texture path"
-msgstr ""
+msgid "Graphics"
+msgstr "Grafika"
#: src/settings_translation_file.cpp
-msgid "Path to texture directory. All textures are first searched from here."
-msgstr ""
+msgid "Gravity"
+msgstr "Gravitácia"
#: src/settings_translation_file.cpp
-msgid "Video driver"
-msgstr ""
+msgid "Ground level"
+msgstr "Základná úroveň"
#: src/settings_translation_file.cpp
-msgid ""
-"The rendering back-end for Irrlicht.\n"
-"A restart is required after changing this.\n"
-"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
-"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
-msgstr ""
+msgid "Ground noise"
+msgstr "Šum terénu"
#: src/settings_translation_file.cpp
-msgid "Cloud radius"
-msgstr ""
+msgid "HTTP mods"
+msgstr "HTTP rozšírenia"
#: src/settings_translation_file.cpp
-msgid ""
-"Radius of cloud area stated in number of 64 node cloud squares.\n"
-"Values larger than 26 will start to produce sharp cutoffs at cloud area "
-"corners."
-msgstr ""
+msgid "HUD scale factor"
+msgstr "Mierka HUD"
#: src/settings_translation_file.cpp
-msgid "View bobbing factor"
-msgstr ""
+msgid "HUD toggle key"
+msgstr "TlaÄidlo Prepínanie HUD"
#: src/settings_translation_file.cpp
msgid ""
-"Enable view bobbing and amount of view bobbing.\n"
-"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
+"Handling for deprecated Lua API calls:\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
+"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
+"Spracovanie zastaralých Lua API volaní:\n"
+"- none: Zastarané funkcie neukladaj do logu\n"
+"- log: napodobni log backtrace zastaralého volania (štandardne).\n"
+"- error: preruÅ¡ spracovanie zastaralého volania (odporúÄané pre vývojárov "
+"rozšírení)."
#: src/settings_translation_file.cpp
-msgid "Fall bobbing factor"
+msgid ""
+"Have the profiler instrument itself:\n"
+"* Instrument an empty function.\n"
+"This estimates the overhead, that instrumentation is adding (+1 function "
+"call).\n"
+"* Instrument the sampler being used to update the statistics."
msgstr ""
+"Ako má profiler inštrumentovať sám seba:\n"
+"* Inštrumentuj prázdnu funkciu.\n"
+"Toto odhaduje režijné náklady, táto inÅ¡trumentácia pridáva (+1 funkÄné "
+"volanie).\n"
+"* Instrument the sampler being used to update the statistics."
#: src/settings_translation_file.cpp
-msgid ""
-"Multiplier for fall bobbing.\n"
-"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
-msgstr ""
+msgid "Heat blend noise"
+msgstr "Šum miešania teplôt"
#: src/settings_translation_file.cpp
-msgid "3D mode"
-msgstr ""
+msgid "Heat noise"
+msgstr "Teplotný šum"
#: src/settings_translation_file.cpp
-msgid ""
-"3D support.\n"
-"Currently supported:\n"
-"- none: no 3d output.\n"
-"- anaglyph: cyan/magenta color 3d.\n"
-"- interlaced: odd/even line based polarisation screen support.\n"
-"- topbottom: split screen top/bottom.\n"
-"- sidebyside: split screen side by side.\n"
-"- crossview: Cross-eyed 3d\n"
-"- pageflip: quadbuffer based 3d.\n"
-"Note that the interlaced mode requires shaders to be enabled."
-msgstr ""
+msgid "Height component of the initial window size."
+msgstr "Výška okna po spustení."
#: src/settings_translation_file.cpp
-msgid "3D mode parallax strength"
-msgstr ""
+msgid "Height noise"
+msgstr "Výškový šum"
#: src/settings_translation_file.cpp
-msgid "Strength of 3D mode parallax."
-msgstr ""
+msgid "Height select noise"
+msgstr "Šum výšok"
#: src/settings_translation_file.cpp
-msgid "Console height"
-msgstr ""
+msgid "High-precision FPU"
+msgstr "Vysoko-presné FPU"
#: src/settings_translation_file.cpp
-msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
-msgstr ""
+msgid "Hill steepness"
+msgstr "Strmosť kopcov"
#: src/settings_translation_file.cpp
-msgid "Console color"
-msgstr ""
+msgid "Hill threshold"
+msgstr "Hranica kopcov"
#: src/settings_translation_file.cpp
-msgid "In-game chat console background color (R,G,B)."
-msgstr ""
+msgid "Hilliness1 noise"
+msgstr "Šum Kopcovitosť1"
#: src/settings_translation_file.cpp
-msgid "Console alpha"
-msgstr ""
+msgid "Hilliness2 noise"
+msgstr "Šum Kopcovitosť2"
#: src/settings_translation_file.cpp
-msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
-msgstr ""
+msgid "Hilliness3 noise"
+msgstr "Šum Kopcovitosť3"
#: src/settings_translation_file.cpp
-msgid "Formspec Full-Screen Background Opacity"
-msgstr ""
+msgid "Hilliness4 noise"
+msgstr "Šum Kopcovitosť4"
#: src/settings_translation_file.cpp
-msgid "Formspec full-screen background opacity (between 0 and 255)."
-msgstr ""
+msgid "Homepage of server, to be displayed in the serverlist."
+msgstr "Domovská stránka servera, ktorá bude zobrazená v zozname serverov."
#: src/settings_translation_file.cpp
-msgid "Formspec Full-Screen Background Color"
+msgid ""
+"Horizontal acceleration in air when jumping or falling,\n"
+"in nodes per second per second."
msgstr ""
+"Horizontálne zrýchlenie vo vzduchu pri skákaní alebo padaní,\n"
+"v kockách za sekundu na druhú."
#: src/settings_translation_file.cpp
-msgid "Formspec full-screen background color (R,G,B)."
+msgid ""
+"Horizontal and vertical acceleration in fast mode,\n"
+"in nodes per second per second."
msgstr ""
+"Horizontálne a vertikálne zrýchlenie v rýchlom režime,\n"
+"v kockách za sekundu na druhú."
#: src/settings_translation_file.cpp
-msgid "Formspec Default Background Opacity"
+msgid ""
+"Horizontal and vertical acceleration on ground or when climbing,\n"
+"in nodes per second per second."
msgstr ""
+"Horizontálne a vertikálne zrýchlenie na zemi, alebo pri šplhaní,\n"
+"v kockách za sekundu na druhú."
#: src/settings_translation_file.cpp
-msgid "Formspec default background opacity (between 0 and 255)."
-msgstr ""
+msgid "Hotbar next key"
+msgstr "TlaÄidlo Nasledujúca vec na opasku"
#: src/settings_translation_file.cpp
-msgid "Formspec Default Background Color"
-msgstr ""
+msgid "Hotbar previous key"
+msgstr "TlaÄidlo Predchádzajúcu vec na opasku"
#: src/settings_translation_file.cpp
-msgid "Formspec default background color (R,G,B)."
-msgstr ""
+msgid "Hotbar slot 1 key"
+msgstr "TlaÄidlo Opasok pozícia 1"
#: src/settings_translation_file.cpp
-msgid "Selection box color"
-msgstr ""
+msgid "Hotbar slot 10 key"
+msgstr "TlaÄidlo Opasok pozícia 10"
#: src/settings_translation_file.cpp
-msgid "Selection box border color (R,G,B)."
-msgstr ""
+msgid "Hotbar slot 11 key"
+msgstr "TlaÄidlo Opasok pozícia 11"
#: src/settings_translation_file.cpp
-msgid "Selection box width"
-msgstr ""
+msgid "Hotbar slot 12 key"
+msgstr "TlaÄidlo Opasok pozícia 12"
#: src/settings_translation_file.cpp
-msgid "Width of the selection box lines around nodes."
-msgstr ""
+msgid "Hotbar slot 13 key"
+msgstr "TlaÄidlo Opasok pozícia 13"
#: src/settings_translation_file.cpp
-msgid "Crosshair color"
-msgstr ""
+msgid "Hotbar slot 14 key"
+msgstr "TlaÄidlo Opasok pozícia 14"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr ""
+msgid "Hotbar slot 15 key"
+msgstr "TlaÄidlo Opasok pozícia 15"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha"
-msgstr ""
+msgid "Hotbar slot 16 key"
+msgstr "TlaÄidlo Opasok pozícia 16"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr ""
+msgid "Hotbar slot 17 key"
+msgstr "TlaÄidlo Opasok pozícia 17"
#: src/settings_translation_file.cpp
-msgid "Recent Chat Messages"
-msgstr ""
+msgid "Hotbar slot 18 key"
+msgstr "TlaÄidlo Opasok pozícia 18"
#: src/settings_translation_file.cpp
-msgid "Maximum number of recent chat messages to show"
-msgstr ""
+msgid "Hotbar slot 19 key"
+msgstr "TlaÄidlo Opasok pozícia 19"
#: src/settings_translation_file.cpp
-msgid "Desynchronize block animation"
-msgstr ""
+msgid "Hotbar slot 2 key"
+msgstr "TlaÄidlo Opasok pozícia 2"
#: src/settings_translation_file.cpp
-msgid "Whether node texture animations should be desynchronized per mapblock."
-msgstr ""
+msgid "Hotbar slot 20 key"
+msgstr "TlaÄidlo Opasok pozícia 20"
#: src/settings_translation_file.cpp
-msgid "Maximum hotbar width"
-msgstr ""
+msgid "Hotbar slot 21 key"
+msgstr "TlaÄidlo Opasok pozícia 21"
#: src/settings_translation_file.cpp
-msgid ""
-"Maximum proportion of current window to be used for hotbar.\n"
-"Useful if there's something to be displayed right or left of hotbar."
-msgstr ""
+msgid "Hotbar slot 22 key"
+msgstr "TlaÄidlo Opasok pozícia 22"
#: src/settings_translation_file.cpp
-msgid "HUD scale factor"
-msgstr ""
+msgid "Hotbar slot 23 key"
+msgstr "TlaÄidlo Opasok pozícia 23"
#: src/settings_translation_file.cpp
-msgid "Modifies the size of the hudbar elements."
-msgstr ""
+msgid "Hotbar slot 24 key"
+msgstr "TlaÄidlo Opasok pozícia 24"
#: src/settings_translation_file.cpp
-msgid "Mesh cache"
-msgstr ""
+msgid "Hotbar slot 25 key"
+msgstr "TlaÄidlo Opasok pozícia 25"
#: src/settings_translation_file.cpp
-msgid "Enables caching of facedir rotated meshes."
-msgstr ""
+msgid "Hotbar slot 26 key"
+msgstr "TlaÄidlo Opasok pozícia 26"
#: src/settings_translation_file.cpp
-msgid "Mapblock mesh generation delay"
-msgstr ""
+msgid "Hotbar slot 27 key"
+msgstr "TlaÄidlo Opasok pozícia 27"
#: src/settings_translation_file.cpp
-msgid ""
-"Delay between mesh updates on the client in ms. Increasing this will slow\n"
-"down the rate of mesh updates, thus reducing jitter on slower clients."
-msgstr ""
+msgid "Hotbar slot 28 key"
+msgstr "TlaÄidlo Opasok pozícia 28"
#: src/settings_translation_file.cpp
-msgid "Mapblock mesh generator's MapBlock cache size in MB"
-msgstr ""
+msgid "Hotbar slot 29 key"
+msgstr "TlaÄidlo Opasok pozícia 29"
#: src/settings_translation_file.cpp
-msgid ""
-"Size of the MapBlock cache of the mesh generator. Increasing this will\n"
-"increase the cache hit %, reducing the data being copied from the main\n"
-"thread, thus reducing jitter."
-msgstr ""
+msgid "Hotbar slot 3 key"
+msgstr "TlaÄidlo Opasok pozícia 3"
#: src/settings_translation_file.cpp
-msgid "Minimap"
-msgstr ""
+msgid "Hotbar slot 30 key"
+msgstr "TlaÄidlo Opasok pozícia 30"
#: src/settings_translation_file.cpp
-msgid "Enables minimap."
-msgstr ""
+msgid "Hotbar slot 31 key"
+msgstr "TlaÄidlo Opasok pozícia 31"
#: src/settings_translation_file.cpp
-msgid "Round minimap"
-msgstr ""
+msgid "Hotbar slot 32 key"
+msgstr "TlaÄidlo Opasok pozícia 32"
#: src/settings_translation_file.cpp
-msgid "Shape of the minimap. Enabled = round, disabled = square."
-msgstr ""
+msgid "Hotbar slot 4 key"
+msgstr "TlaÄidlo Opasok pozícia 4"
#: src/settings_translation_file.cpp
-msgid "Minimap scan height"
-msgstr ""
+msgid "Hotbar slot 5 key"
+msgstr "TlaÄidlo Opasok pozícia 5"
#: src/settings_translation_file.cpp
-msgid ""
-"True = 256\n"
-"False = 128\n"
-"Usable to make minimap smoother on slower machines."
-msgstr ""
+msgid "Hotbar slot 6 key"
+msgstr "TlaÄidlo Opasok pozícia 6"
#: src/settings_translation_file.cpp
-msgid "Colored fog"
-msgstr ""
+msgid "Hotbar slot 7 key"
+msgstr "TlaÄidlo Opasok pozícia 7"
#: src/settings_translation_file.cpp
-msgid ""
-"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
-msgstr ""
+msgid "Hotbar slot 8 key"
+msgstr "TlaÄidlo Opasok pozícia 8"
#: src/settings_translation_file.cpp
-msgid "Ambient occlusion gamma"
-msgstr ""
+msgid "Hotbar slot 9 key"
+msgstr "TlaÄidlo Opasok pozícia 9"
+
+#: src/settings_translation_file.cpp
+msgid "How deep to make rivers."
+msgstr "Aké hlboké majú byť rieky."
#: src/settings_translation_file.cpp
msgid ""
-"The strength (darkness) of node ambient-occlusion shading.\n"
-"Lower is darker, Higher is lighter. The valid range of values for this\n"
-"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n"
-"set to the nearest valid value."
+"How fast liquid waves will move. Higher = faster.\n"
+"If negative, liquid waves will move backwards.\n"
+"Requires waving liquids to be enabled."
msgstr ""
+"Ako rýchlo sa budú pohybovať vlny tekutín. Vyššia hodnota = rýchlejšie.\n"
+"Ak je záporná, tekutina sa bude pohybovať naspäť.\n"
+"Požaduje, aby boli aktivované vlniace sa tekutiny."
#: src/settings_translation_file.cpp
-msgid "Inventory items animations"
+msgid ""
+"How much the server will wait before unloading unused mapblocks.\n"
+"Higher value is smoother, but will use more RAM."
msgstr ""
+"Koľko bude server ÄakaÅ¥ kým uvoľní nepoužívané bloky mapy.\n"
+"Vyššia hodnota je plynulejšia, ale použije viac RAM."
#: src/settings_translation_file.cpp
-msgid "Enables animation of inventory items."
-msgstr ""
+msgid "How wide to make rivers."
+msgstr "Aké široké majú byť rieky."
#: src/settings_translation_file.cpp
-msgid "Fog start"
-msgstr ""
+msgid "Humidity blend noise"
+msgstr "Šum miešania vlhkostí"
#: src/settings_translation_file.cpp
-msgid "Fraction of the visible distance at which fog starts to be rendered"
-msgstr ""
+msgid "Humidity noise"
+msgstr "Å um vlhkosti"
#: src/settings_translation_file.cpp
-msgid "Opaque liquids"
-msgstr ""
+msgid "Humidity variation for biomes."
+msgstr "Odchýlky vlhkosti pre biómy."
#: src/settings_translation_file.cpp
-msgid "Makes all liquids opaque"
-msgstr ""
+msgid "IPv6"
+msgstr "IPv6"
#: src/settings_translation_file.cpp
-msgid "World-aligned textures mode"
-msgstr ""
+msgid "IPv6 server"
+msgstr "IPv6 server"
#: src/settings_translation_file.cpp
msgid ""
-"Textures on a node may be aligned either to the node or to the world.\n"
-"The former mode suits better things like machines, furniture, etc., while\n"
-"the latter makes stairs and microblocks fit surroundings better.\n"
-"However, as this possibility is new, thus may not be used by older servers,\n"
-"this option allows enforcing it for certain node types. Note though that\n"
-"that is considered EXPERIMENTAL and may not work properly."
+"If FPS would go higher than this, limit it by sleeping\n"
+"to not waste CPU power for no benefit."
msgstr ""
+"Ak by malo byt FPS vyššie, bude obmedzené, aby\n"
+"sa bezvýznamne, bez úžitku neplytvalo výkonom CPU."
#: src/settings_translation_file.cpp
-msgid "Autoscaling mode"
+msgid ""
+"If disabled, \"special\" key is used to fly fast if both fly and fast mode "
+"are\n"
+"enabled."
msgstr ""
+"Ak je aktivované, použije sa \"špeciálna\" klávesa na lietanie, v prípade,\n"
+"že je povolený režim lietania aj rýchlosti."
#: src/settings_translation_file.cpp
msgid ""
-"World-aligned textures may be scaled to span several nodes. However,\n"
-"the server may not send the scale you want, especially if you use\n"
-"a specially-designed texture pack; with this option, the client tries\n"
-"to determine the scale automatically basing on the texture size.\n"
-"See also texture_min_size.\n"
-"Warning: This option is EXPERIMENTAL!"
+"If enabled the server will perform map block occlusion culling based on\n"
+"on the eye position of the player. This can reduce the number of blocks\n"
+"sent to the client 50-80%. The client will not longer receive most "
+"invisible\n"
+"so that the utility of noclip mode is reduced."
msgstr ""
+"Ak je aktivovaný, server bude realizovať occlusion culling blokov mapy "
+"založený\n"
+"na pozícií oka hráÄa. Toto môže znížiÅ¥ poÄet blokov posielaných klientovi\n"
+"o 50-80%. Klient už nebude dostávať takmer neviditeľné bloky,\n"
+"takže funkÄnosÅ¥ režim prechádzania stenami je obmedzená."
#: src/settings_translation_file.cpp
-msgid "Show entity selection boxes"
+msgid ""
+"If enabled together with fly mode, player is able to fly through solid "
+"nodes.\n"
+"This requires the \"noclip\" privilege on the server."
msgstr ""
+"Ak je aktivovaný spolu s režimom lietania, tak je hrÃ¡Ä schopný letieÅ¥ cez "
+"pevné kocky.\n"
+"Toto si na serveri vyžaduje privilégium \"noclip\"."
#: src/settings_translation_file.cpp
-msgid "Menus"
+msgid ""
+"If enabled, \"special\" key instead of \"sneak\" key is used for climbing "
+"down and\n"
+"descending."
msgstr ""
+"Ak je aktivované, použije sa namiesto klávesy pre \"zakrádanie\" \"špeciálnu "
+"klávesu\"\n"
+"pre klesanie a šplhanie dole."
#: src/settings_translation_file.cpp
-msgid "Clouds in menu"
+msgid ""
+"If enabled, actions are recorded for rollback.\n"
+"This option is only read when server starts."
msgstr ""
+"Ak je aktivované, akcie sa nahrávajú pre úÄely obnovenia.\n"
+"Toto nastavenie sa preÄíta len pri Å¡tarte servera."
#: src/settings_translation_file.cpp
-msgid "Use a cloud animation for the main menu background."
+msgid "If enabled, disable cheat prevention in multiplayer."
msgstr ""
+"Ak je aktivované, zruší ochranu pred podvodmi (cheatmi) v multiplayeri."
#: src/settings_translation_file.cpp
-msgid "GUI scaling"
+msgid ""
+"If enabled, invalid world data won't cause the server to shut down.\n"
+"Only enable this if you know what you are doing."
msgstr ""
+"Ak je aktivované, chybné dáta nespôsobia vypnutie servera.\n"
+"Povoľ len ak vieÅ¡ Äo robíš."
#: src/settings_translation_file.cpp
msgid ""
-"Scale GUI by a user specified value.\n"
-"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n"
-"This will smooth over some of the rough edges, and blend\n"
-"pixels when scaling down, at the cost of blurring some\n"
-"edge pixels when images are scaled by non-integer sizes."
+"If enabled, makes move directions relative to the player's pitch when flying "
+"or swimming."
msgstr ""
+"Ak je aktivované, tak je smer pohybu pri lietaní, alebo plávaní daný sklonom "
+"hráÄa."
#: src/settings_translation_file.cpp
-msgid "GUI scaling filter"
-msgstr ""
+msgid "If enabled, new players cannot join with an empty password."
+msgstr "Ak je aktivované, nový hráÄi sa nemôžu pridaÅ¥ bez zadaného hesla."
#: src/settings_translation_file.cpp
msgid ""
-"When gui_scaling_filter is true, all GUI images need to be\n"
-"filtered in software, but some images are generated directly\n"
-"to hardware (e.g. render-to-texture for nodes in inventory)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "GUI scaling filter txr2img"
+"If enabled, you can place blocks at the position (feet + eye level) where "
+"you stand.\n"
+"This is helpful when working with nodeboxes in small areas."
msgstr ""
+"Ak je aktivované, môžeš dať bloky na miesto kde stojíš (v úrovni päta + "
+"oÄi).\n"
+"Je to užitoÄné ak pracujeÅ¡ s kockami v stiesnených priestoroch."
#: src/settings_translation_file.cpp
msgid ""
-"When gui_scaling_filter_txr2img is true, copy those images\n"
-"from hardware to software for scaling. When false, fall back\n"
-"to the old scaling method, for video drivers that don't\n"
-"properly support downloading textures back from hardware."
+"If the CSM restriction for node range is enabled, get_node calls are "
+"limited\n"
+"to this distance from the player to the node."
msgstr ""
+"Ak sú CSM obmedzenia pre dohľad kocky aktívne, volania get_node sú\n"
+"obmedzené touto vzdialenosÅ¥ou od hráÄa ku kocke."
#: src/settings_translation_file.cpp
-msgid "Tooltip delay"
+msgid ""
+"If the file size of debug.txt exceeds the number of megabytes specified in\n"
+"this setting when it is opened, the file is moved to debug.txt.1,\n"
+"deleting an older debug.txt.1 if it exists.\n"
+"debug.txt is only moved if this setting is positive."
msgstr ""
+"Ak veľkosÅ¥ súboru debug.txt prekroÄí zadanú veľkosÅ¥ v megabytoch,\n"
+"keÄ bude otvorený, súbor bude presunutý do debug.txt.1,\n"
+"ak existuje starší debug.txt.1, tak tento bude zmazaný.\n"
+"debug.txt bude presunutý, len ak je toto nastavenie kladné."
#: src/settings_translation_file.cpp
-msgid "Delay showing tooltips, stated in milliseconds."
-msgstr ""
+msgid "If this is set, players will always (re)spawn at the given position."
+msgstr "Ak je povolený, hráÄi vždy ožijú (obnovia sa) na zadanej pozícií."
#: src/settings_translation_file.cpp
-msgid "Append item name"
-msgstr ""
+msgid "Ignore world errors"
+msgstr "Ignoruj chyby vo svete"
#: src/settings_translation_file.cpp
-msgid "Append item name to tooltip."
-msgstr ""
+msgid "In-Game"
+msgstr "V hre"
#: src/settings_translation_file.cpp
-msgid "FreeType fonts"
-msgstr ""
+msgid "In-game chat console background alpha (opaqueness, between 0 and 255)."
+msgstr "Priehľadnosť pozadia konzoly v hre (nepriehľadnosť, medzi 0 a 255)."
#: src/settings_translation_file.cpp
-msgid ""
-"Whether FreeType fonts are used, requires FreeType support to be compiled "
-"in.\n"
-"If disabled, bitmap and XML vectors fonts are used instead."
-msgstr ""
+msgid "In-game chat console background color (R,G,B)."
+msgstr "Pozadie (R,G,B) komunikaÄnej konzoly v hre."
#: src/settings_translation_file.cpp
-msgid "Font bold by default"
-msgstr ""
+msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)."
+msgstr "Výška komunikaÄnej konzoly v hre, medzi 0.1 (10%) a 1.0 (100%)."
#: src/settings_translation_file.cpp
-msgid "Font italic by default"
-msgstr ""
+msgid "Inc. volume key"
+msgstr "TlaÄidlo Zvýš hlasitosÅ¥"
#: src/settings_translation_file.cpp
-msgid "Font shadow"
-msgstr ""
+msgid "Initial vertical speed when jumping, in nodes per second."
+msgstr "PoÄiatoÄná vertikálna rýchlosÅ¥ pri skákaní, v kockách za sekundu."
#: src/settings_translation_file.cpp
msgid ""
-"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
-"drawn."
+"Instrument builtin.\n"
+"This is usually only needed by core/builtin contributors"
msgstr ""
+"Inštrumentuj vstavané (builtin).\n"
+"Toto je obvykle potrebné len pre core/builtin prispievateľov"
#: src/settings_translation_file.cpp
-msgid "Font shadow alpha"
-msgstr ""
+msgid "Instrument chatcommands on registration."
+msgstr "InÅ¡trumentuj komunikaÄné príkazy pri registrácií."
#: src/settings_translation_file.cpp
msgid ""
-"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Font size"
+"Instrument global callback functions on registration.\n"
+"(anything you pass to a minetest.register_*() function)"
msgstr ""
+"Inštrumentuj globálne odozvy volaní funkcií pri registrácií.\n"
+"(Äokoľvek je poslané minetest.register_*() funkcií)"
#: src/settings_translation_file.cpp
-msgid "Font size of the default font in point (pt)."
-msgstr ""
+msgid ""
+"Instrument the action function of Active Block Modifiers on registration."
+msgstr "Inštrumentuj funkcie ABM pri registrácií."
#: src/settings_translation_file.cpp
-msgid "Regular font path"
-msgstr ""
+msgid ""
+"Instrument the action function of Loading Block Modifiers on registration."
+msgstr "Inštrumentuj funkcie nahrávania modifikátorov blokov pri registrácií."
#: src/settings_translation_file.cpp
-msgid ""
-"Path to the default font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"The fallback font will be used if the font cannot be loaded."
-msgstr ""
+msgid "Instrument the methods of entities on registration."
+msgstr "Inštrumentuj metódy bytostí pri registrácií."
#: src/settings_translation_file.cpp
-msgid "Bold font path"
-msgstr ""
+msgid "Instrumentation"
+msgstr "Výstroj"
#: src/settings_translation_file.cpp
-msgid "Italic font path"
-msgstr ""
+msgid "Interval of saving important changes in the world, stated in seconds."
+msgstr "Interval ukladania dôležitých zmien vo svete, uvádzaný v sekundách."
#: src/settings_translation_file.cpp
-msgid "Bold and italic font path"
-msgstr ""
+msgid "Interval of sending time of day to clients."
+msgstr "Interval v akom sa posiela denný Äas klientom."
#: src/settings_translation_file.cpp
-msgid "Monospace font size"
-msgstr ""
+msgid "Inventory items animations"
+msgstr "Animácia vecí v inventári"
#: src/settings_translation_file.cpp
-msgid "Font size of the monospace font in point (pt)."
-msgstr ""
+msgid "Inventory key"
+msgstr "TlaÄidlo Inventár"
#: src/settings_translation_file.cpp
-msgid "Monospace font path"
-msgstr ""
+msgid "Invert mouse"
+msgstr "Obrátiť smer myši"
#: src/settings_translation_file.cpp
-msgid ""
-"Path to the monospace font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"This font is used for e.g. the console and profiler screen."
-msgstr ""
+msgid "Invert vertical mouse movement."
+msgstr "Obráti vertikálny pohyb myši."
#: src/settings_translation_file.cpp
-msgid "Bold monospace font path"
-msgstr ""
+msgid "Italic font path"
+msgstr "Cesta k šikmému písmu"
#: src/settings_translation_file.cpp
msgid "Italic monospace font path"
-msgstr ""
+msgstr "Cesta k šikmému písmu s pevnou šírkou"
#: src/settings_translation_file.cpp
-msgid "Bold and italic monospace font path"
-msgstr ""
+msgid "Item entity TTL"
+msgstr "Životnosť odložených vecí"
#: src/settings_translation_file.cpp
-msgid "Fallback font size"
-msgstr ""
+msgid "Iterations"
+msgstr "Iterácie"
#: src/settings_translation_file.cpp
-msgid "Font size of the fallback font in point (pt)."
+msgid ""
+"Iterations of the recursive function.\n"
+"Increasing this increases the amount of fine detail, but also\n"
+"increases processing load.\n"
+"At iterations = 20 this mapgen has a similar load to mapgen V7."
msgstr ""
+"Iterácie rekurzívnej funkcie.\n"
+"Zvýšenie zvýši úroveň jemnosti detailov, ale tiež\n"
+"zvýši zaťaženie pri spracovaní.\n"
+"Pri iteráciach = 20 má tento generátor podobné zaťaženie ako generátor V7."
#: src/settings_translation_file.cpp
-msgid "Fallback font shadow"
-msgstr ""
+msgid "Joystick ID"
+msgstr "ID joysticku"
#: src/settings_translation_file.cpp
-msgid ""
-"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
-"be drawn."
-msgstr ""
+msgid "Joystick button repetition interval"
+msgstr "Interval opakovania tlaÄidla joysticku"
#: src/settings_translation_file.cpp
-msgid "Fallback font shadow alpha"
-msgstr ""
+msgid "Joystick deadzone"
+msgstr "Mŕtva zóna joysticku"
#: src/settings_translation_file.cpp
-msgid ""
-"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255."
-msgstr ""
+msgid "Joystick frustum sensitivity"
+msgstr "CitlivosÅ¥ otáÄania pohľadu joystickom"
#: src/settings_translation_file.cpp
-msgid "Fallback font path"
-msgstr ""
+msgid "Joystick type"
+msgstr "Typ joysticku"
#: src/settings_translation_file.cpp
msgid ""
-"Path of the fallback font.\n"
-"If “freetype†setting is enabled: Must be a TrueType font.\n"
-"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
-"This font will be used for certain languages or if the default font is "
-"unavailable."
+"Julia set only.\n"
+"W component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Has no effect on 3D fractals.\n"
+"Range roughly -2 to 2."
msgstr ""
+"Len pre sadu Julia.\n"
+"W komponent hyperkomplexnej konštanty.\n"
+"Zmení tvar fraktálu.\n"
+"Nemá vplyv na 3D fraktály.\n"
+"Rozsah zhruba -2 až 2."
#: src/settings_translation_file.cpp
-msgid "Chat font size"
+msgid ""
+"Julia set only.\n"
+"X component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Range roughly -2 to 2."
msgstr ""
+"Len pre sadu Julia.\n"
+"X komponent hyperkomplexnej konštanty.\n"
+"Zmení tvar fraktálu.\n"
+"Rozsah zhruba -2 až 2."
#: src/settings_translation_file.cpp
msgid ""
-"Font size of the recent chat text and chat prompt in point (pt).\n"
-"Value 0 will use the default font size."
+"Julia set only.\n"
+"Y component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Range roughly -2 to 2."
msgstr ""
+"Len pre sadu Julia.\n"
+"Y komponent hyperkomplexnej konštanty.\n"
+"Zmení tvar fraktálu.\n"
+"Rozsah zhruba -2 až 2."
#: src/settings_translation_file.cpp
-msgid "Screenshot folder"
+msgid ""
+"Julia set only.\n"
+"Z component of hypercomplex constant.\n"
+"Alters the shape of the fractal.\n"
+"Range roughly -2 to 2."
msgstr ""
+"Len pre sadu Julia.\n"
+"Z komponent hyperkomplexnej konštanty.\n"
+"Zmení tvar fraktálu.\n"
+"Rozsah zhruba -2 až 2."
#: src/settings_translation_file.cpp
-msgid ""
-"Path to save screenshots at. Can be an absolute or relative path.\n"
-"The folder will be created if it doesn't already exist."
-msgstr ""
+msgid "Julia w"
+msgstr "Julia w"
#: src/settings_translation_file.cpp
-msgid "Screenshot format"
-msgstr ""
+msgid "Julia x"
+msgstr "Julia x"
#: src/settings_translation_file.cpp
-msgid "Format of screenshots."
-msgstr ""
+msgid "Julia y"
+msgstr "Julia y"
#: src/settings_translation_file.cpp
-msgid "Screenshot quality"
-msgstr ""
+msgid "Julia z"
+msgstr "Julia z"
#: src/settings_translation_file.cpp
-msgid ""
-"Screenshot quality. Only used for JPEG format.\n"
-"1 means worst quality; 100 means best quality.\n"
-"Use 0 for default quality."
-msgstr ""
+msgid "Jump key"
+msgstr "TlaÄidlo Skok"
#: src/settings_translation_file.cpp
-msgid "DPI"
-msgstr ""
+msgid "Jumping speed"
+msgstr "Rýchlosť skákania"
#: src/settings_translation_file.cpp
msgid ""
-"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
-"screens."
+"Key for decreasing the viewing range.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre zníženie dohľadu.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Enable console window"
+msgid ""
+"Key for decreasing the volume.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre zníženie hlasitosti.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Windows systems only: Start Minetest with the command line window in the "
-"background.\n"
-"Contains the same information as the file debug.txt (default name)."
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre kopanie.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Sound"
+msgid ""
+"Key for dropping the currently selected item.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre zahodenie aktuálne vybranej veci.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enables the sound system.\n"
-"If disabled, this completely disables all sounds everywhere and the in-game\n"
-"sound controls will be non-functional.\n"
-"Changing this setting requires a restart."
+"Key for increasing the viewing range.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre zvýšenie dohľadu.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Volume"
+msgid ""
+"Key for increasing the volume.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre zvýšenie hlasitosti.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Volume of all sounds.\n"
-"Requires the sound system to be enabled."
+"Key for jumping.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre skákanie.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Mute sound"
+msgid ""
+"Key for moving fast in fast mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre rýchly pohyb hráÄa v rýchlom móde.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Whether to mute sounds. You can unmute sounds at any time, unless the\n"
-"sound system is disabled (enable_sound=false).\n"
-"In-game, you can toggle the mute state with the mute key or by using the\n"
-"pause menu."
+"Key for moving the player backward.\n"
+"Will also disable autoforward, when active.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre pohyb hráÄa vzad.\n"
+"Zároveň vypne automatický pohyb hráÄa dopredu, ak je aktívny.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Client"
+msgid ""
+"Key for moving the player forward.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre pohyb hráÄa vpred.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Network"
+msgid ""
+"Key for moving the player left.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre pohyb hráÄa vľavo.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server address"
+msgid ""
+"Key for moving the player right.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre pohyb hráÄa vpravo.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Address to connect to.\n"
-"Leave this blank to start a local server.\n"
-"Note that the address field in the main menu overrides this setting."
+"Key for muting the game.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre vypnutie hlasitosti v hre.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Remote port"
+msgid ""
+"Key for opening the chat window to type commands.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre otvorenie komunikaÄného okna pre zadávanie príkazov.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Port to connect to (UDP).\n"
-"Note that the port field in the main menu overrides this setting."
+"Key for opening the chat window to type local commands.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre otvorenie komunikaÄného okna pre zadávanie lokálnych príkazov.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Prometheus listener address"
+msgid ""
+"Key for opening the chat window.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre otvorenie komunikaÄného okna.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Prometheus listener address.\n"
-"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n"
-"enable metrics listener for Prometheus on that address.\n"
-"Metrics can be fetch on http://127.0.0.1:30000/metrics"
+"Key for opening the inventory.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre otvorenie inventára.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Saving map received from server"
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre pokladanie.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Save the map received by the client on disk."
+msgid ""
+"Key for selecting the 11th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber jedenástej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Connect to external media server"
+msgid ""
+"Key for selecting the 12th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber dvanástej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable usage of remote media server (if provided by server).\n"
-"Remote servers offer a significantly faster way to download media (e.g. "
-"textures)\n"
-"when connecting to the server."
+"Key for selecting the 13th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber trinástej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Client modding"
+msgid ""
+"Key for selecting the 14th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber Å¡trnástej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable Lua modding support on client.\n"
-"This support is experimental and API can change."
+"Key for selecting the 15th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber pätnástej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Serverlist URL"
+msgid ""
+"Key for selecting the 16th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber Å¡estnástej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "URL to the server list displayed in the Multiplayer Tab."
+msgid ""
+"Key for selecting the 17th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber sedemnástej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Serverlist file"
+msgid ""
+"Key for selecting the 18th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber osemnástej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"File in client/serverlist/ that contains your favorite servers displayed in "
-"the\n"
-"Multiplayer Tab."
+"Key for selecting the 19th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber devätnástej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Maximum size of the out chat queue"
+msgid ""
+"Key for selecting the 20th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 20. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Maximum size of the out chat queue.\n"
-"0 to disable queueing and -1 to make the queue size unlimited."
+"Key for selecting the 21st hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 21. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Enable register confirmation"
+msgid ""
+"Key for selecting the 22nd hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 22. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable register confirmation when connecting to server.\n"
-"If disabled, new account will be registered automatically."
+"Key for selecting the 23rd hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 23. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Mapblock unload timeout"
+msgid ""
+"Key for selecting the 24th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 24. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Timeout for client to remove unused map data from memory."
+msgid ""
+"Key for selecting the 25th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 25. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Mapblock limit"
+msgid ""
+"Key for selecting the 26th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 26. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of mapblocks for client to be kept in memory.\n"
-"Set to -1 for unlimited amount."
+"Key for selecting the 27th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 27. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Show debug info"
+msgid ""
+"Key for selecting the 28th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 28. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Whether to show the client debug info (has the same effect as hitting F5)."
+"Key for selecting the 29th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 29. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server / Singleplayer"
+msgid ""
+"Key for selecting the 30th hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 30. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server name"
+msgid ""
+"Key for selecting the 31st hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 31. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Name of the server, to be displayed when players join and in the serverlist."
+"Key for selecting the 32nd hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber 32. pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server description"
+msgid ""
+"Key for selecting the eighth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber ôsmej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Description of server, to be displayed when players join and in the "
-"serverlist."
+"Key for selecting the fifth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber piatej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Domain name of server, to be displayed in the serverlist."
+msgid ""
+"Key for selecting the first hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber prvej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server URL"
+msgid ""
+"Key for selecting the fourth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber Å¡tvrtej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Homepage of server, to be displayed in the serverlist."
+msgid ""
+"Key for selecting the next item in the hotbar.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber ÄalÅ¡ej veci na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Announce server"
+msgid ""
+"Key for selecting the ninth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber deviatej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Automatically report to the serverlist."
+msgid ""
+"Key for selecting the previous item in the hotbar.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber predchádzajúcej veci na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Announce to this serverlist."
+msgid ""
+"Key for selecting the second hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber druhej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Strip color codes"
+msgid ""
+"Key for selecting the seventh hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber siedmej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Remove color codes from incoming chat messages\n"
-"Use this to stop players from being able to use color in their messages"
+"Key for selecting the sixth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber Å¡iestej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Server port"
+msgid ""
+"Key for selecting the tenth hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber desiatej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Network port to listen (UDP).\n"
-"This value will be overridden when starting from the main menu."
+"Key for selecting the third hotbar slot.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre výber tretej pozície na opasku.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Bind address"
+msgid ""
+"Key for sneaking.\n"
+"Also used for climbing down and descending in water if aux1_descends is "
+"disabled.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre utajený pohyb (zakrádanie) hráÄa.\n"
+"Tiež sa používa pre zliezanie a ponáranie vo vode ak aux1_descends je "
+"vypnutý.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "The network interface that the server listens on."
+msgid ""
+"Key for switching between first- and third-person camera.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepínanie medzi pohľadom z prvej a tretej osoby.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Strict protocol checking"
+msgid ""
+"Key for taking screenshots.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre snímanie obrazovky.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable to disallow old clients from connecting.\n"
-"Older clients are compatible in the sense that they will not crash when "
-"connecting\n"
-"to new servers, but they may not support all new features that you are "
-"expecting."
+"Key for toggling autoforward.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie režimu automatického pohybu vpred.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Remote media"
+msgid ""
+"Key for toggling cinematic mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie filmového režimu.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Specifies URL from which client fetches media instead of using UDP.\n"
-"$filename should be accessible from $remote_media$filename via cURL\n"
-"(obviously, remote_media should end with a slash).\n"
-"Files that are not present will be fetched the usual way."
+"Key for toggling display of minimap.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie zobrazenia minimapy.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "IPv6 server"
+msgid ""
+"Key for toggling fast mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie režimu rýchlosÅ¥.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Enable/disable running an IPv6 server.\n"
-"Ignored if bind_address is set.\n"
-"Needs enable_ipv6 to be enabled."
+"Key for toggling flying.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie lietania.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Maximum simultaneous block sends per client"
+msgid ""
+"Key for toggling noclip mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie režimu prechádzania stenami.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of blocks that are simultaneously sent per client.\n"
-"The maximum total count is calculated dynamically:\n"
-"max_total = ceil((#clients + max_users) * per_client / 4)"
+"Key for toggling pitch move mode.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie režimu pohyb podľa sklonu.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Delay in sending blocks after building"
+msgid ""
+"Key for toggling the camera update. Only used for development\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie aktualizácie pohľadu. Používa sa len pre vývoj.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"To reduce lag, block transfers are slowed down when a player is building "
-"something.\n"
-"This determines how long they are slowed down after placing or removing a "
-"node."
+"Key for toggling the display of chat.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie zobrazenia komunikácie.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Max. packets per iteration"
+msgid ""
+"Key for toggling the display of debug info.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie zobrazenia ladiacich informácií.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of packets sent per send step, if you have a slow connection\n"
-"try reducing it, but don't reduce it to a number below double of targeted\n"
-"client number."
+"Key for toggling the display of fog.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie zobrazenia hmly.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Default game"
+msgid ""
+"Key for toggling the display of the HUD.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie zobrazenia HUD (Head-Up Display - výhľadový "
+"displej).\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
msgid ""
-"Default game when creating a new world.\n"
-"This will be overridden when creating a world from the main menu."
+"Key for toggling the display of the large chat console.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie zobrazenia veľkej konzoly na komunikáciu.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Message of the day"
+msgid ""
+"Key for toggling the display of the profiler. Used for development.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie zobrazenia profileru. Používa sa pri vývoji.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Message of the day displayed to players connecting."
+msgid ""
+"Key for toggling unlimited view range.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre prepnutie neobmedzeného dohľadu.\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Maximum users"
+msgid ""
+"Key to use view zoom when possible.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
+"TlaÄidlo pre použitie priblíženia pokiaľ je to možné .\n"
+"ViÄ. http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
-msgid "Maximum number of players that can be connected simultaneously."
-msgstr ""
+msgid "Kick players who sent more than X messages per 10 seconds."
+msgstr "VylÃºÄ hráÄa, ktorý poÅ¡le viac ako X správ za 10 sekúnd."
#: src/settings_translation_file.cpp
-msgid "Map directory"
-msgstr ""
+msgid "Lake steepness"
+msgstr "Strmosť jazier"
#: src/settings_translation_file.cpp
-msgid ""
-"World directory (everything in the world is stored here).\n"
-"Not needed if starting from the main menu."
-msgstr ""
+msgid "Lake threshold"
+msgstr "Hranica jazier"
#: src/settings_translation_file.cpp
-msgid "Item entity TTL"
-msgstr ""
+msgid "Language"
+msgstr "Jazyk"
#: src/settings_translation_file.cpp
-msgid ""
-"Time in seconds for item entity (dropped items) to live.\n"
-"Setting it to -1 disables the feature."
-msgstr ""
+msgid "Large cave depth"
+msgstr "Hĺbka veľkých jaskýň"
#: src/settings_translation_file.cpp
-msgid "Default stack size"
-msgstr ""
+msgid "Large cave maximum number"
+msgstr "Minimálny poÄet veľkých jaskýň"
#: src/settings_translation_file.cpp
-msgid ""
-"Specifies the default stack size of nodes, items and tools.\n"
-"Note that mods or games may explicitly set a stack for certain (or all) "
-"items."
-msgstr ""
+msgid "Large cave minimum number"
+msgstr "Minimálny poÄet veľkých jaskýň"
#: src/settings_translation_file.cpp
-msgid "Damage"
-msgstr ""
+msgid "Large cave proportion flooded"
+msgstr "Pomer zaplavených Äastí veľkých jaskýň"
#: src/settings_translation_file.cpp
-msgid "Enable players getting damage and dying."
-msgstr ""
+msgid "Large chat console key"
+msgstr "TlaÄidlo Veľká komunikaÄná konzola"
#: src/settings_translation_file.cpp
-msgid "Creative"
-msgstr ""
+msgid "Leaves style"
+msgstr "Štýl listov"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid ""
+"Leaves style:\n"
+"- Fancy: all faces visible\n"
+"- Simple: only outer faces, if defined special_tiles are used\n"
+"- Opaque: disable transparency"
msgstr ""
+"Štýly listov:\n"
+"- Ozdobné: všetky plochy sú viditeľné\n"
+"- Jednoduché: sú použité len vonkajšie plochy, ak sú použité definované "
+"\"special_tiles\"\n"
+"- Nepriehľadné: vypne priehliadnosť"
#: src/settings_translation_file.cpp
-msgid "Fixed map seed"
-msgstr ""
+msgid "Left key"
+msgstr "TlaÄidlo Vľavo"
#: src/settings_translation_file.cpp
msgid ""
-"A chosen map seed for a new map, leave empty for random.\n"
-"Will be overridden when creating a new world in the main menu."
+"Length of a server tick and the interval at which objects are generally "
+"updated over\n"
+"network."
msgstr ""
+"Dĺžka kroku servera a interval v ktorom sú objekty aktualizované\n"
+"cez sieť."
#: src/settings_translation_file.cpp
-msgid "Default password"
+msgid ""
+"Length of liquid waves.\n"
+"Requires waving liquids to be enabled."
msgstr ""
+"Dĺžka vĺn tekutín.\n"
+"Požaduje, aby boli aktivované vlniace sa tekutiny."
#: src/settings_translation_file.cpp
-msgid "New users need to input this password."
+msgid "Length of time between Active Block Modifier (ABM) execution cycles"
msgstr ""
+"Časový interval medzi jednotlivými vykonávacími cyklami ABM (Active Block "
+"Modifier)"
#: src/settings_translation_file.cpp
-msgid "Default privileges"
+msgid "Length of time between NodeTimer execution cycles"
msgstr ""
+"ÄŒasový interval medzi jednotlivými vykonávacími cyklami ÄasovaÄa kociek "
+"(NodeTimer)"
#: src/settings_translation_file.cpp
-msgid ""
-"The privileges that new users automatically get.\n"
-"See /privs in game for a full list on your server and mod configuration."
-msgstr ""
+msgid "Length of time between active block management cycles"
+msgstr "Časový interval medzi jednotlivými riadiacimi cyklami aktívnych blokov"
#: src/settings_translation_file.cpp
-msgid "Basic privileges"
+msgid ""
+"Level of logging to be written to debug.txt:\n"
+"- <nothing> (no logging)\n"
+"- none (messages with no level)\n"
+"- error\n"
+"- warning\n"
+"- action\n"
+"- info\n"
+"- verbose"
msgstr ""
+"Úroveň ladiacich informácií, ktoré budú zapísané do debug.txt:\n"
+"- <niÄ> (bez logovania)\n"
+"- žiadna (správy bez úrovne)\n"
+"- chyby\n"
+"- varovania\n"
+"- akcie\n"
+"- informácie\n"
+"- všetko"
#: src/settings_translation_file.cpp
-msgid "Privileges that players with basic_privs can grant"
-msgstr ""
+msgid "Light curve boost"
+msgstr "Zosilnenie svetelnej krivky"
#: src/settings_translation_file.cpp
-msgid "Unlimited player transfer distance"
-msgstr ""
+msgid "Light curve boost center"
+msgstr "Stred zosilnenia svetelnej krivky"
#: src/settings_translation_file.cpp
-msgid ""
-"Whether players are shown to clients without any range limit.\n"
-"Deprecated, use the setting player_transfer_distance instead."
-msgstr ""
+msgid "Light curve boost spread"
+msgstr "Rozptyl zosilnenia svetelnej krivky"
#: src/settings_translation_file.cpp
-msgid "Player transfer distance"
-msgstr ""
+msgid "Light curve gamma"
+msgstr "Svetelná gamma krivka"
#: src/settings_translation_file.cpp
-msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)."
-msgstr ""
+msgid "Light curve high gradient"
+msgstr "Horný gradient svetelnej krivky"
#: src/settings_translation_file.cpp
-msgid "Player versus player"
-msgstr ""
+msgid "Light curve low gradient"
+msgstr "Spodný gradient svetelnej krivky"
#: src/settings_translation_file.cpp
-msgid "Whether to allow players to damage and kill each other."
+msgid ""
+"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n"
+"Only mapchunks completely within the mapgen limit are generated.\n"
+"Value is stored per-world."
msgstr ""
+"Limit pre generovanie mapy, v kockách, vo všetkých 6 smeroch (0, 0, 0).\n"
+"Len Äasti mapy (mapchunks) kompletne v rámci limitu generátora máp sú "
+"generované.\n"
+"Hodnota sa ukladá pre každý svet."
#: src/settings_translation_file.cpp
-msgid "Mod channels"
+msgid ""
+"Limits number of parallel HTTP requests. Affects:\n"
+"- Media fetch if server uses remote_media setting.\n"
+"- Serverlist download and server announcement.\n"
+"- Downloads performed by main menu (e.g. mod manager).\n"
+"Only has an effect if compiled with cURL."
msgstr ""
+"Maximálny poÄet paralelných HTTP požiadavok. Ovplyvňuje:\n"
+"- Získavanie médií ak server používa nastavenie remote_media.\n"
+"- Sťahovanie zoznamu serverov a zverejňovanie servera.\n"
+"- Sťahovania vykonávané z hlavného menu (napr. správca rozšírení).\n"
+"Má efekt len ak je skompilovaný s cURL."
#: src/settings_translation_file.cpp
-msgid "Enable mod channels support."
-msgstr ""
+msgid "Liquid fluidity"
+msgstr "Tekutosť kvapalín"
#: src/settings_translation_file.cpp
-msgid "Static spawnpoint"
-msgstr ""
+msgid "Liquid fluidity smoothing"
+msgstr "Zjemnenie tekutosti kvapalín"
#: src/settings_translation_file.cpp
-msgid "If this is set, players will always (re)spawn at the given position."
-msgstr ""
+msgid "Liquid loop max"
+msgstr "Max sprac. tekutín"
#: src/settings_translation_file.cpp
-msgid "Disallow empty passwords"
-msgstr ""
+msgid "Liquid queue purge time"
+msgstr "Čas do uvolnenia fronty tekutín"
#: src/settings_translation_file.cpp
-msgid "If enabled, new players cannot join with an empty password."
-msgstr ""
+msgid "Liquid sinking"
+msgstr "Ponáranie v tekutinách"
#: src/settings_translation_file.cpp
-msgid "Disable anticheat"
-msgstr ""
+msgid "Liquid update interval in seconds."
+msgstr "AktualizaÄný interval tekutín v sekundách."
#: src/settings_translation_file.cpp
-msgid "If enabled, disable cheat prevention in multiplayer."
-msgstr ""
+msgid "Liquid update tick"
+msgstr "AktualizaÄný interval tekutín"
#: src/settings_translation_file.cpp
-msgid "Rollback recording"
-msgstr ""
+msgid "Load the game profiler"
+msgstr "Nahraj profiler hry"
#: src/settings_translation_file.cpp
msgid ""
-"If enabled, actions are recorded for rollback.\n"
-"This option is only read when server starts."
+"Load the game profiler to collect game profiling data.\n"
+"Provides a /profiler command to access the compiled profile.\n"
+"Useful for mod developers and server operators."
msgstr ""
+"Nahraj profiler hry pre získanie profilových dát.\n"
+"Poskytne príkaz /profiler pre prístup k skompilovanému profilu.\n"
+"UžitoÄné pre vývojárov rozšírení a správcov serverov."
#: src/settings_translation_file.cpp
-msgid "Chat message format"
-msgstr ""
+msgid "Loading Block Modifiers"
+msgstr "Nahrávam modifikátory blokov"
#: src/settings_translation_file.cpp
-msgid ""
-"Format of player chat messages. The following strings are valid "
-"placeholders:\n"
-"@name, @message, @timestamp (optional)"
-msgstr ""
+msgid "Lower Y limit of dungeons."
+msgstr "Dolný Y limit kobiek."
#: src/settings_translation_file.cpp
-msgid "Shutdown message"
-msgstr ""
+msgid "Lower Y limit of floatlands."
+msgstr "Spodný Y limit lietajúcich pevnín."
#: src/settings_translation_file.cpp
-msgid "A message to be displayed to all clients when the server shuts down."
-msgstr ""
+msgid "Main menu script"
+msgstr "Skript hlavného menu"
#: src/settings_translation_file.cpp
-msgid "Crash message"
+msgid ""
+"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
+"Prispôsob farbu hmly a oblohy dennej dobe (svitanie/súmrak) a uhlu pohľadu."
#: src/settings_translation_file.cpp
-msgid "A message to be displayed to all clients when the server crashes."
-msgstr ""
+msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles."
+msgstr "Umožní DirectX pracovať s LuaJIT. Vypni ak to spôsobuje problémy."
#: src/settings_translation_file.cpp
-msgid "Ask to reconnect after crash"
-msgstr ""
+msgid "Makes all liquids opaque"
+msgstr "Všetky tekutiny budú nepriehľadné"
#: src/settings_translation_file.cpp
-msgid ""
-"Whether to ask clients to reconnect after a (Lua) crash.\n"
-"Set this to true if your server is set up to restart automatically."
-msgstr ""
+msgid "Map Compression Level for Disk Storage"
+msgstr "Úroveň kompresie mapy pre diskové úložisko"
#: src/settings_translation_file.cpp
-msgid "Active object send range"
-msgstr ""
+msgid "Map Compression Level for Network Transfer"
+msgstr "Úroveň kompresie mapy pre sieťový prenos"
#: src/settings_translation_file.cpp
-msgid ""
-"From how far clients know about objects, stated in mapblocks (16 nodes).\n"
-"\n"
-"Setting this larger than active_block_range will also cause the server\n"
-"to maintain active objects up to this distance in the direction the\n"
-"player is looking. (This can avoid mobs suddenly disappearing from view)"
-msgstr ""
+msgid "Map directory"
+msgstr "Adresár máp"
#: src/settings_translation_file.cpp
-msgid "Active block range"
-msgstr ""
+msgid "Map generation attributes specific to Mapgen Carpathian."
+msgstr "Špecifické príznaky pre generátor máp Karpaty."
#: src/settings_translation_file.cpp
msgid ""
-"The radius of the volume of blocks around every player that is subject to "
-"the\n"
-"active block stuff, stated in mapblocks (16 nodes).\n"
-"In active blocks objects are loaded and ABMs run.\n"
-"This is also the minimum range in which active objects (mobs) are "
-"maintained.\n"
-"This should be configured together with active_object_send_range_blocks."
+"Map generation attributes specific to Mapgen Flat.\n"
+"Occasional lakes and hills can be added to the flat world."
msgstr ""
+"Špecifické atribúty pre plochý generátor mapy.\n"
+"Príležitostne môžu byť na plochý svet pridané jazerá a kopce."
#: src/settings_translation_file.cpp
-msgid "Max block send distance"
+msgid ""
+"Map generation attributes specific to Mapgen Fractal.\n"
+"'terrain' enables the generation of non-fractal terrain:\n"
+"ocean, islands and underground."
msgstr ""
+"Špecifické príznaky generátora máp Fraktál.\n"
+"'terrain' aktivuje generovanie nie-fraktálneho terénu:\n"
+"oceán, ostrovy and podzemie."
#: src/settings_translation_file.cpp
msgid ""
-"From how far blocks are sent to clients, stated in mapblocks (16 nodes)."
+"Map generation attributes specific to Mapgen Valleys.\n"
+"'altitude_chill': Reduces heat with altitude.\n"
+"'humid_rivers': Increases humidity around rivers.\n"
+"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n"
+"to become shallower and occasionally dry.\n"
+"'altitude_dry': Reduces humidity with altitude."
msgstr ""
+"Špecifické príznaky pre generovanie mapy generátora Údolia.\n"
+"'altitude_chill': Znižuje teplotu s nadmorskou výškou.\n"
+"'humid_rivers': Zvyšuje vlhkosť okolo riek.\n"
+"'vary_river_depth': ak je aktívne, nízka vlhkosť a vysoké teploty\n"
+"spôsobia, že hladina rieky poklesne, niekdy aj vyschne.\n"
+"'altitude_dry': Znižuje vlhkosť s nadmorskou výškou."
#: src/settings_translation_file.cpp
-msgid "Maximum forceloaded blocks"
-msgstr ""
+msgid "Map generation attributes specific to Mapgen v5."
+msgstr "Príznaky pre generovanie špecifické pre generátor V5."
#: src/settings_translation_file.cpp
-msgid "Maximum number of forceloaded mapblocks."
+msgid ""
+"Map generation attributes specific to Mapgen v6.\n"
+"The 'snowbiomes' flag enables the new 5 biome system.\n"
+"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n"
+"the 'jungles' flag is ignored."
msgstr ""
+"Špecifické atribúty pre generátor V6.\n"
+"Príznak 'snowbiomes' aktivuje nový systém 5 biómov.\n"
+"Ak je aktívny prźnak 'snowbiomes', džungle sú automaticky povolené a\n"
+"príznak 'jungles' je ignorovaný."
#: src/settings_translation_file.cpp
-msgid "Time send interval"
+msgid ""
+"Map generation attributes specific to Mapgen v7.\n"
+"'ridges': Rivers.\n"
+"'floatlands': Floating land masses in the atmosphere.\n"
+"'caverns': Giant caves deep underground."
msgstr ""
+"Špecifické príznaky pre generátor máp V7.\n"
+"'ridges': Rieky.\n"
+"'floatlands': Lietajúce masy pevnín v atmosfére.\n"
+"'caverns': Gigantické jaskyne hlboko v podzemí."
#: src/settings_translation_file.cpp
-msgid "Interval of sending time of day to clients."
-msgstr ""
+msgid "Map generation limit"
+msgstr "Limit generovania mapy"
#: src/settings_translation_file.cpp
-msgid "Time speed"
-msgstr ""
+msgid "Map save interval"
+msgstr "Interval ukladania mapy"
#: src/settings_translation_file.cpp
-msgid ""
-"Controls length of day/night cycle.\n"
-"Examples:\n"
-"72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged."
-msgstr ""
+msgid "Mapblock limit"
+msgstr "Limit blokov mapy"
#: src/settings_translation_file.cpp
-msgid "World start time"
-msgstr ""
+msgid "Mapblock mesh generation delay"
+msgstr "Oneskorenie generovania Mesh blokov"
#: src/settings_translation_file.cpp
-msgid "Time of day when a new world is started, in millihours (0-23999)."
-msgstr ""
+msgid "Mapblock mesh generator's MapBlock cache size in MB"
+msgstr "Medzipamäť Mapblock Mesh generátora blokov v MB"
#: src/settings_translation_file.cpp
-msgid "Map save interval"
-msgstr ""
+msgid "Mapblock unload timeout"
+msgstr "Čas odstránenia bloku mapy"
#: src/settings_translation_file.cpp
-msgid "Interval of saving important changes in the world, stated in seconds."
-msgstr ""
+msgid "Mapgen Carpathian"
+msgstr "Generátor mapy Karpaty"
#: src/settings_translation_file.cpp
-msgid "Chat message max length"
-msgstr ""
+msgid "Mapgen Carpathian specific flags"
+msgstr "Špecifické príznaky generátora máp Karpaty"
#: src/settings_translation_file.cpp
-msgid "Set the maximum character length of a chat message sent by clients."
-msgstr ""
+msgid "Mapgen Flat"
+msgstr "Generátor mapy plochý"
#: src/settings_translation_file.cpp
-msgid "Chat message count limit"
-msgstr ""
+msgid "Mapgen Flat specific flags"
+msgstr "Špecifické príznaky plochého generátora mapy"
#: src/settings_translation_file.cpp
-msgid "Amount of messages a player may send per 10 seconds."
-msgstr ""
+msgid "Mapgen Fractal"
+msgstr "Generátor mapy Fraktál"
#: src/settings_translation_file.cpp
-msgid "Chat message kick threshold"
-msgstr ""
+msgid "Mapgen Fractal specific flags"
+msgstr "Špecifické príznaky generátora máp Fraktál"
#: src/settings_translation_file.cpp
-msgid "Kick players who sent more than X messages per 10 seconds."
-msgstr ""
+msgid "Mapgen V5"
+msgstr "Generátor mapy V5"
#: src/settings_translation_file.cpp
-msgid "Physics"
-msgstr ""
+msgid "Mapgen V5 specific flags"
+msgstr "Špecifické príznaky pre generátor mapy V5"
#: src/settings_translation_file.cpp
-msgid "Default acceleration"
-msgstr ""
+msgid "Mapgen V6"
+msgstr "Generátor mapy V6"
#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal and vertical acceleration on ground or when climbing,\n"
-"in nodes per second per second."
-msgstr ""
+msgid "Mapgen V6 specific flags"
+msgstr "Špecifické príznaky generátora mapy V6"
#: src/settings_translation_file.cpp
-msgid "Acceleration in air"
-msgstr ""
+msgid "Mapgen V7"
+msgstr "Generátor mapy V7"
#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal acceleration in air when jumping or falling,\n"
-"in nodes per second per second."
-msgstr ""
+msgid "Mapgen V7 specific flags"
+msgstr "Špecifické príznaky generátora V7"
#: src/settings_translation_file.cpp
-msgid "Fast mode acceleration"
-msgstr ""
+msgid "Mapgen Valleys"
+msgstr "Generátor mapy Údolia"
#: src/settings_translation_file.cpp
-msgid ""
-"Horizontal and vertical acceleration in fast mode,\n"
-"in nodes per second per second."
-msgstr ""
+msgid "Mapgen Valleys specific flags"
+msgstr "Špecifické príznaky pre generátor Údolia"
#: src/settings_translation_file.cpp
-msgid "Walking speed"
-msgstr ""
+msgid "Mapgen debug"
+msgstr "Ladenie generátora máp"
#: src/settings_translation_file.cpp
-msgid "Walking and flying speed, in nodes per second."
-msgstr ""
+msgid "Mapgen name"
+msgstr "Meno generátora mapy"
#: src/settings_translation_file.cpp
-msgid "Sneaking speed"
-msgstr ""
+msgid "Max block generate distance"
+msgstr "Maximálna vzdialenosť generovania blokov"
#: src/settings_translation_file.cpp
-msgid "Sneaking speed, in nodes per second."
-msgstr ""
+msgid "Max block send distance"
+msgstr "Max vzdialenosť posielania objektov"
#: src/settings_translation_file.cpp
-msgid "Fast mode speed"
-msgstr ""
+msgid "Max liquids processed per step."
+msgstr "Maximálny poÄet tekutín spracovaný v jednom kroku."
#: src/settings_translation_file.cpp
-msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
-msgstr ""
+msgid "Max. clearobjects extra blocks"
+msgstr "Max. extra blokov clearobjects"
#: src/settings_translation_file.cpp
-msgid "Climbing speed"
-msgstr ""
+msgid "Max. packets per iteration"
+msgstr "Max. paketov za opakovanie"
#: src/settings_translation_file.cpp
-msgid "Vertical climbing speed, in nodes per second."
-msgstr ""
+msgid "Maximum FPS"
+msgstr "Maximálne FPS"
#: src/settings_translation_file.cpp
-msgid "Jumping speed"
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
+"Maximálne FPS, ak je hra nie je v aktuálnom okne, alebo je pozastavená."
#: src/settings_translation_file.cpp
-msgid "Initial vertical speed when jumping, in nodes per second."
-msgstr ""
+msgid "Maximum forceloaded blocks"
+msgstr "Maximum vynútene nahraných blokov"
#: src/settings_translation_file.cpp
-msgid "Liquid fluidity"
-msgstr ""
+msgid "Maximum hotbar width"
+msgstr "Maximálna šírka opaska"
#: src/settings_translation_file.cpp
-msgid "Decrease this to increase liquid resistance to movement."
+msgid "Maximum limit of random number of large caves per mapchunk."
msgstr ""
+"Maximálny limit náhodného poÄtu veľkých jaskýň v danej Äasti mapy (mapchunk)."
#: src/settings_translation_file.cpp
-msgid "Liquid fluidity smoothing"
+msgid "Maximum limit of random number of small caves per mapchunk."
msgstr ""
+"Maximálny limit náhodného poÄtu malých jaskýň v danej Äasti mapy (mapchunk)."
#: src/settings_translation_file.cpp
msgid ""
"Maximum liquid resistance. Controls deceleration when entering liquid at\n"
"high speed."
msgstr ""
+"Maximálny odpor tekutín. Riadi spomalenie ak sa tekutina\n"
+"vlieva vysokou rýchlosťou."
#: src/settings_translation_file.cpp
-msgid "Liquid sinking"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Controls sinking speed in liquid."
+msgid ""
+"Maximum number of blocks that are simultaneously sent per client.\n"
+"The maximum total count is calculated dynamically:\n"
+"max_total = ceil((#clients + max_users) * per_client / 4)"
msgstr ""
+"Maximálny poÄet súÄasne posielaných blokov na klienta.\n"
+"Maximálny poÄet sa prepoÄítava dynamicky:\n"
+"max_total = ceil((#clients + max_users) * per_client / 4)"
#: src/settings_translation_file.cpp
-msgid "Gravity"
-msgstr ""
+msgid "Maximum number of blocks that can be queued for loading."
+msgstr "Maximálny limit kociek, ktoré môžu byť vo fronte pre nahrávanie."
#: src/settings_translation_file.cpp
-msgid "Acceleration of gravity, in nodes per second per second."
+msgid ""
+"Maximum number of blocks to be queued that are to be generated.\n"
+"This limit is enforced per player."
msgstr ""
+"Maximálny limit kociek vo fronte, ktoré budú generované.\n"
+"Tento limit je vynútený pre každého hráÄa."
#: src/settings_translation_file.cpp
-msgid "Deprecated Lua API handling"
+msgid ""
+"Maximum number of blocks to be queued that are to be loaded from file.\n"
+"This limit is enforced per player."
msgstr ""
+"Maximálny limit kociek vo fronte, ktoré budú nahrané zo súboru.\n"
+"Tento limit je vynútený pre každého hráÄa."
#: src/settings_translation_file.cpp
msgid ""
-"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
-"- error: abort on usage of deprecated call (suggested for mod developers)."
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
msgstr ""
+"Maximálny poÄet súÄasných sÅ¥ahovaní. SÅ¥ahovania presahujúce tento limit budú "
+"ÄakaÅ¥ v rade.\n"
+"Mal by byť nižší ako curl_parallel_limit."
#: src/settings_translation_file.cpp
-msgid "Max. clearobjects extra blocks"
-msgstr ""
+msgid "Maximum number of forceloaded mapblocks."
+msgstr "Maximálny poÄet vynútene nahraných blokov mapy."
#: src/settings_translation_file.cpp
msgid ""
-"Number of extra blocks that can be loaded by /clearobjects at once.\n"
-"This is a trade-off between sqlite transaction overhead and\n"
-"memory consumption (4096=100MB, as a rule of thumb)."
+"Maximum number of mapblocks for client to be kept in memory.\n"
+"Set to -1 for unlimited amount."
msgstr ""
+"Maximálny poÄet blokov u klienta, ktoré ostávajú v pamäti.\n"
+"Nastav -1 pre neobmedzené množstvo."
#: src/settings_translation_file.cpp
-msgid "Unload unused server data"
+msgid ""
+"Maximum number of packets sent per send step, if you have a slow connection\n"
+"try reducing it, but don't reduce it to a number below double of targeted\n"
+"client number."
msgstr ""
+"Maximálny poÄet paketov poslaný pri jednom kroku posielania,\n"
+"ak máš pomalé pripojenie skús ho znížiť, ale\n"
+"neznižuj ho pod dvojnásobok cieľového poÄtu klientov."
#: src/settings_translation_file.cpp
-msgid ""
-"How much the server will wait before unloading unused mapblocks.\n"
-"Higher value is smoother, but will use more RAM."
-msgstr ""
+msgid "Maximum number of players that can be connected simultaneously."
+msgstr "Maximálny poÄet hráÄov, ktorí sa môžu súÄasne pripojiÅ¥."
#: src/settings_translation_file.cpp
-msgid "Maximum objects per block"
-msgstr ""
+msgid "Maximum number of recent chat messages to show"
+msgstr "Maximálny poÄet nedávnych správ v komunikácií, ktoré budú zobrazované"
#: src/settings_translation_file.cpp
msgid "Maximum number of statically stored objects in a block."
-msgstr ""
+msgstr "Maximálny poÄet staticky uložených objektov v bloku."
#: src/settings_translation_file.cpp
-msgid "Synchronous SQLite"
-msgstr ""
+msgid "Maximum objects per block"
+msgstr "Max. poÄet objektov na blok"
#: src/settings_translation_file.cpp
-msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
+msgid ""
+"Maximum proportion of current window to be used for hotbar.\n"
+"Useful if there's something to be displayed right or left of hotbar."
msgstr ""
+"Maximálny pomer aktuálneho okna, ktorý sa použije pre opasok.\n"
+"UžitoÄné, ak treba zobraziÅ¥ nieÄo vpravo, alebo vľavo od opaska."
#: src/settings_translation_file.cpp
-msgid "Dedicated server step"
-msgstr ""
+msgid "Maximum simultaneous block sends per client"
+msgstr "Maximum súÄasných odoslaní bloku na klienta"
+
+#: src/settings_translation_file.cpp
+msgid "Maximum size of the out chat queue"
+msgstr "Maximálna veľkosÅ¥ výstupnej komunikaÄnej fronty"
#: src/settings_translation_file.cpp
msgid ""
-"Length of a server tick and the interval at which objects are generally "
-"updated over\n"
-"network."
+"Maximum size of the out chat queue.\n"
+"0 to disable queueing and -1 to make the queue size unlimited."
msgstr ""
+"Maximálna veľkosÅ¥ výstupnej komunikaÄnej fronty.\n"
+"0 pre zakázanie fronty a -1 pre neobmedzenú frontu."
#: src/settings_translation_file.cpp
-msgid "Active block management interval"
+msgid "Maximum time in ms a file download (e.g. a mod download) may take."
msgstr ""
+"Maximálny Äas v ms, ktorý môže zabraÅ¥ sÅ¥ahovanie súboru (napr. sÅ¥ahovanie "
+"rozšírenia)."
#: src/settings_translation_file.cpp
-msgid "Length of time between active block management cycles"
-msgstr ""
+msgid "Maximum users"
+msgstr "Maximálny poÄet hráÄov"
#: src/settings_translation_file.cpp
-msgid "ABM interval"
-msgstr ""
+msgid "Menus"
+msgstr "Menu"
#: src/settings_translation_file.cpp
-msgid "Length of time between Active Block Modifier (ABM) execution cycles"
-msgstr ""
+msgid "Mesh cache"
+msgstr "Medzipamäť Mesh"
#: src/settings_translation_file.cpp
-msgid "NodeTimer interval"
-msgstr ""
+msgid "Message of the day"
+msgstr "Správa dňa"
#: src/settings_translation_file.cpp
-msgid "Length of time between NodeTimer execution cycles"
-msgstr ""
+msgid "Message of the day displayed to players connecting."
+msgstr "Správa dňa sa zobrazí hráÄom pri pripájaní."
#: src/settings_translation_file.cpp
-msgid "Ignore world errors"
-msgstr ""
+msgid "Method used to highlight selected object."
+msgstr "Metóda použitá pre zvýraznenie vybraných objektov."
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled, invalid world data won't cause the server to shut down.\n"
-"Only enable this if you know what you are doing."
-msgstr ""
+msgid "Minimal level of logging to be written to chat."
+msgstr "Minimálna úroveň záznamov, ktoré budú vypísané do komunikaÄného okna."
#: src/settings_translation_file.cpp
-msgid "Liquid loop max"
-msgstr ""
+msgid "Minimap"
+msgstr "Minimapa"
#: src/settings_translation_file.cpp
-msgid "Max liquids processed per step."
-msgstr ""
+msgid "Minimap key"
+msgstr "TlaÄidlo Minimapa"
#: src/settings_translation_file.cpp
-msgid "Liquid queue purge time"
-msgstr ""
+msgid "Minimap scan height"
+msgstr "Minimapa výška skenovania"
#: src/settings_translation_file.cpp
-msgid ""
-"The time (in seconds) that the liquids queue may grow beyond processing\n"
-"capacity until an attempt is made to decrease its size by dumping old queue\n"
-"items. A value of 0 disables the functionality."
+msgid "Minimum limit of random number of large caves per mapchunk."
msgstr ""
+"Minimálny limit náhodného poÄtu veľkých jaskýň v danej Äasti mapy (mapchunk)."
#: src/settings_translation_file.cpp
-msgid "Liquid update tick"
+msgid "Minimum limit of random number of small caves per mapchunk."
msgstr ""
+"Minimálny limit náhodného poÄtu malých jaskýň v danej Äasti mapy (mapchunk)."
#: src/settings_translation_file.cpp
-msgid "Liquid update interval in seconds."
-msgstr ""
+msgid "Minimum texture size"
+msgstr "Minimálna veľkosť textúry"
#: src/settings_translation_file.cpp
-msgid "Block send optimize distance"
-msgstr ""
+msgid "Mipmapping"
+msgstr "Mipmapping"
#: src/settings_translation_file.cpp
-msgid ""
-"At this distance the server will aggressively optimize which blocks are sent "
-"to\n"
-"clients.\n"
-"Small values potentially improve performance a lot, at the expense of "
-"visible\n"
-"rendering glitches (some blocks will not be rendered under water and in "
-"caves,\n"
-"as well as sometimes on land).\n"
-"Setting this to a value greater than max_block_send_distance disables this\n"
-"optimization.\n"
-"Stated in mapblocks (16 nodes)."
-msgstr ""
+msgid "Mod channels"
+msgstr "KomunikaÄné kanály rozšírení"
#: src/settings_translation_file.cpp
-msgid "Server side occlusion culling"
-msgstr ""
+msgid "Modifies the size of the hudbar elements."
+msgstr "Upraví veľkosť elementov v užívateľskom rozhraní."
#: src/settings_translation_file.cpp
-msgid ""
-"If enabled the server will perform map block occlusion culling based on\n"
-"on the eye position of the player. This can reduce the number of blocks\n"
-"sent to the client 50-80%. The client will not longer receive most "
-"invisible\n"
-"so that the utility of noclip mode is reduced."
-msgstr ""
+msgid "Monospace font path"
+msgstr "Cesta k písmu s pevnou šírkou"
#: src/settings_translation_file.cpp
-msgid "Client side modding restrictions"
-msgstr ""
+msgid "Monospace font size"
+msgstr "Veľkosť písmo s pevnou šírkou"
#: src/settings_translation_file.cpp
-msgid ""
-"Restricts the access of certain client-side functions on servers.\n"
-"Combine the byteflags below to restrict client-side features, or set to 0\n"
-"for no restrictions:\n"
-"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n"
-"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n"
-"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n"
-"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n"
-"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n"
-"csm_restriction_noderange)\n"
-"READ_PLAYERINFO: 32 (disable get_player_names call client-side)"
-msgstr ""
+msgid "Mountain height noise"
+msgstr "Šum pre výšku hôr"
#: src/settings_translation_file.cpp
-msgid "Client side node lookup range restriction"
-msgstr ""
+msgid "Mountain noise"
+msgstr "Šum hôr"
#: src/settings_translation_file.cpp
-msgid ""
-"If the CSM restriction for node range is enabled, get_node calls are "
-"limited\n"
-"to this distance from the player to the node."
-msgstr ""
+msgid "Mountain variation noise"
+msgstr "Odchýlka šumu hôr"
#: src/settings_translation_file.cpp
-msgid "Security"
-msgstr ""
+msgid "Mountain zero level"
+msgstr "Základná úroveň hôr"
#: src/settings_translation_file.cpp
-msgid "Enable mod security"
-msgstr ""
+msgid "Mouse sensitivity"
+msgstr "Citlivosť myši"
#: src/settings_translation_file.cpp
-msgid "Prevent mods from doing insecure things like running shell commands."
-msgstr ""
+msgid "Mouse sensitivity multiplier."
+msgstr "Multiplikátor citlivosti myši."
#: src/settings_translation_file.cpp
-msgid "Trusted mods"
-msgstr ""
+msgid "Mud noise"
+msgstr "Å um bahna"
#: src/settings_translation_file.cpp
msgid ""
-"Comma-separated list of trusted mods that are allowed to access insecure\n"
-"functions even when mod security is on (via request_insecure_environment())."
+"Multiplier for fall bobbing.\n"
+"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double."
msgstr ""
+"Násobiteľ pre pohupovanie sa pri pádu.\n"
+"Napr.: 0 pre žiadne pohupovanie; 1.0 pre normálne; 2.0 pre dvojnásobné."
#: src/settings_translation_file.cpp
-msgid "HTTP mods"
-msgstr ""
+msgid "Mute key"
+msgstr "TlaÄidlo Ticho"
#: src/settings_translation_file.cpp
-msgid ""
-"Comma-separated list of mods that are allowed to access HTTP APIs, which\n"
-"allow them to upload and download data to/from the internet."
-msgstr ""
+msgid "Mute sound"
+msgstr "Stíš hlasitosť"
#: src/settings_translation_file.cpp
-msgid "Profiling"
+msgid ""
+"Name of map generator to be used when creating a new world.\n"
+"Creating a world in the main menu will override this.\n"
+"Current mapgens in a highly unstable state:\n"
+"- The optional floatlands of v7 (disabled by default)."
msgstr ""
+"Meno generátora mapy, ktorý sa použije pri vytváraní nového sveta.\n"
+"Vytvorenie sveta cez hlavné menu toto prepíše.\n"
+"Aktuálne nestabilné generátory:\n"
+"- Voliteľné lietajúce pevniny (floatlands) vo v7 (štandardne vypnuté)."
#: src/settings_translation_file.cpp
-msgid "Load the game profiler"
+msgid ""
+"Name of the player.\n"
+"When running a server, clients connecting with this name are admins.\n"
+"When starting from the main menu, this is overridden."
msgstr ""
+"Meno hráÄa.\n"
+"Ak je spustený server, klienti s týmto menom sú administrátori.\n"
+"Pri štarte z hlavného menu, toto bude prepísané."
#: src/settings_translation_file.cpp
msgid ""
-"Load the game profiler to collect game profiling data.\n"
-"Provides a /profiler command to access the compiled profile.\n"
-"Useful for mod developers and server operators."
+"Name of the server, to be displayed when players join and in the serverlist."
msgstr ""
+"Zobrazované meno servera, keÄ sa hrÃ¡Ä na server pripojí a v zozname serverov."
#: src/settings_translation_file.cpp
-msgid "Default report format"
-msgstr ""
+msgid "Near plane"
+msgstr "Blízkosť roviny"
#: src/settings_translation_file.cpp
-msgid ""
-"The default format in which profiles are being saved,\n"
-"when calling `/profiler save [format]` without format."
-msgstr ""
+msgid "Network"
+msgstr "Sieť"
#: src/settings_translation_file.cpp
-msgid "Report path"
+msgid ""
+"Network port to listen (UDP).\n"
+"This value will be overridden when starting from the main menu."
msgstr ""
+"Sieťový port (UDP).\n"
+"Táto hodnota bude prepísaná pri spustení z hlavného menu."
#: src/settings_translation_file.cpp
-msgid ""
-"The file path relative to your worldpath in which profiles will be saved to."
-msgstr ""
+msgid "New users need to input this password."
+msgstr "Noví hráÄi musia zadaÅ¥ toto heslo."
#: src/settings_translation_file.cpp
-msgid "Instrumentation"
-msgstr ""
+msgid "Noclip"
+msgstr "Prechádzanie stenami"
#: src/settings_translation_file.cpp
-msgid "Entity methods"
-msgstr ""
+msgid "Noclip key"
+msgstr "TlaÄidlo Prechádzanie stenami"
#: src/settings_translation_file.cpp
-msgid "Instrument the methods of entities on registration."
-msgstr ""
+msgid "Node highlighting"
+msgstr "Zvýrazňovanie kociek"
#: src/settings_translation_file.cpp
-msgid "Active Block Modifiers"
-msgstr ""
+msgid "NodeTimer interval"
+msgstr "Interval ÄasovaÄa kociek"
#: src/settings_translation_file.cpp
-msgid ""
-"Instrument the action function of Active Block Modifiers on registration."
-msgstr ""
+msgid "Noises"
+msgstr "Å umy"
#: src/settings_translation_file.cpp
-msgid "Loading Block Modifiers"
-msgstr ""
+msgid "Number of emerge threads"
+msgstr "PoÄet použitých vlákien"
#: src/settings_translation_file.cpp
msgid ""
-"Instrument the action function of Loading Block Modifiers on registration."
+"Number of emerge threads to use.\n"
+"Value 0:\n"
+"- Automatic selection. The number of emerge threads will be\n"
+"- 'number of processors - 2', with a lower limit of 1.\n"
+"Any other value:\n"
+"- Specifies the number of emerge threads, with a lower limit of 1.\n"
+"WARNING: Increasing the number of emerge threads increases engine mapgen\n"
+"speed, but this may harm game performance by interfering with other\n"
+"processes, especially in singleplayer and/or when running Lua code in\n"
+"'on_generated'. For many users the optimum setting may be '1'."
msgstr ""
+"PoÄet použitých vlákien.\n"
+"Hodnota 0:\n"
+"- Automatický urÄenie. PoÄet použitých vlákien bude\n"
+"- 'poÄet procesorov - 2', s dolným limitom 1.\n"
+"Akákoľvek iná hodnota:\n"
+"- Definuje poÄet vlákien, s dolným limitom 1.\n"
+"VAROVANIE: Zvýšenie poÄtu vlákien zvýši rýchlosÅ¥ generátora máp,\n"
+"ale môže to uškodiť hernému výkonu interferenciou s inými\n"
+"procesmi, obzvlášť pri hre jedného hráÄa a/alebo ak beží Lua kód\n"
+"v 'on_generated'. Pre mnohých hráÄov môže byÅ¥ optimálne nastavenie '1'."
#: src/settings_translation_file.cpp
-msgid "Chatcommands"
+msgid ""
+"Number of extra blocks that can be loaded by /clearobjects at once.\n"
+"This is a trade-off between sqlite transaction overhead and\n"
+"memory consumption (4096=100MB, as a rule of thumb)."
msgstr ""
+"PoÄet extra blokov, ktoré môžu byÅ¥ naraz nahrané pomocou /clearobjects.\n"
+"Toto je kompromis medzi vyťažením sqlite transakciami\n"
+"a spotrebou pamäti (4096=100MB, ako približné pravidlo)."
#: src/settings_translation_file.cpp
-msgid "Instrument chatcommands on registration."
-msgstr ""
+msgid "Online Content Repository"
+msgstr "Úložisko doplnkov na internete"
#: src/settings_translation_file.cpp
-msgid "Global callbacks"
-msgstr ""
+msgid "Opaque liquids"
+msgstr "Nepriehľadné tekutiny"
#: src/settings_translation_file.cpp
msgid ""
-"Instrument global callback functions on registration.\n"
-"(anything you pass to a minetest.register_*() function)"
-msgstr ""
+"Opaqueness (alpha) of the shadow behind the default font, between 0 and 255."
+msgstr "Nepriehľadnosť tieňa za štandardným písmom, medzi 0 a 255."
#: src/settings_translation_file.cpp
-msgid "Builtin"
-msgstr ""
+msgid ""
+"Opaqueness (alpha) of the shadow behind the fallback font, between 0 and 255."
+msgstr "Nepriehľadnosť tieňa za záložným písmom, medzi 0 a 255."
#: src/settings_translation_file.cpp
msgid ""
-"Instrument builtin.\n"
-"This is usually only needed by core/builtin contributors"
+"Open the pause menu when the window's focus is lost. Does not pause if a "
+"formspec is\n"
+"open."
msgstr ""
+"Otvorí menu pozastavenia, ak aktuálne okno hry nie je vybrané.\n"
+"Nepozastaví sa ak je otvorený formspec."
#: src/settings_translation_file.cpp
-msgid "Profiler"
+msgid ""
+"Path of the fallback font.\n"
+"If “freetype†setting is enabled: Must be a TrueType font.\n"
+"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
+"This font will be used for certain languages or if the default font is "
+"unavailable."
msgstr ""
+"Cesta k záložnému písmu.\n"
+"Ak je aktívne nastavenie “freetypeâ€: Musí to byÅ¥ TrueType písmo.\n"
+"Ak je zakázané nastavenie “freetypeâ€: Musí to byÅ¥ bitmapové, alebo XML "
+"vektorové písmo.\n"
+"Toto písmo bude použité pre urÄité jazyky, alebo ak nie je Å¡tandardné písmo "
+"k dispozícií."
#: src/settings_translation_file.cpp
msgid ""
-"Have the profiler instrument itself:\n"
-"* Instrument an empty function.\n"
-"This estimates the overhead, that instrumentation is adding (+1 function "
-"call).\n"
-"* Instrument the sampler being used to update the statistics."
+"Path to save screenshots at. Can be an absolute or relative path.\n"
+"The folder will be created if it doesn't already exist."
msgstr ""
+"Cesta, kam sa budú ukladať snímky obrazovky. Môže to byť ako absolútna, tak "
+"relatívna cesta.\n"
+"Adresár bude vytvorený ak neexistuje."
#: src/settings_translation_file.cpp
-msgid "Client and Server"
+msgid ""
+"Path to shader directory. If no path is defined, default location will be "
+"used."
msgstr ""
+"Cesta do adresára so shadermi. Ak nie je definovaná, použije sa predvolená "
+"lokácia."
#: src/settings_translation_file.cpp
-msgid "Player name"
-msgstr ""
+msgid "Path to texture directory. All textures are first searched from here."
+msgstr "Cesta do adresára s textúrami. Všetky textúry sú najprv hľadané tu."
#: src/settings_translation_file.cpp
msgid ""
-"Name of the player.\n"
-"When running a server, clients connecting with this name are admins.\n"
-"When starting from the main menu, this is overridden."
+"Path to the default font.\n"
+"If “freetype†setting is enabled: Must be a TrueType font.\n"
+"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
+"The fallback font will be used if the font cannot be loaded."
msgstr ""
+"Cesta k štandardnému písmu.\n"
+"Ak je aktivné nastavenie “freetypeâ€: Musí to byÅ¥ TrueType písmo.\n"
+"Ak je zakázané nastavenie “freetypeâ€: Musí to byÅ¥ bitmapové, alebo XML "
+"vektorové písmo.\n"
+"Bude použité záložné písmo, ak nebude možné písmo nahrať."
#: src/settings_translation_file.cpp
-msgid "Language"
+msgid ""
+"Path to the monospace font.\n"
+"If “freetype†setting is enabled: Must be a TrueType font.\n"
+"If “freetype†setting is disabled: Must be a bitmap or XML vectors font.\n"
+"This font is used for e.g. the console and profiler screen."
msgstr ""
+"Cesta k písmu s pevnou šírkou.\n"
+"Ak je aktívne nastavenie “freetypeâ€: Musí to byÅ¥ TrueType písmo.\n"
+"Ak je zakázané nastavenie “freetypeâ€: Musí to byÅ¥ bitmapové, alebo XML "
+"vektorové písmo.\n"
+"Toto písmo je použité pre napr. konzolu a okno profilera."
#: src/settings_translation_file.cpp
-msgid ""
-"Set the language. Leave empty to use the system language.\n"
-"A restart is required after changing this."
-msgstr ""
+msgid "Pause on lost window focus"
+msgstr "Pozastav hru, pri strate zamerania okna"
#: src/settings_translation_file.cpp
-msgid "Debug log level"
-msgstr ""
+msgid "Per-player limit of queued blocks load from disk"
+msgstr "Limit kociek vo fronte na každého hráÄa nahrávaných z disku"
#: src/settings_translation_file.cpp
-msgid ""
-"Level of logging to be written to debug.txt:\n"
-"- <nothing> (no logging)\n"
-"- none (messages with no level)\n"
-"- error\n"
-"- warning\n"
-"- action\n"
-"- info\n"
-"- verbose"
-msgstr ""
+msgid "Per-player limit of queued blocks to generate"
+msgstr "Limit kociek vo fronte na každého hráÄa pre generovanie"
#: src/settings_translation_file.cpp
-msgid "Debug log file size threshold"
-msgstr ""
+msgid "Physics"
+msgstr "Fyzika"
#: src/settings_translation_file.cpp
-msgid ""
-"If the file size of debug.txt exceeds the number of megabytes specified in\n"
-"this setting when it is opened, the file is moved to debug.txt.1,\n"
-"deleting an older debug.txt.1 if it exists.\n"
-"debug.txt is only moved if this setting is positive."
-msgstr ""
+msgid "Pitch move key"
+msgstr "TlaÄidlo Pohyb podľa sklonu"
#: src/settings_translation_file.cpp
-msgid "Chat log level"
-msgstr ""
+msgid "Pitch move mode"
+msgstr "Režim pohybu podľa sklonu"
#: src/settings_translation_file.cpp
-msgid "Minimal level of logging to be written to chat."
-msgstr ""
+msgid "Place key"
+msgstr "TlaÄidlo na pokladanie"
#: src/settings_translation_file.cpp
-msgid "IPv6"
-msgstr ""
+msgid "Place repetition interval"
+msgstr "Interval opakovania pokladania"
#: src/settings_translation_file.cpp
msgid ""
-"Enable IPv6 support (for both client and server).\n"
-"Required for IPv6 connections to work at all."
+"Player is able to fly without being affected by gravity.\n"
+"This requires the \"fly\" privilege on the server."
msgstr ""
+"HrÃ¡Ä je schopný lietaÅ¥ bez ovplyvnenia gravitáciou.\n"
+"Toto si na serveri vyžaduje privilégium \"fly\"."
#: src/settings_translation_file.cpp
-msgid "cURL timeout"
-msgstr ""
+msgid "Player name"
+msgstr "Meno hráÄa"
#: src/settings_translation_file.cpp
-msgid ""
-"Default timeout for cURL, stated in milliseconds.\n"
-"Only has an effect if compiled with cURL."
-msgstr ""
+msgid "Player transfer distance"
+msgstr "VzdialenosÅ¥ zobrazenia hráÄa"
#: src/settings_translation_file.cpp
-msgid "cURL parallel limit"
-msgstr ""
+msgid "Player versus player"
+msgstr "HrÃ¡Ä proti hráÄovi (PvP)"
#: src/settings_translation_file.cpp
msgid ""
-"Limits number of parallel HTTP requests. Affects:\n"
-"- Media fetch if server uses remote_media setting.\n"
-"- Serverlist download and server announcement.\n"
-"- Downloads performed by main menu (e.g. mod manager).\n"
-"Only has an effect if compiled with cURL."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "cURL file download timeout"
+"Port to connect to (UDP).\n"
+"Note that the port field in the main menu overrides this setting."
msgstr ""
+"Port pre pripojenie sa (UDP).\n"
+"PolíÄko pre nastavenie Portu v hlavnom menu prepíše toto nastavenie."
#: src/settings_translation_file.cpp
-msgid "Maximum time in ms a file download (e.g. a mod download) may take."
+msgid ""
+"Prevent digging and placing from repeating when holding the mouse buttons.\n"
+"Enable this when you dig or place too often by accident."
msgstr ""
+"Zabráni opakovanému kopaniu a ukladaniu blokov pri držaní tlaÄítka myÅ¡i.\n"
+"Aktivuj, ak príliÅ¡ Äasto omylom nieÄo vykopeÅ¡, alebo položíš blok."
#: src/settings_translation_file.cpp
-msgid "High-precision FPU"
+msgid "Prevent mods from doing insecure things like running shell commands."
msgstr ""
+"Zabráni rozšíreniam aby robili nebezpeÄné veci ako spúšťanie systémových "
+"príkazov."
#: src/settings_translation_file.cpp
-msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles."
+msgid ""
+"Print the engine's profiling data in regular intervals (in seconds).\n"
+"0 = disable. Useful for developers."
msgstr ""
+"VytlaÄí profilové dáta enginu v pravidelných intervaloch (v sekundách).\n"
+"0 = vypnuté. UžitoÄné pre vývojárov."
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
+msgid "Privileges that players with basic_privs can grant"
+msgstr "Oprávnenia, ktoré môže udeliÅ¥ hrÃ¡Ä s basic_privs"
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
+msgid "Profiler"
+msgstr "Profiler"
#: src/settings_translation_file.cpp
-msgid "Main menu script"
-msgstr ""
+msgid "Profiler toggle key"
+msgstr "TlaÄidlo Prepínanie profileru"
#: src/settings_translation_file.cpp
-msgid "Replaces the default main menu with a custom one."
-msgstr ""
+msgid "Profiling"
+msgstr "Profilovanie"
#: src/settings_translation_file.cpp
-msgid "Engine profiling data print interval"
-msgstr ""
+msgid "Prometheus listener address"
+msgstr "OdpoÄúvacia adresa Promethea"
#: src/settings_translation_file.cpp
msgid ""
-"Print the engine's profiling data in regular intervals (in seconds).\n"
-"0 = disable. Useful for developers."
+"Prometheus listener address.\n"
+"If minetest is compiled with ENABLE_PROMETHEUS option enabled,\n"
+"enable metrics listener for Prometheus on that address.\n"
+"Metrics can be fetch on http://127.0.0.1:30000/metrics"
msgstr ""
+"OdpoÄúvacia adresa Promethea.\n"
+"Ak je minetest skompilovaný s nastaveným ENABLE_PROMETHEUS,\n"
+"aktivuj odpoÄúvanie metriky pre Prometheus na zadanej adrese.\n"
+"Metrika môže byť získaná na http://127.0.0.1:30000/metrics"
#: src/settings_translation_file.cpp
-msgid "Mapgen name"
-msgstr ""
+msgid "Proportion of large caves that contain liquid."
+msgstr "Pomer Äastí veľkých jaskýň, ktoré obsahujú tekutinu."
#: src/settings_translation_file.cpp
msgid ""
-"Name of map generator to be used when creating a new world.\n"
-"Creating a world in the main menu will override this.\n"
-"Current mapgens in a highly unstable state:\n"
-"- The optional floatlands of v7 (disabled by default)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Water level"
+"Radius of cloud area stated in number of 64 node cloud squares.\n"
+"Values larger than 26 will start to produce sharp cutoffs at cloud area "
+"corners."
msgstr ""
+"Polomer oblasti mrakov zadaný v poÄtoch 64 kociek na Å¡tvorcový mrak.\n"
+"Hodnoty vyššie než 26 budú produkovať ostré hranice na rohoch oblasti mrakov."
#: src/settings_translation_file.cpp
-msgid "Water surface level of the world."
-msgstr ""
+msgid "Raises terrain to make valleys around the rivers."
+msgstr "Zvýši terén aby vznikli údolia okolo riek."
#: src/settings_translation_file.cpp
-msgid "Max block generate distance"
-msgstr ""
+msgid "Random input"
+msgstr "Náhodný vstup"
#: src/settings_translation_file.cpp
-msgid ""
-"From how far blocks are generated for clients, stated in mapblocks (16 "
-"nodes)."
-msgstr ""
+msgid "Range select key"
+msgstr "TlaÄidlo Dohľad"
#: src/settings_translation_file.cpp
-msgid "Map generation limit"
-msgstr ""
+msgid "Recent Chat Messages"
+msgstr "Posledné správy v komunikácií"
#: src/settings_translation_file.cpp
-msgid ""
-"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n"
-"Only mapchunks completely within the mapgen limit are generated.\n"
-"Value is stored per-world."
-msgstr ""
+msgid "Regular font path"
+msgstr "Štandardná cesta k písmam"
#: src/settings_translation_file.cpp
-msgid ""
-"Global map generation attributes.\n"
-"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n"
-"and junglegrass, in all other mapgens this flag controls all decorations."
-msgstr ""
+msgid "Remote media"
+msgstr "Vzdialené média"
#: src/settings_translation_file.cpp
-msgid "Biome API temperature and humidity noise parameters"
-msgstr ""
+msgid "Remote port"
+msgstr "Vzdialený port"
#: src/settings_translation_file.cpp
-msgid "Heat noise"
+msgid ""
+"Remove color codes from incoming chat messages\n"
+"Use this to stop players from being able to use color in their messages"
msgstr ""
+"Odstráň farby z prichádzajúcich komunikaÄných správ\n"
+"Použi pre zabránenie používaniu farieb hráÄmi v ich správach"
#: src/settings_translation_file.cpp
-msgid "Temperature variation for biomes."
-msgstr ""
+msgid "Replaces the default main menu with a custom one."
+msgstr "Nahradí štandardné hlavné menu vlastným."
#: src/settings_translation_file.cpp
-msgid "Heat blend noise"
-msgstr ""
+msgid "Report path"
+msgstr "Cesta k záznamom"
#: src/settings_translation_file.cpp
-msgid "Small-scale temperature variation for blending biomes on borders."
+msgid ""
+"Restricts the access of certain client-side functions on servers.\n"
+"Combine the byteflags below to restrict client-side features, or set to 0\n"
+"for no restrictions:\n"
+"LOAD_CLIENT_MODS: 1 (disable loading client-provided mods)\n"
+"CHAT_MESSAGES: 2 (disable send_chat_message call client-side)\n"
+"READ_ITEMDEFS: 4 (disable get_item_def call client-side)\n"
+"READ_NODEDEFS: 8 (disable get_node_def call client-side)\n"
+"LOOKUP_NODES_LIMIT: 16 (limits get_node call client-side to\n"
+"csm_restriction_noderange)\n"
+"READ_PLAYERINFO: 32 (disable get_player_names call client-side)"
msgstr ""
+"Obmedzi prístup k urÄitým klientským funkciám na serveroch.\n"
+"Skombinuj bajtové príznaky dole pre obmedzenie jednotlivých\n"
+"fukncii u klienta, alebo nastav 0 pre funkcie bez obmedzení:\n"
+"LOAD_CLIENT_MODS: 1 (zakáže nahrávanie rozšírení u klienta)\n"
+"CHAT_MESSAGES: 2 (zakáže send_chat_message volania u klienta)\n"
+"READ_ITEMDEFS: 4 (zakáže get_item_def volania u klienta)\n"
+"READ_NODEDEFS: 8 (zakáže get_node_def volania u klienta)\n"
+"LOOKUP_NODES_LIMIT: 16 (obmedzí get_node volania u klienta na\n"
+"csm_restriction_noderange)\n"
+"READ_PLAYERINFO: 32 (zakáže get_player_names volania u klienta)"
#: src/settings_translation_file.cpp
-msgid "Humidity noise"
-msgstr ""
+msgid "Ridge mountain spread noise"
+msgstr "Rozptyl šumu hrebeňa hôr"
#: src/settings_translation_file.cpp
-msgid "Humidity variation for biomes."
-msgstr ""
+msgid "Ridge noise"
+msgstr "Šum hrebeňa"
#: src/settings_translation_file.cpp
-msgid "Humidity blend noise"
-msgstr ""
+msgid "Ridge underwater noise"
+msgstr "Šum podmorského hrebeňa"
#: src/settings_translation_file.cpp
-msgid "Small-scale humidity variation for blending biomes on borders."
-msgstr ""
+msgid "Ridged mountain size noise"
+msgstr "Veľkosť šumu hrebeňa hôr"
#: src/settings_translation_file.cpp
-msgid "Mapgen V5"
-msgstr ""
+msgid "Right key"
+msgstr "TlaÄidlo Vpravo"
#: src/settings_translation_file.cpp
-msgid "Mapgen V5 specific flags"
-msgstr ""
+msgid "River channel depth"
+msgstr "Hĺbka rieÄneho kanála"
#: src/settings_translation_file.cpp
-msgid "Map generation attributes specific to Mapgen v5."
-msgstr ""
+msgid "River channel width"
+msgstr "Šírka kanála rieky"
#: src/settings_translation_file.cpp
-msgid "Cave width"
-msgstr ""
+msgid "River depth"
+msgstr "Hĺbka rieky"
#: src/settings_translation_file.cpp
-msgid ""
-"Controls width of tunnels, a smaller value creates wider tunnels.\n"
-"Value >= 10.0 completely disables generation of tunnels and avoids the\n"
-"intensive noise calculations."
-msgstr ""
+msgid "River noise"
+msgstr "Å um riek"
#: src/settings_translation_file.cpp
-msgid "Large cave depth"
-msgstr ""
+msgid "River size"
+msgstr "Veľkosť riek"
#: src/settings_translation_file.cpp
-msgid "Y of upper limit of large caves."
-msgstr ""
+msgid "River valley width"
+msgstr "Šírka údolia rieky"
#: src/settings_translation_file.cpp
-msgid "Small cave minimum number"
-msgstr ""
+msgid "Rollback recording"
+msgstr "Nahrávanie pre obnovenie"
#: src/settings_translation_file.cpp
-msgid "Minimum limit of random number of small caves per mapchunk."
-msgstr ""
+msgid "Rolling hill size noise"
+msgstr "Veľkosť šumu vlnitosti kopcov"
#: src/settings_translation_file.cpp
-msgid "Small cave maximum number"
-msgstr ""
+msgid "Rolling hills spread noise"
+msgstr "Rozptyl šumu vlnitosti kopcov"
#: src/settings_translation_file.cpp
-msgid "Maximum limit of random number of small caves per mapchunk."
-msgstr ""
+msgid "Round minimap"
+msgstr "Okrúhla minimapa"
#: src/settings_translation_file.cpp
-msgid "Large cave minimum number"
-msgstr ""
+msgid "Safe digging and placing"
+msgstr "BezpeÄné kopanie a ukladanie"
#: src/settings_translation_file.cpp
-msgid "Minimum limit of random number of large caves per mapchunk."
-msgstr ""
+msgid "Sandy beaches occur when np_beach exceeds this value."
+msgstr "Pieskové pláže sa objavia keÄ np_beach presiahne túto hodnotu."
#: src/settings_translation_file.cpp
-msgid "Large cave maximum number"
-msgstr ""
+msgid "Save the map received by the client on disk."
+msgstr "Ulož mapu získanú klientom na disk."
#: src/settings_translation_file.cpp
-msgid "Maximum limit of random number of large caves per mapchunk."
-msgstr ""
+msgid "Save window size automatically when modified."
+msgstr "Automaticky ulož veľkosť okna po úprave."
#: src/settings_translation_file.cpp
-msgid "Large cave proportion flooded"
-msgstr ""
+msgid "Saving map received from server"
+msgstr "Ukladanie mapy získanej zo servera"
#: src/settings_translation_file.cpp
-msgid "Proportion of large caves that contain liquid."
+msgid ""
+"Scale GUI by a user specified value.\n"
+"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n"
+"This will smooth over some of the rough edges, and blend\n"
+"pixels when scaling down, at the cost of blurring some\n"
+"edge pixels when images are scaled by non-integer sizes."
msgstr ""
+"Zmeň mierku užívateľského rozhrania (GUI) podľa zadanej hodnoty.\n"
+"Pre zmenu mierky GUI použi antialias filter podľa-najbližšieho-suseda.\n"
+"Toto zjemní niektoré hrubé hrany a zmieša pixely pri zmenšení,\n"
+"za cenu rozmazania niektorých okrajových pixelov ak sa mierka\n"
+"obrázkov mení podľa neceloÄíselných hodnôt."
#: src/settings_translation_file.cpp
-msgid "Cavern limit"
-msgstr ""
+msgid "Screen height"
+msgstr "Výška obrazovky"
#: src/settings_translation_file.cpp
-msgid "Y-level of cavern upper limit."
-msgstr ""
+msgid "Screen width"
+msgstr "Šírka obrazovky"
#: src/settings_translation_file.cpp
-msgid "Cavern taper"
-msgstr ""
+msgid "Screenshot folder"
+msgstr "Adresár pre snímky obrazovky"
#: src/settings_translation_file.cpp
-msgid "Y-distance over which caverns expand to full size."
-msgstr ""
+msgid "Screenshot format"
+msgstr "Formát snímok obrazovky"
#: src/settings_translation_file.cpp
-msgid "Cavern threshold"
-msgstr ""
+msgid "Screenshot quality"
+msgstr "Kvalita snímok obrazovky"
#: src/settings_translation_file.cpp
-msgid "Defines full size of caverns, smaller values create larger caverns."
+msgid ""
+"Screenshot quality. Only used for JPEG format.\n"
+"1 means worst quality; 100 means best quality.\n"
+"Use 0 for default quality."
msgstr ""
+"Kvalita snímok obrazovky. Používa sa len pre JPEG formát.\n"
+"1 znamená najhoršiu kvalitu; 100 znamená najlepšiu kvalitu.\n"
+"Použi 0 pre štandardnú kvalitu."
#: src/settings_translation_file.cpp
-msgid "Dungeon minimum Y"
-msgstr ""
+msgid "Seabed noise"
+msgstr "Šum morského dna"
#: src/settings_translation_file.cpp
-msgid "Lower Y limit of dungeons."
-msgstr ""
+msgid "Second of 4 2D noises that together define hill/mountain range height."
+msgstr "Druhý zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr."
#: src/settings_translation_file.cpp
-msgid "Dungeon maximum Y"
-msgstr ""
+msgid "Second of two 3D noises that together define tunnels."
+msgstr "Druhý z dvoch 3D šumov, ktoré spolu definujú tunely."
#: src/settings_translation_file.cpp
-msgid "Upper Y limit of dungeons."
-msgstr ""
+msgid "Security"
+msgstr "BezpeÄnosÅ¥"
#: src/settings_translation_file.cpp
-msgid "Noises"
-msgstr ""
+msgid "See https://www.sqlite.org/pragma.html#pragma_synchronous"
+msgstr "ViÄ. https://www.sqlite.org/pragma.html#pragma_synchronous"
#: src/settings_translation_file.cpp
-msgid "Filler depth noise"
-msgstr ""
+msgid "Selection box border color (R,G,B)."
+msgstr "Farba obrysu bloku (R,G,B)."
#: src/settings_translation_file.cpp
-msgid "Variation of biome filler depth."
-msgstr ""
+msgid "Selection box color"
+msgstr "Farba obrysu bloku"
#: src/settings_translation_file.cpp
-msgid "Factor noise"
-msgstr ""
+msgid "Selection box width"
+msgstr "Šírka obrysu bloku"
#: src/settings_translation_file.cpp
msgid ""
-"Variation of terrain vertical scale.\n"
-"When noise is < -0.55 terrain is near-flat."
+"Selects one of 18 fractal types.\n"
+"1 = 4D \"Roundy\" Mandelbrot set.\n"
+"2 = 4D \"Roundy\" Julia set.\n"
+"3 = 4D \"Squarry\" Mandelbrot set.\n"
+"4 = 4D \"Squarry\" Julia set.\n"
+"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n"
+"6 = 4D \"Mandy Cousin\" Julia set.\n"
+"7 = 4D \"Variation\" Mandelbrot set.\n"
+"8 = 4D \"Variation\" Julia set.\n"
+"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n"
+"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n"
+"11 = 3D \"Christmas Tree\" Mandelbrot set.\n"
+"12 = 3D \"Christmas Tree\" Julia set.\n"
+"13 = 3D \"Mandelbulb\" Mandelbrot set.\n"
+"14 = 3D \"Mandelbulb\" Julia set.\n"
+"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n"
+"16 = 3D \"Cosine Mandelbulb\" Julia set.\n"
+"17 = 4D \"Mandelbulb\" Mandelbrot set.\n"
+"18 = 4D \"Mandelbulb\" Julia set."
msgstr ""
+"Zvoľ si jeden z 18 typov fraktálu.\n"
+"1 = 4D \"Roundy\" sada Mandelbrot.\n"
+"2 = 4D \"Roundy\" sada Julia.\n"
+"3 = 4D \"Squarry\" sada Mandelbrot.\n"
+"4 = 4D \"Squarry\" sada Julia.\n"
+"5 = 4D \"Mandy Cousin\" sada Mandelbrot.\n"
+"6 = 4D \"Mandy Cousin\" sada Julia.\n"
+"7 = 4D \"Variation\" sada Mandelbrot.\n"
+"8 = 4D \"Variation\" sada Julia.\n"
+"9 = 3D \"Mandelbrot/Mandelbar\" sada Mandelbrot.\n"
+"10 = 3D \"Mandelbrot/Mandelbar\" sada Julia.\n"
+"11 = 3D \"Christmas Tree\" sada Mandelbrot.\n"
+"12 = 3D \"Christmas Tree\" sada Julia.\n"
+"13 = 3D \"Mandelbulb\" sada Mandelbrot.\n"
+"14 = 3D \"Mandelbulb\" sada Julia.\n"
+"15 = 3D \"Cosine Mandelbulb\" sada Mandelbrot.\n"
+"16 = 3D \"Cosine Mandelbulb\" sada Julia.\n"
+"17 = 4D \"Mandelbulb\" sada Mandelbrot.\n"
+"18 = 4D \"Mandelbulb\" sada Julia."
#: src/settings_translation_file.cpp
-msgid "Height noise"
-msgstr ""
+msgid "Server / Singleplayer"
+msgstr "Server / Hra pre jedného hráÄa"
#: src/settings_translation_file.cpp
-msgid "Y-level of average terrain surface."
-msgstr ""
+msgid "Server URL"
+msgstr "URL servera"
#: src/settings_translation_file.cpp
-msgid "Cave1 noise"
-msgstr ""
+msgid "Server address"
+msgstr "Adresa servera"
#: src/settings_translation_file.cpp
-msgid "First of two 3D noises that together define tunnels."
-msgstr ""
+msgid "Server description"
+msgstr "Popis servera"
#: src/settings_translation_file.cpp
-msgid "Cave2 noise"
-msgstr ""
+msgid "Server name"
+msgstr "Meno servera"
#: src/settings_translation_file.cpp
-msgid "Second of two 3D noises that together define tunnels."
-msgstr ""
+msgid "Server port"
+msgstr "Port servera"
#: src/settings_translation_file.cpp
-msgid "Cavern noise"
-msgstr ""
+msgid "Server side occlusion culling"
+msgstr "Occlusion culling na strane servera"
#: src/settings_translation_file.cpp
-msgid "3D noise defining giant caverns."
-msgstr ""
+msgid "Serverlist URL"
+msgstr "URL zoznamu serverov"
#: src/settings_translation_file.cpp
-msgid "Ground noise"
-msgstr ""
+msgid "Serverlist file"
+msgstr "Súbor so zoznamom serverov"
#: src/settings_translation_file.cpp
-msgid "3D noise defining terrain."
+msgid ""
+"Set the language. Leave empty to use the system language.\n"
+"A restart is required after changing this."
msgstr ""
+"Nastav jazyk. Ponechaj prázdne pre systémové nastavenie.\n"
+"Po zmene je požadovaný reštart."
#: src/settings_translation_file.cpp
-msgid "Dungeon noise"
-msgstr ""
+msgid "Set the maximum character length of a chat message sent by clients."
+msgstr "Nastav maximálny poÄet znakov komunikaÄnej správy posielanej klientmi."
#: src/settings_translation_file.cpp
-msgid "3D noise that determines number of dungeons per mapchunk."
+msgid ""
+"Set to true to enable waving leaves.\n"
+"Requires shaders to be enabled."
msgstr ""
+"Nastav true pre povolenie vlniacich sa listov.\n"
+"Požaduje aby boli aktivované shadery."
#: src/settings_translation_file.cpp
-msgid "Mapgen V6"
+msgid ""
+"Set to true to enable waving liquids (like water).\n"
+"Requires shaders to be enabled."
msgstr ""
+"Nastav true pre aktivovanie vlniacich sa tekutín (ako napr. voda).\n"
+"Požaduje aby boli aktivované shadery."
#: src/settings_translation_file.cpp
-msgid "Mapgen V6 specific flags"
+msgid ""
+"Set to true to enable waving plants.\n"
+"Requires shaders to be enabled."
msgstr ""
+"Nastav true pre aktivovanie vlniacich sa rastlín.\n"
+"Požaduje aby boli aktivované shadery."
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen v6.\n"
-"The 'snowbiomes' flag enables the new 5 biome system.\n"
-"When the 'snowbiomes' flag is enabled jungles are automatically enabled and\n"
-"the 'jungles' flag is ignored."
-msgstr ""
+msgid "Shader path"
+msgstr "Cesta k shaderom"
#: src/settings_translation_file.cpp
-msgid "Desert noise threshold"
+msgid ""
+"Shaders allow advanced visual effects and may increase performance on some "
+"video\n"
+"cards.\n"
+"This only works with the OpenGL video backend."
msgstr ""
+"Shadery umožňujú pokroÄilé vizuálne efekty a na niektorých grafických "
+"kartách\n"
+"môžu zvýšiť výkon.\n"
+"Toto funguje len s OpenGL."
#: src/settings_translation_file.cpp
msgid ""
-"Deserts occur when np_biome exceeds this value.\n"
-"When the 'snowbiomes' flag is enabled, this is ignored."
+"Shadow offset (in pixels) of the default font. If 0, then shadow will not be "
+"drawn."
msgstr ""
+"Posun tieňa (v pixeloch) štandardného písma. Ak je 0, tak tieň nebude "
+"vykreslený."
#: src/settings_translation_file.cpp
-msgid "Beach noise threshold"
+msgid ""
+"Shadow offset (in pixels) of the fallback font. If 0, then shadow will not "
+"be drawn."
msgstr ""
+"Posun tieňa (v pixeloch) záložného písma. Ak je 0, tak tieň nebude "
+"vykreslený."
#: src/settings_translation_file.cpp
-msgid "Sandy beaches occur when np_beach exceeds this value."
-msgstr ""
+msgid "Shape of the minimap. Enabled = round, disabled = square."
+msgstr "Tvar minimapy. Aktivované = okrúhla, vypnuté = štvorcová."
#: src/settings_translation_file.cpp
-msgid "Terrain base noise"
-msgstr ""
+msgid "Show debug info"
+msgstr "Zobraz ladiace informácie"
#: src/settings_translation_file.cpp
-msgid "Y-level of lower terrain and seabed."
-msgstr ""
+msgid "Show entity selection boxes"
+msgstr "Zobraz obrys bytosti"
#: src/settings_translation_file.cpp
-msgid "Terrain higher noise"
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
msgstr ""
+"Zobraz obrysy bytosti\n"
+"Po zmene je požadovaný reštart."
#: src/settings_translation_file.cpp
-msgid "Y-level of higher terrain that creates cliffs."
-msgstr ""
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Å tandardne tuÄné písmo"
#: src/settings_translation_file.cpp
-msgid "Steepness noise"
-msgstr ""
+msgid "Shutdown message"
+msgstr "Správa pri vypínaní"
#: src/settings_translation_file.cpp
-msgid "Varies steepness of cliffs."
+msgid ""
+"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n"
+"WARNING!: There is no benefit, and there are several dangers, in\n"
+"increasing this value above 5.\n"
+"Reducing this value increases cave and dungeon density.\n"
+"Altering this value is for special usage, leaving it unchanged is\n"
+"recommended."
msgstr ""
+"VeľkosÅ¥ Äasti mapy generovanej generátorom mapy, zadaný v blokoch mapy (16 "
+"kociek).\n"
+"VAROVANIE!: Neexistuje žiadna výhoda, a je tu pár rizík,\n"
+"pri zvýšení tejto hodnoty nad 5.\n"
+"Zníženie tejto hodnoty zvýši hustotu jaskýň a kobiek.\n"
+"Zmena tejto hodnoty slúži k Å¡peciálnym úÄelom, odporúÄa sa ponechaÅ¥\n"
+"to nezmenené."
#: src/settings_translation_file.cpp
-msgid "Height select noise"
+msgid ""
+"Size of the MapBlock cache of the mesh generator. Increasing this will\n"
+"increase the cache hit %, reducing the data being copied from the main\n"
+"thread, thus reducing jitter."
msgstr ""
+"Veľkosť medzipamäte blokov v Mesh generátoru.\n"
+"Zvýšenie zvýši využitie medzipamäte %, zníži sa množstvo dát kopírovaných\n"
+"z hlavnej vetvy a tým sa zníži chvenie."
#: src/settings_translation_file.cpp
-msgid "Defines distribution of higher terrain."
-msgstr ""
+msgid "Slice w"
+msgstr "Plátok w"
#: src/settings_translation_file.cpp
-msgid "Mud noise"
-msgstr ""
+msgid "Slope and fill work together to modify the heights."
+msgstr "Sklon a výplň spolupracujú aby upravili výšky."
#: src/settings_translation_file.cpp
-msgid "Varies depth of biome surface nodes."
-msgstr ""
+msgid "Small cave maximum number"
+msgstr "Maximálny poÄet malých jaskýň"
#: src/settings_translation_file.cpp
-msgid "Beach noise"
-msgstr ""
+msgid "Small cave minimum number"
+msgstr "Minimálny poÄet malých jaskýň"
#: src/settings_translation_file.cpp
-msgid "Defines areas with sandy beaches."
-msgstr ""
+msgid "Small-scale humidity variation for blending biomes on borders."
+msgstr "Drobné odchýlky vlhkosti pre zjemnenie prechodu na hraniciach biómov."
#: src/settings_translation_file.cpp
-msgid "Biome noise"
-msgstr ""
+msgid "Small-scale temperature variation for blending biomes on borders."
+msgstr "Drobné odchýlky teplôt pre zjemnenie prechodu na hraniciach biómov."
#: src/settings_translation_file.cpp
-msgid "Cave noise"
-msgstr ""
+msgid "Smooth lighting"
+msgstr "Jemné osvetlenie"
#: src/settings_translation_file.cpp
-msgid "Variation of number of caves."
+msgid ""
+"Smooths camera when looking around. Also called look or mouse smoothing.\n"
+"Useful for recording videos."
msgstr ""
+"Zjemňuje pohyb kamery pri pohľade po okolí. Tiež sa nazýva zjemnenie "
+"pohľady, alebo pohybu myši.\n"
+"UžitoÄné pri nahrávaní videí."
#: src/settings_translation_file.cpp
-msgid "Trees noise"
-msgstr ""
+msgid "Smooths rotation of camera in cinematic mode. 0 to disable."
+msgstr "Zjemní rotáciu kamery vo filmovom režime. 0 je pre vypnuté."
#: src/settings_translation_file.cpp
-msgid "Defines tree areas and tree density."
-msgstr ""
+msgid "Smooths rotation of camera. 0 to disable."
+msgstr "Zjemní rotáciu kamery. 0 je pre vypnuté."
#: src/settings_translation_file.cpp
-msgid "Apple trees noise"
-msgstr ""
+msgid "Sneak key"
+msgstr "TlaÄidlo zakrádania sa"
#: src/settings_translation_file.cpp
-msgid "Defines areas where trees have apples."
-msgstr ""
+msgid "Sneaking speed"
+msgstr "Rýchlosť zakrádania"
#: src/settings_translation_file.cpp
-msgid "Mapgen V7"
-msgstr ""
+msgid "Sneaking speed, in nodes per second."
+msgstr "Rýchlosť zakrádania sa, v kockách za sekundu."
#: src/settings_translation_file.cpp
-msgid "Mapgen V7 specific flags"
-msgstr ""
+msgid "Sound"
+msgstr "Zvuk"
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen v7.\n"
-"'ridges': Rivers.\n"
-"'floatlands': Floating land masses in the atmosphere.\n"
-"'caverns': Giant caves deep underground."
-msgstr ""
+msgid "Special key"
+msgstr "Å peciálne tlaÄidlo"
#: src/settings_translation_file.cpp
-msgid "Mountain zero level"
-msgstr ""
+msgid "Special key for climbing/descending"
+msgstr "Špeciálna klávesa pre šplhanie hore/dole"
#: src/settings_translation_file.cpp
msgid ""
-"Y of mountain density gradient zero level. Used to shift mountains "
-"vertically."
+"Specifies URL from which client fetches media instead of using UDP.\n"
+"$filename should be accessible from $remote_media$filename via cURL\n"
+"(obviously, remote_media should end with a slash).\n"
+"Files that are not present will be fetched the usual way."
msgstr ""
+"Špecifikuje URL s ktorého klient stiahne média namiesto použitia UDP.\n"
+"$filename by mal byt dostupný z $remote_media$filename cez cURL\n"
+"(samozrejme, remote_media by mal konÄiÅ¥ lomítkom).\n"
+"Súbory, ktoré nie sú dostupné budú získané štandardným spôsobom."
#: src/settings_translation_file.cpp
-msgid "Floatland minimum Y"
+msgid ""
+"Specifies the default stack size of nodes, items and tools.\n"
+"Note that mods or games may explicitly set a stack for certain (or all) "
+"items."
msgstr ""
+"Definuje štandardnú veľkosť kôpky kociek, vecí a nástrojov.\n"
+"Ber v úvahu, že rozšírenia, alebo hry môžu explicitne nastaviť veľkosť pre "
+"urÄité (alebo vÅ¡etky) typy."
#: src/settings_translation_file.cpp
-msgid "Lower Y limit of floatlands."
+msgid ""
+"Spread of light curve boost range.\n"
+"Controls the width of the range to be boosted.\n"
+"Standard deviation of the light curve boost Gaussian."
msgstr ""
+"Rozptyl zosilnenia svetelnej krivky.\n"
+"UrÄuje šírku rozsahu , ktorý bude zosilnený.\n"
+"Štandardné gausovo rozdelenie odchýlky svetelnej krivky."
#: src/settings_translation_file.cpp
-msgid "Floatland maximum Y"
-msgstr ""
+msgid "Static spawnpoint"
+msgstr "Pevný bod obnovy"
#: src/settings_translation_file.cpp
-msgid "Upper Y limit of floatlands."
-msgstr ""
+msgid "Steepness noise"
+msgstr "Šum zrázov"
#: src/settings_translation_file.cpp
-msgid "Floatland tapering distance"
-msgstr ""
+msgid "Step mountain size noise"
+msgstr "Veľkosť šumu horských stepí"
#: src/settings_translation_file.cpp
-msgid ""
-"Y-distance over which floatlands taper from full density to nothing.\n"
-"Tapering starts at this distance from the Y limit.\n"
-"For a solid floatland layer, this controls the height of hills/mountains.\n"
-"Must be less than or equal to half the distance between the Y limits."
-msgstr ""
+msgid "Step mountain spread noise"
+msgstr "Rozptyl šumu horských stepí"
#: src/settings_translation_file.cpp
-msgid "Floatland taper exponent"
-msgstr ""
+msgid "Strength of 3D mode parallax."
+msgstr "Stupeň paralaxy 3D režimu."
#: src/settings_translation_file.cpp
msgid ""
-"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
-"Value = 1.0 creates a uniform, linear tapering.\n"
-"Values > 1.0 create a smooth tapering suitable for the default separated\n"
-"floatlands.\n"
-"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
-"flatter lowlands, suitable for a solid floatland layer."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Floatland density"
+"Strength of light curve boost.\n"
+"The 3 'boost' parameters define a range of the light\n"
+"curve that is boosted in brightness."
msgstr ""
+"Sila zosilnenia svetelnej krivky.\n"
+"Tri 'zosilňujúce' parametre definujú ktorý rozsah\n"
+"svetelnej krivky je zosilnený v jasu."
#: src/settings_translation_file.cpp
-#, c-format
-msgid ""
-"Adjusts the density of the floatland layer.\n"
-"Increase value to increase density. Can be positive or negative.\n"
-"Value = 0.0: 50% of volume is floatland.\n"
-"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
-"to be sure) creates a solid floatland layer."
-msgstr ""
+msgid "Strict protocol checking"
+msgstr "Prísna kontrola protokolu"
#: src/settings_translation_file.cpp
-msgid "Floatland water level"
-msgstr ""
+msgid "Strip color codes"
+msgstr "Odstráň farby"
#: src/settings_translation_file.cpp
msgid ""
@@ -5720,622 +6463,996 @@ msgid ""
"server-intensive extreme water flow and to avoid vast flooding of the\n"
"world surface below."
msgstr ""
+"Povrchová úroveň voliteľnej vody umiestnená na pevnej vrstve lietajúcej "
+"krajiny.\n"
+"Štandardne je voda deaktivovaná a bude umiestnená len ak je táto voľba "
+"nastavená\n"
+"nad 'mgv7_floatland_ymax' - 'mgv7_floatland_taper'\n"
+"(štart horného zašpicaťovania).\n"
+"***VAROVANIE, POTENCIÃLNE RIZIKO PRE VÃKON SVETOV A SERVEROV***:\n"
+"Pri aktivovaní vody na lietajúcich pevninách musí byť nastavený\n"
+"a otestovaný pevný povrch nastavením 'mgv7_floatland_density' na 2.0 ( alebo "
+"inú\n"
+"požadovanú hodnotu v závislosti na 'mgv7_np_floatland'), aby sa zabránilo\n"
+"pre server nároÄnému extrémnemu toku vody a rozsiahlym záplavám\n"
+"na svet pod nimi."
+
+#: src/settings_translation_file.cpp
+msgid "Synchronous SQLite"
+msgstr "Synchrónne SQLite"
+
+#: src/settings_translation_file.cpp
+msgid "Temperature variation for biomes."
+msgstr "Odchýlky teplôt pre biómy."
#: src/settings_translation_file.cpp
msgid "Terrain alternative noise"
-msgstr ""
+msgstr "Alternatívny šum terénu"
#: src/settings_translation_file.cpp
-msgid "Terrain persistence noise"
-msgstr ""
+msgid "Terrain base noise"
+msgstr "Základný šum terénu"
#: src/settings_translation_file.cpp
-msgid ""
-"Varies roughness of terrain.\n"
-"Defines the 'persistence' value for terrain_base and terrain_alt noises."
-msgstr ""
+msgid "Terrain height"
+msgstr "Výška terénu"
#: src/settings_translation_file.cpp
-msgid "Defines distribution of higher terrain and steepness of cliffs."
-msgstr ""
+msgid "Terrain higher noise"
+msgstr "Horný šum terénu"
#: src/settings_translation_file.cpp
-msgid "Mountain height noise"
-msgstr ""
+msgid "Terrain noise"
+msgstr "Šum terénu"
#: src/settings_translation_file.cpp
-msgid "Variation of maximum mountain height (in nodes)."
+msgid ""
+"Terrain noise threshold for hills.\n"
+"Controls proportion of world area covered by hills.\n"
+"Adjust towards 0.0 for a larger proportion."
msgstr ""
+"Prah šumu terénu pre kopce.\n"
+"Riadi pomer plochy sveta pokrytého kopcami.\n"
+"Uprav smerom k 0.0 pre väÄší pomer."
#: src/settings_translation_file.cpp
-msgid "Ridge underwater noise"
+msgid ""
+"Terrain noise threshold for lakes.\n"
+"Controls proportion of world area covered by lakes.\n"
+"Adjust towards 0.0 for a larger proportion."
msgstr ""
+"Prah šumu terénu pre jazerá.\n"
+"Riadi pomer plochy sveta pokrytého jazerami.\n"
+"Uprav smerom k 0.0 pre väÄší pomer."
#: src/settings_translation_file.cpp
-msgid "Defines large-scale river channel structure."
-msgstr ""
+msgid "Terrain persistence noise"
+msgstr "Stálosť šumu terénu"
#: src/settings_translation_file.cpp
-msgid "Mountain noise"
-msgstr ""
+msgid "Texture path"
+msgstr "Cesta k textúram"
#: src/settings_translation_file.cpp
msgid ""
-"3D noise defining mountain structure and height.\n"
-"Also defines structure of floatland mountain terrain."
+"Textures on a node may be aligned either to the node or to the world.\n"
+"The former mode suits better things like machines, furniture, etc., while\n"
+"the latter makes stairs and microblocks fit surroundings better.\n"
+"However, as this possibility is new, thus may not be used by older servers,\n"
+"this option allows enforcing it for certain node types. Note though that\n"
+"that is considered EXPERIMENTAL and may not work properly."
msgstr ""
+"Textúry na kocke môžu byÅ¥ zarovnané buÄ podľa kocky, alebo sveta.\n"
+"Kým prvý režim poslúži lepÅ¡ie veciam ako sú stroje, nábytok, atÄ.,\n"
+"tak s druhým režimom zapadnú schody a mikrobloky lepšie do svojho okolia.\n"
+"KeÄže je táto možnosÅ¥ nová, nemusí byÅ¥ použitá na starších serveroch,\n"
+"toto nastavenie povolí jeho vynútenie pre urÄité typy kociek. Je potrebné\n"
+"si uvedomiÅ¥, že táto funkcia je EXPERIMENTÃLNA a nemusí fungovaÅ¥ korektne."
#: src/settings_translation_file.cpp
-msgid "Ridge noise"
-msgstr ""
+msgid "The URL for the content repository"
+msgstr "Webová adresa (URL) k úložisku doplnkov"
#: src/settings_translation_file.cpp
-msgid "3D noise defining structure of river canyon walls."
-msgstr ""
+msgid "The deadzone of the joystick"
+msgstr "Mŕtva zóna joysticku"
#: src/settings_translation_file.cpp
-msgid "Floatland noise"
+msgid ""
+"The default format in which profiles are being saved,\n"
+"when calling `/profiler save [format]` without format."
msgstr ""
+"Štandardný formát v ktorom sa ukladajú profily,\n"
+"pri volaní `/profiler save [format]` bez udania formátu."
#: src/settings_translation_file.cpp
-msgid ""
-"3D noise defining structure of floatlands.\n"
-"If altered from the default, the noise 'scale' (0.7 by default) may need\n"
-"to be adjusted, as floatland tapering functions best when this noise has\n"
-"a value range of approximately -2.0 to 2.0."
-msgstr ""
+msgid "The depth of dirt or other biome filler node."
+msgstr "Hĺbka zeminy, alebo inej výplne kocky."
#: src/settings_translation_file.cpp
-msgid "Mapgen Carpathian"
+msgid ""
+"The file path relative to your worldpath in which profiles will be saved to."
msgstr ""
+"Relatívna cesta k súboru vzhľadom na svet z ktorého budú profily uložené."
#: src/settings_translation_file.cpp
-msgid "Mapgen Carpathian specific flags"
-msgstr ""
+msgid "The identifier of the joystick to use"
+msgstr "Identifikátor joysticku na použitie"
#: src/settings_translation_file.cpp
-msgid "Map generation attributes specific to Mapgen Carpathian."
+msgid "The length in pixels it takes for touch screen interaction to start."
msgstr ""
+"Dĺžka v pixloch, ktorú potrebuje dotyková obrazovka pre zaÄiatok interakcie."
#: src/settings_translation_file.cpp
-msgid "Base ground level"
+msgid ""
+"The maximum height of the surface of waving liquids.\n"
+"4.0 = Wave height is two nodes.\n"
+"0.0 = Wave doesn't move at all.\n"
+"Default is 1.0 (1/2 node).\n"
+"Requires waving liquids to be enabled."
msgstr ""
+"Maximálna výška povrchu vlniacich sa tekutín.\n"
+"4.0 = Výška vlny sú dve kocky.\n"
+"0.0 = Vlna sa vôbec nehýbe.\n"
+"Štandardná hodnota je 1.0 (1/2 kocky).\n"
+"Požaduje, aby boli aktivované vlniace sa tekutiny."
#: src/settings_translation_file.cpp
-msgid "Defines the base ground level."
-msgstr ""
+msgid "The network interface that the server listens on."
+msgstr "SieÅ¥ové rozhranie, na ktorom server naÄúva."
#: src/settings_translation_file.cpp
-msgid "River channel width"
+msgid ""
+"The privileges that new users automatically get.\n"
+"See /privs in game for a full list on your server and mod configuration."
msgstr ""
+"Oprávnenia, ktoré automaticky dostane nový hráÄ.\n"
+"Pozri si /privs v hre pre kompletný zoznam pre daný server a konfigurácie "
+"rozšírení."
#: src/settings_translation_file.cpp
-msgid "Defines the width of the river channel."
+msgid ""
+"The radius of the volume of blocks around every player that is subject to "
+"the\n"
+"active block stuff, stated in mapblocks (16 nodes).\n"
+"In active blocks objects are loaded and ABMs run.\n"
+"This is also the minimum range in which active objects (mobs) are "
+"maintained.\n"
+"This should be configured together with active_object_send_range_blocks."
msgstr ""
+"Polomer objemu blokov okolo každého hráÄa, ktoré sú predmetom\n"
+"záležitostí okolo aktívnych objektov, uvádzané v blokoch mapy (16 kociek).\n"
+"V objektoch aktívnych blokov sú nahrávané a spúšťané ABM.\n"
+"Toto je tiež minimálna vzdialenosť v ktorej sú aktívne objekty (mobovia) "
+"zachovávaný.\n"
+"Malo by to byť konfigurované spolu s active_object_send_range_blocks."
#: src/settings_translation_file.cpp
-msgid "River channel depth"
+msgid ""
+"The rendering back-end for Irrlicht.\n"
+"A restart is required after changing this.\n"
+"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
+"otherwise.\n"
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
+"Renderovací back-end pre Irrlicht.\n"
+"Po zmene je vyžadovaný reštart.\n"
+"Poznámka: Na Androide, ak si nie si istý, ponechaj OGLES1! Aplikácia by "
+"nemusela naštartovať.\n"
+"Na iných platformách, sa odporúÄa OpenGL.\n"
+"Shadery sú podporované v OpenGL (len pre desktop) a v OGLES2 (experimentálne)"
#: src/settings_translation_file.cpp
-msgid "Defines the depth of the river channel."
+msgid ""
+"The sensitivity of the joystick axes for moving the\n"
+"ingame view frustum around."
msgstr ""
+"Citlivosť osí joysticku pre pohyb\n"
+"otáÄania pohľadu v hre."
#: src/settings_translation_file.cpp
-msgid "River valley width"
+msgid ""
+"The strength (darkness) of node ambient-occlusion shading.\n"
+"Lower is darker, Higher is lighter. The valid range of values for this\n"
+"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n"
+"set to the nearest valid value."
msgstr ""
+"Úroveň tieňovania ambient-occlusion kocky (tmavosť).\n"
+"Nižšia hodnota je tmavšie, vyššia svetlejšie.\n"
+"Platý rozsah hodnôt je od 0.25 po 0.4 vrátane.\n"
+"Ak je hodnota mimo rozsah, bude nastavená na najbližšiu platnú hodnotu."
#: src/settings_translation_file.cpp
-msgid "Defines the width of the river valley."
+msgid ""
+"The time (in seconds) that the liquids queue may grow beyond processing\n"
+"capacity until an attempt is made to decrease its size by dumping old queue\n"
+"items. A value of 0 disables the functionality."
msgstr ""
+"Čas (c sekundách) kedy fronta tekutín môže narastať nad kapacitu\n"
+"spracovania než bude urobený pokus o jej zníženie zrušením starých\n"
+"vecí z fronty. Hodnota 0 vypne túto funkciu."
#: src/settings_translation_file.cpp
-msgid "Hilliness1 noise"
+msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
msgstr ""
+"Vyhradená doba pre ABM na vykonanie v každom kroku\n"
+"(ako zlomok ABM imtervalu)"
#: src/settings_translation_file.cpp
-msgid "First of 4 2D noises that together define hill/mountain range height."
+msgid ""
+"The time in seconds it takes between repeated events\n"
+"when holding down a joystick button combination."
msgstr ""
+"Čas v sekundách medzi opakovanými udalosťami\n"
+"pri stlaÄenej kombinácií tlaÄidiel na joysticku."
#: src/settings_translation_file.cpp
-msgid "Hilliness2 noise"
+msgid ""
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
+"Čas v sekundách pre opakované položenie kocky\n"
+"ak je držané tlaÄítko pokladania."
#: src/settings_translation_file.cpp
-msgid "Second of 4 2D noises that together define hill/mountain range height."
-msgstr ""
+msgid "The type of joystick"
+msgstr "Typ joysticku"
#: src/settings_translation_file.cpp
-msgid "Hilliness3 noise"
+msgid ""
+"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n"
+"enabled. Also the vertical distance over which humidity drops by 10 if\n"
+"'altitude_dry' is enabled."
msgstr ""
+"Vertikálna vzdialenosť kedy poklesne teplota o 20 ak je 'altitude_chill'\n"
+"aktívne. Tiež je to vertikálna vzdialenosť kedy poklesne vlhkosť o 10,\n"
+"ak je 'altitude_dry' aktívne."
#: src/settings_translation_file.cpp
msgid "Third of 4 2D noises that together define hill/mountain range height."
-msgstr ""
+msgstr "Tretí zo 4 2D šumov, ktoré spolu definujú rozsah výšok kopcov/hôr."
#: src/settings_translation_file.cpp
-msgid "Hilliness4 noise"
+msgid ""
+"Time in seconds for item entity (dropped items) to live.\n"
+"Setting it to -1 disables the feature."
msgstr ""
+"Čas existencie odložený (odhodených) vecí v sekundách.\n"
+"Nastavené na -1 vypne túto vlastnosť."
#: src/settings_translation_file.cpp
-msgid "Fourth of 4 2D noises that together define hill/mountain range height."
-msgstr ""
+msgid "Time of day when a new world is started, in millihours (0-23999)."
+msgstr "Čas pri spustení nového sveta, v milihodinách (0-23999)."
#: src/settings_translation_file.cpp
-msgid "Rolling hills spread noise"
-msgstr ""
+msgid "Time send interval"
+msgstr "Interval posielania Äasu"
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of rolling hills."
-msgstr ""
+msgid "Time speed"
+msgstr "RýchlosÅ¥ Äasu"
#: src/settings_translation_file.cpp
-msgid "Ridge mountain spread noise"
+msgid "Timeout for client to remove unused map data from memory."
msgstr ""
+"Časový limit na klientovi, pre odstránenie nepoužívaných mapových dát z "
+"pamäte."
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
+msgid ""
+"To reduce lag, block transfers are slowed down when a player is building "
+"something.\n"
+"This determines how long they are slowed down after placing or removing a "
+"node."
msgstr ""
+"Pre zníženie lagu, prenos blokov je spomalený, keÄ hrÃ¡Ä nieÄo stavia.\n"
+"Toto urÄuje ako dlho je spomalený po vložení, alebo zmazaní kocky."
#: src/settings_translation_file.cpp
-msgid "Step mountain spread noise"
-msgstr ""
+msgid "Toggle camera mode key"
+msgstr "TlaÄidlo Prepnutie režimu zobrazenia"
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the size/occurrence of step mountain ranges."
-msgstr ""
+msgid "Tooltip delay"
+msgstr "Oneskorenie popisku"
#: src/settings_translation_file.cpp
-msgid "Rolling hill size noise"
-msgstr ""
+msgid "Touch screen threshold"
+msgstr "Prah citlivosti dotykovej obrazovky"
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of rolling hills."
-msgstr ""
+msgid "Trees noise"
+msgstr "Å um stromov"
#: src/settings_translation_file.cpp
-msgid "Ridged mountain size noise"
-msgstr ""
+msgid "Trilinear filtering"
+msgstr "Trilineárne filtrovanie"
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of ridged mountains."
+msgid ""
+"True = 256\n"
+"False = 128\n"
+"Usable to make minimap smoother on slower machines."
msgstr ""
+"Pravda = 256\n"
+"Nepravda = 128\n"
+"UžitoÄné pre plynulejÅ¡iu minimapu na pomalších strojoch."
#: src/settings_translation_file.cpp
-msgid "Step mountain size noise"
-msgstr ""
+msgid "Trusted mods"
+msgstr "Dôveryhodné rozšírenia"
#: src/settings_translation_file.cpp
-msgid "2D noise that controls the shape/size of step mountains."
+msgid "URL to the server list displayed in the Multiplayer Tab."
msgstr ""
+"Adresa (URL) k zoznamu serverov, ktorý sa zobrazuje v záložke Multiplayer."
#: src/settings_translation_file.cpp
-msgid "River noise"
-msgstr ""
+msgid "Undersampling"
+msgstr "Podvzorkovanie"
#: src/settings_translation_file.cpp
-msgid "2D noise that locates the river valleys and channels."
+msgid ""
+"Undersampling is similar to using a lower screen resolution, but it applies\n"
+"to the game world only, keeping the GUI intact.\n"
+"It should give a significant performance boost at the cost of less detailed "
+"image.\n"
+"Higher values result in a less detailed image."
msgstr ""
+"Podvzorkovanie je podobné ako použiť obrazovku s nižším rozlíšením, ale\n"
+"aplikuje sa len na samotný svet, priÄom GUI ostáva nezmenené.\n"
+"Malo by poskytnúť výrazné zvýšenie výkonu za cenu nižších detailov obrazu.\n"
+"Vyššie hodnotu vedú k menej detailnému obrazu."
#: src/settings_translation_file.cpp
-msgid "Mountain variation noise"
-msgstr ""
+msgid "Unlimited player transfer distance"
+msgstr "Neobmedzená vzdialenosÅ¥ zobrazenia hráÄa"
#: src/settings_translation_file.cpp
-msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
-msgstr ""
+msgid "Unload unused server data"
+msgstr "Uvoľni nepoužívané serverové dáta"
#: src/settings_translation_file.cpp
-msgid "Mapgen Flat"
-msgstr ""
+msgid "Upper Y limit of dungeons."
+msgstr "Horný Y limit kobiek."
#: src/settings_translation_file.cpp
-msgid "Mapgen Flat specific flags"
-msgstr ""
+msgid "Upper Y limit of floatlands."
+msgstr "Horný Y limit lietajúcich pevnín."
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen Flat.\n"
-"Occasional lakes and hills can be added to the flat world."
-msgstr ""
+msgid "Use 3D cloud look instead of flat."
+msgstr "Použi 3D mraky namiesto plochých."
#: src/settings_translation_file.cpp
-msgid "Ground level"
-msgstr ""
+msgid "Use a cloud animation for the main menu background."
+msgstr "Použi animáciu mrakov pre pozadie hlavného menu."
#: src/settings_translation_file.cpp
-msgid "Y of flat ground."
-msgstr ""
+msgid "Use anisotropic filtering when viewing at textures from an angle."
+msgstr "Použi anisotropné filtrovanie pri pohľade na textúry zo strany."
#: src/settings_translation_file.cpp
-msgid "Lake threshold"
-msgstr ""
+msgid "Use bilinear filtering when scaling textures."
+msgstr "Použi bilineárne filtrovanie pri zmene mierky textúr."
#: src/settings_translation_file.cpp
msgid ""
-"Terrain noise threshold for lakes.\n"
-"Controls proportion of world area covered by lakes.\n"
-"Adjust towards 0.0 for a larger proportion."
+"Use mip mapping to scale textures. May slightly increase performance,\n"
+"especially when using a high resolution texture pack.\n"
+"Gamma correct downscaling is not supported."
msgstr ""
+"Použi mip mapy pre úpravu textúr. Môže jemne zvýšiť výkon,\n"
+"obzvlášť použití balíÄka textúr s vysokým rozlíšením.\n"
+"Gama korektné podvzorkovanie nie je podporované."
#: src/settings_translation_file.cpp
-msgid "Lake steepness"
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
msgstr ""
+"Použi multi-sample antialiasing (MSAA) pre zjemnenie hrán blokov.\n"
+"Tento algoritmus zjemní 3D vzhľad zatiaľ Äo zachová ostrosÅ¥ obrazu,\n"
+"ale neovplyvní vnútro textúr\n"
+"(Äo je obzvlášť viditeľné pri priesvitných textúrach).\n"
+"Ak sú shadery zakázané, objavia sa viditeľné medzery medzi kockami.\n"
+"Ak sú nastavené na 0, MSAA je zakázané.\n"
+"Po zmene tohto nastavenia je požadovaný reštart."
#: src/settings_translation_file.cpp
-msgid "Controls steepness/depth of lake depressions."
-msgstr ""
+msgid "Use trilinear filtering when scaling textures."
+msgstr "Použi trilineárne filtrovanie pri zmene mierky textúr."
#: src/settings_translation_file.cpp
-msgid "Hill threshold"
-msgstr ""
+msgid "VBO"
+msgstr "VBO"
#: src/settings_translation_file.cpp
-msgid ""
-"Terrain noise threshold for hills.\n"
-"Controls proportion of world area covered by hills.\n"
-"Adjust towards 0.0 for a larger proportion."
-msgstr ""
+msgid "VSync"
+msgstr "VSync"
#: src/settings_translation_file.cpp
-msgid "Hill steepness"
-msgstr ""
+msgid "Valley depth"
+msgstr "Hĺbka údolia"
#: src/settings_translation_file.cpp
-msgid "Controls steepness/height of hills."
-msgstr ""
+msgid "Valley fill"
+msgstr "Výplň údolí"
#: src/settings_translation_file.cpp
-msgid "Terrain noise"
-msgstr ""
+msgid "Valley profile"
+msgstr "Profil údolia"
#: src/settings_translation_file.cpp
-msgid "Defines location and terrain of optional hills and lakes."
-msgstr ""
+msgid "Valley slope"
+msgstr "Sklon údolia"
#: src/settings_translation_file.cpp
-msgid "Mapgen Fractal"
-msgstr ""
+msgid "Variation of biome filler depth."
+msgstr "Odchýlka hĺbky výplne biómu."
#: src/settings_translation_file.cpp
-msgid "Mapgen Fractal specific flags"
-msgstr ""
+msgid "Variation of maximum mountain height (in nodes)."
+msgstr "Obmieňa maximálnu výšku hôr (v kockách)."
+
+#: src/settings_translation_file.cpp
+msgid "Variation of number of caves."
+msgstr "RôznosÅ¥ poÄtu jaskýň."
#: src/settings_translation_file.cpp
msgid ""
-"Map generation attributes specific to Mapgen Fractal.\n"
-"'terrain' enables the generation of non-fractal terrain:\n"
-"ocean, islands and underground."
+"Variation of terrain vertical scale.\n"
+"When noise is < -0.55 terrain is near-flat."
msgstr ""
+"Rozptyl vertikálnej mierky terénu.\n"
+"Ak je šum <-0.55, terén je takmer rovný."
#: src/settings_translation_file.cpp
-msgid "Fractal type"
-msgstr ""
+msgid "Varies depth of biome surface nodes."
+msgstr "Pozmeňuje hĺbku povrchových kociek biómu."
#: src/settings_translation_file.cpp
msgid ""
-"Selects one of 18 fractal types.\n"
-"1 = 4D \"Roundy\" Mandelbrot set.\n"
-"2 = 4D \"Roundy\" Julia set.\n"
-"3 = 4D \"Squarry\" Mandelbrot set.\n"
-"4 = 4D \"Squarry\" Julia set.\n"
-"5 = 4D \"Mandy Cousin\" Mandelbrot set.\n"
-"6 = 4D \"Mandy Cousin\" Julia set.\n"
-"7 = 4D \"Variation\" Mandelbrot set.\n"
-"8 = 4D \"Variation\" Julia set.\n"
-"9 = 3D \"Mandelbrot/Mandelbar\" Mandelbrot set.\n"
-"10 = 3D \"Mandelbrot/Mandelbar\" Julia set.\n"
-"11 = 3D \"Christmas Tree\" Mandelbrot set.\n"
-"12 = 3D \"Christmas Tree\" Julia set.\n"
-"13 = 3D \"Mandelbulb\" Mandelbrot set.\n"
-"14 = 3D \"Mandelbulb\" Julia set.\n"
-"15 = 3D \"Cosine Mandelbulb\" Mandelbrot set.\n"
-"16 = 3D \"Cosine Mandelbulb\" Julia set.\n"
-"17 = 4D \"Mandelbulb\" Mandelbrot set.\n"
-"18 = 4D \"Mandelbulb\" Julia set."
+"Varies roughness of terrain.\n"
+"Defines the 'persistence' value for terrain_base and terrain_alt noises."
msgstr ""
+"Mení rôznorodosť terénu.\n"
+"Definuje hodnotu 'stálosti' pre terrain_base a terrain_alt noises."
#: src/settings_translation_file.cpp
-msgid "Iterations"
-msgstr ""
+msgid "Varies steepness of cliffs."
+msgstr "Pozmeňuje strmosť útesov."
#: src/settings_translation_file.cpp
-msgid ""
-"Iterations of the recursive function.\n"
-"Increasing this increases the amount of fine detail, but also\n"
-"increases processing load.\n"
-"At iterations = 20 this mapgen has a similar load to mapgen V7."
-msgstr ""
+msgid "Vertical climbing speed, in nodes per second."
+msgstr "Vertikálna rýchlosť šplhania, v kockách za sekundu."
#: src/settings_translation_file.cpp
-msgid ""
-"(X,Y,Z) scale of fractal in nodes.\n"
-"Actual fractal size will be 2 to 3 times larger.\n"
-"These numbers can be made very large, the fractal does\n"
-"not have to fit inside the world.\n"
-"Increase these to 'zoom' into the detail of the fractal.\n"
-"Default is for a vertically-squashed shape suitable for\n"
-"an island, set all 3 numbers equal for the raw shape."
-msgstr ""
+msgid "Vertical screen synchronization."
+msgstr "Vertikálna synchronizácia obrazovky."
#: src/settings_translation_file.cpp
-msgid ""
-"(X,Y,Z) offset of fractal from world center in units of 'scale'.\n"
-"Can be used to move a desired point to (0, 0) to create a\n"
-"suitable spawn point, or to allow 'zooming in' on a desired\n"
-"point by increasing 'scale'.\n"
-"The default is tuned for a suitable spawn point for Mandelbrot\n"
-"sets with default parameters, it may need altering in other\n"
-"situations.\n"
-"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
-msgstr ""
+msgid "Video driver"
+msgstr "Grafický ovládaÄ"
#: src/settings_translation_file.cpp
-msgid "Slice w"
-msgstr ""
+msgid "View bobbing factor"
+msgstr "Faktor pohupovania sa"
#: src/settings_translation_file.cpp
-msgid ""
-"W coordinate of the generated 3D slice of a 4D fractal.\n"
-"Determines which 3D slice of the 4D shape is generated.\n"
-"Alters the shape of the fractal.\n"
-"Has no effect on 3D fractals.\n"
-"Range roughly -2 to 2."
-msgstr ""
+msgid "View distance in nodes."
+msgstr "Vzdialenosť dohľadu v kockách."
#: src/settings_translation_file.cpp
-msgid "Julia x"
-msgstr ""
+msgid "View range decrease key"
+msgstr "TlaÄidlo Zníž dohľad"
#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"X component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
-msgstr ""
+msgid "View range increase key"
+msgstr "TlaÄidlo Zvýš dohľad"
#: src/settings_translation_file.cpp
-msgid "Julia y"
-msgstr ""
+msgid "View zoom key"
+msgstr "TlaÄidlo Priblíženie pohľadu"
#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"Y component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
-msgstr ""
+msgid "Viewing range"
+msgstr "Vzdialenosť dohľadu"
#: src/settings_translation_file.cpp
-msgid "Julia z"
-msgstr ""
+msgid "Virtual joystick triggers aux button"
+msgstr "Virtuálny joystick stlaÄí tlaÄidlo aux"
#: src/settings_translation_file.cpp
-msgid ""
-"Julia set only.\n"
-"Z component of hypercomplex constant.\n"
-"Alters the shape of the fractal.\n"
-"Range roughly -2 to 2."
-msgstr ""
+msgid "Volume"
+msgstr "Hlasitosť"
#: src/settings_translation_file.cpp
-msgid "Julia w"
+msgid ""
+"Volume of all sounds.\n"
+"Requires the sound system to be enabled."
msgstr ""
+"Hlasitosť všetkých zvukov.\n"
+"Požaduje aby bol zvukový systém aktivovaný."
#: src/settings_translation_file.cpp
msgid ""
-"Julia set only.\n"
-"W component of hypercomplex constant.\n"
+"W coordinate of the generated 3D slice of a 4D fractal.\n"
+"Determines which 3D slice of the 4D shape is generated.\n"
"Alters the shape of the fractal.\n"
"Has no effect on 3D fractals.\n"
"Range roughly -2 to 2."
msgstr ""
+"W koordináty generovaného 3D plátku v 4D fraktáli.\n"
+"UrÄuje, ktorý 3D plátok z 4D tvaru je generovaný.\n"
+"Zmení tvar fraktálu.\n"
+"Nemá vplyv na 3D fraktály.\n"
+"Rozsah zhruba -2 až 2."
#: src/settings_translation_file.cpp
-msgid "Seabed noise"
-msgstr ""
+msgid "Walking and flying speed, in nodes per second."
+msgstr "Rýchlosť chôdze a lietania, v kockách za sekundu."
#: src/settings_translation_file.cpp
-msgid "Y-level of seabed."
-msgstr ""
+msgid "Walking speed"
+msgstr "Rýchlosť chôdze"
#: src/settings_translation_file.cpp
-msgid "Mapgen Valleys"
+msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
msgstr ""
+"Rýchlosť chôdze, lietania a šplhania v rýchlom režime, v kockách za sekundu."
#: src/settings_translation_file.cpp
-msgid "Mapgen Valleys specific flags"
-msgstr ""
+msgid "Water level"
+msgstr "Úroveň vody"
#: src/settings_translation_file.cpp
-msgid ""
-"Map generation attributes specific to Mapgen Valleys.\n"
-"'altitude_chill': Reduces heat with altitude.\n"
-"'humid_rivers': Increases humidity around rivers.\n"
-"'vary_river_depth': If enabled, low humidity and high heat causes rivers\n"
-"to become shallower and occasionally dry.\n"
-"'altitude_dry': Reduces humidity with altitude."
-msgstr ""
+msgid "Water surface level of the world."
+msgstr "Hladina povrchovej vody vo svete."
#: src/settings_translation_file.cpp
-msgid ""
-"The vertical distance over which heat drops by 20 if 'altitude_chill' is\n"
-"enabled. Also the vertical distance over which humidity drops by 10 if\n"
-"'altitude_dry' is enabled."
-msgstr ""
+msgid "Waving Nodes"
+msgstr "Vlniace sa kocky"
#: src/settings_translation_file.cpp
-msgid "Depth below which you'll find large caves."
-msgstr ""
+msgid "Waving leaves"
+msgstr "Vlniace sa listy"
#: src/settings_translation_file.cpp
-msgid "Cavern upper limit"
-msgstr ""
+msgid "Waving liquids"
+msgstr "Vlniace sa tekutiny"
#: src/settings_translation_file.cpp
-msgid "Depth below which you'll find giant caverns."
-msgstr ""
+msgid "Waving liquids wave height"
+msgstr "Výška vlnenia sa tekutín"
#: src/settings_translation_file.cpp
-msgid "River depth"
-msgstr ""
+msgid "Waving liquids wave speed"
+msgstr "Rýchlosť vlny tekutín"
#: src/settings_translation_file.cpp
-msgid "How deep to make rivers."
-msgstr ""
+msgid "Waving liquids wavelength"
+msgstr "Vlnová dĺžka vlniacich sa tekutín"
#: src/settings_translation_file.cpp
-msgid "River size"
-msgstr ""
+msgid "Waving plants"
+msgstr "Vlniace sa rastliny"
#: src/settings_translation_file.cpp
-msgid "How wide to make rivers."
+msgid ""
+"When gui_scaling_filter is true, all GUI images need to be\n"
+"filtered in software, but some images are generated directly\n"
+"to hardware (e.g. render-to-texture for nodes in inventory)."
msgstr ""
+"Ake je gui_scaling_filter povolený, všetky GUI obrázky potrebujú byť\n"
+"filtrované softvérom, ale niektoré obrázky sú generované priamo\n"
+"pre hardvér (napr. render-to-texture pre kocky v inventári)."
#: src/settings_translation_file.cpp
-msgid "Cave noise #1"
+msgid ""
+"When gui_scaling_filter_txr2img is true, copy those images\n"
+"from hardware to software for scaling. When false, fall back\n"
+"to the old scaling method, for video drivers that don't\n"
+"properly support downloading textures back from hardware."
msgstr ""
+"Ake je gui_scaling_filter_txr2img povolený, nakopíruj tieto obrázky\n"
+"z hardvéru do softvéru pre zmenu mierky. Ak za vypnutý, vráť sa\n"
+"k starej metóde zmeny mierky, pre grafické ovládaÄe, ktoré dostatoÄne\n"
+"nepodporujú sťahovanie textúr z hardvéru."
#: src/settings_translation_file.cpp
-msgid "Cave noise #2"
+msgid ""
+"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n"
+"can be blurred, so automatically upscale them with nearest-neighbor\n"
+"interpolation to preserve crisp pixels. This sets the minimum texture size\n"
+"for the upscaled textures; higher values look sharper, but require more\n"
+"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n"
+"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n"
+"enabled.\n"
+"This is also used as the base node texture size for world-aligned\n"
+"texture autoscaling."
msgstr ""
+"Pri použití bilineárneho/trilineárneho/anisotropného filtra, textúry s "
+"nízkym\n"
+"rozlíšením môžu byť rozmazané, tak sa automaticky upravia interpoláciou\n"
+"s najbližším susedom aby bola zachovaná ostrosť pixelov.\n"
+"Toto nastaví minimálnu veľkosť pre upravenú textúru;\n"
+"vyššia hodnota znamená ostrejší vzhľad, ale potrebuje viac pamäti.\n"
+"OdporúÄané sú mocniny 2. Nastavenie viac než 1 nemusí maÅ¥ viditeľný efekt,\n"
+"kým nie je použité bilineárne/trilineárne/anisotropné filtrovanie.\n"
+"Toto sa tiež používa ako základná veľkosť textúry kociek pre\n"
+"\"world-aligned autoscaling\" textúr."
#: src/settings_translation_file.cpp
-msgid "Filler depth"
+msgid ""
+"Whether FreeType fonts are used, requires FreeType support to be compiled "
+"in.\n"
+"If disabled, bitmap and XML vectors fonts are used instead."
msgstr ""
+"Aby boli FreeType písma použité, je nutné aby bola podpora FreeType "
+"zakompilovaná.\n"
+"Ak je zakázané, budú použité bitmapové a XML vektorové písma."
#: src/settings_translation_file.cpp
-msgid "The depth of dirt or other biome filler node."
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Terrain height"
-msgstr ""
+msgid "Whether node texture animations should be desynchronized per mapblock."
+msgstr "Či sa nemá animácia textúry kocky synchronizovať."
#: src/settings_translation_file.cpp
-msgid "Base terrain height."
+msgid ""
+"Whether players are shown to clients without any range limit.\n"
+"Deprecated, use the setting player_transfer_distance instead."
msgstr ""
+"ÄŒi sa hráÄi zobrazia klientom bez obmedzenia vzdialenosti.\n"
+"Zastarané, namiesto tohto použi player_transfer_distance."
#: src/settings_translation_file.cpp
-msgid "Valley depth"
-msgstr ""
+msgid "Whether to allow players to damage and kill each other."
+msgstr "ÄŒi sa môžu hráÄi navzájom poÅ¡kodzovaÅ¥ a zabiÅ¥."
#: src/settings_translation_file.cpp
-msgid "Raises terrain to make valleys around the rivers."
+msgid ""
+"Whether to ask clients to reconnect after a (Lua) crash.\n"
+"Set this to true if your server is set up to restart automatically."
msgstr ""
+"Či ná ponúknuť klientom obnovenie spojenia po páde (Lua).\n"
+"Povoľ, ak je tvoj server nastavený na automatický reštart."
#: src/settings_translation_file.cpp
-msgid "Valley fill"
-msgstr ""
+msgid "Whether to fog out the end of the visible area."
+msgstr "Či zamlžiť okraj viditeľnej oblasti."
#: src/settings_translation_file.cpp
-msgid "Slope and fill work together to modify the heights."
+msgid ""
+"Whether to mute sounds. You can unmute sounds at any time, unless the\n"
+"sound system is disabled (enable_sound=false).\n"
+"In-game, you can toggle the mute state with the mute key or by using the\n"
+"pause menu."
msgstr ""
+"Vypnutie zvukov. Zapnúť zvuky môžeš kedykoľvek, pokiaľ\n"
+"nie je zakázaný zvukový systém (enable_sound=false).\n"
+"V hre môžeÅ¡ zapnúť/vypnúť zvuk tlaÄidlom pre stíšenie zvuku, alebo\n"
+"pozastavením hry."
#: src/settings_translation_file.cpp
-msgid "Valley profile"
-msgstr ""
+msgid ""
+"Whether to show the client debug info (has the same effect as hitting F5)."
+msgstr "Zobrazenie ladiaceho okna na klientovi (má rovnaký efekt ako F5)."
#: src/settings_translation_file.cpp
-msgid "Amplifies the valleys."
-msgstr ""
+msgid "Width component of the initial window size."
+msgstr "Šírka okna po spustení."
#: src/settings_translation_file.cpp
-msgid "Valley slope"
-msgstr ""
+msgid "Width of the selection box lines around nodes."
+msgstr "Šírka línií obrysu kocky."
#: src/settings_translation_file.cpp
-msgid "Chunk size"
+msgid ""
+"Windows systems only: Start Minetest with the command line window in the "
+"background.\n"
+"Contains the same information as the file debug.txt (default name)."
msgstr ""
+"Len pre systémy s Windows: Spusti Minetest s oknom príkazovej riadky na "
+"pozadí.\n"
+"Obsahuje tie isté informácie ako súbor debug.txt (štandardný názov)."
#: src/settings_translation_file.cpp
msgid ""
-"Size of mapchunks generated by mapgen, stated in mapblocks (16 nodes).\n"
-"WARNING!: There is no benefit, and there are several dangers, in\n"
-"increasing this value above 5.\n"
-"Reducing this value increases cave and dungeon density.\n"
-"Altering this value is for special usage, leaving it unchanged is\n"
-"recommended."
+"World directory (everything in the world is stored here).\n"
+"Not needed if starting from the main menu."
msgstr ""
+"Adresár sveta (všetko na svete je uložené tu).\n"
+"Nie je potrebné ak sa spúšťa z hlavného menu."
#: src/settings_translation_file.cpp
-msgid "Mapgen debug"
-msgstr ""
+msgid "World start time"
+msgstr "PoÄiatoÄný Äas sveta"
#: src/settings_translation_file.cpp
-msgid "Dump the mapgen debug information."
+msgid ""
+"World-aligned textures may be scaled to span several nodes. However,\n"
+"the server may not send the scale you want, especially if you use\n"
+"a specially-designed texture pack; with this option, the client tries\n"
+"to determine the scale automatically basing on the texture size.\n"
+"See also texture_min_size.\n"
+"Warning: This option is EXPERIMENTAL!"
msgstr ""
+"Textúry zarovnané podľa sveta môžu byÅ¥ zväÄÅ¡ené aby pokryli niekoľko "
+"kociek.\n"
+"Avšak server nemusí poslať mierku akú potrebuješ, obzvlášť ak používaš\n"
+"Å¡peciálne dizajnovaný balíÄek textúr; s týmto nastavením, sa klient pokúsi\n"
+"urÄiÅ¥ mierku automaticky na základe veľkosti textúry.\n"
+"ViÄ. tiež texture_min_size.\n"
+"Varovanie: Toto nastavenie je EXPERIMENTÃLNE!"
#: src/settings_translation_file.cpp
-msgid "Absolute limit of queued blocks to emerge"
-msgstr ""
+msgid "World-aligned textures mode"
+msgstr "Režim zarovnaných textúr podľa sveta"
#: src/settings_translation_file.cpp
-msgid "Maximum number of blocks that can be queued for loading."
-msgstr ""
+msgid "Y of flat ground."
+msgstr "Y plochej zeme."
#: src/settings_translation_file.cpp
-msgid "Per-player limit of queued blocks load from disk"
+msgid ""
+"Y of mountain density gradient zero level. Used to shift mountains "
+"vertically."
msgstr ""
+"Y hustotný gradient hladiny nula pre hory. Používa sa pre vertikálny posun "
+"hôr."
#: src/settings_translation_file.cpp
-msgid ""
-"Maximum number of blocks to be queued that are to be loaded from file.\n"
-"This limit is enforced per player."
-msgstr ""
+msgid "Y of upper limit of large caves."
+msgstr "Horný Y limit veľkých jaskýň."
#: src/settings_translation_file.cpp
-msgid "Per-player limit of queued blocks to generate"
-msgstr ""
+msgid "Y-distance over which caverns expand to full size."
+msgstr "Y-nová vzdialenosť nad ktorou dutiny expandujú do plnej veľkosti."
#: src/settings_translation_file.cpp
msgid ""
-"Maximum number of blocks to be queued that are to be generated.\n"
-"This limit is enforced per player."
+"Y-distance over which floatlands taper from full density to nothing.\n"
+"Tapering starts at this distance from the Y limit.\n"
+"For a solid floatland layer, this controls the height of hills/mountains.\n"
+"Must be less than or equal to half the distance between the Y limits."
msgstr ""
+"Y-vzdialenosÅ¥ kde sa lietajúce pevniny zužujú od plnej hustoty po niÄ.\n"
+"Zužovanie zaÄína na tejto vzdialenosti z Y limitu.\n"
+"Pre jednoznaÄnosÅ¥ vrstvy lietajúcej krajiny, toto riadi výšku kopcov/hôr.\n"
+"Musí byť menej ako, alebo rovnako ako polovica vzdialenosti medzi Y limitami."
#: src/settings_translation_file.cpp
-msgid "Number of emerge threads"
-msgstr ""
+msgid "Y-level of average terrain surface."
+msgstr "Y-úroveň priemeru povrchu terénu."
#: src/settings_translation_file.cpp
-msgid ""
-"Number of emerge threads to use.\n"
-"Value 0:\n"
-"- Automatic selection. The number of emerge threads will be\n"
-"- 'number of processors - 2', with a lower limit of 1.\n"
-"Any other value:\n"
-"- Specifies the number of emerge threads, with a lower limit of 1.\n"
-"WARNING: Increasing the number of emerge threads increases engine mapgen\n"
-"speed, but this may harm game performance by interfering with other\n"
-"processes, especially in singleplayer and/or when running Lua code in\n"
-"'on_generated'. For many users the optimum setting may be '1'."
-msgstr ""
+msgid "Y-level of cavern upper limit."
+msgstr "Y-úroveň horného limitu dutín."
#: src/settings_translation_file.cpp
-msgid "Online Content Repository"
-msgstr ""
+msgid "Y-level of higher terrain that creates cliffs."
+msgstr "Y-úroveň horného terénu, ktorý tvorí útesy/skaly."
#: src/settings_translation_file.cpp
-msgid "ContentDB URL"
-msgstr ""
+msgid "Y-level of lower terrain and seabed."
+msgstr "Y-úroveň dolnej Äasti terénu a morského dna."
#: src/settings_translation_file.cpp
-msgid "The URL for the content repository"
-msgstr ""
+msgid "Y-level of seabed."
+msgstr "Y-úroveň morského dna."
#: src/settings_translation_file.cpp
-msgid "ContentDB Flag Blacklist"
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
msgstr ""
+"Úroveň kompresie ZLib používaný pri ukladaní blokov mapy na disk.\n"
+"-1 - predvolená úroveň kompresie Zlib\n"
+"0 - bez kompresie, najrýchlejšie\n"
+"9 - najlepšia kompresia, najpomalšie\n"
+"(pre úrovne 1-3 používa Zlib \"rýchlu\" metódu, pre 4-9 používa normálnu "
+"metódu)"
#: src/settings_translation_file.cpp
msgid ""
-"Comma-separated list of flags to hide in the content repository.\n"
-"\"nonfree\" can be used to hide packages which do not qualify as 'free "
-"software',\n"
-"as defined by the Free Software Foundation.\n"
-"You can also specify content ratings.\n"
-"These flags are independent from Minetest versions,\n"
-"so see a full list at https://content.minetest.net/help/content_flags/"
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
msgstr ""
+"Úroveň kompresie ZLib používaný pri posielaní blokov mapy klientom.\n"
+"-1 - predvolená úroveň kompresie Zlib\n"
+"0 - bez kompresie, najrýchlejšie\n"
+"9 - najlepšia kompresia, najpomalšie\n"
+"(pre úrovne 1-3 používa Zlib \"rýchlu\" metódu, pre 4-9 používa normálnu "
+"metódu)"
+
+#: src/settings_translation_file.cpp
+msgid "cURL file download timeout"
+msgstr "cURL Äasový rámec sÅ¥ahovania súborov"
+
+#: src/settings_translation_file.cpp
+msgid "cURL parallel limit"
+msgstr "Paralelný limit cURL"
+
+#: src/settings_translation_file.cpp
+msgid "cURL timeout"
+msgstr "Časový rámec cURL"
+
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = parallax occlusion s informácia o sklone (rýchlejšie).\n"
+#~ "1 = mapovanie reliéfu (pomalšie, presnejšie)."
+
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Si si istý, že chceÅ¡ vynulovaÅ¥ svoj svet jedného hráÄa?"
+
+#~ msgid "Bump Mapping"
+#~ msgstr "Bump Mapping (Ilúzia nerovnosti)"
+
+#~ msgid "Bumpmapping"
+#~ msgstr "Bumpmapping"
+
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "Zmení užívateľské rozhranie (UI) hlavného menu:\n"
+#~ "- Plné: Viacero svetov, voľby hry, voľba balíÄka textúr, atÄ.\n"
+#~ "- Jednoduché: Jeden svet, bez herných volieb, alebo voľby textúr. Môže "
+#~ "byť\n"
+#~ "nevyhnutné pre malé obrazovky."
+
+#~ msgid "Config mods"
+#~ msgstr "Nastav rozšírenia"
+
+#~ msgid "Configure"
+#~ msgstr "Konfigurácia"
+
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Farba zameriavaÄa (R,G,B)."
+
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Definuje vzorkovací krok pre textúry.\n"
+#~ "Vyššia hodnota vedie k jemnejším normálovým mapám."
+
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "Aktivuje bumpmapping pre textúry. Normálové mapy musia byť dodané v "
+#~ "balíÄku textúr.\n"
+#~ "alebo musia byť automaticky generované.\n"
+#~ "Vyžaduje aby boli shadery aktivované."
+
+#~ msgid ""
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
+#~ msgstr ""
+#~ "Aktivuje generovanie normálových máp za behu (efekt reliéfu).\n"
+#~ "Požaduje aby bol aktivovaný bumpmapping."
+
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "Aktivuj parallax occlusion mapping.\n"
+#~ "Požaduje aby boli aktivované shadery."
+
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
+#~ msgstr ""
+#~ "Experimentálne nastavenie, môže spôsobiť viditeľné medzery\n"
+#~ "medzi blokmi, ak je nastavené väÄÅ¡ie než 0."
+
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS v menu pozastavenia hry"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Normal Maps (nerovnosti)"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Generuj normálové mapy"
+
+#~ msgid "Main"
+#~ msgstr "Hlavné"
+
+#~ msgid "Main menu style"
+#~ msgstr "Štýl hlavného menu"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Minimapa v radarovom režime, priblíženie x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Minimapa v radarovom režime, priblíženie x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Minimapa v povrchovom režime, priblíženie x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Minimapa v povrchovom režime, priblíženie x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Meno/Heslo"
+
+#~ msgid "No"
+#~ msgstr "Nie"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Vzorkovanie normálových máp"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Intenzita normálových máp"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "PoÄet opakovaní výpoÄtu parallax occlusion."
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "Celkové skreslenie parallax occlusion efektu, obvykle mierka/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Celková mierka parallax occlusion efektu."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parallax Occlusion (nerovnosti)"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Parallax occlusion"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Skreslenie parallax occlusion"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Opakovania parallax occlusion"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Režim parallax occlusion"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Mierka parallax occlusion"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Vynuluj svet jedného hráÄa"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Spusti hru pre jedného hráÄa"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Intenzita generovaných normálových máp."
+
+#~ msgid "View"
+#~ msgstr "Zobraziť"
+
+#~ msgid "Yes"
+#~ msgstr "Ãno"
diff --git a/po/sl/minetest.po b/po/sl/minetest.po
index 16d224c40..a67ac9c65 100644
--- a/po/sl/minetest.po
+++ b/po/sl/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Slovenian (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2019-11-29 23:04+0000\n"
-"Last-Translator: Matej Mlinar <mlinar.matej@gmail.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-09-30 19:41+0000\n"
+"Last-Translator: Iztok Bajcar <iztok.bajcar@gmail.com>\n"
"Language-Team: Slovenian <https://hosted.weblate.org/projects/minetest/"
"minetest/sl/>\n"
"Language: sl\n"
@@ -13,7 +13,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3;\n"
-"X-Generator: Weblate 3.10-dev\n"
+"X-Generator: Weblate 4.3-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -25,7 +25,7 @@ msgstr "Umrl si"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "V redu"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -47,10 +47,6 @@ msgstr "Ponovna povezava"
msgid "The server has requested a reconnect:"
msgstr "Strežnik zahteva ponovno povezavo:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Poteka nalaganje ..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "RazliÄice protokola niso skladne. "
@@ -64,12 +60,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Strežnik podpira razliÄice protokolov med $1 in $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Morda je treba ponovno omogoÄiti javni seznam strežnikov oziroma preveriti "
-"internetno povezavo."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Podporta je le razliÄica protokola $1."
@@ -77,7 +67,8 @@ msgstr "Podporta je le razliÄica protokola $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Podprte so razliÄice protokolov med $1 in $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -87,7 +78,8 @@ msgstr "Podprte so razliÄice protokolov med $1 in $2."
msgid "Cancel"
msgstr "PrekliÄi"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Odvisnosti:"
@@ -117,7 +109,7 @@ msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "PoiÅ¡Äi veÄ razÅ¡iritev"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -144,7 +136,7 @@ msgstr "Opis prilagoditve ni na voljo."
#: builtin/mainmenu/dlg_config_world.lua
#, fuzzy
msgid "No optional dependencies"
-msgstr "Izbirne možnosti:"
+msgstr "Ni izbirnih odvisnosti"
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
msgid "Optional dependencies:"
@@ -164,16 +156,57 @@ msgid "enabled"
msgstr "omogoÄeno"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Poteka nalaganje ..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Vsi paketi"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Tipka je že v uporabi"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Nazaj na glavni meni"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Gosti igro"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "ContentDB ni na voljo, Äe je bil Minetest narejen brez podpore cURL"
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
@@ -194,6 +227,16 @@ msgid "Install"
msgstr "Namesti"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Namesti"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Izbirne možnosti:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Prilagoditve (mods)"
@@ -207,9 +250,25 @@ msgid "No results"
msgstr "Ni rezultatov"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "PoiÅ¡Äi"
+#, fuzzy
+msgid "No updates"
+msgstr "Posodobi"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -224,7 +283,11 @@ msgid "Update"
msgstr "Posodobi"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -232,8 +295,9 @@ msgid "A world named \"$1\" already exists"
msgstr "Svet z imenom »$1« že obstaja"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Additional terrain"
-msgstr ""
+msgstr "Dodatni teren"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
@@ -244,12 +308,14 @@ msgid "Altitude dry"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Biome blending"
-msgstr ""
+msgstr "Zlivanje biomov"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Biomes"
-msgstr ""
+msgstr "Biomi"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -257,9 +323,8 @@ msgid "Caverns"
msgstr "Å um votline"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caves"
-msgstr "Oktave"
+msgstr "Jame"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
@@ -268,7 +333,7 @@ msgstr "Ustvari"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
msgid "Decorations"
-msgstr "Informacije:"
+msgstr "Dekoracije"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -281,15 +346,17 @@ msgstr "Na voljo so na spletiÅ¡Äu minetest.net/customize"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
msgid "Dungeons"
-msgstr "Å um jeÄe"
+msgstr "JeÄe"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Flat terrain"
-msgstr ""
+msgstr "Raven teren"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Floating landmasses in the sky"
-msgstr ""
+msgstr "LebdeÄe kopenske mase na nebu"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floatlands (experimental)"
@@ -300,28 +367,29 @@ msgid "Game"
msgstr "Igra"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Generiraj nefraktalen teren: oceani in podzemlje"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "Hribi"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Humid rivers"
-msgstr ""
+msgstr "Vlažne reke"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "PoveÄa vlažnost v bližini rek"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "Jezera"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "Nizka vlažnost in visoka vroÄina povzroÄita plitve ali izsuÅ¡ene reke"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -329,7 +397,7 @@ msgstr "Oblika sveta (mapgen)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen flags"
-msgstr ""
+msgstr "Možnosti generatorja zemljevida"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -338,15 +406,15 @@ msgstr "Oblika sveta (mapgen) Fractal"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mountains"
-msgstr ""
+msgstr "Gore"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "Tok blata"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "Omrežje predorov in jam"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
@@ -354,19 +422,19 @@ msgstr "Niste izbrali igre"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "VroÄina pojema z viÅ¡ino"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "Vlažnost pojema z višino"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Rivers"
-msgstr ""
+msgstr "Reke"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "Reke na višini morja"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -375,17 +443,20 @@ msgstr "Seme"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "Gladek prehod med biomi"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
+"Strukture, ki se pojavijo na terenu (nima vpliva na drevesa in džungelsko "
+"travo, ustvarjeno z mapgenom v6)"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "Strukture, ki se pojavljajo na terenu, npr. drevesa in rastline"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
@@ -401,11 +472,11 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Terrain surface erosion"
-msgstr ""
+msgstr "Erozija terena"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "Drevesa in džungelska trava"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -414,7 +485,7 @@ msgstr "Globina polnila"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "Zelo velike jame globoko v podzemlju"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -472,9 +543,8 @@ msgid "(No description of setting given)"
msgstr "(ni podanega opisa nastavitve)"
#: builtin/mainmenu/dlg_settings_advanced.lua
-#, fuzzy
msgid "2D Noise"
-msgstr "2D zvok"
+msgstr "2D šum"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "< Back to Settings page"
@@ -497,8 +567,9 @@ msgid "Enabled"
msgstr "OmogoÄeno"
#: builtin/mainmenu/dlg_settings_advanced.lua
+#, fuzzy
msgid "Lacunarity"
-msgstr ""
+msgstr "lacunarnost"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Octaves"
@@ -529,6 +600,10 @@ msgid "Scale"
msgstr "Skala"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "PoiÅ¡Äi"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Izberi mapo"
@@ -538,7 +613,7 @@ msgstr "Izberi datoteko"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Show technical names"
-msgstr "Pokaži tehniÄne zapise"
+msgstr "Prikaži tehniÄna imena"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "The value must be at least $1."
@@ -592,8 +667,9 @@ msgstr "Privzeta/standardna vrednost (defaults)"
#. can be enabled in noise settings in
#. main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
+#, fuzzy
msgid "eased"
-msgstr ""
+msgstr "sproÅ¡Äeno"
#: builtin/mainmenu/pkgmgr.lua
msgid "$1 (Enabled)"
@@ -645,6 +721,21 @@ msgstr "Ni mogoÄe namestiti prilagoditve kot $1"
msgid "Unable to install a modpack as a $1"
msgstr "Ni mogoÄe namestiti paketa prilagoditev kot $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Poteka nalaganje ..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "Skriptiranje s strani odjemalca je onemogoÄeno"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Morda je treba ponovno omogoÄiti javni seznam strežnikov oziroma preveriti "
+"internetno povezavo."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Brskaj po spletnih vsebinah"
@@ -698,6 +789,17 @@ msgid "Credits"
msgstr "Zasluge"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Izberi mapo"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Predhodni sodelavci"
@@ -714,14 +816,10 @@ msgid "Bind Address"
msgstr "Vezani naslov"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Nastavi"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Ustvarjalni naÄin"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "OmogoÄi poÅ¡kodbe"
@@ -735,11 +833,11 @@ msgstr "Gostiteljski strežnik"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "Namesti igre iz ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Ime / Geslo"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -750,6 +848,11 @@ msgid "No world created or selected!"
msgstr "Ni ustvarjenega oziroma izbranega sveta!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Novo geslo"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Zaženi igro"
@@ -758,6 +861,11 @@ msgid "Port"
msgstr "Vrata"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Izbor sveta:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Izbor sveta:"
@@ -773,23 +881,23 @@ msgstr "ZaÄni igro"
msgid "Address / Port"
msgstr "Naslov / Vrata"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Poveži"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Ustvarjalni naÄin"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "PoÅ¡kodbe so omogoÄene"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Izbriši priljubljeno"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Priljubljeno"
@@ -797,16 +905,16 @@ msgstr "Priljubljeno"
msgid "Join Game"
msgstr "Prijavi se v igro"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Ime / Geslo"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "Igra PvP je omogoÄena"
@@ -835,10 +943,6 @@ msgid "Antialiasing:"
msgstr "Glajenje:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Ali res želiš ponastaviti samostojno igro?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Samodejno shrani velikost zaslona"
@@ -846,10 +950,6 @@ msgstr "Samodejno shrani velikost zaslona"
msgid "Bilinear Filter"
msgstr "Bilinearni filter"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Površinsko preslikavanje"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Spremeni tipke"
@@ -863,10 +963,6 @@ msgid "Fancy Leaves"
msgstr "Olepšani listi"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Generiranje normalnih svetov"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Zemljevid (minimap)"
@@ -875,10 +971,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Zemljevid (minimap) s filtrom Aniso"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Ne"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Brez filtra"
@@ -906,19 +998,11 @@ msgstr "Neprosojni listi"
msgid "Opaque Water"
msgstr "Neprosojna površina vode"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Paralaksa"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Delci"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Ponastavi samostojno igro"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Zaslon:"
@@ -931,8 +1015,13 @@ msgid "Shaders"
msgstr "SenÄenje"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "SenÄenje (ni na voljo)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
-msgstr ""
+msgstr "SenÄenje (ni na voljo)"
#: builtin/mainmenu/tab_settings.lua
msgid "Simple Leaves"
@@ -955,8 +1044,9 @@ msgid "Tone Mapping"
msgstr "Barvno preslikavanje"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
msgid "Touchthreshold: (px)"
-msgstr ""
+msgstr "ObÄutljivost dotika (v pikslih):"
#: builtin/mainmenu/tab_settings.lua
msgid "Trilinear Filter"
@@ -974,22 +1064,6 @@ msgstr "Valovanje tekoÄin"
msgid "Waving Plants"
msgstr "Pokaži nihanje rastlin"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Da"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Nastavitve prilagoditev"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Glavni"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Zaženi samostojno igro"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Povezava je potekla."
@@ -1146,20 +1220,20 @@ msgid "Continue"
msgstr "Nadaljuj"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1187,16 +1261,18 @@ msgid "Creating server..."
msgstr "Poteka zagon strežnika ..."
#: src/client/game.cpp
+#, fuzzy
msgid "Debug info and profiler graph hidden"
-msgstr ""
+msgstr "Podatki za razhroÅ¡Äevanje in graf skriti"
#: src/client/game.cpp
msgid "Debug info shown"
msgstr "Prikazani so podatki o odpravljanju napak"
#: src/client/game.cpp
+#, fuzzy
msgid "Debug info, profiler graph, and wireframe hidden"
-msgstr ""
+msgstr "Podatki za razhroÅ¡Äevanje, graf, in žiÄnati prikaz skriti"
#: src/client/game.cpp
msgid ""
@@ -1308,34 +1384,6 @@ msgstr ""
"Zemljevid (minimap) je trenutno onemogoÄen zaradi igre ali prilagoditve"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Zemljevid (minimap) je skrit"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Zemljevid (minimap) je v radar naÄinu, Zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Zemljevid (minimap) je v radar naÄinu, Zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Zemljevid (minimap) je v radar naÄinu, Zoom x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Zemljevid (minimap) je v naÄinu prikazovanja povrÅ¡ja, Zoom x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Zemljevid (minimap) je v naÄinu prikazovanja povrÅ¡ja, Zoom x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Zemljevid (minimap) je v naÄinu prikazovanja povrÅ¡ja, Zoom x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Prehod skozi zid (naÄin duha) je onemogoÄen"
@@ -1370,8 +1418,9 @@ msgid "Pitch move mode enabled"
msgstr "Prostorsko premikanje (pitch mode) je omogoÄeno"
#: src/client/game.cpp
+#, fuzzy
msgid "Profiler graph shown"
-msgstr ""
+msgstr "Profiler prikazan"
#: src/client/game.cpp
msgid "Remote server"
@@ -1399,11 +1448,11 @@ msgstr "Zvok je utišan"
#: src/client/game.cpp
msgid "Sound system is disabled"
-msgstr ""
+msgstr "ZvoÄni sistem je onemogoÄen"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "ZvoÄni sistem v tej izdaji Minetesta ni podprt"
#: src/client/game.cpp
msgid "Sound unmuted"
@@ -1430,8 +1479,9 @@ msgid "Volume changed to %d%%"
msgstr "Glasnost zvoka je nastavljena na %d %%"
#: src/client/game.cpp
+#, fuzzy
msgid "Wireframe shown"
-msgstr ""
+msgstr "ŽiÄnati prikaz omogoÄen"
#: src/client/game.cpp
msgid "Zoom currently disabled by game or mod"
@@ -1458,13 +1508,14 @@ msgid "HUD shown"
msgstr "HUD je prikazan"
#: src/client/gameui.cpp
+#, fuzzy
msgid "Profiler hidden"
-msgstr ""
+msgstr "Profiler skrit"
#: src/client/gameui.cpp
-#, c-format
+#, fuzzy, c-format
msgid "Profiler shown (page %d of %d)"
-msgstr ""
+msgstr "Profiler prikazan (stran %d od %d)"
#: src/client/keycode.cpp
msgid "Apps"
@@ -1511,24 +1562,29 @@ msgid "Home"
msgstr "ZaÄetno mesto"
#: src/client/keycode.cpp
+#, fuzzy
msgid "IME Accept"
-msgstr ""
+msgstr "IME Sprejem"
#: src/client/keycode.cpp
+#, fuzzy
msgid "IME Convert"
-msgstr ""
+msgstr "IME Pretvorba"
#: src/client/keycode.cpp
+#, fuzzy
msgid "IME Escape"
-msgstr ""
+msgstr "IME Pobeg"
#: src/client/keycode.cpp
+#, fuzzy
msgid "IME Mode Change"
-msgstr ""
+msgstr "IME sprememba naÄina"
#: src/client/keycode.cpp
+#, fuzzy
msgid "IME Nonconvert"
-msgstr ""
+msgstr "IME Nepretvorba"
#: src/client/keycode.cpp
msgid "Insert"
@@ -1632,8 +1688,9 @@ msgid "Numpad 9"
msgstr "Tipka 9 na Å¡tevilÄnici"
#: src/client/keycode.cpp
+#, fuzzy
msgid "OEM Clear"
-msgstr ""
+msgstr "OEM Clear"
#: src/client/keycode.cpp
msgid "Page down"
@@ -1729,6 +1786,25 @@ msgstr "X Gumb 2"
msgid "Zoom"
msgstr "Približanje"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Zemljevid (minimap) je skrit"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Zemljevid (minimap) je v radar naÄinu, Zoom x1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Zemljevid (minimap) je v naÄinu prikazovanja povrÅ¡ja, Zoom x1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Zemljevid (minimap) je v naÄinu prikazovanja povrÅ¡ja, Zoom x1"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Gesli se ne ujemata!"
@@ -1831,6 +1907,8 @@ msgstr "Tipka je že v uporabi"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
msgstr ""
+"Vloge tipk (Äe ta meni preneha delovati, odstranite nastavitve tipk iz "
+"datoteke minetest.conf)"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Local command"
@@ -1947,6 +2025,9 @@ msgid ""
"(Android) Fixes the position of virtual joystick.\n"
"If disabled, virtual joystick will center to first-touch's position."
msgstr ""
+"(Android) Popravi položaj virtualne igralne palice.\n"
+"ÄŒe je onemogoÄeno, se bo sredina igralne palice nastavila na položaj prvega "
+"pritiska na ekran."
#: src/settings_translation_file.cpp
msgid ""
@@ -1954,6 +2035,9 @@ msgid ""
"If enabled, virtual joystick will also tap \"aux\" button when out of main "
"circle."
msgstr ""
+"(Android) Uporabi virtualno igralno palico za pritisk gumba \"aux\".\n"
+"ÄŒe je omogoÄeno, bo igralna palica sprožila gumb \"aux\", ko bo zunaj "
+"glavnega kroga."
#: src/settings_translation_file.cpp
msgid ""
@@ -1966,6 +2050,15 @@ msgid ""
"situations.\n"
"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
msgstr ""
+"(X, Y, Z) Zamik fraktala od srediÅ¡Äa sveta v enotah 'scale'.\n"
+"Uporabno za premik doloÄene toÄke na (0, 0) za ustvarjanje\n"
+"primerne zaÄetne toÄke (spawn point) ali za 'zumiranje' na doloÄeno\n"
+"toÄko, tako da poveÄate 'scale'.\n"
+"Privzeta vrednost je prirejena za primerno zaÄetno toÄko za Mandelbrotovo\n"
+"množico s privzetimi parametri, v ostalih situacijah jo bo morda treba\n"
+"spremeniti.\n"
+"Obseg je približno od -2 do 2. Pomnožite s 'scale', da doloÄite zamik v "
+"enoti ene kocke."
#: src/settings_translation_file.cpp
msgid ""
@@ -1977,12 +2070,13 @@ msgid ""
"Default is for a vertically-squashed shape suitable for\n"
"an island, set all 3 numbers equal for the raw shape."
msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
+"(X, Y, Z) skala (razteg) fraktala v enoti ene kocke.\n"
+"ResniÄna velikost fraktala bo 2- do 3-krat veÄja.\n"
+"Te vrednosti so lahko zelo velike; ni potrebno,\n"
+"da se fraktal prilega velikosti sveta.\n"
+"PoveÄajte te vrednosti, da 'zumirate' na podrobnosti fraktala.\n"
+"Privzeta vrednost doloÄa vertikalno stisnjeno obliko, primerno za\n"
+"otok; nastavite vse tri vrednosti na isto število za neobdelano obliko."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
@@ -1990,27 +2084,29 @@ msgstr "2D šum, ki nadzoruje obliko/velikost gorskih verig."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of rolling hills."
-msgstr ""
+msgstr "2D šum, ki nadzira obliko in velikost hribov."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of step mountains."
-msgstr ""
+msgstr "2D šum, ki nadzira obliko/velikost gora."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
-msgstr ""
+msgstr "2D šum, ki nadzira velikost/pojavljanje gorskih verig."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the size/occurrence of rolling hills."
-msgstr ""
+msgstr "2D šum, ki nadzira veliokst/pojavljanje hribov."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid "2D noise that controls the size/occurrence of step mountain ranges."
-msgstr ""
+msgstr "2D šum, ki nadzira velikost/pojavljanje gorskih verig."
#: src/settings_translation_file.cpp
msgid "2D noise that locates the river valleys and channels."
-msgstr ""
+msgstr "2D Å¡um, ki doloÄa položaj reÄnih dolin in kanalov."
#: src/settings_translation_file.cpp
msgid "3D clouds"
@@ -2022,17 +2118,19 @@ msgstr "3D naÄin"
#: src/settings_translation_file.cpp
msgid "3D mode parallax strength"
-msgstr ""
+msgstr "MoÄ 3D parallax naÄina"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
-msgstr ""
+msgstr "3D Å¡um, ki doloÄa veÄje jame."
#: src/settings_translation_file.cpp
msgid ""
"3D noise defining mountain structure and height.\n"
"Also defines structure of floatland mountain terrain."
msgstr ""
+"3D Å¡um, ki doloÄa strukturo in viÅ¡ino gora\n"
+"ter strukturo terena lebdeÄih gora."
#: src/settings_translation_file.cpp
msgid ""
@@ -2041,22 +2139,27 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
+"3D Å¡um, ki doloÄa strukturo lebdeÄe pokrajine.\n"
+"Po spremembi s privzete vrednosti bo 'skalo' šuma (privzeto 0,7) morda "
+"treba\n"
+"prilagoditi, saj program za generiranje teh pokrajin najbolje deluje\n"
+"z vrednostjo v obmoÄju med -2,0 in 2,0."
#: src/settings_translation_file.cpp
msgid "3D noise defining structure of river canyon walls."
-msgstr ""
+msgstr "3D Å¡um, ki doloÄa strukturo sten reÄnih kanjonov."
#: src/settings_translation_file.cpp
msgid "3D noise defining terrain."
-msgstr ""
+msgstr "3D Å¡um za doloÄanje terena."
#: src/settings_translation_file.cpp
msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
-msgstr ""
+msgstr "3D šum za gorske previse, klife, itd. Ponavadi so variacije majhne."
#: src/settings_translation_file.cpp
msgid "3D noise that determines number of dungeons per mapchunk."
-msgstr ""
+msgstr "3D Å¡um, ki doloÄa Å¡tevilo jeÄ na posamezen kos zemljevida."
#: src/settings_translation_file.cpp
msgid ""
@@ -2077,6 +2180,9 @@ msgid ""
"A chosen map seed for a new map, leave empty for random.\n"
"Will be overridden when creating a new world in the main menu."
msgstr ""
+"Izbrano seme zemljevida, pustite prazno za izbor nakljuÄnega semena.\n"
+"Ta nastavitev bo povožena v primeru ustvarjanja novega sveta iz glavnega "
+"menija."
#: src/settings_translation_file.cpp
msgid "A message to be displayed to all clients when the server crashes."
@@ -2091,6 +2197,10 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "ABM interval"
+msgstr "Interval ABM"
+
+#: src/settings_translation_file.cpp
+msgid "ABM time budget"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2099,23 +2209,23 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Acceleration in air"
-msgstr ""
+msgstr "Pospešek v zraku"
#: src/settings_translation_file.cpp
msgid "Acceleration of gravity, in nodes per second per second."
-msgstr ""
+msgstr "Pospešek gravitacije v kockah na kvadratno sekundo."
#: src/settings_translation_file.cpp
msgid "Active Block Modifiers"
-msgstr ""
+msgstr "Modifikatorji aktivnih blokov"
#: src/settings_translation_file.cpp
msgid "Active block management interval"
-msgstr ""
+msgstr "Interval upravljanja aktivnih blokov"
#: src/settings_translation_file.cpp
msgid "Active block range"
-msgstr ""
+msgstr "Doseg aktivnih blokov"
#: src/settings_translation_file.cpp
msgid "Active object send range"
@@ -2127,16 +2237,22 @@ msgid ""
"Leave this blank to start a local server.\n"
"Note that the address field in the main menu overrides this setting."
msgstr ""
+"Naslov strežnika.\n"
+"Pustite prazno za zagon lokalnega strežnika.\n"
+"Polje za vpis naslova v glavnem meniju povozi to nastavitev."
#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Adds particles when digging a node."
-msgstr ""
+msgstr "Doda partikle pri kopanju kocke."
#: src/settings_translation_file.cpp
msgid ""
"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k "
"screens."
msgstr ""
+"Nastavite dpi konfiguracijo (gostoto prikaza) svojemu ekranu (samo za ne-X11/"
+"Android), npr. za 4K ekrane."
#: src/settings_translation_file.cpp
#, c-format
@@ -2172,11 +2288,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Amount of messages a player may send per 10 seconds."
-msgstr ""
+msgstr "NajveÄja koliÄina sporoÄil, ki jih igralec sme poslati v 10 sekundah."
#: src/settings_translation_file.cpp
msgid "Amplifies the valleys."
-msgstr ""
+msgstr "OjaÄa doline."
#: src/settings_translation_file.cpp
msgid "Anisotropic filtering"
@@ -2192,7 +2308,7 @@ msgstr "Objavi strežnik na seznamu strežnikov."
#: src/settings_translation_file.cpp
msgid "Append item name"
-msgstr ""
+msgstr "Dodaj ime elementa"
#: src/settings_translation_file.cpp
msgid "Append item name to tooltip."
@@ -2205,13 +2321,15 @@ msgstr "Å um jablan"
#: src/settings_translation_file.cpp
msgid "Arm inertia"
-msgstr ""
+msgstr "Vztrajnost roke"
#: src/settings_translation_file.cpp
msgid ""
"Arm inertia, gives a more realistic movement of\n"
"the arm when the camera moves."
msgstr ""
+"Vztrajnost roke; daje bolj realistiÄno gibanje\n"
+"roke, ko se kamera premika."
#: src/settings_translation_file.cpp
msgid "Ask to reconnect after crash"
@@ -2231,6 +2349,15 @@ msgid ""
"optimization.\n"
"Stated in mapblocks (16 nodes)."
msgstr ""
+"Na tej razdalji bo strežnik agresivno optimiziral, kateri bloki bodo "
+"poslani\n"
+"igralcem.\n"
+"ManjÅ¡e vrednosti lahko moÄno pospeÅ¡ijo delovanje na raÄun napak\n"
+"pri izrisovanju (nekateri bloki se ne bodo izrisali pod vodo in v jamah,\n"
+"vÄasih pa tudi na kopnem).\n"
+"Nastavljanje na vrednost, veÄjo od max_block_send_distance, onemogoÄi to\n"
+"optimizacijo.\n"
+"Navedena vrednost ima enoto 'mapchunk' (16 blokov)."
#: src/settings_translation_file.cpp
msgid "Automatic forward key"
@@ -2264,11 +2391,11 @@ msgstr "Osnovna podlaga"
#: src/settings_translation_file.cpp
msgid "Base terrain height."
-msgstr ""
+msgstr "Višina osnovnega terena."
#: src/settings_translation_file.cpp
msgid "Basic"
-msgstr ""
+msgstr "Osnovno"
#: src/settings_translation_file.cpp
msgid "Basic privileges"
@@ -2284,7 +2411,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Bilinear filtering"
-msgstr ""
+msgstr "Bilinearno filtriranje"
#: src/settings_translation_file.cpp
msgid "Bind address"
@@ -2295,12 +2422,13 @@ msgid "Biome API temperature and humidity noise parameters"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Biome noise"
-msgstr ""
+msgstr "Å um bioma"
#: src/settings_translation_file.cpp
msgid "Bits per pixel (aka color depth) in fullscreen mode."
-msgstr ""
+msgstr "Biti na piksel (barvna globina) v celozaslonskem naÄinu."
#: src/settings_translation_file.cpp
msgid "Block send optimize distance"
@@ -2308,11 +2436,11 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Bold and italic font path"
-msgstr ""
+msgstr "Pot do krepke in poševne pisave"
#: src/settings_translation_file.cpp
msgid "Bold and italic monospace font path"
-msgstr ""
+msgstr "Pot do krepke in ležeÄe pisave konstantne Å¡irine"
#: src/settings_translation_file.cpp
#, fuzzy
@@ -2321,7 +2449,7 @@ msgstr "Pot pisave"
#: src/settings_translation_file.cpp
msgid "Bold monospace font path"
-msgstr ""
+msgstr "Pot do krepke pisave konstantne širine"
#: src/settings_translation_file.cpp
msgid "Build inside player"
@@ -2329,19 +2457,23 @@ msgstr "Postavljanje blokov znotraj igralca"
#: src/settings_translation_file.cpp
msgid "Builtin"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
+msgstr "Vgrajeno"
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
"Increasing can reduce artifacting on weaker GPUs.\n"
"0.1 = Default, 0.25 = Good value for weaker tablets."
msgstr ""
+"'Bližnja ravnina' kamere - najmanjša razdalja, na kateri kamera vidi objekte "
+"- v blokih, med 0 in 0,25.\n"
+"Deluje samo na platformah GLES. VeÄini uporabnikov te nastavitve ni treba "
+"spreminjati.\n"
+"PoveÄanje vrednosti lahko odpravi anomalije na Å¡ibkejÅ¡ih grafiÄnih "
+"procesorjih.\n"
+"0.1 = privzeto, 0.25 = dobra vrednost za šibkejše naprave"
#: src/settings_translation_file.cpp
msgid "Camera smoothing"
@@ -2376,11 +2508,11 @@ msgstr "Å irina jame"
#: src/settings_translation_file.cpp
msgid "Cave1 noise"
-msgstr ""
+msgstr "Å um Cave1"
#: src/settings_translation_file.cpp
msgid "Cave2 noise"
-msgstr ""
+msgstr "Å um Cave2"
#: src/settings_translation_file.cpp
msgid "Cavern limit"
@@ -2408,16 +2540,8 @@ msgid ""
"Center of light curve boost range.\n"
"Where 0.0 is minimum light level, 1.0 is maximum light level."
msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
+"SrediÅ¡Äe obmoÄja poveÄave svetlobne krivulje.\n"
+"0.0 je minimalna raven svetlobe, 1.0 maksimalna."
#: src/settings_translation_file.cpp
#, fuzzy
@@ -2459,8 +2583,9 @@ msgid "Chatcommands"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Chunk size"
-msgstr ""
+msgstr "Velikost 'chunka'"
#: src/settings_translation_file.cpp
msgid "Cinematic mode"
@@ -2471,8 +2596,9 @@ msgid "Cinematic mode key"
msgstr "Tipka za filmski naÄin"
#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Clean transparent textures"
-msgstr ""
+msgstr "ÄŒiste prosojne teksture"
#: src/settings_translation_file.cpp
msgid "Client"
@@ -2543,7 +2669,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Command key"
-msgstr ""
+msgstr "Tipka Command"
#: src/settings_translation_file.cpp
msgid "Connect glass"
@@ -2564,17 +2690,21 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Console color"
-msgstr ""
+msgstr "Barva konzole"
#: src/settings_translation_file.cpp
msgid "Console height"
-msgstr ""
+msgstr "Višina konzole"
#: src/settings_translation_file.cpp
msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "ContentDB URL"
@@ -2590,8 +2720,9 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Controls"
-msgstr ""
+msgstr "Kontrole"
#: src/settings_translation_file.cpp
msgid ""
@@ -2602,15 +2733,15 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Controls sinking speed in liquid."
-msgstr ""
+msgstr "Nadzira hitrost potapljanja v tekoÄinah."
#: src/settings_translation_file.cpp
msgid "Controls steepness/depth of lake depressions."
-msgstr ""
+msgstr "Nadzira strmost/globino jezerskih depresij."
#: src/settings_translation_file.cpp
msgid "Controls steepness/height of hills."
-msgstr ""
+msgstr "Nadzira strmost/višino hribov."
#: src/settings_translation_file.cpp
msgid ""
@@ -2632,7 +2763,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2640,7 +2773,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2744,14 +2879,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "DoloÄa lokacijo in teren neobveznih griÄev in jezer."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"DoloÄa korak vzorÄenja teksture.\n"
-"ViÅ¡ja vrednost povzroÄi bolj gladke normalne zemljevide."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "DoloÄa osnovno podlago."
@@ -2824,6 +2951,11 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Tipka za met predmeta"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Kopanje delcev"
@@ -2884,7 +3016,8 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "OmogoÄi ustvarjalni naÄin za novo ustvarjene svetove."
#: src/settings_translation_file.cpp
@@ -2972,14 +3105,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2989,18 +3114,6 @@ msgstr "OmogoÄi zemljevid (minimap)."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3017,12 +3130,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3032,7 +3139,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3345,10 +3452,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3402,8 +3505,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3889,6 +3992,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3969,6 +4076,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4068,6 +4182,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4624,10 +4745,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Slog glavnega menija"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4641,6 +4758,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4805,7 +4930,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4854,6 +4979,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5083,14 +5215,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5116,10 +5240,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5145,35 +5265,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "Lestvica okluzije paralakse"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5239,6 +5330,15 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Tipka za letenje"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5397,10 +5497,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5652,6 +5748,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5787,10 +5893,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5884,6 +5986,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5942,8 +6048,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5969,15 +6075,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6113,6 +6224,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6319,6 +6441,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6441,6 +6569,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6452,27 +6598,116 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Preklopi gladek pogled"
+#, fuzzy
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = \"parallax occlusion\" s podatki o nagibih (hitrejše)\n"
+#~ "1 = mapiranje reliefa (poÄasnejÅ¡e, a bolj natanÄno)"
-#~ msgid "Select Package File:"
-#~ msgstr "Izberi datoteko paketa:"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Ali res želiš ponastaviti samostojno igro?"
-#~ msgid "IPv6 support."
-#~ msgstr "IPv6 podpora."
+#~ msgid "Back"
+#~ msgstr "Nazaj"
-#, fuzzy
-#~ msgid "Enable VBO"
-#~ msgstr "OmogoÄi VBO"
+#~ msgid "Bump Mapping"
+#~ msgstr "Površinsko preslikavanje"
+
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "Spremeni uporabniški vmesnik glavnega menija:\n"
+#~ "- Polno: veÄ enoigralskih svetov, izbira igre, izbirnik paketov "
+#~ "tekstur, itd.\n"
+#~ "- Preprosto: en enoigralski svet, izbirnika iger in paketov tekstur se "
+#~ "ne prikažeta. Morda bo za manjše\n"
+#~ "ekrane potrebna ta nastavitev."
+
+#~ msgid "Config mods"
+#~ msgstr "Nastavitve prilagoditev"
+
+#~ msgid "Configure"
+#~ msgstr "Nastavi"
#~ msgid "Darkness sharpness"
#~ msgstr "Ostrina teme"
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "DoloÄa korak vzorÄenja teksture.\n"
+#~ "ViÅ¡ja vrednost povzroÄi bolj gladke normalne zemljevide."
+
#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr "PrenaÅ¡anje in nameÅ¡Äanje $1, prosimo poÄakajte..."
-#~ msgid "Back"
-#~ msgstr "Nazaj"
+#, fuzzy
+#~ msgid "Enable VBO"
+#~ msgstr "OmogoÄi VBO"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Generiranje normalnih svetov"
+
+#~ msgid "IPv6 support."
+#~ msgstr "IPv6 podpora."
+
+#~ msgid "Main"
+#~ msgstr "Glavni"
+
+#~ msgid "Main menu style"
+#~ msgstr "Slog glavnega menija"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Zemljevid (minimap) je v radar naÄinu, Zoom x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Zemljevid (minimap) je v radar naÄinu, Zoom x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Zemljevid (minimap) je v naÄinu prikazovanja povrÅ¡ja, Zoom x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Zemljevid (minimap) je v naÄinu prikazovanja povrÅ¡ja, Zoom x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Ime / Geslo"
+
+#~ msgid "No"
+#~ msgstr "Ne"
#~ msgid "Ok"
#~ msgstr "V redu"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Paralaksa"
+
+#, fuzzy
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Lestvica okluzije paralakse"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Ponastavi samostojno igro"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Izberi datoteko paketa:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Zaženi samostojno igro"
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Preklopi gladek pogled"
+
+#, fuzzy
+#~ msgid "View"
+#~ msgstr "Pogled"
+
+#~ msgid "Yes"
+#~ msgstr "Da"
diff --git a/po/sr_Cyrl/minetest.po b/po/sr_Cyrl/minetest.po
index 67ee37bd0..5223e55e2 100644
--- a/po/sr_Cyrl/minetest.po
+++ b/po/sr_Cyrl/minetest.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Serbian (cyrillic) (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: 2020-07-08 20:47+0000\n"
"Last-Translator: sfan5 <sfan5@live.de>\n"
"Language-Team: Serbian (cyrillic) <https://hosted.weblate.org/projects/"
@@ -50,10 +50,6 @@ msgstr "Поновно повезивање"
msgid "The server has requested a reconnect:"
msgstr "Сервер тражи поновно повезивање:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Учитавање..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "ÐеÑлагање верзија протокола. "
@@ -67,12 +63,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Сервер подржава верзије протокола између $1 и $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Покушајте да поновно укључите лиÑту Ñервера и проверите вашу интернет "
-"конекцију."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Ми подржавамо Ñамо $1 верзију протокола."
@@ -80,7 +70,8 @@ msgstr "Ми подржавамо Ñамо $1 верзију протокола.
msgid "We support protocol versions between version $1 and $2."
msgstr "Ми подржавамо верзије протокола између верзије $1 и $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -90,7 +81,8 @@ msgstr "Ми подржавамо верзије протокола између
msgid "Cancel"
msgstr "Прекини"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
#, fuzzy
msgid "Dependencies:"
msgstr "ЗавиÑи од:"
@@ -173,15 +165,56 @@ msgid "enabled"
msgstr "укључено"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Учитавање..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
+msgid "Already installed"
+msgstr "Дугме Ñе већ кориÑти"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
msgid "Back to Main Menu"
msgstr "Главни мени"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Ðаправи игру"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -205,6 +238,16 @@ msgid "Install"
msgstr "ИнÑталирај"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "ИнÑталирај"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Ðеобавезне завиÑноÑти:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Модови"
@@ -218,9 +261,24 @@ msgid "No results"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Тражи"
+msgid "No updates"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
@@ -237,7 +295,11 @@ msgid "Update"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -547,6 +609,10 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Тражи"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select directory"
msgstr "Изаберите фајл мода:"
@@ -681,6 +747,20 @@ msgstr "ÐеуÑпела инÑталација $1 у $2"
msgid "Unable to install a modpack as a $1"
msgstr "ÐеуÑпела инÑталација $1 у $2"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Учитавање..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Покушајте да поновно укључите лиÑту Ñервера и проверите вашу интернет "
+"конекцију."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -741,6 +821,17 @@ msgid "Credits"
msgstr "ЗаÑлуге"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Изаберите фајл мода:"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Предходни Ñарадници"
@@ -757,14 +848,10 @@ msgid "Bind Address"
msgstr "Вежи адреÑу"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "ПодеÑи"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Слободни мод"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Омогући оштећење"
@@ -781,8 +868,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Име/Шифра"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -794,6 +881,11 @@ msgstr "Ðиједан Ñвет није направљен или изабраÐ
#: builtin/mainmenu/tab_local.lua
#, fuzzy
+msgid "Password"
+msgstr "Ðова шифра"
+
+#: builtin/mainmenu/tab_local.lua
+#, fuzzy
msgid "Play Game"
msgstr "Почни игру"
@@ -802,6 +894,11 @@ msgid "Port"
msgstr "Порт"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Одабери Ñвет:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Одабери Ñвет:"
@@ -818,23 +915,23 @@ msgstr "Ðаправи игру"
msgid "Address / Port"
msgstr "ÐдреÑа / Порт"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Прикључи Ñе"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Слободни мод"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Оштећење омогућено"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Обриши Омиљени"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Омиљени"
@@ -843,16 +940,16 @@ msgstr "Омиљени"
msgid "Join Game"
msgstr "Ðаправи игру"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Име / Шифра"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Одзив"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "Туча омогућена"
@@ -882,10 +979,6 @@ msgid "Antialiasing:"
msgstr "Гланчање текÑтура:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Да ли Ñте Ñигурни да желите да реÑетујете ваш Ñвет?"
-
-#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "Autosave Screen Size"
msgstr "ÐутоматÑки Ñачувај величину екрана"
@@ -894,10 +987,6 @@ msgstr "ÐутоматÑки Ñачувај величину екрана"
msgid "Bilinear Filter"
msgstr "Билинеарни филтер"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Bump-Мапирање"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "ПодеÑи контроле"
@@ -911,10 +1000,6 @@ msgid "Fancy Leaves"
msgstr "Елегантно лишће"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Мипмап"
@@ -923,10 +1008,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap + Ðнизотропни филтер"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Ðе"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Без филтера"
@@ -954,19 +1035,11 @@ msgstr "Ðепровидно лишће"
msgid "Opaque Water"
msgstr "Ðепрозирна вода"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Parallax Occlusion Мапирање"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "ЧеÑтице"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "РеÑетуј Ñвет"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Екран:"
@@ -979,6 +1052,10 @@ msgid "Shaders"
msgstr "Шејдери"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr ""
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -1024,22 +1101,6 @@ msgstr "Лепршајуће лишће"
msgid "Waving Plants"
msgstr "Лепршајуће биљке"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Да"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "ПодеÑи модове"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Главно"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Започни игру за једног играча"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Конекцији је иÑтекло време."
@@ -1201,20 +1262,20 @@ msgid "Continue"
msgstr "ÐаÑтави"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1367,34 +1428,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1792,6 +1825,24 @@ msgstr "X Дугме 2"
msgid "Zoom"
msgstr "Зумирај"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Шифре Ñе не поклапају!"
@@ -2055,14 +2106,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = parallax occlusion Ñа информацијама о нагибима (брже)\n"
-"1 = мапирање рељефа (Ñпорије, прецизније)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2180,6 +2223,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "Absolute limit of queued blocks to emerge"
msgstr "ÐбÑолутни лимит emerge токова."
@@ -2434,10 +2481,6 @@ msgid "Builtin"
msgstr "Уграђено"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Рељефна тектура"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2509,16 +2552,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat font size"
msgstr "Величина комада"
@@ -2682,6 +2715,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "ÐаÑтави"
@@ -2743,7 +2780,10 @@ msgid "Crosshair alpha"
msgstr "ПровидноÑÑ‚ нишана"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "ПровидноÑÑ‚ нишана (видљивоÑÑ‚, између 0 и 255)."
#: src/settings_translation_file.cpp
@@ -2751,8 +2791,10 @@ msgid "Crosshair color"
msgstr "Боја нишана"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Боја нишана (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2855,12 +2897,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2931,6 +2967,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "Digging particles"
msgstr "ЧеÑтице"
@@ -2993,7 +3033,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3081,14 +3121,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -3098,18 +3130,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3126,12 +3146,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3141,7 +3155,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3447,10 +3461,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3505,8 +3515,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3976,6 +3986,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -4056,6 +4070,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4155,6 +4176,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4712,11 +4740,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Главни мени"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4730,6 +4753,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4899,7 +4930,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4948,6 +4979,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5177,14 +5215,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5210,10 +5240,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5239,35 +5265,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "Parallax Occlusion Мапирање"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5334,6 +5331,15 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Кључ за ÑинематÑки мод"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5492,10 +5498,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5769,6 +5771,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5900,10 +5912,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5997,6 +6005,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6055,8 +6067,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6082,15 +6094,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6228,6 +6245,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6434,6 +6462,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6558,6 +6592,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6569,15 +6621,38 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Укључи/ИÑкључи Cinematic мод"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = parallax occlusion Ñа информацијама о нагибима (брже)\n"
+#~ "1 = мапирање рељефа (Ñпорије, прецизније)."
-#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "Изаберите фајл мода:"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "ПодеÑи оÑветљење унутар игре. Веће вредноÑти Ñу Ñветлије.\n"
+#~ "Ово подешавање је Ñамо за клијента, Ñервер га игнорише."
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
-#~ msgstr "Контролише ширину тунела, мања вредноÑÑ‚ Ñтвара шире тунеле."
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Да ли Ñте Ñигурни да желите да реÑетујете ваш Ñвет?"
+
+#~ msgid "Back"
+#~ msgstr "Ðазад"
+
+#~ msgid "Bump Mapping"
+#~ msgstr "Bump-Мапирање"
+
+#~ msgid "Bumpmapping"
+#~ msgstr "Рељефна тектура"
+
+#~ msgid "Config mods"
+#~ msgstr "ПодеÑи модове"
+
+#~ msgid "Configure"
+#~ msgstr "ПодеÑи"
#, fuzzy
#~ msgid ""
@@ -6587,20 +6662,51 @@ msgstr ""
#~ "Контролише гуÑтину планинÑког терена на лебдећим оÑтрвима.\n"
#~ "Као одÑтупање Ñе додаје на вредноÑÑ‚ 'np_mountain' Ñемена."
-#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
-#~ msgstr ""
-#~ "ПодеÑи оÑветљење унутар игре. Веће вредноÑти Ñу Ñветлије.\n"
-#~ "Ово подешавање је Ñамо за клијента, Ñервер га игнорише."
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr "Контролише ширину тунела, мања вредноÑÑ‚ Ñтвара шире тунеле."
+
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Боја нишана (R,G,B)."
#, fuzzy
#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr "Преузима Ñе $1, молим Ð²Ð°Ñ Ñачекајте..."
-#~ msgid "Back"
-#~ msgstr "Ðазад"
+#~ msgid "Main"
+#~ msgstr "Главно"
+
+#, fuzzy
+#~ msgid "Main menu style"
+#~ msgstr "Главни мени"
+
+#~ msgid "Name/Password"
+#~ msgstr "Име/Шифра"
+
+#~ msgid "No"
+#~ msgstr "Ðе"
#~ msgid "Ok"
#~ msgstr "Уреду"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parallax Occlusion Мапирање"
+
+#, fuzzy
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Parallax Occlusion Мапирање"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "РеÑетуј Ñвет"
+
+#, fuzzy
+#~ msgid "Select Package File:"
+#~ msgstr "Изаберите фајл мода:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Започни игру за једног играча"
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Укључи/ИÑкључи Cinematic мод"
+
+#~ msgid "Yes"
+#~ msgstr "Да"
diff --git a/po/lo/minetest.po b/po/sr_Latn/minetest.po
index 731a7957d..7c5ad11fc 100644
--- a/po/lo/minetest.po
+++ b/po/sr_Latn/minetest.po
@@ -1,80 +1,79 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the minetest package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
msgid ""
msgstr ""
-"Project-Id-Version: Lao (Minetest)\n"
+"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-01-11 18:26+0000\n"
-"Last-Translator: rubenwardy <rubenwardy@gmail.com>\n"
-"Language-Team: Lao <https://hosted.weblate.org/projects/minetest/minetest/lo/"
-">\n"
-"Language: lo\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-08-15 23:32+0000\n"
+"Last-Translator: Milos <milosfilic97@gmail.com>\n"
+"Language-Team: Serbian (latin) <https://hosted.weblate.org/projects/minetest/"
+"minetest/sr_Latn/>\n"
+"Language: sr_Latn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.10.1\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.2-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
-msgstr ""
+msgstr "Vrati se u zivot"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "You died"
-msgstr ""
+msgstr "Umro/la si."
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
-msgstr ""
+msgstr "Doslo je do greske u Lua skripti:"
#: builtin/fstk/ui.lua
msgid "An error occurred:"
-msgstr ""
+msgstr "Doslo je do greske:"
#: builtin/fstk/ui.lua
msgid "Main menu"
-msgstr ""
+msgstr "Glavni meni"
#: builtin/fstk/ui.lua
msgid "Reconnect"
-msgstr ""
+msgstr "Ponovno povezivanje"
#: builtin/fstk/ui.lua
msgid "The server has requested a reconnect:"
-msgstr ""
-
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr ""
+msgstr "Server je zahtevao ponovno povezivanje:"
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
-msgstr ""
+msgstr "Protokol verzija neuskladjena. "
#: builtin/mainmenu/common.lua
msgid "Server enforces protocol version $1. "
-msgstr ""
+msgstr "Server primenjuje protokol verzije $1. "
#: builtin/mainmenu/common.lua
msgid "Server supports protocol versions between $1 and $2. "
-msgstr ""
-
-#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
+msgstr "Server podrzava protokol verzije izmedju $1 ili $2. "
#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
-msgstr ""
+msgstr "Mi samo podrzavamo protokol verzije $1."
#: builtin/mainmenu/common.lua
msgid "We support protocol versions between version $1 and $2."
-msgstr ""
+msgstr "Mi podrzavamo protokol verzija izmedju verzije $1 i $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -82,140 +81,212 @@ msgstr ""
#: src/gui/guiConfirmRegistration.cpp src/gui/guiKeyChangeMenu.cpp
#: src/gui/guiPasswordChange.cpp
msgid "Cancel"
-msgstr ""
+msgstr "Ponisti"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
-msgstr ""
+msgstr "Zavisnosti:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Disable all"
-msgstr ""
+msgstr "Onemoguci sve"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Disable modpack"
-msgstr ""
+msgstr "Onemoguci modpack"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable all"
-msgstr ""
+msgstr "Omoguci sve"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Enable modpack"
-msgstr ""
+msgstr "Omoguci modpack"
#: builtin/mainmenu/dlg_config_world.lua
msgid ""
"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
"characters [a-z0-9_] are allowed."
msgstr ""
+"Nije omogucen mod \"$1\" jer sadrzi nedozvoljene simbole. Samo simboli [a-z, "
+"0-9_] su dozvoljeni."
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "Nadji jos modova"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
-msgstr ""
+msgstr "Mod:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No (optional) dependencies"
-msgstr ""
+msgstr "Nema (opcionih) zavisnosti"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No game description provided."
-msgstr ""
+msgstr "Opis igre nije prilozen."
#: builtin/mainmenu/dlg_config_world.lua
msgid "No hard dependencies"
-msgstr ""
+msgstr "Bez teskih zavisnosti"
#: builtin/mainmenu/dlg_config_world.lua
msgid "No modpack description provided."
-msgstr ""
+msgstr "Opis modpack-a nije prilozen."
#: builtin/mainmenu/dlg_config_world.lua
msgid "No optional dependencies"
-msgstr ""
+msgstr "Bez neobaveznih zavisnosti"
#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
msgid "Optional dependencies:"
-msgstr ""
+msgstr "Neobavezne zavisnosti:"
#: builtin/mainmenu/dlg_config_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua src/gui/guiKeyChangeMenu.cpp
msgid "Save"
-msgstr ""
+msgstr "Sacuvaj"
#: builtin/mainmenu/dlg_config_world.lua
msgid "World:"
-msgstr ""
+msgstr "Svet:"
#: builtin/mainmenu/dlg_config_world.lua
msgid "enabled"
+msgstr "Omoguceno"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Preuzimanje..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
+msgstr "Svi paketi"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
+msgstr "Nazad na Glavni meni"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "ContentDB je nedostupan kada je Minetest sastavljen bez cURL"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Downloading..."
-msgstr ""
+msgstr "Preuzimanje..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
-msgstr ""
+msgstr "Neuspelo preuzimanje $1"
#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Games"
-msgstr ""
+msgstr "Igre"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Install"
-msgstr ""
+msgstr "Instalirati"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Instalirati"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Neobavezne zavisnosti:"
#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
-msgstr ""
+msgstr "Modovi"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No packages could be retrieved"
-msgstr ""
+msgstr "Nema paketa za preuzeti"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "No results"
+msgstr "Bez rezultata"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "No updates"
+msgstr "Azuriranje"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
+msgid "Overwrite"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Texture packs"
+msgid "Please check that the base game is correct."
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "Uninstall"
+msgid "Queued"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Texture packs"
+msgstr "Pakovanja tekstura"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Uninstall"
+msgstr "Deinstaliraj"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Update"
+msgstr "Azuriranje"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Update All [$1]"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -224,31 +295,31 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "Dodatni teren"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
-msgstr ""
+msgstr "Nadmorska visina"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Altitude dry"
-msgstr ""
+msgstr "Visina suva"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biome blending"
-msgstr ""
+msgstr "Mesanje bioma"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Biomes"
-msgstr ""
+msgstr "Biomi"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caverns"
-msgstr ""
+msgstr "Pecine"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Caves"
-msgstr ""
+msgstr "Pecine"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
@@ -256,7 +327,7 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Decorations"
-msgstr ""
+msgstr "Dekoracije"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -264,23 +335,23 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download one from minetest.net"
-msgstr ""
+msgstr "Preuzmi jednu sa minetest.net"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Dungeons"
-msgstr ""
+msgstr "Tamnice"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "Ravan teren"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
-msgstr ""
+msgstr "Lebdece zemaljske mase na nebu"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floatlands (experimental)"
-msgstr ""
+msgstr "Lebdece zemlje (eksperimentalno)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
@@ -288,27 +359,27 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "Stvaranje ne-fraktalnog terena: Okeani i podzemlje"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "Brda"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Humid rivers"
-msgstr ""
+msgstr "Vlazne reke"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "Povecana vlaznost oko reka"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "Jezera"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "Niska vlaga i visoka toplota uzrokuju plitke ili suve reke"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -316,7 +387,7 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen flags"
-msgstr ""
+msgstr "Mapgen zastave"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mapgen-specific flags"
@@ -324,15 +395,15 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mountains"
-msgstr ""
+msgstr "Planine"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "Protok blata"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "Mreza tunela i pecina"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
@@ -340,19 +411,19 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "Smanjuje toplotu sa visinom"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "Smanjuje vlaznost sa visinom"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Rivers"
-msgstr ""
+msgstr "Reke"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "Reke na nivou mora"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -361,45 +432,47 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "Glatki prelaz izmedju bioma"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
+"Konstrukcije koje se pojavljuju na terenu (nema efekta na drveca i travu "
+"dzungle koje je stvorio v6)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "Konstrukcije koje se pojavljuju na terenu , obicno drvece i biljke"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
-msgstr ""
+msgstr "Umereno,Pustinja"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgstr "Umereno,Pustinja,Dzungla"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "Umereno,Pustinja,Dzungla,Tundra,Tajga"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Terrain surface erosion"
-msgstr ""
+msgstr "Povrsinska erozija terena"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "Drveca i trava dzungle"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Vary river depth"
-msgstr ""
+msgstr "Razlicita dubina reke"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "Veoma velike pecine duboko ispod zemlje"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Warning: The Development Test is meant for developers."
@@ -411,7 +484,7 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "You have no games installed."
-msgstr ""
+msgstr "Nema instaliranih igara."
#: builtin/mainmenu/dlg_delete_content.lua
msgid "Are you sure you want to delete \"$1\"?"
@@ -510,6 +583,10 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Trazi"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr ""
@@ -624,6 +701,20 @@ msgstr ""
msgid "Unable to install a modpack as a $1"
msgstr ""
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Ucitavanje..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Pokusajte ponovo omoguciti javnu listu servera i proverite vasu internet "
+"vezu."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -677,6 +768,16 @@ msgid "Credits"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr ""
@@ -693,14 +794,10 @@ msgid "Bind Address"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr ""
@@ -717,7 +814,7 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
+msgid "Name"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -729,6 +826,10 @@ msgid "No world created or selected!"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr ""
@@ -737,6 +838,10 @@ msgid "Port"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr ""
@@ -752,23 +857,23 @@ msgstr ""
msgid "Address / Port"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr ""
@@ -776,16 +881,16 @@ msgstr ""
msgid "Join Game"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr ""
@@ -814,10 +919,6 @@ msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
@@ -825,10 +926,6 @@ msgstr ""
msgid "Bilinear Filter"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr ""
@@ -842,10 +939,6 @@ msgid "Fancy Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr ""
@@ -854,10 +947,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr ""
@@ -885,19 +974,11 @@ msgstr ""
msgid "Opaque Water"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr ""
@@ -910,6 +991,11 @@ msgid "Shaders"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Lebdece zemlje (eksperimentalno)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -953,22 +1039,6 @@ msgstr ""
msgid "Waving Plants"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr ""
@@ -1039,7 +1109,7 @@ msgstr ""
#. When in doubt, test your translation.
#: src/client/fontengine.cpp
msgid "needs_fallback_font"
-msgstr "yes"
+msgstr "no"
#: src/client/game.cpp
msgid ""
@@ -1128,13 +1198,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1256,34 +1326,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1675,6 +1717,24 @@ msgstr ""
msgid "Zoom"
msgstr ""
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr ""
@@ -1880,7 +1940,7 @@ msgstr ""
#. language code (e.g. "de" for German).
#: src/network/clientpackethandler.cpp src/script/lua_api/l_client.cpp
msgid "LANG_CODE"
-msgstr "lo"
+msgstr "sr_Latn"
#: src/settings_translation_file.cpp
msgid ""
@@ -1919,12 +1979,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2031,6 +2085,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2264,10 +2322,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2338,16 +2392,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2499,6 +2543,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2555,7 +2603,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2563,7 +2613,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2663,12 +2715,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2739,6 +2785,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2799,7 +2849,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2887,14 +2937,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2904,18 +2946,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2932,12 +2962,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -2947,7 +2971,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3249,10 +3273,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3306,8 +3326,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3774,6 +3794,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3854,6 +3878,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -3953,6 +3984,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4509,10 +4547,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4526,6 +4560,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4689,7 +4731,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4738,6 +4780,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -4967,14 +5016,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5000,10 +5041,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5029,34 +5066,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5122,6 +5131,14 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5277,10 +5294,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5532,6 +5545,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5661,10 +5684,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5758,6 +5777,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5816,8 +5839,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5843,15 +5866,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -5987,6 +6015,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6189,6 +6228,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6311,6 +6356,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6321,3 +6384,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "cURL timeout"
msgstr ""
+
+#~ msgid "View"
+#~ msgstr "Pogled"
diff --git a/po/sv/minetest.po b/po/sv/minetest.po
index 296e0b5bb..e608d85e2 100644
--- a/po/sv/minetest.po
+++ b/po/sv/minetest.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Swedish (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: 2020-03-31 10:14+0000\n"
"Last-Translator: sfan5 <sfan5@live.de>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/minetest/"
@@ -47,10 +47,6 @@ msgstr "Ã…teranslut"
msgid "The server has requested a reconnect:"
msgstr "Servern har begärt en återanslutning:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Laddar..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Protokollversionen matchar ej. "
@@ -64,11 +60,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Servern stöder protokollversioner mellan $1 och $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Försök återaktivera allmän serverlista och kolla din internetanslutning."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Vi stöder endast protokollversion $1."
@@ -76,7 +67,8 @@ msgstr "Vi stöder endast protokollversion $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Vi stöder protokollversioner mellan version $1 och $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +78,8 @@ msgstr "Vi stöder protokollversioner mellan version $1 och $2."
msgid "Cancel"
msgstr "Avbryt"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Beroenden:"
@@ -163,14 +156,55 @@ msgid "enabled"
msgstr "aktiverad"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Laddar..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Alla paket"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Tangent används redan"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Tillbaka till huvudmeny"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Bilda Spel"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -193,6 +227,16 @@ msgid "Install"
msgstr "Installera"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Installera"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Valfria beroenden:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Moddar"
@@ -206,9 +250,25 @@ msgid "No results"
msgstr "Inga resultat"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Sök"
+#, fuzzy
+msgid "No updates"
+msgstr "Uppdatera"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -223,7 +283,11 @@ msgid "Update"
msgstr "Uppdatera"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -532,6 +596,10 @@ msgid "Scale"
msgstr "Skala"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Sök"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Välj katalog"
@@ -661,6 +729,19 @@ msgstr "Misslyckades installera $1 till $2"
msgid "Unable to install a modpack as a $1"
msgstr "Misslyckades installera $1 till $2"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Laddar..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Försök återaktivera allmän serverlista och kolla din internetanslutning."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -721,6 +802,17 @@ msgid "Credits"
msgstr "Medverkande"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Välj katalog"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Före detta bidragande"
@@ -737,14 +829,10 @@ msgid "Bind Address"
msgstr "Bindningsadress"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Konfigurera"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Kreativt läge"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Aktivera Skada"
@@ -761,8 +849,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Namn/Lösenord"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -774,6 +862,11 @@ msgstr "Ingen värld skapad eller vald!"
#: builtin/mainmenu/tab_local.lua
#, fuzzy
+msgid "Password"
+msgstr "Nytt Lösenord"
+
+#: builtin/mainmenu/tab_local.lua
+#, fuzzy
msgid "Play Game"
msgstr "Starta spel"
@@ -782,6 +875,11 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Välj värld:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Välj värld:"
@@ -798,23 +896,23 @@ msgstr "Bilda Spel"
msgid "Address / Port"
msgstr "Adress / Port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Anslut"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Kreativt läge"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Skada aktiverat"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Radera Favorit"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Favoritmarkera"
@@ -823,16 +921,16 @@ msgstr "Favoritmarkera"
msgid "Join Game"
msgstr "Bilda Spel"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Namn / Lösenord"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP aktiverat"
@@ -862,10 +960,6 @@ msgid "Antialiasing:"
msgstr "Kantutjämning:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Är du säker på att du vill starta om din enspelarvärld?"
-
-#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "Autosave Screen Size"
msgstr "Spara fönsterstorlek automatiskt"
@@ -874,10 +968,6 @@ msgstr "Spara fönsterstorlek automatiskt"
msgid "Bilinear Filter"
msgstr "Bilinjärt filter"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Stötkartläggning"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Ändra Tangenter"
@@ -891,10 +981,6 @@ msgid "Fancy Leaves"
msgstr "Fina Löv"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmap"
@@ -903,10 +989,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap + Aniso-filter"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Nej"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Inget filter"
@@ -934,19 +1016,11 @@ msgstr "Ogenomskinliga löv"
msgid "Opaque Water"
msgstr "Ogenomskinligt vatten"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Parrallax Ocklusion"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Partiklar"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Starta om enspelarvärld"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Skärm:"
@@ -959,6 +1033,10 @@ msgid "Shaders"
msgstr "Shaders"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr ""
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -1004,22 +1082,6 @@ msgstr "Vajande Löv"
msgid "Waving Plants"
msgstr "Vajande Växter"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Ja"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Konfigurera moddar"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Huvudsaklig"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Starta Enspelarläge"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Anslutningens tidsgräns nådd."
@@ -1184,20 +1246,20 @@ msgid "Continue"
msgstr "Fortsätt"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1350,34 +1412,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1774,6 +1808,24 @@ msgstr "X Knapp 2"
msgid "Zoom"
msgstr "Zoom"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Lösenorden matchar inte!"
@@ -2035,14 +2087,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = parallax ocklusion med sluttningsinformation (snabbare).\n"
-"1 = reliefmappning (långsammare, noggrannare)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2163,6 +2207,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "Absolute limit of queued blocks to emerge"
msgstr "Absolut gräns av emerge kö"
@@ -2420,10 +2468,6 @@ msgid "Builtin"
msgstr "Inbyggd"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Bumpmappning"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2495,16 +2539,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat font size"
msgstr "Chunkstorlek"
@@ -2667,6 +2701,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "Fortsätt"
@@ -2728,7 +2766,10 @@ msgid "Crosshair alpha"
msgstr "HÃ¥rkorsalpha"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "HÃ¥rkorsalpha (ogenomskinlighet, mellan 0 och 255)."
#: src/settings_translation_file.cpp
@@ -2736,8 +2777,10 @@ msgid "Crosshair color"
msgstr "Hårkorsfärg"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Hårkorsförg (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2847,14 +2890,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "Definierar plats och terräng för valfria kullar och sjöar."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Definierar samplingssteg av textur.\n"
-"Högre värden resulterar i jämnare normalmappning."
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Defines the base ground level."
msgstr "Definierar trädområden och trädtäthet."
@@ -2939,6 +2974,10 @@ msgid "Desynchronize block animation"
msgstr "Desynkronisera blockanimation"
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Grävpartiklar"
@@ -3000,7 +3039,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3088,14 +3127,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -3105,18 +3136,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3133,12 +3152,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3148,7 +3161,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3451,10 +3464,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3509,8 +3518,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3977,6 +3986,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -4057,6 +4070,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4156,6 +4176,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4714,11 +4741,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Huvudmeny"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4732,6 +4754,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4901,7 +4931,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4950,6 +4980,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5179,14 +5216,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5212,10 +5241,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5241,35 +5266,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "Parrallax Ocklusion"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5336,6 +5332,15 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Tangent för filmiskt länge"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5491,10 +5496,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5768,6 +5769,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5899,10 +5910,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5997,6 +6004,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6055,8 +6066,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6082,15 +6093,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6228,6 +6244,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6434,6 +6461,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6560,6 +6593,24 @@ msgid "Y-level of seabed."
msgstr "Y-nivå av sjöbotten."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "cURL filhemladdning tidsgräns"
@@ -6571,26 +6622,38 @@ msgstr "cURL parallellgräns"
msgid "cURL timeout"
msgstr "cURL-timeout"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Slå av/på Filmisk Kamera"
-
-#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "Välj modfil:"
-
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Y-nivå till vilket luftöars skuggor når."
-
#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
#~ msgstr ""
-#~ "Definierar områden för luftöars jämna terräng.\n"
-#~ "Jämna luftöar förekommer när oljud > 0."
+#~ "0 = parallax ocklusion med sluttningsinformation (snabbare).\n"
+#~ "1 = reliefmappning (långsammare, noggrannare)."
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
#~ msgstr ""
-#~ "Kontrollerar bredd av tunnlar, mindre värden skapar bredare tunnlar."
+#~ "Justera gammakodningen för ljustabeller. Högre tal är ljusare.\n"
+#~ "Denna inställning påverkar endast klienten och ignoreras av servern."
+
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Är du säker på att du vill starta om din enspelarvärld?"
+
+#~ msgid "Back"
+#~ msgstr "Tillbaka"
+
+#~ msgid "Bump Mapping"
+#~ msgstr "Stötkartläggning"
+
+#~ msgid "Bumpmapping"
+#~ msgstr "Bumpmappning"
+
+#~ msgid "Config mods"
+#~ msgstr "Konfigurera moddar"
+
+#~ msgid "Configure"
+#~ msgstr "Konfigurera"
#, fuzzy
#~ msgid ""
@@ -6600,19 +6663,68 @@ msgstr "cURL-timeout"
#~ "Kontrollerar densiteten av luftöars bergsterräng.\n"
#~ "Är en förskjutning adderad till oljudsvärdet för 'np_mountain'."
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Kontrollerar bredd av tunnlar, mindre värden skapar bredare tunnlar."
+
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Hårkorsförg (R,G,B)."
+
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
#~ msgstr ""
-#~ "Justera gammakodningen för ljustabeller. Högre tal är ljusare.\n"
-#~ "Denna inställning påverkar endast klienten och ignoreras av servern."
+#~ "Definierar områden för luftöars jämna terräng.\n"
+#~ "Jämna luftöar förekommer när oljud > 0."
+
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Definierar samplingssteg av textur.\n"
+#~ "Högre värden resulterar i jämnare normalmappning."
#~ msgid "Downloading and installing $1, please wait..."
#~ msgstr "Laddar ner och installerar $1, vänligen vänta..."
-#~ msgid "Back"
-#~ msgstr "Tillbaka"
+#~ msgid "Main"
+#~ msgstr "Huvudsaklig"
+
+#, fuzzy
+#~ msgid "Main menu style"
+#~ msgstr "Huvudmeny"
+
+#~ msgid "Name/Password"
+#~ msgstr "Namn/Lösenord"
+
+#~ msgid "No"
+#~ msgstr "Nej"
#~ msgid "Ok"
#~ msgstr "Ok"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parrallax Ocklusion"
+
+#, fuzzy
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Parrallax Ocklusion"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Starta om enspelarvärld"
+
+#, fuzzy
+#~ msgid "Select Package File:"
+#~ msgstr "Välj modfil:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Starta Enspelarläge"
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Slå av/på Filmisk Kamera"
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Y-nivå till vilket luftöars skuggor når."
+
+#~ msgid "Yes"
+#~ msgstr "Ja"
diff --git a/po/sw/minetest.po b/po/sw/minetest.po
index a34b6c98b..d0fffcb91 100644
--- a/po/sw/minetest.po
+++ b/po/sw/minetest.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Swahili (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Swahili <https://hosted.weblate.org/projects/minetest/"
@@ -48,10 +48,6 @@ msgstr "Unganisha upya"
msgid "The server has requested a reconnect:"
msgstr "Seva imeomba na Unganisha upya:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Inapakia..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Itifaki ya toleo haifanani."
@@ -65,10 +61,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Seva inasaidia matoleo ya itifaki kati ya $1 na $2."
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr "Jaribu reenabling serverlist umma na Kagua muunganisho wako wa tovuti."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Sisi tu mkono itifaki toleo la $1."
@@ -76,7 +68,8 @@ msgstr "Sisi tu mkono itifaki toleo la $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Tunaunga mkono matoleo ya itifaki kati ya toleo la $1 na $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +79,8 @@ msgstr "Tunaunga mkono matoleo ya itifaki kati ya toleo la $1 na $2."
msgid "Cancel"
msgstr "Katisha"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Mategemezi:"
@@ -165,15 +159,56 @@ msgid "enabled"
msgstr "kuwezeshwa"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Inapakia..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
+msgid "Already installed"
+msgstr "Muhimu tayari katika matumizi"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
msgid "Back to Main Menu"
msgstr "Menyu kuu"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Ficha mchezo"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -197,6 +232,16 @@ msgid "Install"
msgstr "Sakinisha"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Sakinisha"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Inaanzilisha fundo"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mods"
@@ -210,9 +255,24 @@ msgid "No results"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Utafutaji"
+msgid "No updates"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
@@ -229,7 +289,11 @@ msgid "Update"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -548,6 +612,10 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Utafutaji"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
#, fuzzy
msgid "Select directory"
msgstr "Orodha ya ramani"
@@ -682,6 +750,18 @@ msgstr "Imeshindwa kusakinisha $1 hadi $2"
msgid "Unable to install a modpack as a $1"
msgstr "Imeshindwa kusakinisha $1 hadi $2"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Inapakia..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr "Jaribu reenabling serverlist umma na Kagua muunganisho wako wa tovuti."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -742,6 +822,17 @@ msgid "Credits"
msgstr "Mikopo"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Orodha ya ramani"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Wachangiaji wa awali"
@@ -759,14 +850,10 @@ msgid "Bind Address"
msgstr "Kumfunga anwani"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Sanidi"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Hali ya ubunifu"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Wezesha uharibifu"
@@ -785,8 +872,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Jina/nenosiri"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -798,6 +885,11 @@ msgstr "Duniani hakuna kuundwa au kuteuliwa!"
#: builtin/mainmenu/tab_local.lua
#, fuzzy
+msgid "Password"
+msgstr "Nywila mpya"
+
+#: builtin/mainmenu/tab_local.lua
+#, fuzzy
msgid "Play Game"
msgstr "Jina la mchezaji"
@@ -806,6 +898,11 @@ msgid "Port"
msgstr "Bandari"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Teua ulimwengu:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Teua ulimwengu:"
@@ -822,23 +919,23 @@ msgstr "Ficha mchezo"
msgid "Address / Port"
msgstr "Kushughulikia / bandari"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Kuunganisha"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Hali ya ubunifu"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Uharibifu kuwezeshwa"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Del. kipendwa"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Kipendwa"
@@ -847,16 +944,16 @@ msgstr "Kipendwa"
msgid "Join Game"
msgstr "Ficha mchezo"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Jina / nenosiri"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP kuwezeshwa"
@@ -886,10 +983,6 @@ msgid "Antialiasing:"
msgstr "Antialiasing:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Je, una hakika upya ulimwengu wako singleplayer?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
@@ -897,10 +990,6 @@ msgstr ""
msgid "Bilinear Filter"
msgstr "Kichujio bilinear"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Mapema ramani"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Badilisha funguo"
@@ -914,11 +1003,6 @@ msgid "Fancy Leaves"
msgstr "Majani ya dhana"
#: builtin/mainmenu/tab_settings.lua
-#, fuzzy
-msgid "Generate Normal Maps"
-msgstr "Kuzalisha normalmaps"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mipmap"
@@ -927,10 +1011,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mipmap + Aniso. Kichujio"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "La"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Kichujio hakuna"
@@ -958,19 +1038,11 @@ msgstr "Majani opaque"
msgid "Opaque Water"
msgstr "Maji opaque"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Parallax Occlusion"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Chembe"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Weka upya singleplayer ulimwengu"
-
-#: builtin/mainmenu/tab_settings.lua
#, fuzzy
msgid "Screen:"
msgstr "Screenshot"
@@ -984,6 +1056,11 @@ msgid "Shaders"
msgstr "Shaders"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Kiwango cha maji"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -1029,22 +1106,6 @@ msgstr "Waving fundo"
msgid "Waving Plants"
msgstr "Waving mimea"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Ndio"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Mods Now"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Kuu"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Kuanza Singleplayer"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Muunganisho limekatika."
@@ -1219,13 +1280,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1377,35 +1438,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-#, fuzzy
-msgid "Minimap hidden"
-msgstr "Ufunguo wa minimap"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1811,6 +1843,26 @@ msgstr "X kitufe 2"
msgid "Zoom"
msgstr "Kuza"
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap hidden"
+msgstr "Ufunguo wa minimap"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Unamu wa kima cha chini cha ukubwa wa Vichujio"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "MaNenotambulishi hayaoani!"
@@ -2077,14 +2129,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = parallax occlusion na taarifa ya mteremko (haraka).\n"
-"1 = ramani ya misaada (polepole, sahihi zaidi)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2204,6 +2248,10 @@ msgid "ABM interval"
msgstr "Ramani hifadhi muda"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "Absolute limit of queued blocks to emerge"
msgstr "Kikomo halisi ya foleni ya emerge"
@@ -2459,10 +2507,6 @@ msgid "Builtin"
msgstr "Pamoja"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Bumpmapping"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2540,16 +2584,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat font size"
msgstr "Ukubwa wa fonti"
@@ -2713,6 +2747,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "Kuendelea"
@@ -2775,7 +2813,10 @@ msgid "Crosshair alpha"
msgstr "Crosshair Alfa"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "Crosshair Alfa (opaqueness kati ya 0 na 255)."
#: src/settings_translation_file.cpp
@@ -2783,8 +2824,10 @@ msgid "Crosshair color"
msgstr "Rangi ya crosshair"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Rangi ya crosshair (R, G, B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2891,14 +2934,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Inafasili hatua ya sampuli ya unamu.\n"
-"Thamani ya juu zaidi matokeo katika ramani ya laini ya kawaida."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2974,6 +3009,11 @@ msgstr "Desynchronize umbo la uhuishaji"
#: src/settings_translation_file.cpp
#, fuzzy
+msgid "Dig key"
+msgstr "Ufunguo sahihi"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Digging particles"
msgstr "Chembe"
@@ -3036,7 +3076,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3142,17 +3182,6 @@ msgid "Enables animation of inventory items."
msgstr "Huwezesha uhuishaji wa vitu inventering."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Inawezesha bumpmapping kwa ajili ya unamu. Normalmaps haja iwekwe kwa pakiti "
-"ya unamu au haja ya kuwa yaliyozalishwa na otomatiki.\n"
-"Inahitaji shaders kwa kuwezeshwa."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Huwezesha uwekaji kache kwa facedir Iliyozungushwa meshes."
@@ -3162,22 +3191,6 @@ msgstr "Inawezesha minimap."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Huwezesha kwenye kizazi cha normalmap kuruka (Emboss athari).\n"
-"Inahitaji bumpmapping kwa kuwezeshwa."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Huwezesha parallax occlusion uramanishi.\n"
-"Inahitaji shaders kwa kuwezeshwa."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3194,14 +3207,6 @@ msgstr "Mbinu ya chombo"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Chaguo majaribio, inaweza kusababisha nafasi inayoonekana kati ya vitalu "
-"wakati kuweka namba ya juu zaidi kuliko 0."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3211,8 +3216,9 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "Ramprogrammen katika Menyu ya mapumziko"
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "Ramprogrammen juu wakati mchezo umesitishwa."
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3546,10 +3552,6 @@ msgid "GUI scaling filter txr2img"
msgstr "GUI kipimo Kichujio txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Kuzalisha normalmaps"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Callbacks ya kimataifa"
@@ -3615,8 +3617,8 @@ msgstr "HUD kibonye"
#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"Utunzaji kwa deprecated lua ya API: - Rithi: (jaribu kwa) mimic zamani tabia "
@@ -4139,6 +4141,10 @@ msgid "Joystick button repetition interval"
msgstr "Kifimbocheza kitufe marudio nafasi"
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Kifimbocheza frustum unyeti"
@@ -4238,6 +4244,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Muhimu kwa ajili ya kuruka.\n"
+"Ona http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4385,6 +4402,17 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Muhimu kwa ajili ya kuruka.\n"
+"Ona http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -5168,11 +5196,6 @@ msgid "Main menu script"
msgstr "Hati ya Menyu kuu"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "Hati ya Menyu kuu"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5188,6 +5211,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Orodha ya ramani"
@@ -5391,7 +5422,8 @@ msgid "Maximum FPS"
msgstr "Ramprogrammen juu"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "Ramprogrammen juu wakati mchezo umesitishwa."
#: src/settings_translation_file.cpp
@@ -5448,6 +5480,13 @@ msgstr ""
"Seti kwa wazi kwa kiasi sahihi ili uweze kuchaguliwa moja kwa moja."
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr "Namba ya juu ya forceloaded mapblocks."
@@ -5702,14 +5741,6 @@ msgid "Noises"
msgstr "Kila"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Sampuli ya Normalmaps"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Nguvu ya Normalmaps"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "Idadi ya nyuzi emerge"
@@ -5738,10 +5769,6 @@ msgstr ""
"(4096 = 100 MB, kama kanuni ya thumb)."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "Idadi ya parallax occlusion Marudiorudio."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5767,35 +5794,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "Upendeleo wa jumla wa parallax occlusion athari, kawaida kipimo/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Kipimo cha jumla ya parallax occlusion athari."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Parallax occlusion"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Parallax occlusion upendeleo"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Parallax occlusion Marudiorudio"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Parallax occlusion hali"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "Parallax occlusion wadogo"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5863,6 +5861,16 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Kuruka ufunguo"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "Bofya kulia marudio nafasi"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -6034,10 +6042,6 @@ msgid "Right key"
msgstr "Ufunguo sahihi"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Bofya kulia marudio nafasi"
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "River channel depth"
msgstr "Kina wa mto"
@@ -6344,6 +6348,19 @@ msgid "Show entity selection boxes"
msgstr "Onyesha chombo masanduku ya uteuzi"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Seti lugha. Acha tupu kwa kutumia lugha ya mfumo.\n"
+"Kuanza upya inahitajika baada ya kubadilisha hii."
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Uzimaji ujumbe"
@@ -6488,10 +6505,6 @@ msgid "Strength of 3D mode parallax."
msgstr "Nguvu ya parallax."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Nguvu ya normalmaps inayozalishwa."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6596,6 +6609,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6662,8 +6679,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6696,6 +6713,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6705,9 +6728,8 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
"Wakati katika sekunde inachukua kati ya vibonyezo mara kwa mara sahihi "
"wakati wa kufanya kitufe cha kulia."
@@ -6858,6 +6880,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "Tumia uchujaji trilinear wakati upimaji unamu."
@@ -7100,6 +7133,12 @@ msgstr ""
"katika."
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr "Kama fundo unamu uhuishaji lazima desynchronized kwa mapblock."
@@ -7232,6 +7271,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "cURL muda wa upakuzi wa faili"
@@ -7243,84 +7300,216 @@ msgstr "cURL kikomo sambamba"
msgid "cURL timeout"
msgstr "muda wa kuisha wa cURL"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Togoa Cinematic"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = parallax occlusion na taarifa ya mteremko (haraka).\n"
+#~ "1 = ramani ya misaada (polepole, sahihi zaidi)."
#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "Teua faili ya Moduli:"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "Rekebisha simbiko gamma kwa majedwali mwanga. Idadi ya chini ni mkali.\n"
+#~ "Kipimo hiki ni kwa ajili ya mteja tu na ni kupuuzwa na seva."
-#, fuzzy
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Y ya upper kikomo ya kubwa pseudorandom cellars."
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Je, una hakika upya ulimwengu wako singleplayer?"
-#~ msgid "Waving Water"
-#~ msgstr "Waving maji"
+#~ msgid "Back"
+#~ msgstr "Nyuma"
-#~ msgid "Waving water"
-#~ msgstr "Waving maji"
+#~ msgid "Bump Mapping"
+#~ msgstr "Mapema ramani"
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Fonti hii itatumika kwa lugha fulani."
+#~ msgid "Bumpmapping"
+#~ msgstr "Bumpmapping"
-#, fuzzy
-#~ msgid "Shadow limit"
-#~ msgstr "Kikomo cha Mapblock"
+#~ msgid "Config mods"
+#~ msgstr "Mods Now"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "Njia ya TrueTypeFont au vitone michoro."
+#~ msgid "Configure"
+#~ msgstr "Sanidi"
-#, fuzzy
-#~ msgid "Lava depth"
-#~ msgstr "Kina ya pango kubwa"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Vidhibiti vya upana wa vichuguu, thamani ndogo huunda vichuguu pana."
-#~ msgid "IPv6 support."
-#~ msgstr "IPv6 msaada."
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Rangi ya crosshair (R, G, B)."
-#~ msgid "Gamma"
-#~ msgstr "Gamma"
+#, fuzzy
+#~ msgid "Darkness sharpness"
+#~ msgstr "Mwandishi ramani ziwa gorofa mwinuko"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Fonti kivuli Alfa (opaqueness kati ya 0 na 255)."
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Inafasili hatua ya sampuli ya unamu.\n"
+#~ "Thamani ya juu zaidi matokeo katika ramani ya laini ya kawaida."
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Huwezesha toni filmic ramani"
+#, fuzzy
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Inapakua $1, Tafadhali subiri..."
#~ msgid "Enable VBO"
#~ msgstr "Wezesha VBO"
-#, fuzzy
-#~ msgid "Darkness sharpness"
-#~ msgstr "Mwandishi ramani ziwa gorofa mwinuko"
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "Inawezesha bumpmapping kwa ajili ya unamu. Normalmaps haja iwekwe kwa "
+#~ "pakiti ya unamu au haja ya kuwa yaliyozalishwa na otomatiki.\n"
+#~ "Inahitaji shaders kwa kuwezeshwa."
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Huwezesha toni filmic ramani"
+
+#~ msgid ""
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Vidhibiti vya upana wa vichuguu, thamani ndogo huunda vichuguu pana."
+#~ "Huwezesha kwenye kizazi cha normalmap kuruka (Emboss athari).\n"
+#~ "Inahitaji bumpmapping kwa kuwezeshwa."
-#, fuzzy
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Rekebisha simbiko gamma kwa majedwali mwanga. Idadi ya chini ni mkali.\n"
-#~ "Kipimo hiki ni kwa ajili ya mteja tu na ni kupuuzwa na seva."
+#~ "Huwezesha parallax occlusion uramanishi.\n"
+#~ "Inahitaji shaders kwa kuwezeshwa."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Njia ya kuokoa viwambo katika."
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
+#~ msgstr ""
+#~ "Chaguo majaribio, inaweza kusababisha nafasi inayoonekana kati ya vitalu "
+#~ "wakati kuweka namba ya juu zaidi kuliko 0."
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "Parallax occlusion nguvu"
+#~ msgid "FPS in pause menu"
+#~ msgstr "Ramprogrammen katika Menyu ya mapumziko"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Fonti kivuli Alfa (opaqueness kati ya 0 na 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "Gamma"
+
+#, fuzzy
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Kuzalisha normalmaps"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Kuzalisha normalmaps"
+
+#~ msgid "IPv6 support."
+#~ msgstr "IPv6 msaada."
+
+#, fuzzy
+#~ msgid "Lava depth"
+#~ msgstr "Kina ya pango kubwa"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "Kikomo ya foleni emerge kwenye diski"
+#~ msgid "Main"
+#~ msgstr "Kuu"
+
#, fuzzy
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Inapakua $1, Tafadhali subiri..."
+#~ msgid "Main menu style"
+#~ msgstr "Hati ya Menyu kuu"
-#~ msgid "Back"
-#~ msgstr "Nyuma"
+#~ msgid "Name/Password"
+#~ msgstr "Jina/nenosiri"
+
+#~ msgid "No"
+#~ msgstr "La"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Sampuli ya Normalmaps"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Nguvu ya Normalmaps"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "Idadi ya parallax occlusion Marudiorudio."
#~ msgid "Ok"
#~ msgstr "Sawa kabisa"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "Upendeleo wa jumla wa parallax occlusion athari, kawaida kipimo/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Kipimo cha jumla ya parallax occlusion athari."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parallax Occlusion"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Parallax occlusion"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Parallax occlusion upendeleo"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Parallax occlusion Marudiorudio"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Parallax occlusion hali"
+
+#, fuzzy
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Parallax occlusion wadogo"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "Parallax occlusion nguvu"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "Njia ya TrueTypeFont au vitone michoro."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Njia ya kuokoa viwambo katika."
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Weka upya singleplayer ulimwengu"
+
+#, fuzzy
+#~ msgid "Select Package File:"
+#~ msgstr "Teua faili ya Moduli:"
+
+#, fuzzy
+#~ msgid "Shadow limit"
+#~ msgstr "Kikomo cha Mapblock"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Kuanza Singleplayer"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Nguvu ya normalmaps inayozalishwa."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Fonti hii itatumika kwa lugha fulani."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Togoa Cinematic"
+
+#~ msgid "Waving Water"
+#~ msgstr "Waving maji"
+
+#~ msgid "Waving water"
+#~ msgstr "Waving maji"
+
+#, fuzzy
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Y ya upper kikomo ya kubwa pseudorandom cellars."
+
+#~ msgid "Yes"
+#~ msgstr "Ndio"
diff --git a/po/th/minetest.po b/po/th/minetest.po
index 72490f111..06e322f79 100644
--- a/po/th/minetest.po
+++ b/po/th/minetest.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Thai (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: 2020-07-08 08:41+0000\n"
"Last-Translator: TZTarzan <khunsatyptiphan@gmail.com>\n"
"Language-Team: Thai <https://hosted.weblate.org/projects/minetest/minetest/"
@@ -47,10 +47,6 @@ msgstr "เชื่อมต่อใหม่"
msgid "The server has requested a reconnect:"
msgstr "เซิร์ฟเวอร์ได้ร้องขอà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อใหม่:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "à¸à¸³à¸¥à¸±à¸‡à¹‚หลด..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "เวอร์ชันโปรโทคอลไม่ตรงà¸à¸±à¸™ "
@@ -64,12 +60,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "เซิร์ฟเวอร์ที่สนับสนุนเวอร์ชันโพรโทคอลระหว่าง $1 à¹à¸¥à¸° $2 "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"ลองเปิดใช้งานเซิร์ฟเวอร์ลิสต์สาธารณะอีà¸à¸„รั้งà¹à¸¥à¸°à¸•รวจสอบà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่ออินเทอร์เน็"
-"ต"
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "เราสนับสนุนโพรโทคอลเวอร์ชัน $1 เท่านั้น"
@@ -77,7 +67,8 @@ msgstr "เราสนับสนุนโพรโทคอลเวอร์
msgid "We support protocol versions between version $1 and $2."
msgstr "เราสนับสนุนโพรโทคอลระหว่างเวอร์ชัน $1 à¹à¸¥à¸° $2"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -87,7 +78,8 @@ msgstr "เราสนับสนุนโพรโทคอลระหว่
msgid "Cancel"
msgstr "ยà¸à¹€à¸¥à¸´à¸"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "ไฟล์อ้างอิง:"
@@ -112,8 +104,8 @@ msgid ""
"Failed to enable mod \"$1\" as it contains disallowed characters. Only "
"characters [a-z0-9_] are allowed."
msgstr ""
-"ไม่สามารถเปิดใช้งานม็อด '$1' ซึ่งประà¸à¸­à¸šà¸”้วยตัวอัà¸à¸©à¸£à¸—ี่ไม่ได้รับอนุà¸à¸²à¸• ตัวอั"
-"à¸à¸©à¸£ [a-z0-9_] เท่านั้นที่ได้รับอนุà¸à¸²à¸•"
+"ไม่สามารถเปิดใช้งานม็อด '$1' ซึ่งประà¸à¸­à¸šà¸”้วยตัวอัà¸à¸©à¸£à¸—ี่ไม่ได้รับอนุà¸à¸²à¸• ตัวอัà¸à¸©à¸£ [a-z0-9_] "
+"เท่านั้นที่ได้รับอนุà¸à¸²à¸•"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
@@ -164,14 +156,55 @@ msgid "enabled"
msgstr "เปิดใช้งานà¹à¸¥à¹‰à¸§"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "โหลด ..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "à¹à¸žà¸„เà¸à¸ˆà¸—ั้งหมด"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "คีย์ใช้"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "à¸à¸¥à¸±à¸šà¹„ปยังเมนูหลัà¸"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "โฮสต์เà¸à¸¡"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -194,6 +227,16 @@ msgid "Install"
msgstr "ติดตั้ง"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "ติดตั้ง"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "ไฟล์อ้างอิงที่เลือà¸à¹ƒà¸Šà¹‰à¹„ด้:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "ม็อด"
@@ -207,9 +250,26 @@ msgid "No results"
msgstr "ไม่มีผลลัพธ์"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "ค้นหา"
+#, fuzzy
+msgid "No updates"
+msgstr "อัปเดต"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Not found"
+msgstr "ปิดเสียง"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -224,7 +284,11 @@ msgid "Update"
msgstr "อัปเดต"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -461,9 +525,7 @@ msgstr "เปลี่ยนชื่อม็อดà¹à¸žà¹‡à¸„:"
msgid ""
"This modpack has an explicit name given in its modpack.conf which will "
"override any renaming here."
-msgstr ""
-"ม็อดà¹à¸žà¹‡à¸„มีชื่อชื่อที่ถูà¸à¸•ั้งในไฟล์ modpack.conf "
-"ซึ่งจะà¹à¸—นที่ชื่อที่เปลี่ยนตรงนี้"
+msgstr "ม็อดà¹à¸žà¹‡à¸„มีชื่อชื่อที่ถูà¸à¸•ั้งในไฟล์ modpack.conf ซึ่งจะà¹à¸—นที่ชื่อที่เปลี่ยนตรงนี้"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "(No description of setting given)"
@@ -528,6 +590,10 @@ msgid "Scale"
msgstr "ขนาด"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "ค้นหา"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "เลือà¸à¹„ดเรà¸à¸—อรี"
@@ -642,6 +708,19 @@ msgstr "ไม่สามารถติดตั้ง mod $1"
msgid "Unable to install a modpack as a $1"
msgstr "ไม่สามารถติดตั้ง modpack ที่ $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "à¸à¸³à¸¥à¸±à¸‡à¹‚หลด..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "à¸à¸²à¸£à¹€à¸‚ียนสคริปต์à¸à¸±à¹ˆà¸‡à¹„คลเอ็นต์ถูà¸à¸›à¸´à¸”ใช้งาน"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr "ลองเปิดใช้งานเซิร์ฟเวอร์ลิสต์สาธารณะอีà¸à¸„รั้งà¹à¸¥à¸°à¸•รวจสอบà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่ออินเทอร์เน็ต"
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "เรียà¸à¸”ูเนื้อหาออนไลน์"
@@ -695,6 +774,17 @@ msgid "Credits"
msgstr "เครดิต"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "เลือà¸à¹„ดเรà¸à¸—อรี"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "ผู้สนับสนุนà¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²"
@@ -711,14 +801,10 @@ msgid "Bind Address"
msgstr "ผูà¸à¸—ี่อยู่"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "à¸à¸³à¸«à¸™à¸”ค่า"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "โหมดสร้างสรรค์"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "เปิดใช้งานความเสียหาย"
@@ -735,8 +821,8 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "ชื่อ/รหัสผ่าน"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -747,6 +833,11 @@ msgid "No world created or selected!"
msgstr "ยังไม่มีà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¹‚ลภหรือยังไม่ได้เลือà¸!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "รหัสผ่านใหม่"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "เล่นเà¸à¸¡"
@@ -755,6 +846,11 @@ msgid "Port"
msgstr "พอร์ต"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "เลือà¸à¹‚ลà¸:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "เลือà¸à¹‚ลà¸:"
@@ -770,23 +866,23 @@ msgstr "เริ่มเà¸à¸¡"
msgid "Address / Port"
msgstr "ที่อยู่ / พอร์ต"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "เชื่อมต่อ"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "โหมดสร้างสรรค์"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "ความเสียหาย ที่เปิดใช้งาน"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "ลบรายà¸à¸²à¸£à¹‚ปรด"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "ชื่นชอบ"
@@ -794,16 +890,16 @@ msgstr "ชื่นชอบ"
msgid "Join Game"
msgstr "เข้าร่วมเà¸à¸¡"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "ชื่อ / รหัสผ่าน"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "เวลาตอบสนอง"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "PvP เปิดใช้งาน"
@@ -832,10 +928,6 @@ msgid "Antialiasing:"
msgstr "ลบรอยหยัà¸:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "à¸à¸²à¸£à¸•ั้งค่าของคุณโลภsingleplayer à¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸­à¹„ม่?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "ขนาดหน้าจอบันทึà¸à¸­à¸±à¸•โนมัติ"
@@ -843,10 +935,6 @@ msgstr "ขนาดหน้าจอบันทึà¸à¸­à¸±à¸•โนมัต
msgid "Bilinear Filter"
msgstr "à¸à¸£à¸­à¸‡ bilinear"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "à¸à¸²à¸£à¹à¸¡à¹‡à¸› ชน"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "เปลี่ยนคีย์"
@@ -860,10 +948,6 @@ msgid "Fancy Leaves"
msgstr "ใบไม้"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "สร้างà¹à¸œà¸™à¸—ี่ปà¸à¸•ิ"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "à¹à¸œà¸™à¸—ี่ย่อ"
@@ -872,10 +956,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "à¹à¸œà¸™à¸—ี่ย่อ + Aniso.à¸à¸£à¸­à¸‡"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "ไม่"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "ไม่มีตัวà¸à¸£à¸­à¸‡"
@@ -903,20 +983,11 @@ msgstr "ใบทึบ"
msgid "Opaque Water"
msgstr "น้ำขุ่น"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax Occlusion"
-msgstr "Parallax อุดตัน"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "อนุภาค"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "รีเซ็ต singleplayer โลà¸"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "หน้าจอ:"
@@ -931,6 +1002,11 @@ msgstr "Shaders"
#: builtin/mainmenu/tab_settings.lua
#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "Shaders (ไม่พร้อมใช้งาน)"
+
+#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
msgid "Shaders (unavailable)"
msgstr "Shaders (ไม่พร้อมใช้งาน)"
@@ -976,22 +1052,6 @@ msgstr "โบà¸à¹‚หนด"
msgid "Waving Plants"
msgstr "โบà¸à¹„ม้"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "ใช่"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "à¸à¸³à¸«à¸™à¸”ค่าวัยรุ่น"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "หลัà¸"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "เริ่มเล่นเดี่ยว"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "à¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อหมดเวลา"
@@ -1155,13 +1215,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1309,37 +1369,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "à¹à¸œà¸™à¸—ี่ย่อในปัจจุบันถูà¸à¸›à¸´à¸”ใช้งานโดยเà¸à¸¡à¸«à¸£à¸·à¸­à¸•ัวดัดà¹à¸›à¸¥à¸‡"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "à¹à¸œà¸™à¸—ี่ย่อซ่อนอยู่"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "à¹à¸œà¸™à¸—ี่ย่อในโหมดเรดาร์, ซูม x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "à¹à¸œà¸™à¸—ี่ย่อในโหมดเรดาร์, ซูม x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "à¹à¸œà¸™à¸—ี่ย่อในโหมดเรดาร์, ซูม x4"
-
-#: src/client/game.cpp
-#, fuzzy
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "à¹à¸œà¸™à¸—ี่ย่อในโหมด surface, ซูม x1"
-
-#: src/client/game.cpp
-#, fuzzy
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "à¹à¸œà¸™à¸—ี่ย่อในโหมด surface, ซูม x2"
-
-#: src/client/game.cpp
-#, fuzzy
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "à¹à¸œà¸™à¸—ี่ย่อในโหมด surface, ซูม x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "ปิดใช้งานโหมด Noclip"
@@ -1756,6 +1785,25 @@ msgstr "X ปุ่ม 2"
msgid "Zoom"
msgstr "ซูม"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "à¹à¸œà¸™à¸—ี่ย่อซ่อนอยู่"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "à¹à¸œà¸™à¸—ี่ย่อในโหมดเรดาร์, ซูม x1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "à¹à¸œà¸™à¸—ี่ย่อในโหมด surface, ซูม x1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "ขนาดพื้นผิวขั้นต่ำ"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "รหัสผ่านไม่ตรงà¸à¸±à¸š!"
@@ -2010,14 +2058,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = à¸à¸²à¸£à¸šà¸”บังพารัลà¹à¸¥à¸à¸‹à¹Œà¸žà¸£à¹‰à¸­à¸¡à¸‚้อมูลความชัน (เร็วà¸à¸§à¹ˆà¸²)\n"
-"1 = à¸à¸²à¸£à¸—ำà¹à¸œà¸™à¸—ี่นูน (ช้าà¸à¸§à¹ˆà¸²à¹à¸¡à¹ˆà¸™à¸¢à¸³à¸à¸§à¹ˆà¸²)"
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2137,6 +2177,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2382,11 +2426,6 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
-msgid "Bumpmapping"
-msgstr "Bumpmapping"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2461,16 +2500,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat font size"
msgstr "ขนาดตัวอัà¸à¸©à¸£"
@@ -2625,6 +2654,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2683,7 +2716,10 @@ msgid "Crosshair alpha"
msgstr "Crosshair อัลฟา"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "Crosshair อัลฟา (ความทึบà¹à¸ªà¸‡à¸£à¸°à¸«à¸§à¹ˆà¸²à¸‡ 0 ถึง 255)."
#: src/settings_translation_file.cpp
@@ -2691,8 +2727,10 @@ msgid "Crosshair color"
msgstr "สีของครอสà¹à¸®à¸£à¹Œ"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "สีของครอสà¹à¸®à¸£à¹Œ (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2794,14 +2832,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"à¸à¸³à¸«à¸™à¸”ขั้นตอนà¸à¸²à¸£à¸ªà¸¸à¹ˆà¸¡à¸•ัวอย่างของพื้นผิว\n"
-"ค่าที่สูงà¸à¸§à¹ˆà¸²à¸ˆà¸°à¸—ำให้à¹à¸œà¸™à¸—ี่ปà¸à¸•ิราบรื่นขึ้น"
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2874,6 +2904,11 @@ msgid "Desynchronize block animation"
msgstr "Desynchronize บล็อà¸à¸ à¸²à¸žà¹€à¸„ลื่อนไหว"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "ปุ่มขวา"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "ขุดอนุภาค"
@@ -2936,7 +2971,8 @@ msgid "Enable console window"
msgstr "เปิดใช้งานหน้าต่างคอนโซล"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "เปิดใช้งานโหมดสร้างสรรค์สำหรับà¹à¸œà¸™à¸—ี่ที่สร้างขึ้นใหม่."
#: src/settings_translation_file.cpp
@@ -3039,17 +3075,6 @@ msgid "Enables animation of inventory items."
msgstr "เปิดใช้งานภาพเคลื่อนไหวของรายà¸à¸²à¸£à¸ªà¸´à¸™à¸„้าคงคลัง."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"เปิดใช้งานà¸à¸²à¸£à¹à¸¡à¸› bump สำหรับพื้นผิว à¹à¸œà¸™à¸—ี่ปà¸à¸•ิจะต้องมีà¸à¸²à¸£à¸ˆà¸±à¸”หาโดยà¹à¸žà¹‡à¸„พื้นผิว\n"
-"หรือจำเป็นต้องสร้างขึ้นอัตโนมัติ\n"
-"ต้องมี shaders เพื่อเปิดใช้งาน"
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "เปิดใช้งานà¸à¸²à¸£à¹à¸„ชของตาข่ายที่หมุนได้."
@@ -3059,22 +3084,6 @@ msgstr "เปิดใช้งานย่อà¹à¸œà¸™à¸—ี่."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"เปิดใช้งานà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¹à¸œà¸™à¸—ี่ปà¸à¸•ิà¹à¸šà¸šà¸¥à¸­à¸¢à¸•ัว (เอฟเฟà¸à¸•์นูน)\n"
-"ต้องมีà¸à¸²à¸£à¹€à¸›à¸´à¸”ใช้งาน bumpmapping"
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"เปิดใช้งานà¸à¸²à¸£à¹à¸¡à¸›à¸à¸²à¸£à¸šà¸”เคี้ยวของรัลà¹à¸¥à¸à¸‹à¹Œ\n"
-"ต้องมี shaders เพื่อเปิดใช้งาน"
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3091,14 +3100,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"ตัวเลือà¸à¸à¸²à¸£à¸—ดลองอาจทำให้เà¸à¸´à¸”ช่องว่างระหว่างบล็อà¸\n"
-"เมื่อตั้งค่าเป็นจำนวนที่สูงà¸à¸§à¹ˆà¸² 0"
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3108,8 +3109,9 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "FPS ในเมนูหยุดชั่วคราว"
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "FPS สูงสุดเมื่อเà¸à¸¡à¸«à¸¢à¸¸à¸”ชั่วคราว"
#: src/settings_translation_file.cpp
#, fuzzy
@@ -3422,10 +3424,6 @@ msgid "GUI scaling filter txr2img"
msgstr "ตัวà¸à¸£à¸­à¸‡à¸à¸²à¸£à¸›à¸£à¸±à¸šà¸‚นาด GUI txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "สร้างà¹à¸œà¸™à¸—ี่ปà¸à¸•ิ"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3481,8 +3479,8 @@ msgstr "ปุ่มสลับ HUD"
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3961,6 +3959,11 @@ msgid "Joystick button repetition interval"
msgstr "ช่วงเวลาà¸à¸²à¸£à¸—ำซ้ำปุ่มจอยสติ๊à¸"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "ประเภทของจอยสติ๊à¸"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "ความไวของจอยสติ๊ภfrustum"
@@ -4046,6 +4049,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"à¸à¸¸à¸à¹à¸ˆà¸ªà¸³à¸«à¸£à¸±à¸šà¸à¸²à¸£à¸à¸£à¸°à¹‚ดด.\n"
+"ดู http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4188,6 +4202,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"à¸à¸¸à¸à¹à¸ˆà¸ªà¸³à¸«à¸£à¸±à¸šà¸à¸²à¸£à¸à¸£à¸°à¹‚ดด.\n"
+"ดู http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4918,10 +4943,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4936,6 +4957,14 @@ msgid "Makes all liquids opaque"
msgstr "ทำให้ของเหลวทั้งหมดขุ่น"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "ไดเรà¸à¸—อรีà¹à¸œà¸™à¸—ี่"
@@ -5099,7 +5128,8 @@ msgid "Maximum FPS"
msgstr "FPS สูงสุด"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "FPS สูงสุดเมื่อเà¸à¸¡à¸«à¸¢à¸¸à¸”ชั่วคราว"
#: src/settings_translation_file.cpp
@@ -5151,6 +5181,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5396,14 +5433,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "à¸à¸²à¸£à¸ªà¸¸à¹ˆà¸¡à¸•ัวอย่าง Normalmaps"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Normalmaps à¹à¸‚็งà¹à¸£à¸‡"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5429,10 +5458,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "จำนวนà¸à¸²à¸£à¸§à¸™à¸‹à¹‰à¸³à¸‚องà¸à¸²à¸£à¸›à¸´à¸”à¸à¸±à¹‰à¸™ parallax"
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5458,34 +5483,6 @@ msgid ""
msgstr "เปิดเมนูหยุดชั่วคราวเมื่อโฟà¸à¸±à¸ªà¸‚องหน้าต่างหายไป ไม่หยุดถ้า formspec คือ เปิด."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "ความเอนเอียงโดยรวมของเอฟเฟ็à¸à¸•์à¸à¸²à¸£à¸šà¸”เคี้ยวของ Parallax มัà¸à¹€à¸›à¹‡à¸™à¸ªà¹€à¸à¸¥ / 2"
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "ขนาดโดยรวมของผลà¸à¸²à¸£à¸šà¸”เคี้ยวของรัลà¹à¸¥à¸à¸‹à¹Œ"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "à¸à¸²à¸£à¸šà¸”เคี้ยวของ Parallax"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "อคติà¸à¸²à¸£à¸šà¸”เคี้ยวของ Parallax"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "à¸à¸²à¸£à¸§à¸™à¸‹à¹‰à¸³à¸‚อง Parallax"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "โหมดà¸à¸²à¸£à¸šà¸”เคี้ยวของ Parallax"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "ขนาดà¸à¸²à¸£à¸šà¸”เคี้ยวของ Parallax"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5551,6 +5548,16 @@ msgid "Pitch move mode"
msgstr "โหมดย้ายสนาม"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "ปุ่ม Fly"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "à¸à¸£à¸°à¹à¸—à¸à¸‹à¹‰à¸³à¸Šà¹ˆà¸§à¸‡"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5717,10 +5724,6 @@ msgid "Right key"
msgstr "ปุ่มขวา"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "à¸à¸£à¸°à¹à¸—à¸à¸‹à¹‰à¸³à¸Šà¹ˆà¸§à¸‡"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5994,6 +5997,16 @@ msgid "Show entity selection boxes"
msgstr "à¹à¸ªà¸”งà¸à¸¥à¹ˆà¸­à¸‡à¸à¸²à¸£à¹€à¸¥à¸·à¸­à¸à¹€à¸­à¸™à¸—ิตี"
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "ข้อความปิดเครื่อง"
@@ -6136,10 +6149,6 @@ msgid "Strength of 3D mode parallax."
msgstr "ความà¹à¸‚็งà¹à¸à¸£à¹ˆà¸‡à¸‚องพารัลà¹à¸¥à¸à¸‹à¹Œ"
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "ความà¹à¸‚็งà¹à¸à¸£à¹ˆà¸‡à¸‚องà¹à¸œà¸™à¸—ี่ปà¸à¸•ิที่สร้างขึ้น"
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6239,6 +6248,11 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "The deadzone of the joystick"
+msgstr "ตัวระบุของจอยสติ๊à¸à¸—ี่จะใช้"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6294,13 +6308,14 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"The rendering back-end for Irrlicht.\n"
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
"à¸à¸²à¸£à¹à¸ªà¸”งผลà¹à¸šà¹‡à¸à¹€à¸­à¸™à¸”์สำหรับ Irrlicht\n"
"จำเป็นต้องรีสตาร์ทหลังจาà¸à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¸ªà¸´à¹ˆà¸‡à¸™à¸µà¹‰\n"
@@ -6337,6 +6352,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6344,10 +6365,10 @@ msgstr ""
"เมื่อà¸à¸”ปุ่มจอยสติ๊à¸à¸„้างไว้"
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr "วินาทีเวลาใช้ระหว่างà¸à¸²à¸£à¸‹à¹‰à¸³à¸‚วาเมื่อà¸à¸”ปุ่มเมาส์ขวา"
#: src/settings_translation_file.cpp
@@ -6499,6 +6520,17 @@ msgstr ""
"ไม่รองรับà¸à¸²à¸£à¸¥à¸”ขนาดà¹à¸à¸¡à¸¡à¸²à¹à¸à¸¡à¸¡à¸²à¸—ี่ถูà¸à¸•้อง"
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "ใช้à¸à¸²à¸£à¸à¸£à¸­à¸‡ trilinear เมื่อปรับขนาดพื้นผิว"
@@ -6728,9 +6760,14 @@ msgstr ""
"หาà¸à¸›à¸´à¸”ใช้งาน ฟอนต์บิตà¹à¸¡à¸›à¹à¸¥à¸°à¹€à¸­à¹‡à¸à¸‹à¹Œà¹€à¸­à¹‡à¸¡à¹à¸­à¸¥à¹€à¸§à¸à¹€à¸•อร์จะใช้à¹à¸—น"
#: src/settings_translation_file.cpp
-msgid "Whether node texture animations should be desynchronized per mapblock."
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
msgstr ""
-"ระบุว่าควรสร้างà¸à¸²à¸£à¸‹à¸´à¸‡à¹‚ครไนซ์ภาพเคลื่อนไหวพื้นผิวของโหนดต่อà¹à¸¡à¹‡à¸›à¸šà¸¥à¹‡à¸­à¸à¸«à¸£à¸·à¸­à¹„ม่"
+
+#: src/settings_translation_file.cpp
+msgid "Whether node texture animations should be desynchronized per mapblock."
+msgstr "ระบุว่าควรสร้างà¸à¸²à¸£à¸‹à¸´à¸‡à¹‚ครไนซ์ภาพเคลื่อนไหวพื้นผิวของโหนดต่อà¹à¸¡à¹‡à¸›à¸šà¸¥à¹‡à¸­à¸à¸«à¸£à¸·à¸­à¹„ม่"
#: src/settings_translation_file.cpp
msgid ""
@@ -6865,6 +6902,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6876,67 +6931,209 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
-#~ msgid "Toggle Cinematic"
-#~ msgstr "สลับโรงภาพยนตร์"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = à¸à¸²à¸£à¸šà¸”บังพารัลà¹à¸¥à¸à¸‹à¹Œà¸žà¸£à¹‰à¸­à¸¡à¸‚้อมูลความชัน (เร็วà¸à¸§à¹ˆà¸²)\n"
+#~ "1 = à¸à¸²à¸£à¸—ำà¹à¸œà¸™à¸—ี่นูน (ช้าà¸à¸§à¹ˆà¸²à¹à¸¡à¹ˆà¸™à¸¢à¸³à¸à¸§à¹ˆà¸²)"
-#~ msgid "Select Package File:"
-#~ msgstr "เลือà¸à¹à¸Ÿà¹‰à¸¡à¹à¸žà¸„เà¸à¸ˆ:"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "ปรับà¸à¸²à¸£à¹€à¸‚้ารหัสà¹à¸à¸¡à¸¡à¹ˆà¸²à¸ªà¸³à¸«à¸£à¸±à¸šà¸•ารางà¹à¸ªà¸‡ ตัวเลขที่สูงà¸à¸§à¹ˆà¸²à¸™à¸±à¹‰à¸™à¸ˆà¸°à¸ªà¸§à¹ˆà¸²à¸‡à¸à¸§à¹ˆà¸²\n"
+#~ "à¸à¸²à¸£à¸•ั้งค่านี้มีไว้สำหรับไคลเอ็นต์เท่านั้นà¹à¸¥à¸°à¹€à¸‹à¸´à¸£à¹Œà¸Ÿà¹€à¸§à¸­à¸£à¹Œà¸ˆà¸°à¹€à¸žà¸´à¸à¹€à¸‰à¸¢"
-#~ msgid "Waving Water"
-#~ msgstr "น้ำโบà¸"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "à¸à¸²à¸£à¸•ั้งค่าของคุณโลภsingleplayer à¹à¸™à¹ˆà¹ƒà¸ˆà¸«à¸£à¸·à¸­à¹„ม่?"
-#~ msgid "Waving water"
-#~ msgstr "โบà¸à¸™à¹‰à¸³"
+#~ msgid "Back"
+#~ msgstr "หลัง"
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "à¹à¸šà¸šà¸­à¸±à¸à¸©à¸£à¸™à¸µà¹‰à¸ˆà¸°à¹ƒà¸Šà¹‰à¸ªà¸³à¸«à¸£à¸±à¸šà¸šà¸²à¸‡à¸ à¸²à¸©à¸²"
+#~ msgid "Bump Mapping"
+#~ msgstr "à¸à¸²à¸£à¹à¸¡à¹‡à¸› ชน"
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "ความà¹à¸‚็งà¹à¸£à¸‡à¸‚องà¹à¸ªà¸‡à¹‚ค้งà¸à¸¥à¸²à¸‡ - เพิ่ม"
+#, fuzzy
+#~ msgid "Bumpmapping"
+#~ msgstr "Bumpmapping"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "เส้นทางà¹à¸šà¸šà¸­à¸±à¸à¸©à¸£."
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "à¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡à¸‚องเส้นโค้งà¹à¸ªà¸‡ - à¸à¸¥à¸²à¸‡à¹€à¸žà¸´à¹ˆà¸¡"
-#~ msgid "Lightness sharpness"
-#~ msgstr "ความคมชัดของà¹à¸ªà¸‡"
+#~ msgid "Config mods"
+#~ msgstr "à¸à¸³à¸«à¸™à¸”ค่าวัยรุ่น"
-#~ msgid "Gamma"
-#~ msgstr "à¹à¸à¸¡à¸¡à¸²"
+#~ msgid "Configure"
+#~ msgstr "à¸à¸³à¸«à¸™à¸”ค่า"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "ตัวอัà¸à¸©à¸£à¹€à¸‡à¸²à¸­à¸±à¸¥à¸Ÿà¸² (ความทึบระหว่าง 0 à¹à¸¥à¸° 255)."
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "สีของครอสà¹à¸®à¸£à¹Œ (R,G,B)."
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "เปิดใช้งานà¸à¸²à¸£à¸ˆà¸±à¸šà¸„ู่โทนภาพยนตร์"
+#~ msgid "Darkness sharpness"
+#~ msgstr "ความมืดมิด"
+
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "à¸à¸³à¸«à¸™à¸”ขั้นตอนà¸à¸²à¸£à¸ªà¸¸à¹ˆà¸¡à¸•ัวอย่างของพื้นผิว\n"
+#~ "ค่าที่สูงà¸à¸§à¹ˆà¸²à¸ˆà¸°à¸—ำให้à¹à¸œà¸™à¸—ี่ปà¸à¸•ิราบรื่นขึ้น"
+
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "ดาวน์โหลด à¹à¸¥à¸°à¸•ิดตั้ง $1 à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่..."
#~ msgid "Enable VBO"
#~ msgstr "ทำให้สามารถ VBO"
-#~ msgid "Darkness sharpness"
-#~ msgstr "ความมืดมิด"
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "เปิดใช้งานà¸à¸²à¸£à¹à¸¡à¸› bump สำหรับพื้นผิว à¹à¸œà¸™à¸—ี่ปà¸à¸•ิจะต้องมีà¸à¸²à¸£à¸ˆà¸±à¸”หาโดยà¹à¸žà¹‡à¸„พื้นผิว\n"
+#~ "หรือจำเป็นต้องสร้างขึ้นอัตโนมัติ\n"
+#~ "ต้องมี shaders เพื่อเปิดใช้งาน"
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "à¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡à¸‚องเส้นโค้งà¹à¸ªà¸‡ - à¸à¸¥à¸²à¸‡à¹€à¸žà¸´à¹ˆà¸¡"
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "เปิดใช้งานà¸à¸²à¸£à¸ˆà¸±à¸šà¸„ู่โทนภาพยนตร์"
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "ปรับà¸à¸²à¸£à¹€à¸‚้ารหัสà¹à¸à¸¡à¸¡à¹ˆà¸²à¸ªà¸³à¸«à¸£à¸±à¸šà¸•ารางà¹à¸ªà¸‡ ตัวเลขที่สูงà¸à¸§à¹ˆà¸²à¸™à¸±à¹‰à¸™à¸ˆà¸°à¸ªà¸§à¹ˆà¸²à¸‡à¸à¸§à¹ˆà¸²\n"
-#~ "à¸à¸²à¸£à¸•ั้งค่านี้มีไว้สำหรับไคลเอ็นต์เท่านั้นà¹à¸¥à¸°à¹€à¸‹à¸´à¸£à¹Œà¸Ÿà¹€à¸§à¸­à¸£à¹Œà¸ˆà¸°à¹€à¸žà¸´à¸à¹€à¸‰à¸¢"
+#~ "เปิดใช้งานà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡à¹à¸œà¸™à¸—ี่ปà¸à¸•ิà¹à¸šà¸šà¸¥à¸­à¸¢à¸•ัว (เอฟเฟà¸à¸•์นูน)\n"
+#~ "ต้องมีà¸à¸²à¸£à¹€à¸›à¸´à¸”ใช้งาน bumpmapping"
-#~ msgid "Path to save screenshots at."
-#~ msgstr "พา ธ เพื่อบันทึà¸à¸ à¸²à¸žà¸«à¸™à¹‰à¸²à¸ˆà¸­à¸—ี่ ..."
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "เปิดใช้งานà¸à¸²à¸£à¹à¸¡à¸›à¸à¸²à¸£à¸šà¸”เคี้ยวของรัลà¹à¸¥à¸à¸‹à¹Œ\n"
+#~ "ต้องมี shaders เพื่อเปิดใช้งาน"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸”เคี้ยวของ Parallax"
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
+#~ msgstr ""
+#~ "ตัวเลือà¸à¸à¸²à¸£à¸—ดลองอาจทำให้เà¸à¸´à¸”ช่องว่างระหว่างบล็อà¸\n"
+#~ "เมื่อตั้งค่าเป็นจำนวนที่สูงà¸à¸§à¹ˆà¸² 0"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "ดาวน์โหลด à¹à¸¥à¸°à¸•ิดตั้ง $1 à¸à¸£à¸¸à¸“ารอสัà¸à¸„รู่..."
+#~ msgid "FPS in pause menu"
+#~ msgstr "FPS ในเมนูหยุดชั่วคราว"
-#~ msgid "Back"
-#~ msgstr "หลัง"
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "ตัวอัà¸à¸©à¸£à¹€à¸‡à¸²à¸­à¸±à¸¥à¸Ÿà¸² (ความทึบระหว่าง 0 à¹à¸¥à¸° 255)."
+
+#~ msgid "Gamma"
+#~ msgstr "à¹à¸à¸¡à¸¡à¸²"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "สร้างà¹à¸œà¸™à¸—ี่ปà¸à¸•ิ"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "สร้างà¹à¸œà¸™à¸—ี่ปà¸à¸•ิ"
+
+#~ msgid "Lightness sharpness"
+#~ msgstr "ความคมชัดของà¹à¸ªà¸‡"
+
+#~ msgid "Main"
+#~ msgstr "หลัà¸"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "à¹à¸œà¸™à¸—ี่ย่อในโหมดเรดาร์, ซูม x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "à¹à¸œà¸™à¸—ี่ย่อในโหมดเรดาร์, ซูม x4"
+
+#, fuzzy
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "à¹à¸œà¸™à¸—ี่ย่อในโหมด surface, ซูม x2"
+
+#, fuzzy
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "à¹à¸œà¸™à¸—ี่ย่อในโหมด surface, ซูม x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "ชื่อ/รหัสผ่าน"
+
+#~ msgid "No"
+#~ msgstr "ไม่"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "à¸à¸²à¸£à¸ªà¸¸à¹ˆà¸¡à¸•ัวอย่าง Normalmaps"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Normalmaps à¹à¸‚็งà¹à¸£à¸‡"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "จำนวนà¸à¸²à¸£à¸§à¸™à¸‹à¹‰à¸³à¸‚องà¸à¸²à¸£à¸›à¸´à¸”à¸à¸±à¹‰à¸™ parallax"
#~ msgid "Ok"
#~ msgstr "ตà¸à¸¥à¸‡"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "ความเอนเอียงโดยรวมของเอฟเฟ็à¸à¸•์à¸à¸²à¸£à¸šà¸”เคี้ยวของ Parallax มัà¸à¹€à¸›à¹‡à¸™à¸ªà¹€à¸à¸¥ / 2"
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "ขนาดโดยรวมของผลà¸à¸²à¸£à¸šà¸”เคี้ยวของรัลà¹à¸¥à¸à¸‹à¹Œ"
+
+#, fuzzy
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Parallax อุดตัน"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "à¸à¸²à¸£à¸šà¸”เคี้ยวของ Parallax"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "อคติà¸à¸²à¸£à¸šà¸”เคี้ยวของ Parallax"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "à¸à¸²à¸£à¸§à¸™à¸‹à¹‰à¸³à¸‚อง Parallax"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "โหมดà¸à¸²à¸£à¸šà¸”เคี้ยวของ Parallax"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "ขนาดà¸à¸²à¸£à¸šà¸”เคี้ยวของ Parallax"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "à¸à¸³à¸¥à¸±à¸‡à¸šà¸”เคี้ยวของ Parallax"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "เส้นทางà¹à¸šà¸šà¸­à¸±à¸à¸©à¸£."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "พา ธ เพื่อบันทึà¸à¸ à¸²à¸žà¸«à¸™à¹‰à¸²à¸ˆà¸­à¸—ี่ ..."
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "รีเซ็ต singleplayer โลà¸"
+
+#~ msgid "Select Package File:"
+#~ msgstr "เลือà¸à¹à¸Ÿà¹‰à¸¡à¹à¸žà¸„เà¸à¸ˆ:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "เริ่มเล่นเดี่ยว"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "ความà¹à¸‚็งà¹à¸à¸£à¹ˆà¸‡à¸‚องà¹à¸œà¸™à¸—ี่ปà¸à¸•ิที่สร้างขึ้น"
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "ความà¹à¸‚็งà¹à¸£à¸‡à¸‚องà¹à¸ªà¸‡à¹‚ค้งà¸à¸¥à¸²à¸‡ - เพิ่ม"
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "à¹à¸šà¸šà¸­à¸±à¸à¸©à¸£à¸™à¸µà¹‰à¸ˆà¸°à¹ƒà¸Šà¹‰à¸ªà¸³à¸«à¸£à¸±à¸šà¸šà¸²à¸‡à¸ à¸²à¸©à¸²"
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "สลับโรงภาพยนตร์"
+
+#~ msgid "Waving Water"
+#~ msgstr "น้ำโบà¸"
+
+#~ msgid "Waving water"
+#~ msgstr "โบà¸à¸™à¹‰à¸³"
+
+#~ msgid "Yes"
+#~ msgstr "ใช่"
diff --git a/po/tr/minetest.po b/po/tr/minetest.po
index 5101b66fa..a2311124b 100644
--- a/po/tr/minetest.po
+++ b/po/tr/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Turkish (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-15 22:41+0000\n"
-"Last-Translator: monolifed <monolifed@protonmail.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-02-13 08:50+0000\n"
+"Last-Translator: OÄŸuz Ersen <oguzersen@protonmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/minetest/"
"minetest/tr/>\n"
"Language: tr\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.1\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -46,10 +46,6 @@ msgstr "BaÄŸlan"
msgid "The server has requested a reconnect:"
msgstr "Bu sunucu yeniden baÄŸlanma isteÄŸinde bulundu:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Yükleniyor..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Protokol sürümü uyumsuz. "
@@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Bu sunucu $1 ve $2 arası tüm protokol sürümlerini destekler. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Açık sunucu listesini tekrar etkinleştirmeyi deneyin ve internet "
-"bağlantınızı doğrulayın."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Yalnızca $1 protokol sürümü desteklenmektedir."
@@ -76,7 +66,8 @@ msgstr "Yalnızca $1 protokol sürümü desteklenmektedir."
msgid "We support protocol versions between version $1 and $2."
msgstr "Yalnızca $1 ve $2 arası protokol sürümleri desteklenmektedir."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Yalnızca $1 ve $2 arası protokol sürümleri desteklenmektedir."
msgid "Cancel"
msgstr "İptal"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Bağımlılıklar:"
@@ -160,14 +152,54 @@ msgid "enabled"
msgstr "etkin"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr "\"$1\" zaten var.DeÄŸiÅŸtirilsin mi?"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr "$ 1 ve $ 2 destek dosyaları yüklenecek."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr "$1 'e $2"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+"$1 indiriliyor,\n"
+"$2 sırada"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 downloading..."
+msgstr "$1 indiriliyor..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr "$1 için destek dosyaları bulanamadı."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr "$1 indirilecek, ve $2 destek dosyaları atlanacak."
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Tüm paketler"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr "Zaten kuruldu"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Ana Menüye Dön"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr "Yerel oyun:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr "Minetest cURL'siz derlediğinde ContentDB kullanılamaz"
@@ -189,6 +221,14 @@ msgid "Install"
msgstr "Kur"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr "$1 kur"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install missing dependencies"
+msgstr "Eksik bağımlılıkları kur"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Modlar"
@@ -202,9 +242,24 @@ msgid "No results"
msgstr "Sonuç yok"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Ara"
+msgid "No updates"
+msgstr "Güncelleme yok"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr "Bulunamadı"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr "Üzerine yaz"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr "Lütfen asıl oyunun doğru olup olmadığını gözden geçirin."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr "Sıraya alındı"
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -219,8 +274,12 @@ msgid "Update"
msgstr "Güncelle"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "Görüntüle"
+msgid "Update All [$1]"
+msgstr "Hepsini güncelle [$1]"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr "Tarayıcı'da daha fazla bilgi edinin"
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -518,6 +577,10 @@ msgid "Scale"
msgstr "Boyut"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Ara"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "Dizin seç"
@@ -632,6 +695,21 @@ msgstr "Bir mod bir $1 olarak kurulamadı"
msgid "Unable to install a modpack as a $1"
msgstr "Bir mod paketi bir $1 olarak kurulamadı"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Yükleniyor..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "İstemci tarafı betik devre dışı"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Açık sunucu listesini tekrar etkinleştirmeyi deneyin ve internet "
+"bağlantınızı doğrulayın."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "Çevrim içi içeriğe göz at"
@@ -685,6 +763,18 @@ msgid "Credits"
msgstr "Hakkında"
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr "Kullanıcı Veri Dizinini Aç"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+"Bir dosya yöneticisi / gezgininde kullanıcı tarafından sağlanan dünyaları,\n"
+"oyunları, modları ve doku paketlerini içeren dizini açar."
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Önceki Katkıda Bulunanlar"
@@ -701,14 +791,10 @@ msgid "Bind Address"
msgstr "Bağlı Adres"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Yapılandır"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "Yaratıcı Kip"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "Hasar Etkin"
@@ -725,8 +811,8 @@ msgid "Install games from ContentDB"
msgstr "ContentDB'den oyunlar yükle"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Ad/Åžifre"
+msgid "Name"
+msgstr "Ad"
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -737,6 +823,10 @@ msgid "No world created or selected!"
msgstr "Dünya seçilmedi ya da yaratılmadı!"
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr "Parola"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Oyunu Oyna"
@@ -745,6 +835,10 @@ msgid "Port"
msgstr "Port"
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr "Mod seçin"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Dünya Seç:"
@@ -760,23 +854,23 @@ msgstr "Oyun BaÅŸlat"
msgid "Address / Port"
msgstr "Adres / Port"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "BaÄŸlan"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "Yaratıcı kip"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "Hasar etkin"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "Favoriyi Sil"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "Favori"
@@ -784,16 +878,16 @@ msgstr "Favori"
msgid "Join Game"
msgstr "Oyuna Katıl"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
-msgstr "Ad / Åžifre"
+msgstr "Ad / Parola"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "SavaÅŸ etkin"
@@ -822,10 +916,6 @@ msgid "Antialiasing:"
msgstr "Düzgünleştirme:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Tek oyunculu dünyayı sıfırlamak istediğinizden emin misiniz ?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Ekran Boyutunu Hatırla"
@@ -833,10 +923,6 @@ msgstr "Ekran Boyutunu Hatırla"
msgid "Bilinear Filter"
msgstr "Bilineer Filtre"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Tümsek Eşleme"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Tuşları değiştir"
@@ -850,10 +936,6 @@ msgid "Fancy Leaves"
msgstr "Şık Yapraklar"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Normal Eşlemeleri Üret"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mip eÅŸleme"
@@ -862,10 +944,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mip eÅŸleme + Aniso. Filtre"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "Hayır"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Filtre yok"
@@ -893,19 +971,11 @@ msgstr "Opak Yapraklar"
msgid "Opaque Water"
msgstr "Opak Su"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "Paralaks Oklüzyon"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "Parçacıklar"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Tek oyunculu dünyayı sıfırla"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Ekran:"
@@ -918,6 +988,10 @@ msgid "Shaders"
msgstr "Gölgelemeler"
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr "Gölgelendirme (deneysel)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Gölgelemeler (kullanılamaz)"
@@ -961,22 +1035,6 @@ msgstr "Dalgalanan Sıvılar"
msgid "Waving Plants"
msgstr "Dalgalanan Bitkiler"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Evet"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Modları yapılandır"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Ana"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Tek oyunculu baÅŸlat"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Bağlantı zaman aşımına uğradı."
@@ -1031,7 +1089,7 @@ msgstr "Lütfen bir ad seçin!"
#: src/client/clientlauncher.cpp
msgid "Provided password file failed to open: "
-msgstr "Sağlanan şifre dosyası açılamadı: "
+msgstr "Sağlanan parola dosyası açılamadı: "
#: src/client/clientlauncher.cpp
msgid "Provided world path doesn't exist: "
@@ -1108,7 +1166,7 @@ msgstr "Kamera güncelleme etkin"
#: src/client/game.cpp
msgid "Change Password"
-msgstr "Åžifre deÄŸiÅŸtir"
+msgstr "Parola deÄŸiÅŸtir"
#: src/client/game.cpp
msgid "Cinematic mode disabled"
@@ -1138,13 +1196,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1154,12 +1212,12 @@ msgstr ""
"- %s: sola hareket\n"
"- %s: saÄŸa hareket\n"
"- %s: zıpla/tırman\n"
+"- %s: kaz/vur\n"
+"- %s: yerleÅŸtir/kullan\n"
"- %s: sız/aşağı in\n"
"- %s: ögeyi at\n"
"- %s: envanter\n"
"- Fare: dön/bak\n"
-"- Sol fare: kaz/vur\n"
-"- SaÄŸ fare: yerleÅŸtir/kullan\n"
"- Fare tekerleği: öge seç\n"
"- %s: sohbet\n"
@@ -1292,34 +1350,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Mini harita şu anda, oyun veya mod tarafından devre dışı"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Mini harita gizli"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Radar kipinde mini harita, Yakınlaştırma x1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Radar kipinde mini harita, Yakınlaştırma x2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Radar kipinde mini harita, Yakınlaştırma x4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Yüzey kipinde mini harita, Yakınlaştırma x1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Yüzey kipinde mini harita, Yakınlaştırma x2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Yüzey kipinde mini harita, Yakınlaştırma x4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Hayalet kipi devre dışı"
@@ -1711,9 +1741,27 @@ msgstr "X Düğme 2"
msgid "Zoom"
msgstr "Yakınlaştır"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Mini harita gizli"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Radar kipinde mini harita, Yakınlaştırma x%d"
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Yüzey kipinde mini harita, Yakınlaştırma x%d"
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr "Doku kipinde mini harita"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
-msgstr "Şifreler aynı değil!"
+msgstr "Parolalar eÅŸleÅŸmiyor!"
#: src/gui/guiConfirmRegistration.cpp
msgid "Register and Join"
@@ -1731,7 +1779,7 @@ msgstr ""
"Bu sunucuya \"%s\" adıyla ilk kez katılmak üzeresiniz.\n"
"Devam ederseniz, kimlik bilgilerinizi kullanarak yeni bir hesap bu sunucuda "
"oluÅŸturulur.\n"
-"Lütfen şifrenizi tekrar yazın ve hesap oluşturmayı onaylamak için 'Kayıt Ol "
+"Lütfen parolanızı tekrar yazın ve hesap oluşturmayı onaylamak için 'Kayıt Ol "
"ve Katıl' düğmesini tıklayın veya iptal etmek için 'İptal'i tıklayın."
#: src/gui/guiFormSpecMenu.cpp
@@ -1888,15 +1936,15 @@ msgstr "DeÄŸiÅŸtir"
#: src/gui/guiPasswordChange.cpp
msgid "Confirm Password"
-msgstr "Şifreyi Doğrulayın"
+msgstr "Parolayı Doğrula"
#: src/gui/guiPasswordChange.cpp
msgid "New Password"
-msgstr "Yeni Åžifre"
+msgstr "Yeni Parola"
#: src/gui/guiPasswordChange.cpp
msgid "Old Password"
-msgstr "Eski Åžifre"
+msgstr "Eski Parola"
#: src/gui/guiVolumeChange.cpp
msgid "Exit"
@@ -1980,14 +2028,6 @@ msgstr ""
"içindir, kaba şekil için 3 sayıyı da eşit ayarlayın."
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = eğim bilgili paralaks oklüzyon (daha hızlı).\n"
-"1 = kabartma eÅŸleme (daha yavaÅŸ, daha doÄŸru)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "Sırt dağların şeklini/boyutunu denetleyen 2D gürültü."
@@ -2114,6 +2154,10 @@ msgid "ABM interval"
msgstr "ABM aralığı"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr "ABM zаman gideri"
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr "Emerge için sıralanmış blokların mutlak sınırı"
@@ -2374,10 +2418,6 @@ msgid "Builtin"
msgstr "YerleÅŸik"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Tümsek eşleme"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2456,21 +2496,6 @@ msgstr ""
"0.0 minimum, 1.0 maksimum ışık seviyesidir."
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"Ana Menü arayüzünü değiştirir:\n"
-"- Full: Çoklu tek oyunculu dünyalar, oyun seçimi, doku paketi seçici, "
-"vb.\n"
-"- Simple: Bir tek oyunculu dünya, oyun veya doku paketi seçiciler yok.\n"
-"Küçük ekranlar için gerekli olabilir."
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr "Sohbet yazı tipi boyutu"
@@ -2634,6 +2659,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "ContentDB: Kara Liste"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr "ContentDB aşırı eşzamanlı indirmeler"
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "ContentDB URL"
@@ -2700,16 +2729,24 @@ msgid "Crosshair alpha"
msgstr "Artı saydamlığı"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
-msgstr "Artı saydamlığı (solukluk, 0 ile 255 arasında)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Artı saydamlığı (solukluk, 0 ile 255 arasında).\n"
+"Ayrıca nesne artı rengini de denetler"
#: src/settings_translation_file.cpp
msgid "Crosshair color"
msgstr "Artı rengi"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "Artı rengi (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
+"Artı rengi (R,G,B).\n"
+"Ayrıca nesne artı rengini de değiştirir"
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2761,7 +2798,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Default password"
-msgstr "Öntanımlı şifre"
+msgstr "Öntanımlı parola"
#: src/settings_translation_file.cpp
msgid "Default privileges"
@@ -2814,14 +2851,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "İsteğe bağlı tepelerin ve göllerin konumunu ve arazisini belirler."
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"Dokuların örnekleme adımını tanımlar.\n"
-"Yüksek bir değer daha yumuşak normal eşlemeler verir."
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "Taban yer seviyesini belirler."
@@ -2902,6 +2931,10 @@ msgid "Desynchronize block animation"
msgstr "Blok animasyonlarını eşzamansız yap"
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr "Kazma tuÅŸu"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "Kazı parçacıkları"
@@ -2911,7 +2944,7 @@ msgstr "Hile önleme devre dışı"
#: src/settings_translation_file.cpp
msgid "Disallow empty passwords"
-msgstr "BoÅŸ ÅŸifrelere izin verme"
+msgstr "BoÅŸ parolalara izin verme"
#: src/settings_translation_file.cpp
msgid "Domain name of server, to be displayed in the serverlist."
@@ -2966,7 +2999,8 @@ msgid "Enable console window"
msgstr "Konsol penceresini etkinleÅŸtir"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "Yeni yaratılan haritalar için yaratıcı kipi etkinleştir."
#: src/settings_translation_file.cpp
@@ -3076,18 +3110,6 @@ msgid "Enables animation of inventory items."
msgstr "Envanter ögelerinin animasyonunu etkinleştirir."
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Tümsek eşlemeyi dokular için etkinleştirir. Normal eşlemelerin doku paketi "
-"tarafından sağlanması\n"
-"veya kendiliğinden üretilmesi gerekir\n"
-"Gölgelemelerin etkin olmasını gerektirir."
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "Yüz yönü döndürülmüş kafeslerin önbelleklenmesini etkinleştirir."
@@ -3097,22 +3119,6 @@ msgstr "Mini haritayı etkinleştirir."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"Çalışma anı dikey eşleme üretimini (kabartma efekti) etkinleştirir.\n"
-"Tümsek eşlemenin etkin olmasını gerektirir."
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"Paralaks oklüzyon eşlemeyi etkinleştirir.\n"
-"Gölgelemelerin etkin olmasını gerektirir."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3133,14 +3139,6 @@ msgstr "Varlık yöntemleri"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"Deneysel seçenek, 0'dan daha büyük bir sayıya ayarlandığında\n"
-"bloklar arasında görünür boşluklara neden olabilir."
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3157,8 +3155,8 @@ msgstr ""
"seviyesi oluşturur: katı bir yüzenkara katmanı için uygundur."
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "Duraklat menüsünde FPS"
+msgid "FPS when unfocused or paused"
+msgstr "Odaklanmadığında veya duraklatıldığında FPS"
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3360,8 +3358,8 @@ msgid ""
"Font size of the recent chat text and chat prompt in point (pt).\n"
"Value 0 will use the default font size."
msgstr ""
-"Son sohbet metninin ve sohbet isteminin nokta(pt) cinsinden yazı tipi boyutu."
-"\n"
+"Son sohbet metninin ve sohbet isteminin nokta(pt) cinsinden yazı tipi "
+"boyutu.\n"
"0 değer öntanımlı yazı tipi boyutunu kullanır."
#: src/settings_translation_file.cpp
@@ -3485,10 +3483,6 @@ msgid "GUI scaling filter txr2img"
msgstr "Arayüz boyutlandırma filtresi txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Normal eşlemeleri üret"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "Genel geri çağrılar"
@@ -3550,15 +3544,15 @@ msgstr "HUD açma/kapama tuşu"
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
-"Kullanım dışı lua API çağrılarının ele alınması:\n"
-"- legacy: (eski) Eski davranış taklit etmeye çalışır (öntanımlı).\n"
-"- log: (günlük) kullanım dışı çağrıları taklit eder ve günlükler (hata "
-"ayıklama için öntanımlı).\n"
-"- error: (hata) kullanım dışı çağrıların kullanımını iptal eder (mod "
+"Kullanım dışı Lua API çağrılarının ele alınması:\n"
+"- none: (yok) kullanım dışı çağrıları günlüğe kaydetmez.\n"
+"- log: (günlük) kullanım dışı çağrıları taklit eder ve geri izlemesini "
+"günlüğe kaydeder (öntanımlı).\n"
+"- error: (hata) kullanım dışı çağrılar kullanıldığında iptal eder (mod "
"geliştiricileri için önerilen)."
#: src/settings_translation_file.cpp
@@ -3914,7 +3908,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "If enabled, new players cannot join with an empty password."
-msgstr "Etkinleştirilirse, yeni oyuncular boş bir şifre ile katılamaz."
+msgstr "Etkinleştirilirse, yeni oyuncular boş bir parola ile katılamaz."
#: src/settings_translation_file.cpp
msgid ""
@@ -4082,6 +4076,10 @@ msgid "Joystick button repetition interval"
msgstr "Joystick düğmesi tekrarlama aralığı"
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr "Joystick ölü bölgesi"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "Joystick frustum duyarlılığı"
@@ -4185,6 +4183,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"Kazma tuÅŸu.\n"
+"Bakın: http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4327,6 +4335,16 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"YerleÅŸtirme tuÅŸu.\n"
+"Bakın: http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -5071,10 +5089,6 @@ msgid "Main menu script"
msgstr "Ana menü betiği"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Ana menü stili"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -5092,6 +5106,14 @@ msgid "Makes all liquids opaque"
msgstr "Tüm sıvıları opak yapar"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr "Hafıza deposu için harita sıkıştırma düzeyi"
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr "Ağ aktarma hızı için harita sıkıştırma düzeyi"
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Harita dizini"
@@ -5275,8 +5297,8 @@ msgid "Maximum FPS"
msgstr "Maksimum FPS"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
-msgstr "Oyun duraklatıldığında maksimum FPS."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
+msgstr "Pencere odaklanmadığında veya oyun duraklatıldığında en yüksek FPS."
#: src/settings_translation_file.cpp
msgid "Maximum forceloaded blocks"
@@ -5333,6 +5355,16 @@ msgstr ""
"Bu sınır her oyuncu için zorunlu kılınır."
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+"En yüksek eşzamanlı indirme sayısı.Bu sınırı aşan indirmeler sıraya "
+"alınacaktır.\n"
+"Bu curl_parallel_limit den daha az olmalıdır."
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr "Zorla yüklenen harita bloklarının maksimum sayısı."
@@ -5563,7 +5595,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "New users need to input this password."
-msgstr "Yeni kullanıcıların bu şifreyi girmesi gerekir."
+msgstr "Yeni kullanıcıların bu parolayı girmesi gerekir."
#: src/settings_translation_file.cpp
msgid "Noclip"
@@ -5586,14 +5618,6 @@ msgid "Noises"
msgstr "Gürültüler"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "Normal eşleme örnekleme"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "Normal eşleme gücü"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "Emerge iş sayısı"
@@ -5633,10 +5657,6 @@ msgstr ""
"arasında bir dengedir."
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "Paralaks oklüzyon yineleme sayısı."
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "Çevrimiçi İçerik Deposu"
@@ -5667,34 +5687,6 @@ msgstr ""
"duraklamaz."
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "Paralaks oklüzyon efektinin genel sapması, genellikle boyut/2."
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "Paralaks oklüzyon efektinin genel boyutu."
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "Paralaks oklüzyon"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "Paralaks oklüzyon sapması"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "Paralaks oklüzyon yinelemesi"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "Paralaks oklüzyon kipi"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "Paralaks oklüzyon boyutu"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5777,6 +5769,14 @@ msgid "Pitch move mode"
msgstr "EÄŸim hareket kipi"
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr "YerleÅŸtirme tuÅŸu"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr "Yerleştirme tekrarlama aralığı"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5961,10 +5961,6 @@ msgid "Right key"
msgstr "SaÄŸ tuÅŸ"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "Sağ tık tekrarlama aralığı"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "Nehir kanal derinliÄŸi"
@@ -6260,6 +6256,19 @@ msgid "Show entity selection boxes"
msgstr "Varlık seçim kutularını göster"
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Varlık seçim kutularını göster.\n"
+"Bunu deÄŸiÅŸtirdikten sonra yeniden baÅŸlatma gerekir."
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "Öntanımlı kalın yazı tipi"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "Kapatma iletisi"
@@ -6411,10 +6420,6 @@ msgid "Strength of 3D mode parallax."
msgstr "3D kipi paralaksın gücü."
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "Üretilen normal eşlemelerin gücü."
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6535,6 +6540,10 @@ msgid "The URL for the content repository"
msgstr "İçerik deposu için URL"
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr "Joystick ölü bölgesi"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6611,14 +6620,16 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
"Irrlicht için işleme arka ucu.\n"
-"Bunu deÄŸiÅŸtirdikten sonra tekrar baÅŸlatma gerekir.\n"
-"Not: Android'de, emin değilseniz OGLES1 kullanın! Başka türlü, uygulama\n"
-"başlayamayabilir. Diğer platformlarda, OpenGL önerilir ve şu anda gölgeleme\n"
-"desteği olan tek sürücüdür."
+"Bunu deÄŸiÅŸtirdikten sonra yeniden baÅŸlatma gerekir.\n"
+"Not: Android'de, emin değilseniz OGLES1 kullanın! Başka türlü, uygulama "
+"baÅŸlayamayabilir.\n"
+"Diğer platformlarda, OpenGL önerilir.\n"
+"Gölgelendiriciler OpenGL (yalnızca masaüstü) ve OGLES2 (deneysel) tarafından "
+"desteklenmektedir"
#: src/settings_translation_file.cpp
msgid ""
@@ -6654,6 +6665,14 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+"ABM'lerin her adımda yürütülmesi için izin verilen zaman gideri\n"
+"(ABM aralığının bir parçası olarak)"
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6662,13 +6681,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
-"Sağ fare tuşuna basılı tutarken tekrar eden sağ tıklar arasında saniye "
-"cinsinden\n"
-"geçen süre."
+"Yerleştirme tuşuna basılı tutarken tekrarlanan düğüm yerleşimleri arasında "
+"geçen\n"
+"saniye cinsinden süre."
#: src/settings_translation_file.cpp
msgid "The type of joystick"
@@ -6827,6 +6845,25 @@ msgstr ""
"Gamma doğruluklu küçültme desteklenmez."
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+"Öbek/Küme kenarlarını düzeltmek için çok örnekli düzgünleştirmeyi(anti-"
+"aliasing) kullanın.\n"
+"Bu işlem görüntüyü keskinleştirirken 3 boyutlu görüş alanını düzeltir.\n"
+"ama doku(texture) içindeki görüntüyü etkilemez.\n"
+"(Saydam dokularda etkisi daha belirgindir)\n"
+"Gölgelendirme kapalı ise düğüm arası(nod) boşluk görülür.\n"
+"0'da ise düzgünleştirme kapalıdır.\n"
+"Ayarları değiştirdikten sonra yenileme gereklidir."
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "Dokuları boyutlandırırken trilineer filtreleme kullan."
@@ -7064,6 +7101,12 @@ msgstr ""
"Devre dışı kılınırsa, yerine bitmap ve XML vektör yazı tipleri kullanılır."
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
"Harita bloğu başına nod doku animasyonlarının eşzamansız yapılıp "
@@ -7220,6 +7263,35 @@ msgid "Y-level of seabed."
msgstr "Deniz yatağının Y-seviyesi."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Harita kütlerini diske kaydederken kullanılacak ZLib sıkıştırma düzeyi.\n"
+"-1 - Zlib'in varsayılan sıkıştırma düzeyi\n"
+"0 - hiçbir sıkıştırma yok, en hızlı\n"
+"9 - en iyi sıkıştırma, en yavaş\n"
+"(seviye 1-3, Zlib'in \"hızlı\" , 4-9 sıradan yöntemi kullanır)"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+"Harita kütlerini istemciye(client) gönderirken kullanılacak ZLib sıkıştırma "
+"düzeyi.\n"
+"-1 - Zlib'in varsayılan sıkıştırma düzeyi\n"
+"0 - hiçbir sıkıştırma yok, en hızlı\n"
+"9 - en iyi sıkıştırma, en yavaş\n"
+"(seviye 1-3, Zlib'in \"hızlı\" , 4-9 sıradan yöntemi kullanır)"
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "cURL dosya indirme zaman aşımı"
@@ -7231,81 +7303,93 @@ msgstr "cURL paralel sınırı"
msgid "cURL timeout"
msgstr "cURL zaman aşımı"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Sinematik Aç/Kapa"
-
-#~ msgid "Select Package File:"
-#~ msgstr "Paket Dosyası Seç:"
-
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "Büyük mağaralardaki lavın üst sınırının Y'si."
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = eğim bilgili paralaks oklüzyon (daha hızlı).\n"
+#~ "1 = kabartma eÅŸleme (daha yavaÅŸ, daha doÄŸru)."
-#~ msgid "Waving Water"
-#~ msgstr "Dalgalanan Su"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "Işık tabloları için gama kodlamayı ayarlayın. Daha yüksek sayılar daha "
+#~ "aydınlıktır.\n"
+#~ "Bu ayar yalnızca istemci içindir ve sunucu tarafından yok sayılır."
-#~ msgid "Whether dungeons occasionally project from the terrain."
-#~ msgstr "Zindanların bazen araziden yansıyıp yansımayacağı."
+#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgstr ""
+#~ "Dağ-türü yüzerkaraların orta noktanın üstünde ve altında nasıl "
+#~ "konikleÅŸtiÄŸini deÄŸiÅŸtirir."
-#~ msgid "Projecting dungeons"
-#~ msgstr "İzdüşüm zindanlar"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Tek oyunculu dünyayı sıfırlamak istediğinizden emin misiniz ?"
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "Yüzenkara gölgelerinin uzanacağı Y-seviyesi."
+#~ msgid "Back"
+#~ msgstr "Geri"
-#~ msgid "Y-level of floatland midpoint and lake surface."
-#~ msgstr "Yüzenkara orta noktasının ve göl yüzeyinin Y-seviyesi."
+#~ msgid "Bump Mapping"
+#~ msgstr "Tümsek Eşleme"
-#~ msgid "Waving water"
-#~ msgstr "Dalgalanan su"
+#~ msgid "Bumpmapping"
+#~ msgstr "Tümsek eşleme"
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
-#~ msgstr ""
-#~ "Tepe yüksekliğinin ve göl derinliğinin yüzenkara düz arazide değişimi."
+#~ msgid "Center of light curve mid-boost."
+#~ msgstr "Işık eğrisi orta-artırmanın merkezi."
#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
#~ msgstr ""
-#~ "Yüzenkara dağların, orta noktanın altındaki ve üstündeki, tipik maksimum "
-#~ "yüksekliği."
-
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "Belirli diller için bu yazı tipi kullanılacak."
-
-#~ msgid "Strength of light curve mid-boost."
-#~ msgstr "Işık eğrisi orta-artırmanın kuvveti."
-
-#~ msgid "Shadow limit"
-#~ msgstr "Gölge sınırı"
+#~ "Ana Menü arayüzünü değiştirir:\n"
+#~ "- Full: Çoklu tek oyunculu dünyalar, oyun seçimi, doku paketi seçici, "
+#~ "vb.\n"
+#~ "- Simple: Bir tek oyunculu dünya, oyun veya doku paketi seçiciler yok.\n"
+#~ "Küçük ekranlar için gerekli olabilir."
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "TrueTypeFont veya bitmap konumu."
-
-#~ msgid "Lightness sharpness"
-#~ msgstr "Aydınlık keskinliği"
-
-#~ msgid "Lava depth"
-#~ msgstr "Lav derinliÄŸi"
+#~ msgid "Config mods"
+#~ msgstr "Modları yapılandır"
-#~ msgid "IPv6 support."
-#~ msgstr "IPv6 desteÄŸi."
+#~ msgid "Configure"
+#~ msgstr "Yapılandır"
-#~ msgid "Gamma"
-#~ msgstr "Gama"
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "Dağ-türü yüzenkaraların yoğunluğunu denetler.\n"
+#~ "'mgv7_np_mountain' gürültü değerine eklenen bir gürültü kaydırmadır."
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "Yazı tipi gölge saydamlığı (solukluk, 0 ve 255 arası)."
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr ""
+#~ "Tünellerin genişliğini denetler, daha küçük bir değer daha geniş tüneller "
+#~ "yaratır."
-#~ msgid "Floatland mountain height"
-#~ msgstr "Yüzenkara dağ yüksekliği"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "Artı rengi (R,G,B)."
-#~ msgid "Floatland base height noise"
-#~ msgstr "Yüzenkara taban yükseklik gürültüsü"
+#~ msgid "Darkness sharpness"
+#~ msgstr "Karanlık keskinliği"
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "Filmsel ton eÅŸlemeyi etkinleÅŸtirir"
+#~ msgid ""
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
+#~ msgstr ""
+#~ "Yüzenkara düz arazilerin alanlarını belirler.\n"
+#~ "Gürültü > 0 iken düz yüzenkaralar oluşur."
-#~ msgid "Enable VBO"
-#~ msgstr "VBO'yu etkinleÅŸtir"
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "Dokuların örnekleme adımını tanımlar.\n"
+#~ "Yüksek bir değer daha yumuşak normal eşlemeler verir."
#~ msgid ""
#~ "Deprecated, define and locate cave liquids using biome definitions "
@@ -7316,59 +7400,206 @@ msgstr "cURL zaman aşımı"
#~ "sıvılarını tanımlayın ve bulun.\n"
#~ "Büyük mağaralarda lav üst sınırının Y'si."
-#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
-#~ msgstr ""
-#~ "Yüzenkara düz arazilerin alanlarını belirler.\n"
-#~ "Gürültü > 0 iken düz yüzenkaralar oluşur."
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "$1 indiriliyor ve kuruluyor, lütfen bekleyin..."
-#~ msgid "Darkness sharpness"
-#~ msgstr "Karanlık keskinliği"
+#~ msgid "Enable VBO"
+#~ msgstr "VBO'yu etkinleÅŸtir"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgid ""
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Tünellerin genişliğini denetler, daha küçük bir değer daha geniş tüneller "
-#~ "yaratır."
+#~ "Tümsek eşlemeyi dokular için etkinleştirir. Normal eşlemelerin doku "
+#~ "paketi tarafından sağlanması\n"
+#~ "veya kendiliğinden üretilmesi gerekir\n"
+#~ "Gölgelemelerin etkin olmasını gerektirir."
+
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "Filmsel ton eÅŸlemeyi etkinleÅŸtirir"
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "Dağ-türü yüzenkaraların yoğunluğunu denetler.\n"
-#~ "'mgv7_np_mountain' gürültü değerine eklenen bir gürültü kaydırmadır."
-
-#~ msgid "Center of light curve mid-boost."
-#~ msgstr "Işık eğrisi orta-artırmanın merkezi."
+#~ "Çalışma anı dikey eşleme üretimini (kabartma efekti) etkinleştirir.\n"
+#~ "Tümsek eşlemenin etkin olmasını gerektirir."
-#~ msgid "Alters how mountain-type floatlands taper above and below midpoint."
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "Dağ-türü yüzerkaraların orta noktanın üstünde ve altında nasıl "
-#~ "konikleÅŸtiÄŸini deÄŸiÅŸtirir."
+#~ "Paralaks oklüzyon eşlemeyi etkinleştirir.\n"
+#~ "Gölgelemelerin etkin olmasını gerektirir."
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
#~ msgstr ""
-#~ "Işık tabloları için gama kodlamayı ayarlayın. Daha yüksek sayılar daha "
-#~ "aydınlıktır.\n"
-#~ "Bu ayar yalnızca istemci içindir ve sunucu tarafından yok sayılır."
+#~ "Deneysel seçenek, 0'dan daha büyük bir sayıya ayarlandığında\n"
+#~ "bloklar arasında görünür boşluklara neden olabilir."
-#~ msgid "Path to save screenshots at."
-#~ msgstr "Ekran yakalamaların kaydedileceği konum."
+#~ msgid "FPS in pause menu"
+#~ msgstr "Duraklat menüsünde FPS"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "Paralaks oklüzyon gücü"
+#~ msgid "Floatland base height noise"
+#~ msgstr "Yüzenkara taban yükseklik gürültüsü"
+
+#~ msgid "Floatland mountain height"
+#~ msgstr "Yüzenkara dağ yüksekliği"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "Yazı tipi gölge saydamlığı (solukluk, 0 ve 255 arası)."
+
+#~ msgid "Gamma"
+#~ msgstr "Gama"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Normal Eşlemeleri Üret"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Normal eşlemeleri üret"
+
+#~ msgid "IPv6 support."
+#~ msgstr "IPv6 desteÄŸi."
+
+#~ msgid "Lava depth"
+#~ msgstr "Lav derinliÄŸi"
+
+#~ msgid "Lightness sharpness"
+#~ msgstr "Aydınlık keskinliği"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "Diskte emerge sıralarının sınırı"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "$1 indiriliyor ve kuruluyor, lütfen bekleyin..."
+#~ msgid "Main"
+#~ msgstr "Ana"
-#~ msgid "Back"
-#~ msgstr "Geri"
+#~ msgid "Main menu style"
+#~ msgstr "Ana menü stili"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Radar kipinde mini harita, Yakınlaştırma x2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Radar kipinde mini harita, Yakınlaştırma x4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Yüzey kipinde mini harita, Yakınlaştırma x2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Yüzey kipinde mini harita, Yakınlaştırma x4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Ad/Åžifre"
+
+#~ msgid "No"
+#~ msgstr "Hayır"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "Normal eşleme örnekleme"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "Normal eşleme gücü"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "Paralaks oklüzyon yineleme sayısı."
#~ msgid "Ok"
#~ msgstr "Tamam"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "Paralaks oklüzyon efektinin genel sapması, genellikle boyut/2."
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "Paralaks oklüzyon efektinin genel boyutu."
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "Paralaks Oklüzyon"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "Paralaks oklüzyon"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "Paralaks oklüzyon sapması"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "Paralaks oklüzyon yinelemesi"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "Paralaks oklüzyon kipi"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Paralaks oklüzyon boyutu"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "Paralaks oklüzyon gücü"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "TrueTypeFont veya bitmap konumu."
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "Ekran yakalamaların kaydedileceği konum."
+
+#~ msgid "Projecting dungeons"
+#~ msgstr "İzdüşüm zindanlar"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Tek oyunculu dünyayı sıfırla"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Paket Dosyası Seç:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "Gölge sınırı"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Tek oyunculu baÅŸlat"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "Üretilen normal eşlemelerin gücü."
+
+#~ msgid "Strength of light curve mid-boost."
+#~ msgstr "Işık eğrisi orta-artırmanın kuvveti."
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "Belirli diller için bu yazı tipi kullanılacak."
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Sinematik Aç/Kapa"
+
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr ""
+#~ "Yüzenkara dağların, orta noktanın altındaki ve üstündeki, tipik maksimum "
+#~ "yüksekliği."
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr ""
+#~ "Tepe yüksekliğinin ve göl derinliğinin yüzenkara düz arazide değişimi."
+
+#~ msgid "View"
+#~ msgstr "Görüntüle"
+
+#~ msgid "Waving Water"
+#~ msgstr "Dalgalanan Su"
+
+#~ msgid "Waving water"
+#~ msgstr "Dalgalanan su"
+
+#~ msgid "Whether dungeons occasionally project from the terrain."
+#~ msgstr "Zindanların bazen araziden yansıyıp yansımayacağı."
+
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "Büyük mağaralardaki lavın üst sınırının Y'si."
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr "Yüzenkara orta noktasının ve göl yüzeyinin Y-seviyesi."
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "Yüzenkara gölgelerinin uzanacağı Y-seviyesi."
+
+#~ msgid "Yes"
+#~ msgstr "Evet"
diff --git a/po/uk/minetest.po b/po/uk/minetest.po
index a87362951..81b100511 100644
--- a/po/uk/minetest.po
+++ b/po/uk/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Ukrainian (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-26 10:41+0000\n"
-"Last-Translator: Maksim Gamarnik <MoNTE48@mail.ua>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-10-25 19:26+0000\n"
+"Last-Translator: Nick Naumenko <mykola.naumenko@protonmail.com>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/minetest/"
"minetest/uk/>\n"
"Language: uk\n"
@@ -13,7 +13,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.2-dev\n"
+"X-Generator: Weblate 4.3.2-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -47,10 +47,6 @@ msgstr "Повторне підключеннÑ"
msgid "The server has requested a reconnect:"
msgstr "Сервер запроÑив перез'єднаннÑ:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "ЗавантаженнÑ..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "ВерÑÑ–Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ñƒ не Ñпівпадає. "
@@ -64,12 +60,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Сервер підтримує верÑÑ–Ñ— протоколу між $1 Ñ– $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Спробуйте оновити ÑпиÑок публічних Ñерверів та перевірте Ñвоє Інтернет-"
-"з'єднаннÑ."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Ми підтримуємо тільки протокол верÑÑ–Ñ— $1."
@@ -77,7 +67,8 @@ msgstr "Ми підтримуємо тільки протокол верÑÑ–Ñ— $
msgid "We support protocol versions between version $1 and $2."
msgstr "Ми підтримуємо протокол між верÑÑ–Ñми $1 Ñ– $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -87,7 +78,8 @@ msgstr "Ми підтримуємо протокол між верÑÑ–Ñми $1
msgid "Cancel"
msgstr "СкаÑувати"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Залежить від:"
@@ -117,7 +109,7 @@ msgstr ""
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr "Знайти Більше Модів"
+msgstr "Знайти більше модів"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -161,14 +153,55 @@ msgid "enabled"
msgstr "увімкнено"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "ЗавантаженнÑ..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Ð’ÑÑ– пакунки"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "Клавіша вже викориÑтовуєтьÑÑ"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "Ðазад в Головне Меню"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "Грати (Ñервер)"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr "ContentDB не Ñ” доÑтупним коли Minetest не міÑтить підтримку cURL"
@@ -190,6 +223,16 @@ msgid "Install"
msgstr "Ð’Ñтановити"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "Ð’Ñтановити"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Ðеобов'Ñзкові залежноÑті:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Модифікації"
@@ -203,9 +246,25 @@ msgid "No results"
msgstr "Ðічого не знайдено"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "Пошук"
+#, fuzzy
+msgid "No updates"
+msgstr "Оновити"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -220,8 +279,12 @@ msgid "Update"
msgstr "Оновити"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
-msgstr "Вид"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
+msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "A world named \"$1\" already exists"
@@ -260,9 +323,8 @@ msgid "Create"
msgstr "Створити"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "ІнформаціÑ"
+msgstr "Декорації"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -374,6 +436,8 @@ msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
msgstr ""
+"Споруди, що з’ÑвлÑютьÑÑ Ð½Ð° міÑцевоÑті (не впливає на дерева та траву "
+"джунглів Ñтворені у v6)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
@@ -389,24 +453,23 @@ msgstr "Помірного ПоÑÑу, ПуÑтелі, Джунглі"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "Помірний, пуÑтелÑ, джунглі, тундра, тайга"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Terrain surface erosion"
-msgstr ""
+msgstr "Ð•Ñ€Ð¾Ð·Ñ–Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ñ– міÑцевоÑті"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "Дерева та трава джунглів"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Vary river depth"
-msgstr "Глибина великих печер"
+msgstr "Змінювати глибину річок"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "Дуже великі печери глибоко під землею"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -461,7 +524,7 @@ msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "(No description of setting given)"
-msgstr "(поÑÑÐ½ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñутнє)"
+msgstr "(поÑÑÐ½ÐµÐ½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ñутнє)"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "2D Noise"
@@ -505,23 +568,27 @@ msgstr "ПоÑтійніÑть"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a valid integer."
-msgstr "Будь-лаÑка введіть дійÑне ціле чиÑло."
+msgstr "Будь-лаÑка введіть коректне ціле чиÑло."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Please enter a valid number."
-msgstr "Будь-лаÑка введіть дійÑне чиÑло."
+msgstr "Будь-лаÑка введіть коректне чиÑло."
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Restore Default"
-msgstr "Відновити Ñк було"
+msgstr "Відновити за замовченнÑм"
#: builtin/mainmenu/dlg_settings_advanced.lua src/settings_translation_file.cpp
msgid "Scale"
msgstr "Шкала"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "Пошук"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
-msgstr "Виберіть папку"
+msgstr "Виберіть директорію"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select file"
@@ -545,7 +612,7 @@ msgstr "Ð¥"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "X spread"
-msgstr "Ð Ð¾Ð·ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾ X"
+msgstr "ÐŸÐ¾ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð¿Ð¾ X"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Y"
@@ -553,7 +620,7 @@ msgstr "Y"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Y spread"
-msgstr "Ð Ð¾Ð·ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾ Y"
+msgstr "ÐŸÐ¾ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð¿Ð¾ Y"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Z"
@@ -561,7 +628,7 @@ msgstr "Z"
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Z spread"
-msgstr "Ð Ð¾Ð·ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾ Z"
+msgstr "ÐŸÐ¾ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð¿Ð¾ Z"
#. ~ "absvalue" is a noise parameter flag.
#. It is short for "absolute value".
@@ -576,7 +643,7 @@ msgstr "ÐбÑ. величина"
#. for noise settings in main menu -> "All Settings".
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "defaults"
-msgstr "Стандартно"
+msgstr "За замовчаннÑм"
#. ~ "eased" is a noise parameter flag.
#. It is used to make the map smoother and
@@ -636,13 +703,28 @@ msgstr "Ðе вдалоÑÑ Ð²Ñтановити мод Ñк $1"
msgid "Unable to install a modpack as a $1"
msgstr "Ðе вдалоÑÑ Ð²Ñтановити модпак Ñк $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "ЗавантаженнÑ..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "КлієнтоÑторонні Ñкрипти на клієнті вимкнено"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Спробуйте оновити ÑпиÑок публічних Ñерверів та перевірте Ñвоє Інтернет-"
+"з'єднаннÑ."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
-msgstr "Шукати додатки онлайн"
+msgstr "ПереглÑнути контент у мережі"
#: builtin/mainmenu/tab_content.lua
msgid "Content"
-msgstr "Додатки"
+msgstr "Контент"
#: builtin/mainmenu/tab_content.lua
msgid "Disable Texture Pack"
@@ -682,19 +764,30 @@ msgstr "Ðктивні учаÑники"
#: builtin/mainmenu/tab_credits.lua
msgid "Core Developers"
-msgstr "Розробники двигуна"
+msgstr "Розробники Ñдра"
#: builtin/mainmenu/tab_credits.lua
msgid "Credits"
msgstr "ПодÑки"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "Виберіть директорію"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "Попередні учаÑники"
#: builtin/mainmenu/tab_credits.lua
msgid "Previous Core Developers"
-msgstr "Попередні розробники двигуна"
+msgstr "Попередні розробники Ñдра"
#: builtin/mainmenu/tab_local.lua
msgid "Announce Server"
@@ -705,16 +798,12 @@ msgid "Bind Address"
msgstr "Закріпити адреÑу"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "Ðалаштувати"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
-msgstr "ТворчіÑть"
+msgstr "Творчій режим"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
-msgstr "ПораненнÑ"
+msgstr "Увімкнути ушкодженнÑ"
#: builtin/mainmenu/tab_local.lua
msgid "Host Game"
@@ -726,11 +815,11 @@ msgstr "Сервер"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "Ð’Ñтановити ігри з ContentDB"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "Ім'Ñ/Пароль"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -741,6 +830,11 @@ msgid "No world created or selected!"
msgstr "Світ не Ñтворено або не обрано!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "Ðовий пароль"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "Грати"
@@ -749,6 +843,11 @@ msgid "Port"
msgstr "Порт"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "Виберіть Ñвіт:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "Виберіть Ñвіт:"
@@ -758,46 +857,46 @@ msgstr "Порт Ñервера"
#: builtin/mainmenu/tab_local.lua
msgid "Start Game"
-msgstr "Грати"
+msgstr "Почати гру"
#: builtin/mainmenu/tab_online.lua
msgid "Address / Port"
msgstr "ÐдреÑа / Порт"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "Під'єднатиÑÑ"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
-msgstr "ТворчіÑть"
+msgstr "Творчій режим"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
-msgstr "ПораненнÑ"
+msgstr "Ð£ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð¾"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
-msgstr "Видалити мітку"
+msgstr "Видалити з закладок"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
-msgstr "Улюблені"
+msgstr "Закладки"
#: builtin/mainmenu/tab_online.lua
msgid "Join Game"
-msgstr "Мережа"
+msgstr "Під'єднатиÑÑ Ð´Ð¾ гри"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "Ім'Ñ / Пароль"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Пінг"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "Бої увімкнено"
@@ -807,7 +906,7 @@ msgstr "2x"
#: builtin/mainmenu/tab_settings.lua
msgid "3D Clouds"
-msgstr "Об'ємні хмари"
+msgstr "3D хмари"
#: builtin/mainmenu/tab_settings.lua
msgid "4x"
@@ -826,10 +925,6 @@ msgid "Antialiasing:"
msgstr "ЗгладжуваннÑ:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "Ви впевнені, що бажаєте Ñкинути Ñвій Ñвіт одиночної гри?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "Зберігати розмір вікна"
@@ -837,27 +932,19 @@ msgstr "Зберігати розмір вікна"
msgid "Bilinear Filter"
msgstr "Білінійна фільтраціÑ"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "Бамп маппінг"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "Змінити клавіші"
#: builtin/mainmenu/tab_settings.lua
msgid "Connected Glass"
-msgstr "З'єднувати Ñкло"
+msgstr "З'єднане Ñкло"
#: builtin/mainmenu/tab_settings.lua
msgid "Fancy Leaves"
msgstr "Гарне лиÑÑ‚Ñ"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "Генерувати мапи нормалів"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Міпмапи"
@@ -866,10 +953,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Міпмапи і анізотропний фільтр"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "ÐÑ–"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "Без фільтрації"
@@ -897,19 +980,11 @@ msgstr "Ðепрозоре лиÑÑ‚Ñ"
msgid "Opaque Water"
msgstr "Ðепрозора вода"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "ПаралакÑова оклюзіÑ"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "ЧаÑточки"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "Скинути Ñвіт одиночної гри"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "Екран:"
@@ -922,6 +997,11 @@ msgid "Shaders"
msgstr "Шейдери"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "ВиÑÑчі оÑтрови"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "Шейдери (недоÑтупно)"
@@ -965,22 +1045,6 @@ msgstr "ХвилÑÑті Рідини"
msgid "Waving Plants"
msgstr "Коливати квіти"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "Так"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "Ðалаштувати модифікації"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "Головне Меню"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "Почати одиночну гру"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "Ð§Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð¹ÑˆÐ¾Ð²."
@@ -1023,7 +1087,7 @@ msgstr "Головне Меню"
#: src/client/clientlauncher.cpp
msgid "No world selected and no address provided. Nothing to do."
-msgstr "Жоден Ñвіт не вибрано та не надано адреÑи. Ðічого робити."
+msgstr "Жоден Ñвіт не вибрано та не надано адреÑи. Ðемає чого робити."
#: src/client/clientlauncher.cpp
msgid "Player name too long."
@@ -1071,11 +1135,11 @@ msgstr "- ТворчіÑть: "
#: src/client/game.cpp
msgid "- Damage: "
-msgstr "- ПораненнÑ: "
+msgstr "- УшкодженнÑ: "
#: src/client/game.cpp
msgid "- Mode: "
-msgstr "- Тип: "
+msgstr "- Режим: "
#: src/client/game.cpp
msgid "- Port: "
@@ -1135,20 +1199,20 @@ msgid "Continue"
msgstr "Продовжити"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1163,7 +1227,7 @@ msgstr ""
"- %s: інвентар\n"
"- Мишка: поворот/дивитиÑÑ\n"
"- Ліва кнопка миші: копати/удар\n"
-"- Права кнопка миші: поÑтавити/зробити\n"
+"- Права кнопка миші: поÑтавити/викориÑтати\n"
"- КолеÑо миші: вибір предмета\n"
"- %s: чат\n"
@@ -1296,34 +1360,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "Мінімапа вимкнена грою або модифікацією"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "Мінімапа вимкнена"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "Мінімапа в режимі радар. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…1"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "Мінімапа в режимі радар. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…2"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "Мінімапа в режимі радар. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…4"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "Мінімапа в режимі поверхнÑ. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…1"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "Мінімапа в режимі поверхнÑ. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…2"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "Мінімапа в режимі поверхнÑ. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…4"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "Прохід крізь Ñтіни вимкнено"
@@ -1385,11 +1421,11 @@ msgstr "Звук вимкнено"
#: src/client/game.cpp
msgid "Sound system is disabled"
-msgstr ""
+msgstr "Звукова ÑиÑтема вимкнена"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "Звукова ÑиÑтема не підтримуєтьÑÑ Ñƒ цій збірці"
#: src/client/game.cpp
msgid "Sound unmuted"
@@ -1618,9 +1654,8 @@ msgid "Numpad 9"
msgstr "Num 9"
#: src/client/keycode.cpp
-#, fuzzy
msgid "OEM Clear"
-msgstr "ПочиÑтити OEM"
+msgstr "ОчиÑтити OEM"
#: src/client/keycode.cpp
msgid "Page down"
@@ -1716,6 +1751,25 @@ msgstr "Додаткова кнопка 2"
msgid "Zoom"
msgstr "Збільшити"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "Мінімапа вимкнена"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "Мінімапа в режимі радар. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…1"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "Мінімапа в режимі поверхнÑ. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…1"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "Мінімапа в режимі поверхнÑ. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…1"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "Паролі не збігаютьÑÑ!"
@@ -1855,7 +1909,7 @@ msgstr "Спеціальна"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle HUD"
-msgstr "Увімкнути HUD"
+msgstr "Увімкнути позначки на екрані"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle chat log"
@@ -1961,6 +2015,14 @@ msgid ""
"situations.\n"
"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes."
msgstr ""
+"(X,Y,Z) Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ„Ñ€Ð°ÐºÑ‚Ð°Ð»Ñƒ від центру Ñвіта у одиницÑÑ… 'маÑшабу'. \n"
+"ВикориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ñ— точки до (0, 0) щоб \n"
+"Ñтворити придатну точку Ð¿ÐµÑ€ÐµÑ€Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ Ð´Ð»Ñ 'наближеннÑ' \n"
+"до бажаної точки шлÑхом Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ 'маÑштабу'. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° \n"
+"замовчаннÑм налаштоване Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð´Ð°Ñ‚Ð½Ð¾Ñ— точки Ð¿ÐµÑ€ÐµÑ€Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ \n"
+"Ð´Ð»Ñ Ð¼Ð½Ð¾Ð¶Ð¸Ð½ Мандельбро з параметрами за замовчаннÑм; може \n"
+"потребувати зміни у інших ÑитуаціÑÑ…. Діапазон приблизно від -2 \n"
+"до 2. Помножте на 'маÑштаб' щоб отримати Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ блоках."
#: src/settings_translation_file.cpp
msgid ""
@@ -1972,42 +2034,41 @@ msgid ""
"Default is for a vertically-squashed shape suitable for\n"
"an island, set all 3 numbers equal for the raw shape."
msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = Ñ‚ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ñ–Ñ \"parallax occlusion\" з інформацією про криві (швидше).\n"
-"1 = Ñ‚ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ñ–Ñ \"relief mapping\" (повільніше, більш акуратніше)."
+"(X,Y,Z) маÑштаб фракталу у блоках.\n"
+"Фактичний розмір фракталу буде у 2-3 рази більшим. Ці \n"
+"чиÑла можуть бути дуже великими, фрактал не обов'Ñзково \n"
+"має поміÑтитиÑÑ Ñƒ Ñвіті. Збільшіть Ñ—Ñ… щоб 'наблизити' деталі \n"
+"фракталу. ЧиÑла за замовчаннÑм підходÑть Ð´Ð»Ñ Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾ \n"
+"ÑтиÑненої форми, придатної Ð´Ð»Ñ Ð¾Ñтрова, вÑтановіть уÑÑ– три \n"
+"чиÑла рівними Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð¸ без транÑформації."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
-msgstr ""
+msgstr "2D шум що контролює форму/розмір гребенів гір."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of rolling hills."
-msgstr ""
+msgstr "2D шум що контролює форму/розмір невиÑоких пагорбів."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of step mountains."
-msgstr ""
+msgstr "2D шум що контролює форму/розмір ÑтупінчаÑтих гір."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the size/occurrence of ridged mountain ranges."
-msgstr ""
+msgstr "2D шум що контролює розмір/імовірніÑть гребенів гірÑьких маÑивів."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the size/occurrence of rolling hills."
-msgstr ""
+msgstr "2D шум що контролює розмір/імовірніÑть невиÑоких пагорбів."
#: src/settings_translation_file.cpp
msgid "2D noise that controls the size/occurrence of step mountain ranges."
-msgstr ""
+msgstr "2D шум що контролює розмір/імовірніÑть ÑтупінчаÑтих гір."
#: src/settings_translation_file.cpp
msgid "2D noise that locates the river valleys and channels."
-msgstr ""
+msgstr "2D шум що розміщує долини та руÑла річок."
#: src/settings_translation_file.cpp
msgid "3D clouds"
@@ -2019,17 +2080,19 @@ msgstr "3D режим"
#: src/settings_translation_file.cpp
msgid "3D mode parallax strength"
-msgstr ""
+msgstr "Величина паралакÑу у 3D режимі"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
-msgstr ""
+msgstr "3D шум що визначає гігантÑькі каверни."
#: src/settings_translation_file.cpp
msgid ""
"3D noise defining mountain structure and height.\n"
"Also defines structure of floatland mountain terrain."
msgstr ""
+"3D шум що визначає Ñтруктуру та виÑоті гір. \n"
+"Також визначає Ñтруктуру виÑÑчих оÑтровів."
#: src/settings_translation_file.cpp
msgid ""
@@ -2038,22 +2101,26 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
+"3D шум що визначає Ñтруктуру виÑÑчих оÑтровів.\n"
+"Якщо змінити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° замовчанÑм, 'маÑштаб' шуму (0.7 за замовчаннÑм)\n"
+"може потребувати корекції, оÑкільки Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ ÐºÐ¾Ð½Ñ–Ñ‡Ð½Ð¾Ñ— транформації виÑÑчих\n"
+"оÑтровів має діапазон значень приблизно від -2.0 до 2.0."
#: src/settings_translation_file.cpp
msgid "3D noise defining structure of river canyon walls."
-msgstr ""
+msgstr "3D шум що визначає Ñтруктуру Ñтін каньйонів річок."
#: src/settings_translation_file.cpp
msgid "3D noise defining terrain."
-msgstr ""
+msgstr "3D шум що визначає міÑцевіÑть."
#: src/settings_translation_file.cpp
msgid "3D noise for mountain overhangs, cliffs, etc. Usually small variations."
-msgstr ""
+msgstr "3D шум Ð´Ð»Ñ Ð²Ð¸Ñтупів гір, Ñкель та ін. Зазвичай невеликі варіації."
#: src/settings_translation_file.cpp
msgid "3D noise that determines number of dungeons per mapchunk."
-msgstr ""
+msgstr "3D шум що визначає кількіÑть підземель на фрагмент карти."
#: src/settings_translation_file.cpp
msgid ""
@@ -2068,52 +2135,70 @@ msgid ""
"- pageflip: quadbuffer based 3d.\n"
"Note that the interlaced mode requires shaders to be enabled."
msgstr ""
+"Підтримка 3D.\n"
+"Зараз підтримуютьÑÑ:\n"
+"- none: 3d вимкнено.\n"
+"- anaglyph: 3d з блакитно-пурпурними кольорами.\n"
+"- interlaced: підтримка полÑрізаційних екранів з непарними/парним "
+"лініÑми.\n"
+"- topbottom: поділ екрану вертикально.\n"
+"- sidebyside: поділ екрану горизонтально.\n"
+"- crossview: 3d на оÑнові автоÑтереограми.\n"
+"- pageflip: 3d на оÑнові quadbuffer.\n"
+"Зверніть увагу що режим interlaced потребує Ð²Ð²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ ÑˆÐµÐ¹Ð´ÐµÑ€Ñ–Ð²."
#: src/settings_translation_file.cpp
msgid ""
"A chosen map seed for a new map, leave empty for random.\n"
"Will be overridden when creating a new world in the main menu."
msgstr ""
+"Вибране зерно карти Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ñ— карти, залиште порожнім Ð´Ð»Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÐ¾Ð²Ð¾ "
+"вибраного чиÑла.\n"
+"Буде проігноровано Ñкщо новий Ñвіт ÑтворюєтьÑÑ Ð· головного меню."
#: src/settings_translation_file.cpp
msgid "A message to be displayed to all clients when the server crashes."
-msgstr ""
+msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‰Ð¾ показуєтьÑÑ ÑƒÑім клієнтам Ñкщо Ñервер зазнає збою."
#: src/settings_translation_file.cpp
msgid "A message to be displayed to all clients when the server shuts down."
-msgstr ""
+msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‰Ð¾ показуєтьÑÑ ÑƒÑім клієнтам при вимкненні Ñерверу."
#: src/settings_translation_file.cpp
msgid "ABM interval"
msgstr "Інтервал ABM"
#: src/settings_translation_file.cpp
-msgid "Absolute limit of queued blocks to emerge"
+msgid "ABM time budget"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Absolute limit of queued blocks to emerge"
+msgstr "ÐбÑолютний ліміт Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑ–Ð² з черги"
+
+#: src/settings_translation_file.cpp
msgid "Acceleration in air"
-msgstr ""
+msgstr "ПриÑÐºÐ¾Ñ€ÐµÐ½Ð½Ñ Ñƒ повітрі"
#: src/settings_translation_file.cpp
msgid "Acceleration of gravity, in nodes per second per second."
-msgstr ""
+msgstr "ПриÑÐºÐ¾Ñ€ÐµÐ½Ð½Ñ Ð³Ñ€Ð°Ð²Ñ–Ñ‚Ð°Ñ†Ñ–Ñ—, у блоках на Ñекунду у квадраті."
#: src/settings_translation_file.cpp
msgid "Active Block Modifiers"
-msgstr ""
+msgstr "Модифікатори активних блоків"
#: src/settings_translation_file.cpp
msgid "Active block management interval"
-msgstr ""
+msgstr "Інтервал ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ð¼ блоком"
#: src/settings_translation_file.cpp
msgid "Active block range"
-msgstr ""
+msgstr "Діапазон активних блоків"
#: src/settings_translation_file.cpp
msgid "Active object send range"
-msgstr ""
+msgstr "Діапазон Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ñ… блоків"
#: src/settings_translation_file.cpp
msgid ""
@@ -2121,6 +2206,9 @@ msgid ""
"Leave this blank to start a local server.\n"
"Note that the address field in the main menu overrides this setting."
msgstr ""
+"ÐдреÑа Ð´Ð»Ñ Ð¿Ñ€Ð¸Ñ”Ð´Ð½Ð°Ð½Ð½Ñ.\n"
+"Залиште порожнім щоб запуÑтити локальний Ñервер.\n"
+"Зауважте що поле адреÑи у головному меню має пріоритет над цим налаштуваннÑм."
#: src/settings_translation_file.cpp
msgid "Adds particles when digging a node."
@@ -2323,10 +2411,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "Бамп-маппінг"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2397,19 +2481,8 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat font size"
-msgstr "Розмір шрифту"
+msgstr "Розмір шрифту чату"
#: src/settings_translation_file.cpp
msgid "Chat key"
@@ -2560,6 +2633,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "Додатки"
@@ -2617,7 +2694,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2625,7 +2704,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2728,12 +2809,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2804,6 +2879,11 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "Права клавіша"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "ЧаÑточки при копанні"
@@ -2864,7 +2944,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2952,14 +3032,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2969,18 +3041,6 @@ msgstr "Вмикає мінімапу."
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2997,12 +3057,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3012,8 +3066,9 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr ""
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "МакÑимум FPS при паузі."
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3315,10 +3370,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "Генерувати карти нормалів"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3372,8 +3423,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3841,6 +3892,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3921,6 +3976,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4020,6 +4082,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4576,10 +4645,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "Стиль головного меню"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4593,6 +4658,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "Тека мапи"
@@ -4763,7 +4836,7 @@ msgstr "МакÑимальна кількіÑть кадрів в Ñекунду
#: src/settings_translation_file.cpp
#, fuzzy
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "МакÑимум FPS при паузі."
#: src/settings_translation_file.cpp
@@ -4812,6 +4885,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -5041,14 +5121,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5074,10 +5146,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5103,34 +5171,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "ПаралакÑова оклюзіÑ"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "Ступінь паралакÑової оклюзії"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5197,6 +5237,15 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "Кнопка Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ¾Ñ‚Ñƒ"
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5353,10 +5402,6 @@ msgid "Right key"
msgstr "Права клавіша"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "River channel depth"
msgstr "Глибина великих печер"
@@ -5611,6 +5656,19 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"Вказати мову. Залиште порожнім, щоб викориÑтовувати ÑиÑтемну мову.\n"
+"Потрібен перезапуÑк піÑÐ»Ñ Ñ†Ñ–Ñ”Ñ— зміни."
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5740,10 +5798,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5837,6 +5891,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5895,8 +5953,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5922,15 +5980,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6066,6 +6129,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6272,6 +6346,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6394,6 +6474,24 @@ msgid "Y-level of seabed."
msgstr "Y-Рівень морÑького дна."
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
@@ -6405,29 +6503,102 @@ msgstr ""
msgid "cURL timeout"
msgstr ""
-#~ msgid "Toggle Cinematic"
-#~ msgstr "Кінематографічний режим"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = Ñ‚ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ñ–Ñ \"parallax occlusion\" з інформацією про криві (швидше).\n"
+#~ "1 = Ñ‚ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ñ–Ñ \"relief mapping\" (повільніше, більш акуратніше)."
+
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "Ви впевнені, що бажаєте Ñкинути Ñвій Ñвіт одиночної гри?"
+
+#~ msgid "Back"
+#~ msgstr "Ðазад"
+
+#~ msgid "Bump Mapping"
+#~ msgstr "Бамп-маппінг"
+
+#~ msgid "Bumpmapping"
+#~ msgstr "Бамп-маппінг"
+
+#~ msgid "Config mods"
+#~ msgstr "Ðалаштувати модифікації"
+
+#~ msgid "Configure"
+#~ msgstr "Ðалаштувати"
#~ msgid "Content Store"
#~ msgstr "Додатки"
-#~ msgid "Select Package File:"
-#~ msgstr "Виберіть файл пакунку:"
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ– вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ $1, зачекайте..."
-#~ msgid "Lava depth"
-#~ msgstr "Глибина лави"
+#~ msgid "Enable VBO"
+#~ msgstr "Увімкнути VBO"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "Генерувати мапи нормалів"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "Генерувати карти нормалів"
#~ msgid "IPv6 support."
#~ msgstr "Підтримка IPv6."
-#~ msgid "Enable VBO"
-#~ msgstr "Увімкнути VBO"
+#~ msgid "Lava depth"
+#~ msgstr "Глибина лави"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ– вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ $1, зачекайте..."
+#~ msgid "Main"
+#~ msgstr "Головне Меню"
-#~ msgid "Back"
-#~ msgstr "Ðазад"
+#~ msgid "Main menu style"
+#~ msgstr "Стиль головного меню"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "Мінімапа в режимі радар. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…2"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "Мінімапа в режимі радар. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…4"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "Мінімапа в режимі поверхнÑ. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…2"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "Мінімапа в режимі поверхнÑ. ÐÐ°Ð±Ð»Ð¸Ð¶ÐµÐ½Ð½Ñ Ñ…4"
+
+#~ msgid "Name/Password"
+#~ msgstr "Ім'Ñ/Пароль"
+
+#~ msgid "No"
+#~ msgstr "ÐÑ–"
#~ msgid "Ok"
#~ msgstr "Добре"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "ПаралакÑова оклюзіÑ"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "ПаралакÑова оклюзіÑ"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "Ступінь паралакÑової оклюзії"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "Скинути Ñвіт одиночної гри"
+
+#~ msgid "Select Package File:"
+#~ msgstr "Виберіть файл пакунку:"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "Почати одиночну гру"
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "Кінематографічний режим"
+
+#~ msgid "View"
+#~ msgstr "Вид"
+
+#~ msgid "Yes"
+#~ msgstr "Так"
diff --git a/po/vi/minetest.po b/po/vi/minetest.po
index f2574e132..1238015ec 100644
--- a/po/vi/minetest.po
+++ b/po/vi/minetest.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Vietnamese (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
"PO-Revision-Date: 2020-06-13 21:08+0000\n"
"Last-Translator: darkcloudcat <leducthn@gmail.com>\n"
"Language-Team: Vietnamese <https://hosted.weblate.org/projects/minetest/"
@@ -46,10 +46,6 @@ msgstr "Kết nối lại"
msgid "The server has requested a reconnect:"
msgstr "Máy chủ đã yêu cầu kết nối lại:"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "Äang tải..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "Phiên bản giao thức không khớp "
@@ -63,12 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "Máy chủ hỗ trợ các phiên bản giao thức trong khoảng từ $1 đến $2. "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr ""
-"Hãy thử kích hoạt lại danh sách máy chủ công cộng và kiểm tra kết nối "
-"internet của bạn."
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "Chúng tôi chỉ hỗ trợ phiên bản giao thức $1."
@@ -76,7 +66,8 @@ msgstr "Chúng tôi chỉ hỗ trợ phiên bản giao thức $1."
msgid "We support protocol versions between version $1 and $2."
msgstr "Chúng tôi hỗ trợ các phiên bản giao thức giữa phiên bản $1 đến $2."
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -86,7 +77,8 @@ msgstr "Chúng tôi hỗ trợ các phiên bản giao thức giữa phiên bản
msgid "Cancel"
msgstr "Há»§y bá»"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "Phụ thuộc:"
@@ -163,14 +155,53 @@ msgid "enabled"
msgstr "kích hoạt"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "Äang tải..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "Tất cả các gói"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Already installed"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Base Game:"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
msgstr ""
@@ -193,6 +224,15 @@ msgid "Install"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Install $1"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "Phụ thuá»™c tùy chá»n:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mod"
@@ -206,8 +246,23 @@ msgid "No results"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
+msgid "No updates"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
@@ -223,7 +278,11 @@ msgid "Update"
msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -518,6 +577,10 @@ msgid "Scale"
msgstr ""
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr ""
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr ""
@@ -632,6 +695,20 @@ msgstr ""
msgid "Unable to install a modpack as a $1"
msgstr ""
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "Äang tải..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Public server list is disabled"
+msgstr ""
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr ""
+"Hãy thử kích hoạt lại danh sách máy chủ công cộng và kiểm tra kết nối "
+"internet của bạn."
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr ""
@@ -685,6 +762,16 @@ msgid "Credits"
msgstr ""
#: builtin/mainmenu/tab_credits.lua
+msgid "Open User Data Directory"
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr ""
@@ -701,14 +788,10 @@ msgid "Bind Address"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr ""
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr ""
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr ""
@@ -725,7 +808,7 @@ msgid "Install games from ContentDB"
msgstr ""
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
+msgid "Name"
msgstr ""
#: builtin/mainmenu/tab_local.lua
@@ -737,6 +820,10 @@ msgid "No world created or selected!"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Password"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr ""
@@ -745,6 +832,10 @@ msgid "Port"
msgstr ""
#: builtin/mainmenu/tab_local.lua
+msgid "Select Mods"
+msgstr ""
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr ""
@@ -760,23 +851,23 @@ msgstr ""
msgid "Address / Port"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr ""
@@ -784,16 +875,16 @@ msgstr ""
msgid "Join Game"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr ""
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr ""
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr ""
@@ -822,10 +913,6 @@ msgid "Antialiasing:"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr ""
@@ -833,10 +920,6 @@ msgstr ""
msgid "Bilinear Filter"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr ""
@@ -850,10 +933,6 @@ msgid "Fancy Leaves"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr ""
@@ -862,10 +941,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr ""
@@ -893,19 +968,11 @@ msgstr ""
msgid "Opaque Water"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr ""
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr ""
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr ""
@@ -918,6 +985,10 @@ msgid "Shaders"
msgstr ""
#: builtin/mainmenu/tab_settings.lua
+msgid "Shaders (experimental)"
+msgstr ""
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr ""
@@ -961,22 +1032,6 @@ msgstr ""
msgid "Waving Plants"
msgstr ""
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr ""
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr ""
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr ""
@@ -1136,13 +1191,13 @@ msgid ""
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1264,34 +1319,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr ""
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr ""
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr ""
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr ""
@@ -1683,6 +1710,24 @@ msgstr ""
msgid "Zoom"
msgstr ""
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+#, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr ""
+
+#: src/client/minimap.cpp
+msgid "Minimap in texture mode"
+msgstr ""
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr ""
@@ -1927,12 +1972,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr ""
@@ -2039,6 +2078,10 @@ msgid "ABM interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
msgstr ""
@@ -2272,10 +2315,6 @@ msgid "Builtin"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2346,16 +2385,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Chat font size"
msgstr ""
@@ -2507,6 +2536,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr ""
@@ -2563,7 +2596,9 @@ msgid "Crosshair alpha"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2571,7 +2606,9 @@ msgid "Crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2671,12 +2708,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr ""
@@ -2747,6 +2778,10 @@ msgid "Desynchronize block animation"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Dig key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr ""
@@ -2807,7 +2842,7 @@ msgid "Enable console window"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+msgid "Enable creative mode for all players"
msgstr ""
#: src/settings_translation_file.cpp
@@ -2895,14 +2930,6 @@ msgid "Enables animation of inventory items."
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr ""
@@ -2912,18 +2939,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -2940,12 +2955,6 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -2955,7 +2964,7 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
+msgid "FPS when unfocused or paused"
msgstr ""
#: src/settings_translation_file.cpp
@@ -3257,10 +3266,6 @@ msgid "GUI scaling filter txr2img"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr ""
@@ -3314,8 +3319,8 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
@@ -3782,6 +3787,10 @@ msgid "Joystick button repetition interval"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Joystick deadzone"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr ""
@@ -3862,6 +3871,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -3961,6 +3977,13 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -4517,10 +4540,6 @@ msgid "Main menu script"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr ""
@@ -4534,6 +4553,14 @@ msgid "Makes all liquids opaque"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr ""
@@ -4697,7 +4724,7 @@ msgid "Maximum FPS"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr ""
#: src/settings_translation_file.cpp
@@ -4746,6 +4773,13 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr ""
@@ -4975,14 +5009,6 @@ msgid "Noises"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr ""
@@ -5008,10 +5034,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5037,34 +5059,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr ""
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5130,6 +5124,14 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "Place key"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Place repetition interval"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5285,10 +5287,6 @@ msgid "Right key"
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr ""
@@ -5540,6 +5538,16 @@ msgid "Show entity selection boxes"
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr ""
@@ -5669,10 +5677,6 @@ msgid "Strength of 3D mode parallax."
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr ""
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -5766,6 +5770,10 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -5824,8 +5832,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -5851,15 +5859,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -5995,6 +6008,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6197,6 +6221,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -6319,6 +6349,24 @@ msgid "Y-level of seabed."
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr ""
diff --git a/po/zh_CN/minetest.po b/po/zh_CN/minetest.po
index 80f2d86fa..aa816e11d 100644
--- a/po/zh_CN/minetest.po
+++ b/po/zh_CN/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Chinese (Simplified) (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-06-13 21:08+0000\n"
-"Last-Translator: ferrumcccp <wushuzhen1975@icloud.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2021-01-20 15:10+0000\n"
+"Last-Translator: ZhiZe-ZG <qi_wang_zz@outlook.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"minetest/minetest/zh_Hans/>\n"
"Language: zh_CN\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.1-dev\n"
+"X-Generator: Weblate 4.5-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -24,7 +24,7 @@ msgstr "您已死亡"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
msgid "OK"
-msgstr ""
+msgstr "OK"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -46,10 +46,6 @@ msgstr "釿–°è¿žæŽ¥"
msgid "The server has requested a reconnect:"
msgstr "æœåŠ¡å™¨å·²è¯·æ±‚é‡æ–°è¿žæŽ¥ï¼š"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "载入中..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "å议版本ä¸åŒ¹é…。 "
@@ -63,10 +59,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "æœåŠ¡å™¨æ”¯æŒå议版本为 $1 至 $2。 "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr "请å°è¯•釿–°å¯ç”¨å…¬å…±æœåŠ¡å™¨åˆ—è¡¨å¹¶æ£€æŸ¥æ‚¨çš„ç½‘ç»œè¿žæŽ¥ã€‚"
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "æˆ‘ä»¬åªæ”¯æŒå议版本 $1。"
@@ -74,7 +66,8 @@ msgstr "æˆ‘ä»¬åªæ”¯æŒå议版本 $1。"
msgid "We support protocol versions between version $1 and $2."
msgstr "我们支æŒçš„å议版本为 $1 至 $2。"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -84,7 +77,8 @@ msgstr "我们支æŒçš„å议版本为 $1 至 $2。"
msgid "Cancel"
msgstr "å–æ¶ˆ"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "ä¾èµ–项:"
@@ -112,7 +106,7 @@ msgstr "无法å¯ç”¨ mod \"$1\"ï¼šå› ä¸ºåŒ…å«æœ‰ä¸æ”¯æŒçš„字符。åªå…许
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "寻找更多mod"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -156,21 +150,61 @@ msgid "enabled"
msgstr "å¯ç”¨"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "下载中..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "所有包"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "按键已被å ç”¨"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "返回主èœå•"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "ä¸»æŒæ¸¸æˆ"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "在没有cURL的情况下编译Minetest时,ContentDBä¸å¯ç”¨"
#: builtin/mainmenu/dlg_contentstore.lua
-#, fuzzy
msgid "Downloading..."
-msgstr "载入中..."
+msgstr "下载中..."
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Failed to download $1"
@@ -186,6 +220,16 @@ msgid "Install"
msgstr "安装"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "安装"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "å¯é€‰ä¾èµ–项:"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mod"
@@ -199,9 +243,26 @@ msgid "No results"
msgstr "无结果"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "æœç´¢"
+#, fuzzy
+msgid "No updates"
+msgstr "æ›´æ–°"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Not found"
+msgstr "é™éŸ³"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -216,7 +277,11 @@ msgid "Update"
msgstr "æ›´æ–°"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -225,45 +290,39 @@ msgstr "å为 \"$1\" 的世界已ç»å­˜åœ¨"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Additional terrain"
-msgstr ""
+msgstr "é¢å¤–地形"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
msgstr "高地寒冷"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Altitude dry"
-msgstr "高地寒冷"
+msgstr "高地干燥"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biome blending"
-msgstr "生物群系噪声"
+msgstr "生物群系èžåˆ"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Biomes"
-msgstr "生物群系噪声"
+msgstr "生物群系"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caverns"
-msgstr "大型洞穴噪声"
+msgstr "大型洞穴"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Caves"
-msgstr "八音"
+msgstr "æ´žç©´"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Create"
msgstr "创建"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Decorations"
-msgstr "迭代"
+msgstr "装饰"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Download a game, such as Minetest Game, from minetest.net"
@@ -274,51 +333,48 @@ msgid "Download one from minetest.net"
msgstr "从 minetest.net 下载一个"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Dungeons"
-msgstr "地窖噪声"
+msgstr "地窖"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Flat terrain"
-msgstr ""
+msgstr "å¹³å¦åœ°å½¢"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Floating landmasses in the sky"
-msgstr ""
+msgstr "空中漂浮的陆地"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Floatlands (experimental)"
-msgstr "水级别"
+msgstr "悬空岛(实验性)"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Game"
-msgstr "游æˆ"
+msgstr "å­æ¸¸æˆ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Generate non-fractal terrain: Oceans and underground"
-msgstr ""
+msgstr "生æˆéžåˆ†å½¢åœ°å½¢ï¼šæµ·æ´‹å’Œåœ°åº•"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "丘陵"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Humid rivers"
-msgstr "视频驱动程åº"
+msgstr "潮湿河æµ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "增加河æµå‘¨è¾¹æ¹¿åº¦"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "æ¹–"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "低湿度和高温导致浅而干燥的河æµ"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -329,22 +385,20 @@ msgid "Mapgen flags"
msgstr "地图生æˆå™¨æ ‡å¿—"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mapgen-specific flags"
-msgstr "地图生æˆå™¨ v5 标签"
+msgstr "地图生æˆå™¨ä¸“用标签"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Mountains"
-msgstr "山噪声"
+msgstr "å±±"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "æ³¥æµ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "通é“和洞穴网络"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
@@ -352,20 +406,19 @@ msgstr "未选择游æˆ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces heat with altitude"
-msgstr ""
+msgstr "éšæµ·æ‹”高度é™ä½Žçƒ­é‡"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Reduces humidity with altitude"
-msgstr ""
+msgstr "éšæµ·æ‹”高度é™ä½Žæ¹¿åº¦"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Rivers"
-msgstr "æ²³æµå¤§å°"
+msgstr "æ²³æµ"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "æµ·å¹³é¢æ²³æµ"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -374,52 +427,49 @@ msgstr "ç§å­"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "生物群è½ä¹‹é—´çš„平滑过渡"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
-msgstr ""
+msgstr "出现在地形上的结构(对v6åˆ›å»ºçš„æ ‘æœ¨å’Œä¸›æž—è‰æ²¡æœ‰å½±å“)"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "出现在地形上的结构,通常是树木和æ¤ç‰©"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert"
-msgstr ""
+msgstr "温带,沙漠"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
-msgstr ""
+msgstr "温带,沙漠,丛林"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle, Tundra, Taiga"
-msgstr ""
+msgstr "温带,沙漠,丛林,苔原,泰加林带"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Terrain surface erosion"
-msgstr "地形高度"
+msgstr "地形表é¢è…烂"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Trees and jungle grass"
-msgstr ""
+msgstr "树木和丛林è‰"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Vary river depth"
-msgstr "æ²³æµæ·±åº¦"
+msgstr "å˜åŒ–æ²³æµæ·±åº¦"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "地下深处的大型洞穴"
#: builtin/mainmenu/dlg_create_world.lua
-#, fuzzy
msgid "Warning: The Development Test is meant for developers."
-msgstr "警告: 最å°åŒ–开呿µ‹è¯•是为开å‘者æä¾›çš„。"
+msgstr "è­¦å‘Šï¼šå¼€å‘æµ‹è¯•是为开å‘者æä¾›çš„。"
#: builtin/mainmenu/dlg_create_world.lua
msgid "World name"
@@ -527,6 +577,10 @@ msgid "Scale"
msgstr "比例"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "æœç´¢"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "选择目录"
@@ -641,6 +695,19 @@ msgstr "无法将$1安装为mod"
msgid "Unable to install a modpack as a $1"
msgstr "无法将$1安装为mod包"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "载入中..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "客户端脚本已ç¦ç”¨"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr "请å°è¯•釿–°å¯ç”¨å…¬å…±æœåŠ¡å™¨åˆ—è¡¨å¹¶æ£€æŸ¥æ‚¨çš„ç½‘ç»œè¿žæŽ¥ã€‚"
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "æµè§ˆåœ¨çº¿å†…容"
@@ -694,6 +761,17 @@ msgid "Credits"
msgstr "贡献者"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "选择目录"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "å‰è´¡çŒ®è€…"
@@ -710,14 +788,10 @@ msgid "Bind Address"
msgstr "绑定地å€"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "é…ç½®"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "创造模å¼"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "å¼€å¯ä¼¤å®³"
@@ -731,11 +805,11 @@ msgstr "建立æœåС噍"
#: builtin/mainmenu/tab_local.lua
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "从 ContentDB 安装游æˆ"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "用户å/密ç "
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -746,6 +820,11 @@ msgid "No world created or selected!"
msgstr "未创建或选择世界!"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "新密ç "
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "开始游æˆ"
@@ -754,6 +833,11 @@ msgid "Port"
msgstr "端å£"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "选择世界:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "选择世界:"
@@ -769,23 +853,23 @@ msgstr "å¯åŠ¨æ¸¸æˆ"
msgid "Address / Port"
msgstr "地å€/端å£"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "连接"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "创造模å¼"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "伤害已å¯ç”¨"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "删除收è—项"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "æ”¶è—项"
@@ -793,16 +877,16 @@ msgstr "æ”¶è—项"
msgid "Join Game"
msgstr "加入游æˆ"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "用户å/密ç "
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "应答速度"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "å¯ç”¨çŽ©å®¶å¯¹æˆ˜"
@@ -831,10 +915,6 @@ msgid "Antialiasing:"
msgstr "抗锯齿:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "你确定è¦é‡ç½®ä½ çš„å•人世界å—?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "自动ä¿å­˜å±å¹•尺寸"
@@ -842,10 +922,6 @@ msgstr "自动ä¿å­˜å±å¹•尺寸"
msgid "Bilinear Filter"
msgstr "åŒçº¿æ€§è¿‡æ»¤"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "凹凸贴图"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "更改键ä½è®¾ç½®"
@@ -859,10 +935,6 @@ msgid "Fancy Leaves"
msgstr "åŽä¸½æ ‘å¶"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "ç”Ÿæˆæ³•线贴图"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mip 贴图"
@@ -871,10 +943,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mip 贴图 + å„å‘异性过滤"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "å¦"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "无过滤"
@@ -902,19 +970,11 @@ msgstr "ä¸é€æ˜Žæ ‘å¶"
msgid "Opaque Water"
msgstr "ä¸é€æ˜Žæ°´"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "视差é®è”½"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "ç²’å­æ•ˆæžœ"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "é‡ç½®å•人世界"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "å±å¹•:"
@@ -927,6 +987,11 @@ msgid "Shaders"
msgstr "ç€è‰²å™¨"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "悬空岛(实验性)"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "ç€è‰²å™¨ (ä¸å¯ç”¨)"
@@ -940,7 +1005,7 @@ msgstr "平滑光照"
#: builtin/mainmenu/tab_settings.lua
msgid "Texturing:"
-msgstr "纹ç†:"
+msgstr "æè´¨:"
#: builtin/mainmenu/tab_settings.lua
msgid "To enable shaders the OpenGL driver needs to be used."
@@ -970,22 +1035,6 @@ msgstr "摇动æµä½“"
msgid "Waving Plants"
msgstr "摇摆æ¤ç‰©"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "是"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "é…ç½® mod"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "主èœå•"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "å•人游æˆ"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "连接超时。"
@@ -1140,20 +1189,20 @@ msgid "Continue"
msgstr "ç»§ç»­"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1182,7 +1231,7 @@ msgstr "建立æœåС噍...."
#: src/client/game.cpp
msgid "Debug info and profiler graph hidden"
-msgstr "éšè—的调试信æ¯å’Œæ€§èƒ½åˆ†æžå›¾"
+msgstr "调试信æ¯å’Œæ€§èƒ½åˆ†æžå›¾å·²éšè—"
#: src/client/game.cpp
msgid "Debug info shown"
@@ -1190,7 +1239,7 @@ msgstr "调试信æ¯å·²æ˜¾ç¤º"
#: src/client/game.cpp
msgid "Debug info, profiler graph, and wireframe hidden"
-msgstr "éšè—调试信æ¯ï¼Œæ€§èƒ½åˆ†æžå›¾ï¼Œå’Œçº¿æ¡†"
+msgstr "调试信æ¯ã€æ€§èƒ½åˆ†æžå›¾å’Œçº¿æ¡†å·²éšè—"
#: src/client/game.cpp
msgid ""
@@ -1242,7 +1291,7 @@ msgstr "快速模å¼å·²ç¦ç”¨"
#: src/client/game.cpp
msgid "Fast mode enabled"
-msgstr "快速移动模å¼å·²å¯ç”¨"
+msgstr "快速模å¼å·²å¯ç”¨"
#: src/client/game.cpp
msgid "Fast mode enabled (note: no 'fast' privilege)"
@@ -1301,34 +1350,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "å°åœ°å›¾è¢«å½“å‰å­æ¸¸æˆæˆ–者 mod ç¦ç”¨"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "å°åœ°å›¾å·²éšè—"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "é›·è¾¾å°åœ°å›¾ï¼Œæ”¾å¤§è‡³ä¸€å€"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "é›·è¾¾å°åœ°å›¾ï¼Œæ”¾å¤§è‡³ä¸¤å€"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "é›·è¾¾å°åœ°å›¾, 放大至四å€"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "地表模å¼å°åœ°å›¾, 放大至一å€"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "地表模å¼å°åœ°å›¾, 放大至两å€"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "地表模å¼å°åœ°å›¾, 放大至四å€"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "穿墙模å¼å·²ç¦ç”¨"
@@ -1362,7 +1383,7 @@ msgstr "俯仰移动模å¼å·²ç¦ç”¨"
#: src/client/game.cpp
msgid "Profiler graph shown"
-msgstr "显示性能分æžå›¾"
+msgstr "性能分æžå›¾å·²æ˜¾ç¤º"
#: src/client/game.cpp
msgid "Remote server"
@@ -1390,11 +1411,11 @@ msgstr "å·²é™éŸ³"
#: src/client/game.cpp
msgid "Sound system is disabled"
-msgstr ""
+msgstr "声音系统已ç¦ç”¨"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "æ­¤ç¼–è¯‘ç‰ˆæœ¬ä¸æ”¯æŒå£°éŸ³ç³»ç»Ÿ"
#: src/client/game.cpp
msgid "Sound unmuted"
@@ -1720,6 +1741,25 @@ msgstr "Xé”®2"
msgid "Zoom"
msgstr "缩放"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "å°åœ°å›¾å·²éšè—"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "é›·è¾¾å°åœ°å›¾ï¼Œæ”¾å¤§è‡³ä¸€å€"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "地表模å¼å°åœ°å›¾, 放大至一å€"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "æœ€å°æè´¨å¤§å°"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "密ç ä¸åŒ¹é…ï¼"
@@ -1737,8 +1777,9 @@ msgid ""
"Please retype your password and click 'Register and Join' to confirm account "
"creation, or click 'Cancel' to abort."
msgstr ""
-"这是你第一次用“%sâ€åŠ å…¥æœåŠ¡å™¨ã€‚ 如果è¦ç»§ç»­ï¼Œä¸€ä¸ªæ–°çš„用户将在æœåŠ¡å™¨ä¸Šåˆ›å»ºã€‚\n"
-"è¯·é‡æ–°è¾“入你的密ç ç„¶åŽç‚¹å‡»â€œæ³¨å†Œâ€æˆ–ç‚¹å‡»â€œå–æ¶ˆâ€ã€‚"
+"这是你第一次用“%sâ€åŠ å…¥æœåŠ¡å™¨ã€‚\n"
+"如果è¦ç»§ç»­ï¼Œä¸€ä¸ªæ–°çš„用户将在æœåŠ¡å™¨ä¸Šåˆ›å»ºã€‚\n"
+"è¯·é‡æ–°è¾“入你的密ç ç„¶åŽç‚¹å‡»â€œæ³¨å†Œâ€æ¥åˆ›å»ºç”¨æˆ·æˆ–ç‚¹å‡»â€œå–æ¶ˆâ€é€€å‡ºã€‚"
#: src/gui/guiFormSpecMenu.cpp
msgid "Proceed"
@@ -1862,7 +1903,7 @@ msgstr "å¯ç”¨/ç¦ç”¨èŠå¤©è®°å½•"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fast"
-msgstr "å¯ç”¨/ç¦ç”¨å¿«é€Ÿç§»åŠ¨æ¨¡å¼"
+msgstr "å¯ç”¨/ç¦ç”¨å¿«é€Ÿæ¨¡å¼"
#: src/gui/guiKeyChangeMenu.cpp
msgid "Toggle fly"
@@ -1985,14 +2026,6 @@ msgstr ""
"孤岛的垂直压æ‰å½¢çŠ¶ï¼Œå°†æ‰€æœ‰3个数字设置为相等以呈现原始形状。"
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = 利用梯度信æ¯è¿›è¡Œè§†å·®é®è”½ (较快).\n"
-"1 = 浮雕映射 (较慢, 但准确)."
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "控制山脊形状/大å°çš„2D噪声。"
@@ -2029,9 +2062,8 @@ msgid "3D mode"
msgstr "3D 模å¼"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "3D mode parallax strength"
-msgstr "法线贴图强度"
+msgstr "3D模å¼è§†å·®å¼ºåº¦"
#: src/settings_translation_file.cpp
msgid "3D noise defining giant caverns."
@@ -2052,6 +2084,10 @@ msgid ""
"to be adjusted, as floatland tapering functions best when this noise has\n"
"a value range of approximately -2.0 to 2.0."
msgstr ""
+"悬空岛的3D噪波定义结构。\n"
+"如果改å˜äº†é»˜è®¤å€¼ï¼Œå™ªæ³¢â€œscaleâ€(默认为0.7)å¯èƒ½éœ€è¦\n"
+"调整,因为当这个噪波的值范围大约为-2.0到2.0时,\n"
+"æ‚¬ç©ºå²›é€æ¸å˜çª„的函数最好。"
#: src/settings_translation_file.cpp
msgid "3D noise defining structure of river canyon walls."
@@ -2114,9 +2150,12 @@ msgid "ABM interval"
msgstr "ABMé—´éš”"
#: src/settings_translation_file.cpp
-#, fuzzy
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Absolute limit of queued blocks to emerge"
-msgstr "生产队列ç»å¯¹é™åˆ¶"
+msgstr "待显示方å—队列的ç»å¯¹é™åˆ¶"
#: src/settings_translation_file.cpp
msgid "Acceleration in air"
@@ -2171,6 +2210,11 @@ msgid ""
"Value = 2.0 (can be higher depending on 'mgv7_np_floatland', always test\n"
"to be sure) creates a solid floatland layer."
msgstr ""
+"调整悬空岛层的密度。\n"
+"增加值以增加密度。å¯ä»¥æ˜¯æ­£å€¼æˆ–负值。\n"
+"值等于0.0, 容积的50%是floatland。\n"
+"值等于2.0 ,(å¯ä»¥æ›´é«˜ï¼Œå–决于 'mgv7_np_floatland' ,始终测试以确定)\n"
+"创建一个åšå®žçš„æ‚¬ç©ºå²›å±‚。"
#: src/settings_translation_file.cpp
msgid "Advanced"
@@ -2192,7 +2236,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Always fly and fast"
-msgstr "ä¿æŒé«˜é€Ÿé£žè¡Œ"
+msgstr "ä¿æŒé£žè¡Œå’Œå¿«é€Ÿæ¨¡å¼"
#: src/settings_translation_file.cpp
msgid "Ambient occlusion gamma"
@@ -2359,17 +2403,13 @@ msgstr "粗体等宽字体路径"
#: src/settings_translation_file.cpp
msgid "Build inside player"
-msgstr "建立内部玩家"
+msgstr "在玩家内部æ­å»º"
#: src/settings_translation_file.cpp
msgid "Builtin"
msgstr "内置"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "凹凸贴图"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2446,32 +2486,16 @@ msgstr ""
"0.0为最å°å€¼æ—¶1.0为最大值。"
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-"主èœå•UIçš„å˜åŒ–:\n"
-"- 完整 多个å•äººä¸–ç•Œï¼Œå­æ¸¸æˆé€‰æ‹©ï¼Œæè´¨åŒ…选择器等。\n"
-"- 简å•:å•个å•äººä¸–ç•Œï¼Œæ— å­æ¸¸æˆæè´¨åŒ…选择器。å¯èƒ½\n"
-"需è¦ç”¨äºŽå°å±å¹•。"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat font size"
-msgstr "字体大å°"
+msgstr "èŠå¤©å­—体大å°"
#: src/settings_translation_file.cpp
msgid "Chat key"
msgstr "èŠå¤©é”®"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Chat log level"
-msgstr "调试日志级别"
+msgstr "èŠå¤©æ—¥å¿—级别"
#: src/settings_translation_file.cpp
msgid "Chat message count limit"
@@ -2623,6 +2647,10 @@ msgid "ContentDB Flag Blacklist"
msgstr "ContentDB标签黑åå•"
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "ContentDB URL"
msgstr "ContentDB网å€"
@@ -2687,7 +2715,10 @@ msgid "Crosshair alpha"
msgstr "å‡†æ˜Ÿé€æ˜Ž"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "准星ä¸é€æ˜Žåº¦ï¼ˆ0-255)。"
#: src/settings_translation_file.cpp
@@ -2695,8 +2726,10 @@ msgid "Crosshair color"
msgstr "准星颜色"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "准星颜色(红,绿,è“)。"
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2759,9 +2792,8 @@ msgid "Default report format"
msgstr "默认报告格å¼"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Default stack size"
-msgstr "默认游æˆ"
+msgstr "默认栈大å°"
#: src/settings_translation_file.cpp
msgid ""
@@ -2800,14 +2832,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "定义所选的山和湖的ä½ç½®ä¸Žåœ°å½¢ã€‚"
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"定义æè´¨é‡‡æ ·æ­¥éª¤ã€‚\n"
-"数值越高常æ€è´´å›¾è¶Šå¹³æ»‘。"
-
-#: src/settings_translation_file.cpp
msgid "Defines the base ground level."
msgstr "定义基准地é¢é«˜åº¦."
@@ -2882,6 +2906,11 @@ msgid "Desynchronize block animation"
msgstr "åŽ»åŒæ­¥å—动画"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "峿–¹å‘é”®"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "æŒ–æŽ˜ç²’å­æ•ˆæžœ"
@@ -2946,7 +2975,8 @@ msgid "Enable console window"
msgstr "å¯ç”¨æŽ§åˆ¶å°çª—å£"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "为新建地图å¯ç”¨åˆ›é€ æ¨¡å¼ã€‚"
#: src/settings_translation_file.cpp
@@ -3055,17 +3085,6 @@ msgid "Enables animation of inventory items."
msgstr "å¯ç”¨ç‰©å“清å•动画。"
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"å¯ç”¨æè´¨çš„å‡¹å‡¸è´´å›¾æ•ˆæžœã€‚éœ€è¦æè´¨åŒ…æ”¯æŒæ³•线贴图,\n"
-"å¦åˆ™å°†è‡ªåŠ¨ç”Ÿæˆæ³•线。\n"
-"需è¦å¯ç”¨ç€è‰²å™¨ã€‚"
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "å¯ç”¨ç¿»è½¬ç½‘状物facedir的缓存。"
@@ -3075,22 +3094,6 @@ msgstr "å¯ç”¨å°åœ°å›¾ã€‚"
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"å¯ç”¨å³æ—¶æ³•线贴图生æˆï¼ˆæµ®é›•效果)。\n"
-"需è¦å¯ç”¨å‡¹å‡¸è´´å›¾ã€‚"
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"å¯ç”¨è§†å·®é®è”½è´´å›¾ã€‚\n"
-"需è¦å¯ç”¨ç€è‰²å™¨ã€‚"
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3111,14 +3114,6 @@ msgstr "实体方法"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"实验性选项,设为大于 0 的数字时å¯èƒ½å¯¼è‡´\n"
-"å—之间出现å¯è§ç©ºé—´ã€‚"
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3126,10 +3121,16 @@ msgid ""
"Values < 1.0 (for example 0.25) create a more defined surface level with\n"
"flatter lowlands, suitable for a solid floatland layer."
msgstr ""
+"悬空岛锥度的指数,更改锥度的行为。\n"
+"值等于1.0,创建一个统一的,线性锥度。\n"
+"值大于1.0,创建一个平滑的ã€åˆé€‚的锥度,默认分隔的悬空岛。\n"
+"值å°äºŽ1.0,(例如0.25)创建一个带有平å¦ä½Žåœ°çš„æ›´åŠ è½®å»“åˆ†æ˜Žçš„è¡¨é¢çº§åˆ«ï¼Œ\n"
+"适用于固体悬空岛层。"
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "æš‚åœèœå• FPS"
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "æ¸¸æˆæš‚åœæ—¶æœ€é«˜ FPS。"
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3161,7 +3162,7 @@ msgstr "åŽå¤‡å­—体大å°"
#: src/settings_translation_file.cpp
msgid "Fast key"
-msgstr "快速移动键"
+msgstr "快速键"
#: src/settings_translation_file.cpp
msgid "Fast mode acceleration"
@@ -3245,39 +3246,32 @@ msgid "Fixed virtual joystick"
msgstr "固定虚拟摇æ†"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland density"
-msgstr "水级别"
+msgstr "悬空岛密度"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland maximum Y"
-msgstr "地窖最大Yåæ ‡"
+msgstr "悬空岛最大Yåæ ‡"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland minimum Y"
-msgstr "地窖最å°Yåæ ‡"
+msgstr "悬空岛最å°Yåæ ‡"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland noise"
-msgstr "水级别"
+msgstr "悬空岛噪声"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland taper exponent"
-msgstr "水级别"
+msgstr "æ‚¬ç©ºå²›å°–é”æŒ‡æ•°"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland tapering distance"
-msgstr "玩家转移è·ç¦»"
+msgstr "悬空岛尖é”è·ç¦»"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Floatland water level"
-msgstr "水级别"
+msgstr "悬空岛水ä½"
#: src/settings_translation_file.cpp
msgid "Fly key"
@@ -3336,6 +3330,8 @@ msgid ""
"Font size of the recent chat text and chat prompt in point (pt).\n"
"Value 0 will use the default font size."
msgstr ""
+"最近èŠå¤©æ–‡æœ¬å’ŒèŠå¤©æç¤ºçš„字体大å°ï¼ˆpt)。\n"
+"值为0将使用默认字体大å°ã€‚"
#: src/settings_translation_file.cpp
msgid ""
@@ -3452,10 +3448,6 @@ msgid "GUI scaling filter txr2img"
msgstr "GUI缩放过滤器 txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "生æˆå‘现贴图"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "全局回调"
@@ -3514,10 +3506,11 @@ msgid "HUD toggle key"
msgstr "HUDå¯ç”¨/ç¦ç”¨é”®"
#: src/settings_translation_file.cpp
+#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"处ç†å·²å¼ƒç”¨çš„ Lua API 调用:\n"
@@ -4035,6 +4028,11 @@ msgid "Joystick button repetition interval"
msgstr "æ‘‡æ†æŒ‰é’®é‡å¤é—´éš”"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "摇æ†ç±»åž‹"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "摇æ†å¤´çµæ•度"
@@ -4137,6 +4135,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"跳跃键。\n"
+"è§http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4279,6 +4288,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"跳跃键。\n"
+"è§http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4667,7 +4687,7 @@ msgid ""
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
msgstr ""
-"开关电影模å¼é”®ã€‚\n"
+"å¯ç”¨/ç¦ç”¨ç”µå½±æ¨¡å¼é”®ã€‚\n"
"è§http://irrlicht.sourceforge.net/docu/namespaceirr."
"html#a54da2a0e231901735e3da1b0edf72eb3"
@@ -5015,19 +5035,14 @@ msgid "Lower Y limit of dungeons."
msgstr "地窖的Y值下é™ã€‚"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Lower Y limit of floatlands."
-msgstr "地窖的Y值下é™ã€‚"
+msgstr "悬空岛的Y值下é™ã€‚"
#: src/settings_translation_file.cpp
msgid "Main menu script"
msgstr "主èœå•脚本"
#: src/settings_translation_file.cpp
-msgid "Main menu style"
-msgstr "主èœå•æ ·å¼"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr "使雾和天空颜色ä¾èµ–于一天中的时间(黎明/傿™šï¼‰å’Œè§†çº¿æ–¹å‘。"
@@ -5041,6 +5056,14 @@ msgid "Makes all liquids opaque"
msgstr "使所有液体ä¸é€æ˜Ž"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "地图目录"
@@ -5099,7 +5122,6 @@ msgstr ""
"忽略'jungles'标签。"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Map generation attributes specific to Mapgen v7.\n"
"'ridges': Rivers.\n"
@@ -5107,7 +5129,9 @@ msgid ""
"'caverns': Giant caves deep underground."
msgstr ""
"针对v7地图生æˆå™¨çš„属性。\n"
-"'ridges'å¯ç”¨æ²³æµã€‚"
+"'ridges':å¯ç”¨æ²³æµã€‚\n"
+"'floatlands':漂浮于大气中的陆å—。\n"
+"'caverns':地下深处的巨大洞穴。"
#: src/settings_translation_file.cpp
msgid "Map generation limit"
@@ -5222,7 +5246,8 @@ msgid "Maximum FPS"
msgstr "最大 FPS"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "æ¸¸æˆæš‚åœæ—¶æœ€é«˜ FPS。"
#: src/settings_translation_file.cpp
@@ -5264,22 +5289,27 @@ msgid "Maximum number of blocks that can be queued for loading."
msgstr "å¯åœ¨åŠ è½½æ—¶åŠ å…¥é˜Ÿåˆ—çš„æœ€å¤§æ–¹å—æ•°ã€‚"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Maximum number of blocks to be queued that are to be generated.\n"
"This limit is enforced per player."
msgstr ""
"åœ¨ç”Ÿæˆæ—¶åŠ å…¥é˜Ÿåˆ—çš„æœ€å¤§æ–¹å—æ•°ã€‚\n"
-"设置为空白则自动选择åˆé€‚的数值。"
+"æ­¤é™åˆ¶å¯¹æ¯ä½çŽ©å®¶å¼ºåˆ¶æ‰§è¡Œã€‚"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Maximum number of blocks to be queued that are to be loaded from file.\n"
"This limit is enforced per player."
msgstr ""
"åœ¨ä»Žæ–‡ä»¶ä¸­åŠ è½½æ—¶åŠ å…¥é˜Ÿåˆ—çš„æœ€å¤§æ–¹å—æ•°ã€‚\n"
-"设置为空白则自动选择åˆé€‚的数值。"
+"æ­¤é™åˆ¶å¯¹æ¯ä½çŽ©å®¶å¼ºåˆ¶æ‰§è¡Œã€‚"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
@@ -5373,7 +5403,7 @@ msgstr "用于高亮选定的对象的方法。"
#: src/settings_translation_file.cpp
msgid "Minimal level of logging to be written to chat."
-msgstr ""
+msgstr "写入èŠå¤©çš„æœ€å°æ—¥å¿—级别。"
#: src/settings_translation_file.cpp
msgid "Minimap"
@@ -5531,19 +5561,10 @@ msgid "Noises"
msgstr "噪声"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "法线贴图采样"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "法线贴图强度"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "生产线程数"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid ""
"Number of emerge threads to use.\n"
"Value 0:\n"
@@ -5557,9 +5578,6 @@ msgid ""
"'on_generated'. For many users the optimum setting may be '1'."
msgstr ""
"使用的生产线程数。\n"
-"警告:当'num_emerge_threads'大于1æ—¶ï¼Œç›®å‰æœ‰å¾ˆ\n"
-"多bug会导致崩溃。\n"
-"强烈建议在此警告被移除之å‰å°†æ­¤å€¼è®¾ä¸ºé»˜è®¤å€¼'1'。\n"
"值0:\n"
"- 自动选择。生产线程数会是‘处ç†å™¨æ•°-2’,\n"
"- 下é™ä¸º1。\n"
@@ -5568,7 +5586,7 @@ msgstr ""
"警告:增大此值会æé«˜å¼•擎地图生æˆå™¨é€Ÿåº¦ï¼Œä½†ä¼šç”±äºŽ\n"
"å¹²æ‰°å…¶ä»–è¿›ç¨‹è€Œå½±å“æ¸¸æˆä½“验,尤其是å•äººæ¨¡å¼æˆ–è¿è¡Œ\n"
"‘on_generated’中的Lua代ç ã€‚对于大部分用户æ¥è¯´ï¼Œæœ€\n"
-"佳值为1。"
+"佳值为'1'。"
#: src/settings_translation_file.cpp
msgid ""
@@ -5581,10 +5599,6 @@ msgstr ""
"(4096=100MB,按ç»éªŒæ³•则)。"
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "视差é®è”½è¿­ä»£æ•°ã€‚"
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr "在线内容仓库(ContentDB)"
@@ -5612,34 +5626,6 @@ msgstr ""
"åˆ™ä¸æš‚åœã€‚"
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "视差é®è”½æ•ˆæžœçš„æ•´ä½“斜纹,通常为比例/2。"
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "视差é®è”½æ•ˆæžœçš„æ€»ä½“比例。"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "视差é®è”½"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "视差é®è”½åç§»"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "视差é®è”½è¿­ä»£"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "视差é®è”½æ¨¡å¼"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion scale"
-msgstr "视差é®è”½æ¯”例"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5657,6 +5643,8 @@ msgid ""
"Path to save screenshots at. Can be an absolute or relative path.\n"
"The folder will be created if it doesn't already exist."
msgstr ""
+"路径ä¿å­˜æˆªå›¾ã€‚å¯ä»¥æ˜¯ç»å¯¹è·¯å¾„或相对路径。\n"
+"如果该文件夹ä¸å­˜åœ¨ï¼Œå°†åˆ›å»ºå®ƒã€‚"
#: src/settings_translation_file.cpp
msgid ""
@@ -5698,12 +5686,11 @@ msgstr "丢失窗å£ç„¦ç‚¹æ—¶æš‚åœ"
#: src/settings_translation_file.cpp
msgid "Per-player limit of queued blocks load from disk"
-msgstr ""
+msgstr "æ¯ä¸ªçŽ©å®¶ä»Žç£ç›˜åŠ è½½çš„é˜Ÿåˆ—å—çš„é™åˆ¶"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Per-player limit of queued blocks to generate"
-msgstr "è¦ç”Ÿæˆçš„生产队列é™åˆ¶"
+msgstr "æ¯ä¸ªçީ家è¦ç”Ÿæˆçš„生产队列é™åˆ¶"
#: src/settings_translation_file.cpp
msgid "Physics"
@@ -5718,6 +5705,16 @@ msgid "Pitch move mode"
msgstr "俯仰移动模å¼"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "飞行键"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "å³å‡»é‡å¤é—´éš”"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5783,7 +5780,7 @@ msgstr "性能分æž"
#: src/settings_translation_file.cpp
msgid "Prometheus listener address"
-msgstr ""
+msgstr "Prometheus 监å¬å™¨åœ°å€"
#: src/settings_translation_file.cpp
msgid ""
@@ -5792,6 +5789,10 @@ msgid ""
"enable metrics listener for Prometheus on that address.\n"
"Metrics can be fetch on http://127.0.0.1:30000/metrics"
msgstr ""
+"Prometheus 监å¬å™¨åœ°å€ã€‚\n"
+"如果minetest是在å¯ç”¨ENABLE_PROMETHEUS选项的情况下编译的,\n"
+"在该地å€ä¸Šä¸º Prometheus å¯ç”¨æŒ‡æ ‡ä¾¦å¬å™¨ã€‚\n"
+"å¯ä»¥ä»Ž http://127.0.0.1:30000/metrics èŽ·å–æŒ‡æ ‡"
#: src/settings_translation_file.cpp
msgid "Proportion of large caves that contain liquid."
@@ -5895,10 +5896,6 @@ msgid "Right key"
msgstr "峿–¹å‘é”®"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "å³å‡»é‡å¤é—´éš”"
-
-#: src/settings_translation_file.cpp
msgid "River channel depth"
msgstr "æ²³é“æ·±åº¦"
@@ -6188,6 +6185,20 @@ msgid "Show entity selection boxes"
msgstr "显示实体选择框"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"设定语言。留空以使用系统语言。\n"
+"å˜æ›´åŽé¡»é‡æ–°å¯åŠ¨ã€‚"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Show nametag backgrounds by default"
+msgstr "默认粗体"
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "关闭消æ¯"
@@ -6223,7 +6234,7 @@ msgstr "切片 w"
#: src/settings_translation_file.cpp
msgid "Slope and fill work together to modify the heights."
-msgstr ""
+msgstr "斜率和填充共åŒå·¥ä½œæ¥ä¿®æ”¹é«˜åº¦ã€‚"
#: src/settings_translation_file.cpp
msgid "Small cave maximum number"
@@ -6303,6 +6314,8 @@ msgid ""
"Note that mods or games may explicitly set a stack for certain (or all) "
"items."
msgstr ""
+"指定节点ã€ç‰©å“å’Œå·¥å…·çš„é»˜è®¤å †å æ•°é‡ã€‚\n"
+"请注æ„,mod或游æˆå¯èƒ½ä¼šä¸ºæŸäº›ï¼ˆæˆ–所有)项目明确设置堆栈。"
#: src/settings_translation_file.cpp
msgid ""
@@ -6310,6 +6323,9 @@ msgid ""
"Controls the width of the range to be boosted.\n"
"Standard deviation of the light curve boost Gaussian."
msgstr ""
+"光曲线æå‡èŒƒå›´çš„分布。\n"
+"æŽ§åˆ¶è¦æå‡çš„范围的宽度。\n"
+"光曲线的标准å差坿å‡é«˜æ–¯ã€‚"
#: src/settings_translation_file.cpp
msgid "Static spawnpoint"
@@ -6317,25 +6333,19 @@ msgstr "陿€é‡ç”Ÿç‚¹"
#: src/settings_translation_file.cpp
msgid "Steepness noise"
-msgstr ""
+msgstr "陡度噪声"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Step mountain size noise"
-msgstr "地形高度"
+msgstr "啿­¥å±±å³°é«˜åº¦å™ªå£°"
#: src/settings_translation_file.cpp
msgid "Step mountain spread noise"
-msgstr ""
+msgstr "啿­¥å±±å³°å¹¿åº¦å™ªå£°"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Strength of 3D mode parallax."
-msgstr "视差强度。"
-
-#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "生æˆçš„一般地图强度。"
+msgstr "3D 模å¼è§†å·®çš„强度。"
#: src/settings_translation_file.cpp
msgid ""
@@ -6343,6 +6353,9 @@ msgid ""
"The 3 'boost' parameters define a range of the light\n"
"curve that is boosted in brightness."
msgstr ""
+"光照曲线æå‡çš„强度。\n"
+"3 个'boost'傿•°å®šä¹‰äº†åœ¨äº®åº¦ä¸Šæå‡çš„\n"
+"光照曲线的范围。"
#: src/settings_translation_file.cpp
msgid "Strict protocol checking"
@@ -6350,7 +6363,7 @@ msgstr "严格å议检查"
#: src/settings_translation_file.cpp
msgid "Strip color codes"
-msgstr ""
+msgstr "æ¡å½¢é¢œè‰²ä»£ç "
#: src/settings_translation_file.cpp
msgid ""
@@ -6365,6 +6378,16 @@ msgid ""
"server-intensive extreme water flow and to avoid vast flooding of the\n"
"world surface below."
msgstr ""
+"放置在固体浮地层的å¯é€‰æ°´çš„è¡¨é¢æ°´å¹³ã€‚\n"
+"默认情况下,水处于ç¦ç”¨çжæ€ï¼Œå¹¶ä¸”ä»…åœ¨è®¾ç½®æ­¤å€¼æ—¶æ‰æ”¾ç½®\n"
+"在'mgv7_floatland_ymax' - 'mgv7_floatland_taper'上(\n"
+"ä¸Šéƒ¨é€æ¸å˜ç»†çš„开始)。\n"
+"***警告,世界存档和æœåŠ¡å™¨æ€§èƒ½çš„æ½œåœ¨å±é™©***:\n"
+"å¯ç”¨æ°´æ”¾ç½®æ—¶ï¼Œå¿…é¡»é…置和测试悬空岛\n"
+"通过将\"mgv7_floatland_density\"设置为 2.0(或其他\n"
+"所需的值,具体å–决于mgv7_np_floatland\"ï¼‰ï¼Œç¡®ä¿æ˜¯å›ºä½“层,\n"
+"以é¿å…æœåŠ¡å™¨å¯†é›†çš„æžç«¯æ°´æµï¼Œ\n"
+"å¹¶é¿å…地表的巨大的洪水。"
#: src/settings_translation_file.cpp
msgid "Synchronous SQLite"
@@ -6372,32 +6395,27 @@ msgstr "åŒæ­¥ SQLite"
#: src/settings_translation_file.cpp
msgid "Temperature variation for biomes."
-msgstr ""
+msgstr "生物群系的温度å˜åŒ–。"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain alternative noise"
-msgstr "地形高度"
+msgstr "地形替代噪声"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain base noise"
-msgstr "地形高度"
+msgstr "地形基准高度噪声"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain height"
msgstr "地形高度"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain higher noise"
-msgstr "地形高度"
+msgstr "地形增高噪声"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Terrain noise"
-msgstr "地形高度"
+msgstr "地形噪声"
#: src/settings_translation_file.cpp
msgid ""
@@ -6405,6 +6423,9 @@ msgid ""
"Controls proportion of world area covered by hills.\n"
"Adjust towards 0.0 for a larger proportion."
msgstr ""
+"丘陵的地形噪声阈值。\n"
+"控制山丘覆盖的世界区域的比例。\n"
+"æœ0.0调整较大的比例。"
#: src/settings_translation_file.cpp
msgid ""
@@ -6412,14 +6433,17 @@ msgid ""
"Controls proportion of world area covered by lakes.\n"
"Adjust towards 0.0 for a larger proportion."
msgstr ""
+"湖泊的地形噪声阈值。\n"
+"控制被湖泊覆盖的世界区域的比例。\n"
+"æœ0.0调整较大的比例。"
#: src/settings_translation_file.cpp
msgid "Terrain persistence noise"
-msgstr ""
+msgstr "地形æŒä¹…性噪声"
#: src/settings_translation_file.cpp
msgid "Texture path"
-msgstr "纹ç†è·¯å¾„"
+msgstr "æè´¨è·¯å¾„"
#: src/settings_translation_file.cpp
msgid ""
@@ -6432,7 +6456,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
msgid "The URL for the content repository"
+msgstr "内容存储库的 URL"
+
+#: src/settings_translation_file.cpp
+msgid "The deadzone of the joystick"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6496,8 +6525,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6523,15 +6552,20 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
#: src/settings_translation_file.cpp
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr ""
#: src/settings_translation_file.cpp
@@ -6544,6 +6578,9 @@ msgid ""
"enabled. Also the vertical distance over which humidity drops by 10 if\n"
"'altitude_dry' is enabled."
msgstr ""
+"如果'altitude_chill'å¼€å¯ï¼Œåˆ™çƒ­é‡ä¸‹é™20的垂直è·ç¦»\n"
+"å·²å¯ç”¨ã€‚如果湿度下é™çš„垂直è·ç¦»ä¹Ÿæ˜¯10\n"
+"å·²å¯ç”¨â€œ altitude_dryâ€ã€‚"
#: src/settings_translation_file.cpp
#, fuzzy
@@ -6555,10 +6592,12 @@ msgid ""
"Time in seconds for item entity (dropped items) to live.\n"
"Setting it to -1 disables the feature."
msgstr ""
+"项目实体(删除的项目)生存的时间(以秒为å•ä½ï¼‰ã€‚\n"
+"将其设置为 -1 å°†ç¦ç”¨è¯¥åŠŸèƒ½ã€‚"
#: src/settings_translation_file.cpp
msgid "Time of day when a new world is started, in millihours (0-23999)."
-msgstr ""
+msgstr "ä¸€å¤©ä¸­å¼€å§‹ä¸€ä¸ªæ–°ä¸–ç•Œçš„æ—¶é—´ï¼Œä»¥æ¯«å°æ—¶ä¸ºå•ä½ï¼ˆ0-23999)。"
#: src/settings_translation_file.cpp
msgid "Time send interval"
@@ -6589,13 +6628,12 @@ msgid "Tooltip delay"
msgstr "工具æç¤ºå»¶è¿Ÿ"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Touch screen threshold"
-msgstr "海滩噪音阈值"
+msgstr "触å±é˜ˆå€¼"
#: src/settings_translation_file.cpp
msgid "Trees noise"
-msgstr ""
+msgstr "树木噪声"
#: src/settings_translation_file.cpp
msgid "Trilinear filtering"
@@ -6607,6 +6645,9 @@ msgid ""
"False = 128\n"
"Usable to make minimap smoother on slower machines."
msgstr ""
+"True = 256\n"
+"False = 128\n"
+"å¯ç”¨äºŽåœ¨è¾ƒæ…¢çš„æœºå™¨ä¸Šä½¿æœ€å°åœ°å›¾æ›´å¹³æ»‘。"
#: src/settings_translation_file.cpp
msgid "Trusted mods"
@@ -6614,11 +6655,12 @@ msgstr "å¯ä¿¡ mod"
#: src/settings_translation_file.cpp
msgid "URL to the server list displayed in the Multiplayer Tab."
-msgstr ""
+msgstr "显示在“多人游æˆâ€é€‰é¡¹å¡ä¸­çš„æœåŠ¡å™¨åˆ—è¡¨çš„URL。"
#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Undersampling"
-msgstr ""
+msgstr "欠采样"
#: src/settings_translation_file.cpp
msgid ""
@@ -6642,17 +6684,17 @@ msgid "Upper Y limit of dungeons."
msgstr "地窖的Y值上é™ã€‚"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Upper Y limit of floatlands."
-msgstr "地窖的Y值上é™ã€‚"
+msgstr "悬空岛的Y值上é™ã€‚"
#: src/settings_translation_file.cpp
msgid "Use 3D cloud look instead of flat."
msgstr "使用 3D äº‘å½©ï¼Œè€Œä¸æ˜¯çœ‹èµ·æ¥æ˜¯å¹³é¢çš„。"
#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Use a cloud animation for the main menu background."
-msgstr ""
+msgstr "主èœå•背景使用云动画。"
#: src/settings_translation_file.cpp
msgid "Use anisotropic filtering when viewing at textures from an angle."
@@ -6670,6 +6712,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr ""
@@ -6678,12 +6731,10 @@ msgid "VBO"
msgstr "VBO"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "VSync"
msgstr "åž‚ç›´åŒæ­¥"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Valley depth"
msgstr "山谷深度"
@@ -6693,26 +6744,24 @@ msgid "Valley fill"
msgstr "山谷弥漫"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Valley profile"
msgstr "山谷轮廓"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Valley slope"
msgstr "山谷å¡åº¦"
#: src/settings_translation_file.cpp
msgid "Variation of biome filler depth."
-msgstr ""
+msgstr "生物群è½å¡«å……物深度的å˜åŒ–。"
#: src/settings_translation_file.cpp
msgid "Variation of maximum mountain height (in nodes)."
-msgstr ""
+msgstr "最大山体高度的å˜åŒ–(以节点为å•ä½ï¼‰ã€‚"
#: src/settings_translation_file.cpp
msgid "Variation of number of caves."
-msgstr ""
+msgstr "æ´žå£æ•°é‡çš„å˜åŒ–。"
#: src/settings_translation_file.cpp
msgid ""
@@ -6753,11 +6802,8 @@ msgid "View bobbing factor"
msgstr "范围摇动"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "View distance in nodes."
-msgstr ""
-"节点间å¯è§†è·ç¦»ã€‚\n"
-"æœ€å° = 20"
+msgstr "å¯è§†è·ç¦»ï¼ˆä»¥èŠ‚ç‚¹æ–¹å—为å•ä½ï¼‰ã€‚"
#: src/settings_translation_file.cpp
msgid "View range decrease key"
@@ -6803,7 +6849,7 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Walking and flying speed, in nodes per second."
-msgstr ""
+msgstr "步行和飞行速度,å•ä½ä¸ºæ–¹å—æ¯ç§’。"
#: src/settings_translation_file.cpp
msgid "Walking speed"
@@ -6811,13 +6857,14 @@ msgstr "步行速度"
#: src/settings_translation_file.cpp
msgid "Walking, flying and climbing speed in fast mode, in nodes per second."
-msgstr ""
+msgstr "快速模å¼ä¸‹çš„æ­¥è¡Œã€é£žè¡Œå’Œæ”€çˆ¬é€Ÿåº¦ï¼Œå•ä½ä¸ºæ–¹å—æ¯ç§’。"
#: src/settings_translation_file.cpp
msgid "Water level"
-msgstr "水级别"
+msgstr "æ°´ä½"
#: src/settings_translation_file.cpp
+#, fuzzy
msgid "Water surface level of the world."
msgstr "世界水平é¢çº§åˆ«ã€‚"
@@ -6830,24 +6877,20 @@ msgid "Waving leaves"
msgstr "摇动树å¶"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids"
-msgstr "摇动æµä½“"
+msgstr "波动æµä½“"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave height"
-msgstr "摇动水高度"
+msgstr "波动液体波动高度"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wave speed"
-msgstr "摇动水速度"
+msgstr "波动液体波动速度"
#: src/settings_translation_file.cpp
-#, fuzzy
msgid "Waving liquids wavelength"
-msgstr "摇动水长度"
+msgstr "波动液体波动长度"
#: src/settings_translation_file.cpp
msgid "Waving plants"
@@ -6889,6 +6932,12 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr ""
@@ -7010,10 +7059,28 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid "Y-level of lower terrain and seabed."
-msgstr ""
+msgstr "较低地形与海底的Yåæ ‡ã€‚"
#: src/settings_translation_file.cpp
msgid "Y-level of seabed."
+msgstr "海底的Yåæ ‡ã€‚"
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -7028,50 +7095,69 @@ msgstr "cURL å¹¶å‘é™åˆ¶"
msgid "cURL timeout"
msgstr "cURL è¶…æ—¶"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "切æ¢ç”µå½±æ¨¡å¼"
-
-#~ msgid "Select Package File:"
-#~ msgstr "选择包文件:"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = 利用梯度信æ¯è¿›è¡Œè§†å·®é®è”½ (较快).\n"
+#~ "1 = 浮雕映射 (较慢, 但准确)."
-#, fuzzy
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "å¤§åž‹éšæœºæ´žç©´çš„Y轴最大值。"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "调整亮度表的伽玛编ç ã€‚较高的数值会较亮。\n"
+#~ "这个设定是给客户端使用的,会被æœåŠ¡å™¨å¿½ç•¥ã€‚"
-#~ msgid "Waving Water"
-#~ msgstr "æµåŠ¨çš„æ°´é¢"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "你确定è¦é‡ç½®ä½ çš„å•人世界å—?"
-#~ msgid "Waving water"
-#~ msgstr "摇动水"
+#~ msgid "Back"
+#~ msgstr "åŽé€€"
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "用于特定语言的字体。"
+#~ msgid "Bump Mapping"
+#~ msgstr "凹凸贴图"
-#, fuzzy
-#~ msgid "Shadow limit"
-#~ msgstr "地图å—é™åˆ¶"
+#~ msgid "Bumpmapping"
+#~ msgstr "凹凸贴图"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "TrueType 字体或ä½å›¾çš„路径。"
+#~ msgid ""
+#~ "Changes the main menu UI:\n"
+#~ "- Full: Multiple singleplayer worlds, game choice, texture pack "
+#~ "chooser, etc.\n"
+#~ "- Simple: One singleplayer world, no game or texture pack choosers. May "
+#~ "be\n"
+#~ "necessary for smaller screens."
+#~ msgstr ""
+#~ "主èœå•UIçš„å˜åŒ–:\n"
+#~ "- 完整 多个å•äººä¸–ç•Œï¼Œå­æ¸¸æˆé€‰æ‹©ï¼Œæè´¨åŒ…选择器等。\n"
+#~ "- 简å•:å•个å•äººä¸–ç•Œï¼Œæ— å­æ¸¸æˆæè´¨åŒ…选择器。å¯èƒ½\n"
+#~ "需è¦ç”¨äºŽå°å±å¹•。"
-#, fuzzy
-#~ msgid "Lava depth"
-#~ msgstr "巨大洞穴深度"
+#~ msgid "Config mods"
+#~ msgstr "é…ç½® mod"
-#~ msgid "IPv6 support."
-#~ msgstr "IPv6 支æŒã€‚"
+#~ msgid "Configure"
+#~ msgstr "é…ç½®"
-#~ msgid "Gamma"
-#~ msgstr "伽马"
+#, fuzzy
+#~ msgid ""
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "控制 floatland 地形的密度。\n"
+#~ "是添加到 \"np_mountain\" 噪声值的åç§»é‡ã€‚"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "字体阴影ä¸é€æ˜Žåº¦ï¼ˆ0-255)。"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr "控制隧é“宽度,较å°çš„值创建更宽的隧é“。"
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "å¯ç”¨ç”µå½±åŸºè°ƒæ˜ å°„"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "准星颜色(红,绿,è“)。"
-#~ msgid "Enable VBO"
-#~ msgstr "å¯ç”¨ VBO"
+#, fuzzy
+#~ msgid "Darkness sharpness"
+#~ msgstr "地图生æˆå™¨å¹³é¢æ¹–å¡åº¦"
#~ msgid ""
#~ "Defines areas of floatland smooth terrain.\n"
@@ -7080,43 +7166,181 @@ msgstr "cURL è¶…æ—¶"
#~ "定义 floatland 平滑地形的区域。\n"
#~ "当噪音0æ—¶, 平滑的 floatlands å‘生。"
-#, fuzzy
-#~ msgid "Darkness sharpness"
-#~ msgstr "地图生æˆå™¨å¹³é¢æ¹–å¡åº¦"
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "定义æè´¨é‡‡æ ·æ­¥éª¤ã€‚\n"
+#~ "数值越高常æ€è´´å›¾è¶Šå¹³æ»‘。"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
-#~ msgstr "控制隧é“宽度,较å°çš„值创建更宽的隧é“。"
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "正在下载和安装 $1,请ç¨ç­‰..."
+
+#~ msgid "Enable VBO"
+#~ msgstr "å¯ç”¨ VBO"
-#, fuzzy
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "控制 floatland 地形的密度。\n"
-#~ "是添加到 \"np_mountain\" 噪声值的åç§»é‡ã€‚"
+#~ "å¯ç”¨æè´¨çš„å‡¹å‡¸è´´å›¾æ•ˆæžœã€‚éœ€è¦æè´¨åŒ…æ”¯æŒæ³•线贴图,\n"
+#~ "å¦åˆ™å°†è‡ªåŠ¨ç”Ÿæˆæ³•线。\n"
+#~ "需è¦å¯ç”¨ç€è‰²å™¨ã€‚"
+
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "å¯ç”¨ç”µå½±åŸºè°ƒæ˜ å°„"
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
#~ msgstr ""
-#~ "调整亮度表的伽玛编ç ã€‚较高的数值会较亮。\n"
-#~ "这个设定是给客户端使用的,会被æœåŠ¡å™¨å¿½ç•¥ã€‚"
+#~ "å¯ç”¨å³æ—¶æ³•线贴图生æˆï¼ˆæµ®é›•效果)。\n"
+#~ "需è¦å¯ç”¨å‡¹å‡¸è´´å›¾ã€‚"
-#~ msgid "Path to save screenshots at."
-#~ msgstr "å±å¹•截图ä¿å­˜è·¯å¾„。"
+#~ msgid ""
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
+#~ msgstr ""
+#~ "å¯ç”¨è§†å·®é®è”½è´´å›¾ã€‚\n"
+#~ "需è¦å¯ç”¨ç€è‰²å™¨ã€‚"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "视差é®è”½å¼ºåº¦"
+#~ msgid ""
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
+#~ msgstr ""
+#~ "实验性选项,设为大于 0 的数字时å¯èƒ½å¯¼è‡´\n"
+#~ "å—之间出现å¯è§ç©ºé—´ã€‚"
+
+#~ msgid "FPS in pause menu"
+#~ msgstr "æš‚åœèœå• FPS"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "字体阴影ä¸é€æ˜Žåº¦ï¼ˆ0-255)。"
+
+#~ msgid "Gamma"
+#~ msgstr "伽马"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "ç”Ÿæˆæ³•线贴图"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "生æˆå‘现贴图"
+
+#~ msgid "IPv6 support."
+#~ msgstr "IPv6 支æŒã€‚"
+
+#, fuzzy
+#~ msgid "Lava depth"
+#~ msgstr "巨大洞穴深度"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "ç£ç›˜ä¸Šçš„生产队列é™åˆ¶"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "正在下载和安装 $1,请ç¨ç­‰..."
+#~ msgid "Main"
+#~ msgstr "主èœå•"
-#~ msgid "Back"
-#~ msgstr "åŽé€€"
+#~ msgid "Main menu style"
+#~ msgstr "主èœå•æ ·å¼"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "é›·è¾¾å°åœ°å›¾ï¼Œæ”¾å¤§è‡³ä¸¤å€"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "é›·è¾¾å°åœ°å›¾, 放大至四å€"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "地表模å¼å°åœ°å›¾, 放大至两å€"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "地表模å¼å°åœ°å›¾, 放大至四å€"
+
+#~ msgid "Name/Password"
+#~ msgstr "用户å/密ç "
+
+#~ msgid "No"
+#~ msgstr "å¦"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "法线贴图采样"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "法线贴图强度"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "视差é®è”½è¿­ä»£æ•°ã€‚"
#~ msgid "Ok"
#~ msgstr "确定"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "视差é®è”½æ•ˆæžœçš„æ•´ä½“斜纹,通常为比例/2。"
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "视差é®è”½æ•ˆæžœçš„æ€»ä½“比例。"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "视差é®è”½"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "视差é®è”½"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "视差é®è”½åç§»"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "视差é®è”½è¿­ä»£"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "视差é®è”½æ¨¡å¼"
+
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "视差é®è”½æ¯”例"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "视差é®è”½å¼ºåº¦"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "TrueType 字体或ä½å›¾çš„路径。"
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "å±å¹•截图ä¿å­˜è·¯å¾„。"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "é‡ç½®å•人世界"
+
+#~ msgid "Select Package File:"
+#~ msgstr "选择包文件:"
+
+#, fuzzy
+#~ msgid "Shadow limit"
+#~ msgstr "地图å—é™åˆ¶"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "å•人游æˆ"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "生æˆçš„一般地图强度。"
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "用于特定语言的字体。"
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "切æ¢ç”µå½±æ¨¡å¼"
+
+#~ msgid "View"
+#~ msgstr "视野"
+
+#~ msgid "Waving Water"
+#~ msgstr "æµåŠ¨çš„æ°´é¢"
+
+#~ msgid "Waving water"
+#~ msgstr "摇动水"
+
+#, fuzzy
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "å¤§åž‹éšæœºæ´žç©´çš„Y轴最大值。"
+
+#~ msgid "Yes"
+#~ msgstr "是"
diff --git a/po/zh_TW/minetest.po b/po/zh_TW/minetest.po
index 646c292b5..99332e226 100644
--- a/po/zh_TW/minetest.po
+++ b/po/zh_TW/minetest.po
@@ -2,9 +2,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Chinese (Traditional) (Minetest)\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-06-13 23:17+0200\n"
-"PO-Revision-Date: 2020-01-29 13:50+0000\n"
-"Last-Translator: pan93412 <pan93412@gmail.com>\n"
+"POT-Creation-Date: 2021-02-23 19:03+0100\n"
+"PO-Revision-Date: 2020-12-24 05:29+0000\n"
+"Last-Translator: Man Ho Yiu <yiufamily.hh@gmail.com>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
"minetest/minetest/zh_Hant/>\n"
"Language: zh_TW\n"
@@ -12,7 +12,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.11-dev\n"
+"X-Generator: Weblate 4.4.1-dev\n"
#: builtin/client/death_formspec.lua src/client/game.cpp
msgid "Respawn"
@@ -23,8 +23,9 @@ msgid "You died"
msgstr "您已死亡"
#: builtin/fstk/dialog.lua builtin/fstk/ui.lua src/gui/modalMenu.cpp
+#, fuzzy
msgid "OK"
-msgstr ""
+msgstr "OK"
#: builtin/fstk/ui.lua
msgid "An error occurred in a Lua script:"
@@ -46,10 +47,6 @@ msgstr "釿–°é€£ç·š"
msgid "The server has requested a reconnect:"
msgstr "伺æœå™¨å·²è¦æ±‚釿–°é€£ç·šï¼š"
-#: builtin/mainmenu/common.lua src/client/game.cpp
-msgid "Loading..."
-msgstr "正在載入..."
-
#: builtin/mainmenu/common.lua
msgid "Protocol version mismatch. "
msgstr "å”定版本ä¸ç¬¦åˆã€‚ "
@@ -63,10 +60,6 @@ msgid "Server supports protocol versions between $1 and $2. "
msgstr "伺æœå™¨æ”¯æ´å”定版本 $1 到 $2。 "
#: builtin/mainmenu/common.lua
-msgid "Try reenabling public serverlist and check your internet connection."
-msgstr "è«‹å˜—è©¦é‡æ–°å•Ÿç”¨å…¬å…±ä¼ºæœå™¨æ¸…單並檢查您的網際網路連線。"
-
-#: builtin/mainmenu/common.lua
msgid "We only support protocol version $1."
msgstr "æˆ‘å€‘åªæ”¯æ´å”定版本 $1。"
@@ -74,7 +67,8 @@ msgstr "æˆ‘å€‘åªæ”¯æ´å”定版本 $1。"
msgid "We support protocol versions between version $1 and $2."
msgstr "我們支æ´å”定版本 $1 到 $2。"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_delete_content.lua
#: builtin/mainmenu/dlg_delete_world.lua
#: builtin/mainmenu/dlg_rename_modpack.lua
@@ -84,7 +78,8 @@ msgstr "我們支æ´å”定版本 $1 到 $2。"
msgid "Cancel"
msgstr "å–æ¶ˆ"
-#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_content.lua
+#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_contentstore.lua
+#: builtin/mainmenu/tab_content.lua
msgid "Dependencies:"
msgstr "相ä¾å…ƒä»¶ï¼š"
@@ -112,7 +107,7 @@ msgstr "無法啟用 Mod「$1ã€ï¼Œå› ç‚ºå…¶åŒ…å«äº†ä¸å…許的字元。åªèƒ½
#: builtin/mainmenu/dlg_config_world.lua
msgid "Find More Mods"
-msgstr ""
+msgstr "æœå°‹æ›´å¤š Mod"
#: builtin/mainmenu/dlg_config_world.lua
msgid "Mod:"
@@ -156,16 +151,58 @@ msgid "enabled"
msgstr "已啟用"
#: builtin/mainmenu/dlg_contentstore.lua
+msgid "\"$1\" already exists. Would you like to overwrite it?"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 and $2 dependencies will be installed."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 by $2"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid ""
+"$1 downloading,\n"
+"$2 queued"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "$1 downloading..."
+msgstr "正在載入..."
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 required dependencies could not be found."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "$1 will be installed, and $2 dependencies will be skipped."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "All packages"
msgstr "所有套件"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Already installed"
+msgstr "已使用此按éµ"
+
+#: builtin/mainmenu/dlg_contentstore.lua
msgid "Back to Main Menu"
msgstr "返回主é¸å–®"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Base Game:"
+msgstr "主æŒéŠæˆ²"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
msgid "ContentDB is not available when Minetest was compiled without cURL"
-msgstr ""
+msgstr "在沒有cURL的情æ³ä¸‹ç·¨è­¯Minetest時,ContentDBä¸å¯ç”¨"
#: builtin/mainmenu/dlg_contentstore.lua
#, fuzzy
@@ -186,6 +223,16 @@ msgid "Install"
msgstr "安è£"
#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install $1"
+msgstr "安è£"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+#, fuzzy
+msgid "Install missing dependencies"
+msgstr "å¯é¸ç›¸ä¾å…ƒä»¶ï¼š"
+
+#: builtin/mainmenu/dlg_contentstore.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Mods"
msgstr "Mod"
@@ -199,9 +246,25 @@ msgid "No results"
msgstr "ç„¡çµæžœ"
#: builtin/mainmenu/dlg_contentstore.lua
-#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_online.lua
-msgid "Search"
-msgstr "æœå°‹"
+#, fuzzy
+msgid "No updates"
+msgstr "æ›´æ–°"
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Not found"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Overwrite"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Please check that the base game is correct."
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "Queued"
+msgstr ""
#: builtin/mainmenu/dlg_contentstore.lua
msgid "Texture packs"
@@ -216,7 +279,11 @@ msgid "Update"
msgstr "æ›´æ–°"
#: builtin/mainmenu/dlg_contentstore.lua
-msgid "View"
+msgid "Update All [$1]"
+msgstr ""
+
+#: builtin/mainmenu/dlg_contentstore.lua
+msgid "View more information in a web browser"
msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
@@ -224,8 +291,9 @@ msgid "A world named \"$1\" already exists"
msgstr "å為「$1ã€çš„世界已存在"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Additional terrain"
-msgstr ""
+msgstr "其他地形"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Altitude chill"
@@ -279,8 +347,9 @@ msgid "Dungeons"
msgstr "地城雜訊"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Flat terrain"
-msgstr ""
+msgstr "å¹³å¦ä¸–界"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -302,7 +371,7 @@ msgstr ""
#: builtin/mainmenu/dlg_create_world.lua
msgid "Hills"
-msgstr ""
+msgstr "å±±"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -310,16 +379,18 @@ msgid "Humid rivers"
msgstr "顯示å¡é©…動程å¼"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Increases humidity around rivers"
-msgstr ""
+msgstr "增加河æµå‘¨åœçš„æ¿•度"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Lakes"
-msgstr ""
+msgstr "æ²³æµ"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Low humidity and high heat causes shallow or dry rivers"
-msgstr ""
+msgstr "因低濕度和高熱é‡è€Œå°Žè‡´æ²³æµæ·ºæˆ–乾燥"
#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp
msgid "Mapgen"
@@ -341,11 +412,12 @@ msgstr "山雜訊"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Mud flow"
-msgstr ""
+msgstr "泥石æµ"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Network of tunnels and caves"
-msgstr ""
+msgstr "éš§é“和洞穴網絡"
#: builtin/mainmenu/dlg_create_world.lua
msgid "No game selected"
@@ -366,7 +438,7 @@ msgstr "æ²³æµå¤§å°"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Sea level rivers"
-msgstr ""
+msgstr "生æˆåœ¨æµ·å¹³é¢çš„æ²³æµ"
#: builtin/mainmenu/dlg_create_world.lua
#: builtin/mainmenu/dlg_settings_advanced.lua
@@ -375,21 +447,23 @@ msgstr "種å­"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Smooth transition between biomes"
-msgstr ""
+msgstr "ç”Ÿæ…‹åŸŸä¹‹é–“çš„å¹³ç©©éŽæ¸¡"
#: builtin/mainmenu/dlg_create_world.lua
msgid ""
"Structures appearing on the terrain (no effect on trees and jungle grass "
"created by v6)"
-msgstr ""
+msgstr "出ç¾åœ¨åœ°å½¢ä¸Šçš„çµæ§‹ï¼ˆå°v6地圖生æˆå™¨å‰µå»ºçš„æ¨¹æœ¨å’Œå¢æž—è‰ç„¡å½±éŸ¿ï¼‰"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Structures appearing on the terrain, typically trees and plants"
-msgstr ""
+msgstr "出ç¾åœ¨åœ°å½¢ä¸Šçš„çµæ§‹ï¼Œé€šå¸¸æ˜¯æ¨¹æœ¨å’Œæ¤ç‰©"
#: builtin/mainmenu/dlg_create_world.lua
+#, fuzzy
msgid "Temperate, Desert"
-msgstr ""
+msgstr "溫帶沙漠"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Temperate, Desert, Jungle"
@@ -415,7 +489,7 @@ msgstr "æ²³æµæ·±åº¦"
#: builtin/mainmenu/dlg_create_world.lua
msgid "Very large caverns deep in the underground"
-msgstr ""
+msgstr "地下深處的巨大洞穴"
#: builtin/mainmenu/dlg_create_world.lua
#, fuzzy
@@ -530,6 +604,10 @@ msgid "Scale"
msgstr "è¦æ¨¡"
#: builtin/mainmenu/dlg_settings_advanced.lua
+msgid "Search"
+msgstr "æœå°‹"
+
+#: builtin/mainmenu/dlg_settings_advanced.lua
msgid "Select directory"
msgstr "鏿“‡ç›®éŒ„"
@@ -644,6 +722,19 @@ msgstr "無法將 Mod 安è£ç‚º $1"
msgid "Unable to install a modpack as a $1"
msgstr "無法將 Mod 包安è£ç‚º $1"
+#: builtin/mainmenu/serverlistmgr.lua src/client/game.cpp
+msgid "Loading..."
+msgstr "正在載入..."
+
+#: builtin/mainmenu/serverlistmgr.lua
+#, fuzzy
+msgid "Public server list is disabled"
+msgstr "å·²åœç”¨ç”¨æˆ¶ç«¯æŒ‡ä»¤ç¨¿"
+
+#: builtin/mainmenu/serverlistmgr.lua
+msgid "Try reenabling public serverlist and check your internet connection."
+msgstr "è«‹å˜—è©¦é‡æ–°å•Ÿç”¨å…¬å…±ä¼ºæœå™¨æ¸…單並檢查您的網際網路連線。"
+
#: builtin/mainmenu/tab_content.lua
msgid "Browse online content"
msgstr "ç€è¦½ç·šä¸Šå…§å®¹"
@@ -697,6 +788,17 @@ msgid "Credits"
msgstr "感è¬"
#: builtin/mainmenu/tab_credits.lua
+#, fuzzy
+msgid "Open User Data Directory"
+msgstr "鏿“‡ç›®éŒ„"
+
+#: builtin/mainmenu/tab_credits.lua
+msgid ""
+"Opens the directory that contains user-provided worlds, games, mods,\n"
+"and texture packs in a file manager / explorer."
+msgstr ""
+
+#: builtin/mainmenu/tab_credits.lua
msgid "Previous Contributors"
msgstr "å…ˆå‰çš„è²¢ç»è€…"
@@ -713,14 +815,10 @@ msgid "Bind Address"
msgstr "ç¶å®šåœ°å€"
#: builtin/mainmenu/tab_local.lua
-msgid "Configure"
-msgstr "設定"
-
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
msgid "Creative Mode"
msgstr "創造模å¼"
-#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_local.lua
msgid "Enable Damage"
msgstr "啟用傷害"
@@ -733,12 +831,13 @@ msgid "Host Server"
msgstr "主機伺æœå™¨"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
msgid "Install games from ContentDB"
-msgstr ""
+msgstr "從ContentDB安è£éŠæˆ²"
#: builtin/mainmenu/tab_local.lua
-msgid "Name/Password"
-msgstr "å稱ï¼å¯†ç¢¼"
+msgid "Name"
+msgstr ""
#: builtin/mainmenu/tab_local.lua
msgid "New"
@@ -749,6 +848,11 @@ msgid "No world created or selected!"
msgstr "未建立或é¸å–世界ï¼"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Password"
+msgstr "新密碼"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Play Game"
msgstr "éŠçŽ©éŠæˆ²"
@@ -757,6 +861,11 @@ msgid "Port"
msgstr "連線埠"
#: builtin/mainmenu/tab_local.lua
+#, fuzzy
+msgid "Select Mods"
+msgstr "é¸å–世界:"
+
+#: builtin/mainmenu/tab_local.lua
msgid "Select World:"
msgstr "é¸å–世界:"
@@ -772,23 +881,23 @@ msgstr "é–‹å§‹éŠæˆ²"
msgid "Address / Port"
msgstr "地å€ï¼é€£ç·šåŸ "
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Connect"
msgstr "連線"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Creative mode"
msgstr "創造模å¼"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Damage enabled"
msgstr "已啟用傷害"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Del. Favorite"
msgstr "刪除收è—"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Favorite"
msgstr "æ”¶è—"
@@ -796,16 +905,16 @@ msgstr "æ”¶è—"
msgid "Join Game"
msgstr "åŠ å…¥éŠæˆ²"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Name / Password"
msgstr "å稱ï¼å¯†ç¢¼"
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "Ping"
msgstr "Ping"
#. ~ PvP = Player versus Player
-#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua
+#: builtin/mainmenu/tab_online.lua
msgid "PvP enabled"
msgstr "已啟用 PvP"
@@ -834,10 +943,6 @@ msgid "Antialiasing:"
msgstr "å鋸齒:"
#: builtin/mainmenu/tab_settings.lua
-msgid "Are you sure to reset your singleplayer world?"
-msgstr "您確定è¦é‡è¨­æ‚¨çš„å–®äººéŠæˆ²ä¸–界嗎?"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Autosave Screen Size"
msgstr "自動儲存螢幕大å°"
@@ -845,10 +950,6 @@ msgstr "自動儲存螢幕大å°"
msgid "Bilinear Filter"
msgstr "é›™ç·šæ€§éŽæ¿¾å™¨"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Bump Mapping"
-msgstr "映射貼圖"
-
#: builtin/mainmenu/tab_settings.lua src/client/game.cpp
msgid "Change Keys"
msgstr "變更按éµ"
@@ -862,10 +963,6 @@ msgid "Fancy Leaves"
msgstr "è¯éº—葉å­"
#: builtin/mainmenu/tab_settings.lua
-msgid "Generate Normal Maps"
-msgstr "產生一般地圖"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Mipmap"
msgstr "Mip 貼圖"
@@ -874,10 +971,6 @@ msgid "Mipmap + Aniso. Filter"
msgstr "Mip 貼圖 + Aniso. éŽæ¿¾å™¨"
#: builtin/mainmenu/tab_settings.lua
-msgid "No"
-msgstr "å¦"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "No Filter"
msgstr "æ²’æœ‰éŽæ¿¾å™¨"
@@ -905,19 +998,11 @@ msgstr "ä¸é€æ˜Žè‘‰å­"
msgid "Opaque Water"
msgstr "ä¸é€æ˜Žæ°´"
-#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp
-msgid "Parallax Occlusion"
-msgstr "視差é®è”½"
-
#: builtin/mainmenu/tab_settings.lua
msgid "Particles"
msgstr "ç²’å­"
#: builtin/mainmenu/tab_settings.lua
-msgid "Reset singleplayer world"
-msgstr "é‡è¨­å–®äººéŠæˆ²ä¸–界"
-
-#: builtin/mainmenu/tab_settings.lua
msgid "Screen:"
msgstr "螢幕:"
@@ -930,6 +1015,11 @@ msgid "Shaders"
msgstr "著色器"
#: builtin/mainmenu/tab_settings.lua
+#, fuzzy
+msgid "Shaders (experimental)"
+msgstr "浮地高度"
+
+#: builtin/mainmenu/tab_settings.lua
msgid "Shaders (unavailable)"
msgstr "著色器(無法使用)"
@@ -973,22 +1063,6 @@ msgstr "擺動液體"
msgid "Waving Plants"
msgstr "æ¤ç‰©æ“ºå‹•"
-#: builtin/mainmenu/tab_settings.lua
-msgid "Yes"
-msgstr "是"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Config mods"
-msgstr "設定 Mod"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Main"
-msgstr "主è¦"
-
-#: builtin/mainmenu/tab_simple_main.lua
-msgid "Start Singleplayer"
-msgstr "é–‹å§‹å–®äººéŠæˆ²"
-
#: src/client/client.cpp
msgid "Connection timed out."
msgstr "連線逾時。"
@@ -1143,20 +1217,20 @@ msgid "Continue"
msgstr "繼續"
#: src/client/game.cpp
-#, c-format
+#, fuzzy, c-format
msgid ""
"Controls:\n"
"- %s: move forwards\n"
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
-"- %s: jump/climb\n"
-"- %s: sneak/go down\n"
+"- %s: jump/climb up\n"
+"- %s: dig/punch\n"
+"- %s: place/use\n"
+"- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
-"- Mouse left: dig/punch\n"
-"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
msgstr ""
@@ -1304,34 +1378,6 @@ msgid "Minimap currently disabled by game or mod"
msgstr "迷你地圖目å‰å·²è¢«éŠæˆ²æˆ– Mod åœç”¨"
#: src/client/game.cpp
-msgid "Minimap hidden"
-msgstr "已隱è—迷你地圖"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x1"
-msgstr "雷锿¨¡å¼çš„迷你地圖,放大 1 å€"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x2"
-msgstr "雷锿¨¡å¼çš„迷你地圖,放大 2 å€"
-
-#: src/client/game.cpp
-msgid "Minimap in radar mode, Zoom x4"
-msgstr "雷锿¨¡å¼çš„迷你地圖,放大 4 å€"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x1"
-msgstr "è¡¨é¢æ¨¡å¼çš„迷你地圖,放大 1 å€"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x2"
-msgstr "è¡¨é¢æ¨¡å¼çš„迷你地圖,放大 2 å€"
-
-#: src/client/game.cpp
-msgid "Minimap in surface mode, Zoom x4"
-msgstr "è¡¨é¢æ¨¡å¼çš„迷你地圖,放大 4 å€"
-
-#: src/client/game.cpp
msgid "Noclip mode disabled"
msgstr "å·²åœç”¨ç©¿ç‰†æ¨¡å¼"
@@ -1392,12 +1438,13 @@ msgid "Sound muted"
msgstr "å·²éœéŸ³"
#: src/client/game.cpp
+#, fuzzy
msgid "Sound system is disabled"
-msgstr ""
+msgstr "è²éŸ³ç³»çµ±å·²è¢«ç¦ç”¨"
#: src/client/game.cpp
msgid "Sound system is not supported on this build"
-msgstr ""
+msgstr "æ­¤ç·¨è­¯ç‰ˆæœ¬ä¸æ”¯æŒè²éŸ³ç³»çµ±"
#: src/client/game.cpp
msgid "Sound unmuted"
@@ -1723,6 +1770,25 @@ msgstr "X 按鈕 2"
msgid "Zoom"
msgstr "é è¿‘調整"
+#: src/client/minimap.cpp
+msgid "Minimap hidden"
+msgstr "已隱è—迷你地圖"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in radar mode, Zoom x%d"
+msgstr "雷锿¨¡å¼çš„迷你地圖,放大 1 å€"
+
+#: src/client/minimap.cpp
+#, fuzzy, c-format
+msgid "Minimap in surface mode, Zoom x%d"
+msgstr "è¡¨é¢æ¨¡å¼çš„迷你地圖,放大 1 å€"
+
+#: src/client/minimap.cpp
+#, fuzzy
+msgid "Minimap in texture mode"
+msgstr "éŽæ¿¾å™¨çš„æœ€å¤§æè³ªå¤§å°"
+
#: src/gui/guiConfirmRegistration.cpp src/gui/guiPasswordChange.cpp
msgid "Passwords do not match!"
msgstr "密碼ä¸ç¬¦åˆï¼"
@@ -1978,14 +2044,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"0 = parallax occlusion with slope information (faster).\n"
-"1 = relief mapping (slower, more accurate)."
-msgstr ""
-"0 = åŒ…å«æ–œçŽ‡è³‡è¨Šçš„è¦–å·®é®è”½ï¼ˆè¼ƒå¿«ï¼‰ã€‚\n"
-"1 = 替æ›è²¼åœ–(較慢,較準確)。"
-
-#: src/settings_translation_file.cpp
msgid "2D noise that controls the shape/size of ridged mountains."
msgstr "控制山脊之形狀或大å°çš„ 2D 雜訊值。"
@@ -2109,6 +2167,10 @@ msgid "ABM interval"
msgstr "ABM é–“éš”"
#: src/settings_translation_file.cpp
+msgid "ABM time budget"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "Absolute limit of queued blocks to emerge"
msgstr "發生佇列的絕å°é™åˆ¶"
@@ -2364,10 +2426,6 @@ msgid "Builtin"
msgstr "內建"
#: src/settings_translation_file.cpp
-msgid "Bumpmapping"
-msgstr "映射貼圖"
-
-#: src/settings_translation_file.cpp
msgid ""
"Camera 'near clipping plane' distance in nodes, between 0 and 0.25\n"
"Only works on GLES platforms. Most users will not need to change this.\n"
@@ -2439,16 +2497,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid ""
-"Changes the main menu UI:\n"
-"- Full: Multiple singleplayer worlds, game choice, texture pack chooser, "
-"etc.\n"
-"- Simple: One singleplayer world, no game or texture pack choosers. May "
-"be\n"
-"necessary for smaller screens."
-msgstr ""
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Chat font size"
msgstr "字型大å°"
@@ -2607,6 +2655,10 @@ msgid "ContentDB Flag Blacklist"
msgstr ""
#: src/settings_translation_file.cpp
+msgid "ContentDB Max Concurrent Downloads"
+msgstr ""
+
+#: src/settings_translation_file.cpp
#, fuzzy
msgid "ContentDB URL"
msgstr "繼續"
@@ -2667,7 +2719,10 @@ msgid "Crosshair alpha"
msgstr "åå­— alpha 值"
#: src/settings_translation_file.cpp
-msgid "Crosshair alpha (opaqueness, between 0 and 255)."
+#, fuzzy
+msgid ""
+"Crosshair alpha (opaqueness, between 0 and 255).\n"
+"Also controls the object crosshair color"
msgstr "åå­— alpha 值(ä¸é€æ˜Žï¼Œ0 至 255間)。"
#: src/settings_translation_file.cpp
@@ -2675,8 +2730,10 @@ msgid "Crosshair color"
msgstr "å字色彩"
#: src/settings_translation_file.cpp
-msgid "Crosshair color (R,G,B)."
-msgstr "å字色彩 (R,G,B)。"
+msgid ""
+"Crosshair color (R,G,B).\n"
+"Also controls the object crosshair color"
+msgstr ""
#: src/settings_translation_file.cpp
msgid "DPI"
@@ -2783,14 +2840,6 @@ msgid "Defines location and terrain of optional hills and lakes."
msgstr "定義å¯é¸çš„山丘與湖泊的ä½ç½®èˆ‡åœ°å½¢ã€‚"
#: src/settings_translation_file.cpp
-msgid ""
-"Defines sampling step of texture.\n"
-"A higher value results in smoother normal maps."
-msgstr ""
-"定義æè³ªçš„æŽ¡æ¨£æ­¥é©Ÿã€‚\n"
-"較高的值會有較平滑的一般地圖。"
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "Defines the base ground level."
msgstr "定義樹木å€èˆ‡æ¨¹æœ¨å¯†åº¦ã€‚"
@@ -2871,6 +2920,11 @@ msgid "Desynchronize block animation"
msgstr "異步化方塊動畫"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Dig key"
+msgstr "å³éµ"
+
+#: src/settings_translation_file.cpp
msgid "Digging particles"
msgstr "挖掘粒å­"
@@ -2934,7 +2988,8 @@ msgid "Enable console window"
msgstr "啟用終端機視窗"
#: src/settings_translation_file.cpp
-msgid "Enable creative mode for new created maps."
+#, fuzzy
+msgid "Enable creative mode for all players"
msgstr "為新建立的地圖啟用創造模å¼ã€‚"
#: src/settings_translation_file.cpp
@@ -3038,17 +3093,6 @@ msgid "Enables animation of inventory items."
msgstr "å•Ÿç”¨ç‰©å“æ¬„物å“動畫。"
#: src/settings_translation_file.cpp
-msgid ""
-"Enables bumpmapping for textures. Normalmaps need to be supplied by the "
-"texture pack\n"
-"or need to be auto-generated.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"為æè³ªå•Ÿç”¨è²¼åœ–è½‰å„²ã€‚æ™®é€šåœ°åœ–éœ€è¦æè³ªåŒ…çš„æ”¯æ´\n"
-"或是自動生æˆã€‚\n"
-"必須啟用著色器。"
-
-#: src/settings_translation_file.cpp
msgid "Enables caching of facedir rotated meshes."
msgstr "å•Ÿç”¨é¢æ—‹è½‰æ–¹å‘的網格快å–。"
@@ -3058,22 +3102,6 @@ msgstr "啟用å°åœ°åœ–。"
#: src/settings_translation_file.cpp
msgid ""
-"Enables on the fly normalmap generation (Emboss effect).\n"
-"Requires bumpmapping to be enabled."
-msgstr ""
-"啟用忙碌的一般地圖生æˆï¼ˆæµ®é›•效果)。\n"
-"必須啟用貼圖轉儲。"
-
-#: src/settings_translation_file.cpp
-msgid ""
-"Enables parallax occlusion mapping.\n"
-"Requires shaders to be enabled."
-msgstr ""
-"啟用視差é®è”½è²¼åœ–。\n"
-"必須啟用著色器。"
-
-#: src/settings_translation_file.cpp
-msgid ""
"Enables the sound system.\n"
"If disabled, this completely disables all sounds everywhere and the in-game\n"
"sound controls will be non-functional.\n"
@@ -3090,14 +3118,6 @@ msgstr "主體方法"
#: src/settings_translation_file.cpp
msgid ""
-"Experimental option, might cause visible spaces between blocks\n"
-"when set to higher number than 0."
-msgstr ""
-"實驗性é¸é …,當設定到大於零的值時\n"
-"也許會造æˆåœ¨æ–¹å¡Šé–“有視覺空隙。"
-
-#: src/settings_translation_file.cpp
-msgid ""
"Exponent of the floatland tapering. Alters the tapering behaviour.\n"
"Value = 1.0 creates a uniform, linear tapering.\n"
"Values > 1.0 create a smooth tapering suitable for the default separated\n"
@@ -3107,8 +3127,9 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "FPS in pause menu"
-msgstr "在暫åœé¸å–®ä¸­çš„ FPS"
+#, fuzzy
+msgid "FPS when unfocused or paused"
+msgstr "ç•¶éŠæˆ²æš«åœæ™‚的最高 FPS。"
#: src/settings_translation_file.cpp
msgid "FSAA"
@@ -3435,10 +3456,6 @@ msgid "GUI scaling filter txr2img"
msgstr "圖形使用者介é¢ç¸®æ”¾æ¯”ä¾‹éŽæ¿¾å™¨ txr2img"
#: src/settings_translation_file.cpp
-msgid "Generate normalmaps"
-msgstr "生æˆä¸€èˆ¬åœ°åœ–"
-
-#: src/settings_translation_file.cpp
msgid "Global callbacks"
msgstr "全域回呼"
@@ -3500,8 +3517,8 @@ msgstr "HUD 切æ›éµ"
#, fuzzy
msgid ""
"Handling for deprecated Lua API calls:\n"
-"- legacy: (try to) mimic old behaviour (default for release).\n"
-"- log: mimic and log backtrace of deprecated call (default for debug).\n"
+"- none: Do not log deprecated calls\n"
+"- log: mimic and log backtrace of deprecated call (default).\n"
"- error: abort on usage of deprecated call (suggested for mod developers)."
msgstr ""
"處ç†å·²æ£„用的 Lua API 呼å«ï¼š\n"
@@ -4002,6 +4019,11 @@ msgid "Joystick button repetition interval"
msgstr "æ–æ¡¿æŒ‰éˆ•é‡è¦†é–“éš”"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Joystick deadzone"
+msgstr "æ–æ¡¿é¡žåž‹"
+
+#: src/settings_translation_file.cpp
msgid "Joystick frustum sensitivity"
msgstr "æ–æ¡¿éˆæ•度"
@@ -4104,6 +4126,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for digging.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"è·³èºçš„æŒ‰éµã€‚\n"
+"請見 http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for dropping the currently selected item.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4246,6 +4279,17 @@ msgstr ""
"html#a54da2a0e231901735e3da1b0edf72eb3"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Key for placing.\n"
+"See http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+msgstr ""
+"è·³èºçš„æŒ‰éµã€‚\n"
+"請見 http://irrlicht.sourceforge.net/docu/namespaceirr."
+"html#a54da2a0e231901735e3da1b0edf72eb3"
+
+#: src/settings_translation_file.cpp
msgid ""
"Key for selecting the 11th hotbar slot.\n"
"See http://irrlicht.sourceforge.net/docu/namespaceirr."
@@ -4995,11 +5039,6 @@ msgid "Main menu script"
msgstr "主é¸å–®æŒ‡ä»¤ç¨¿"
#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Main menu style"
-msgstr "主é¸å–®æŒ‡ä»¤ç¨¿"
-
-#: src/settings_translation_file.cpp
msgid ""
"Make fog and sky colors depend on daytime (dawn/sunset) and view direction."
msgstr "讓霧與天空的é¡è‰²å–æ±ºæ–¼æ™‚é–“ï¼ˆé»Žæ˜Žï¼æ—¥è½ï¼‰èˆ‡è§€çœ‹æ–¹å‘。"
@@ -5013,6 +5052,14 @@ msgid "Makes all liquids opaque"
msgstr "讓所有的液體ä¸é€æ˜Ž"
#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Disk Storage"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid "Map Compression Level for Network Transfer"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Map directory"
msgstr "地圖目錄"
@@ -5212,7 +5259,8 @@ msgid "Maximum FPS"
msgstr "最高 FPS"
#: src/settings_translation_file.cpp
-msgid "Maximum FPS when game is paused."
+#, fuzzy
+msgid "Maximum FPS when the window is not focused, or when the game is paused."
msgstr "ç•¶éŠæˆ²æš«åœæ™‚的最高 FPS。"
#: src/settings_translation_file.cpp
@@ -5267,6 +5315,13 @@ msgstr ""
"å°‡å…¶è¨­å®šç•™ç©ºå‰‡æœƒè‡ªå‹•é¸æ“‡é©ç•¶çš„值。"
#: src/settings_translation_file.cpp
+msgid ""
+"Maximum number of concurrent downloads. Downloads exceeding this limit will "
+"be queued.\n"
+"This should be lower than curl_parallel_limit."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Maximum number of forceloaded mapblocks."
msgstr "強制載入地圖å€å¡Šçš„æœ€å¤§æ•¸é‡ã€‚"
@@ -5513,14 +5568,6 @@ msgid "Noises"
msgstr "雜訊"
#: src/settings_translation_file.cpp
-msgid "Normalmaps sampling"
-msgstr "法線貼圖採樣"
-
-#: src/settings_translation_file.cpp
-msgid "Normalmaps strength"
-msgstr "法線貼圖強度"
-
-#: src/settings_translation_file.cpp
msgid "Number of emerge threads"
msgstr "出ç¾çš„執行緒數"
@@ -5549,10 +5596,6 @@ msgstr ""
"記憶體耗費(根據經驗,4096=100MB)。"
#: src/settings_translation_file.cpp
-msgid "Number of parallax occlusion iterations."
-msgstr "視差é®è”½è¿­ä»£æ¬¡æ•¸ã€‚"
-
-#: src/settings_translation_file.cpp
msgid "Online Content Repository"
msgstr ""
@@ -5578,35 +5621,6 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
-msgid "Overall bias of parallax occlusion effect, usually scale/2."
-msgstr "視差é®è”½æ•ˆæžœçš„總åå·®ï¼Œé€šå¸¸æ˜¯è¦æ¨¡/2。"
-
-#: src/settings_translation_file.cpp
-msgid "Overall scale of parallax occlusion effect."
-msgstr "視差é®è”½æ•ˆæžœçš„ç¸½è¦æ¨¡ã€‚"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion"
-msgstr "視差é®è”½"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion bias"
-msgstr "視差é®è”½åå·®"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion iterations"
-msgstr "視差é®è”½è¿­ä»£"
-
-#: src/settings_translation_file.cpp
-msgid "Parallax occlusion mode"
-msgstr "視差é®è”½æ¨¡å¼"
-
-#: src/settings_translation_file.cpp
-#, fuzzy
-msgid "Parallax occlusion scale"
-msgstr "視差é®è”½ä¿‚數"
-
-#: src/settings_translation_file.cpp
msgid ""
"Path of the fallback font.\n"
"If “freetype†setting is enabled: Must be a TrueType font.\n"
@@ -5674,6 +5688,16 @@ msgid "Pitch move mode"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place key"
+msgstr "飛行按éµ"
+
+#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "Place repetition interval"
+msgstr "å³éµé»žæ“Šé‡è¦†é–“éš”"
+
+#: src/settings_translation_file.cpp
msgid ""
"Player is able to fly without being affected by gravity.\n"
"This requires the \"fly\" privilege on the server."
@@ -5841,10 +5865,6 @@ msgid "Right key"
msgstr "å³éµ"
#: src/settings_translation_file.cpp
-msgid "Rightclick repetition interval"
-msgstr "å³éµé»žæ“Šé‡è¦†é–“éš”"
-
-#: src/settings_translation_file.cpp
#, fuzzy
msgid "River channel depth"
msgstr "æ²³æµæ·±åº¦"
@@ -6147,6 +6167,19 @@ msgid "Show entity selection boxes"
msgstr "顯示物體é¸å–方塊"
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid ""
+"Show entity selection boxes\n"
+"A restart is required after changing this."
+msgstr ""
+"設定語言。留空以使用系統語言。\n"
+"è®Šæ›´å¾Œå¿…é ˆé‡æ–°å•Ÿå‹•以使其生效。"
+
+#: src/settings_translation_file.cpp
+msgid "Show nametag backgrounds by default"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Shutdown message"
msgstr "關閉訊æ¯"
@@ -6292,10 +6325,6 @@ msgid "Strength of 3D mode parallax."
msgstr "視差強度。"
#: src/settings_translation_file.cpp
-msgid "Strength of generated normalmaps."
-msgstr "生æˆä¹‹ä¸€èˆ¬åœ°åœ–的強度。"
-
-#: src/settings_translation_file.cpp
msgid ""
"Strength of light curve boost.\n"
"The 3 'boost' parameters define a range of the light\n"
@@ -6396,6 +6425,11 @@ msgid "The URL for the content repository"
msgstr ""
#: src/settings_translation_file.cpp
+#, fuzzy
+msgid "The deadzone of the joystick"
+msgstr "è¦ä½¿ç”¨çš„æ–æ¡¿çš„è­˜åˆ¥ç¢¼"
+
+#: src/settings_translation_file.cpp
msgid ""
"The default format in which profiles are being saved,\n"
"when calling `/profiler save [format]` without format."
@@ -6459,8 +6493,8 @@ msgid ""
"A restart is required after changing this.\n"
"Note: On Android, stick with OGLES1 if unsure! App may fail to start "
"otherwise.\n"
-"On other platforms, OpenGL is recommended, and it’s the only driver with\n"
-"shader support currently."
+"On other platforms, OpenGL is recommended.\n"
+"Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)"
msgstr ""
#: src/settings_translation_file.cpp
@@ -6495,6 +6529,12 @@ msgstr ""
#: src/settings_translation_file.cpp
msgid ""
+"The time budget allowed for ABMs to execute on each step\n"
+"(as a fraction of the ABM Interval)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
"The time in seconds it takes between repeated events\n"
"when holding down a joystick button combination."
msgstr ""
@@ -6504,9 +6544,8 @@ msgstr ""
#: src/settings_translation_file.cpp
#, fuzzy
msgid ""
-"The time in seconds it takes between repeated right clicks when holding the "
-"right\n"
-"mouse button."
+"The time in seconds it takes between repeated node placements when holding\n"
+"the place button."
msgstr "ç•¶æŒ‰ä½æ»‘é¼ å³éµæ™‚,é‡è¦†å³éµé»žé¸çš„間隔以秒計。"
#: src/settings_translation_file.cpp
@@ -6656,6 +6695,17 @@ msgid ""
msgstr ""
#: src/settings_translation_file.cpp
+msgid ""
+"Use multi-sample antialiasing (MSAA) to smooth out block edges.\n"
+"This algorithm smooths out the 3D viewport while keeping the image sharp,\n"
+"but it doesn't affect the insides of textures\n"
+"(which is especially noticeable with transparent textures).\n"
+"Visible spaces appear between nodes when shaders are disabled.\n"
+"If set to 0, MSAA is disabled.\n"
+"A restart is required after changing this option."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Use trilinear filtering when scaling textures."
msgstr "當縮放æè³ªæ™‚ä½¿ç”¨ä¸‰ç·šæ€§éŽæ¿¾ã€‚"
@@ -6895,6 +6945,12 @@ msgid ""
msgstr "是å¦ä½¿ç”¨ freetype 字型,需è¦å°‡ freetype 支æ´ç·¨è­¯é€²ä¾†ã€‚"
#: src/settings_translation_file.cpp
+msgid ""
+"Whether nametag backgrounds should be shown by default.\n"
+"Mods may still set a background."
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "Whether node texture animations should be desynchronized per mapblock."
msgstr "æ˜¯å¦æ¯å€‹åœ°åœ–å€å¡Šçš„節點æè³ªå‹•ç•«å¯ä»¥ä¸åŒæ­¥ã€‚"
@@ -7030,6 +7086,24 @@ msgid "Y-level of seabed."
msgstr "海底的 Y 高度。"
#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when saving mapblocks to disk.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
+msgid ""
+"ZLib compression level to use when sending mapblocks to the client.\n"
+"-1 - Zlib's default compression level\n"
+"0 - no compresson, fastest\n"
+"9 - best compression, slowest\n"
+"(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)"
+msgstr ""
+
+#: src/settings_translation_file.cpp
msgid "cURL file download timeout"
msgstr "cURL 檔案下載逾時"
@@ -7041,112 +7115,258 @@ msgstr "cURL 並行é™åˆ¶"
msgid "cURL timeout"
msgstr "cURL 逾時"
-#~ msgid "Toggle Cinematic"
-#~ msgstr "切æ›éŽå ´å‹•ç•«"
+#~ msgid ""
+#~ "0 = parallax occlusion with slope information (faster).\n"
+#~ "1 = relief mapping (slower, more accurate)."
+#~ msgstr ""
+#~ "0 = åŒ…å«æ–œçŽ‡è³‡è¨Šçš„è¦–å·®é®è”½ï¼ˆè¼ƒå¿«ï¼‰ã€‚\n"
+#~ "1 = 替æ›è²¼åœ–(較慢,較準確)。"
-#, fuzzy
-#~ msgid "Select Package File:"
-#~ msgstr "é¸å– Mod 檔案:"
+#~ msgid ""
+#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
+#~ "brighter.\n"
+#~ "This setting is for the client only and is ignored by the server."
+#~ msgstr ""
+#~ "調整亮度表的伽瑪編碼。較高的數值會較亮。\n"
+#~ "這個設定是給客戶端使用的,會被伺æœå™¨å¿½ç•¥ã€‚"
-#, fuzzy
-#~ msgid "Y of upper limit of lava in large caves."
-#~ msgstr "大型å½éš¨æ©Ÿæ´žç©´çš„ Y 上é™ã€‚"
+#~ msgid "Are you sure to reset your singleplayer world?"
+#~ msgstr "您確定è¦é‡è¨­æ‚¨çš„å–®äººéŠæˆ²ä¸–界嗎?"
-#~ msgid "Waving Water"
-#~ msgstr "波動的水"
+#~ msgid "Back"
+#~ msgstr "返回"
-#~ msgid "Y-level to which floatland shadows extend."
-#~ msgstr "浮地陰影擴展的 Y 高度。"
+#~ msgid "Bump Mapping"
+#~ msgstr "映射貼圖"
-#~ msgid "Y-level of floatland midpoint and lake surface."
-#~ msgstr "浮地中點與湖表é¢çš„ Y 高度。"
+#~ msgid "Bumpmapping"
+#~ msgstr "映射貼圖"
-#~ msgid "Waving water"
-#~ msgstr "波動的水"
+#~ msgid "Config mods"
+#~ msgstr "設定 Mod"
-#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
-#~ msgstr "在平整浮地地形的山丘高度與湖泊深度變化。"
+#~ msgid "Configure"
+#~ msgstr "設定"
#, fuzzy
#~ msgid ""
-#~ "Typical maximum height, above and below midpoint, of floatland mountains."
-#~ msgstr "浮地山å€åŸŸçš„典型最大高度,高於與低於中點。"
-
-#~ msgid "This font will be used for certain languages."
-#~ msgstr "這個字型將會被用於特定的語言。"
+#~ "Controls the density of mountain-type floatlands.\n"
+#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ msgstr ""
+#~ "控制山地的浮地密度。\n"
+#~ "是加入到 'np_mountain' 噪音值的補償。"
-#~ msgid "Shadow limit"
-#~ msgstr "é™°å½±é™åˆ¶"
+#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
+#~ msgstr "控制隧é“的寬度,較å°çš„值會創造出較寬的隧é“。"
-#~ msgid "Path to TrueTypeFont or bitmap."
-#~ msgstr "TrueType 字型或點陣字的路徑。"
+#~ msgid "Crosshair color (R,G,B)."
+#~ msgstr "å字色彩 (R,G,B)。"
#, fuzzy
-#~ msgid "Lava depth"
-#~ msgstr "大型洞穴深度"
-
-#~ msgid "IPv6 support."
-#~ msgstr "IPv6 支æ´ã€‚"
-
-#~ msgid "Gamma"
-#~ msgstr "Gamma"
+#~ msgid "Darkness sharpness"
+#~ msgstr "湖泊å¡åº¦"
-#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
-#~ msgstr "字型陰影 alpha(ä¸é€æ˜Žåº¦ï¼Œä»‹æ–¼ 0 到 255)。"
+#~ msgid ""
+#~ "Defines areas of floatland smooth terrain.\n"
+#~ "Smooth floatlands occur when noise > 0."
+#~ msgstr ""
+#~ "定義浮地的平整地形å€ã€‚\n"
+#~ "平整的浮地會在噪音 > 0 時產生。"
-#~ msgid "Floatland base height noise"
-#~ msgstr "浮地基礎高度噪音"
+#~ msgid ""
+#~ "Defines sampling step of texture.\n"
+#~ "A higher value results in smoother normal maps."
+#~ msgstr ""
+#~ "定義æè³ªçš„æŽ¡æ¨£æ­¥é©Ÿã€‚\n"
+#~ "較高的值會有較平滑的一般地圖。"
-#~ msgid "Enables filmic tone mapping"
-#~ msgstr "啟用電影色調映射"
+#~ msgid "Downloading and installing $1, please wait..."
+#~ msgstr "æ­£åœ¨ä¸‹è¼‰ä¸¦å®‰è£ $1,請ç¨å€™â€¦â€¦"
#~ msgid "Enable VBO"
#~ msgstr "啟用 VBO"
#~ msgid ""
-#~ "Defines areas of floatland smooth terrain.\n"
-#~ "Smooth floatlands occur when noise > 0."
+#~ "Enables bumpmapping for textures. Normalmaps need to be supplied by the "
+#~ "texture pack\n"
+#~ "or need to be auto-generated.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "定義浮地的平整地形å€ã€‚\n"
-#~ "平整的浮地會在噪音 > 0 時產生。"
+#~ "為æè³ªå•Ÿç”¨è²¼åœ–è½‰å„²ã€‚æ™®é€šåœ°åœ–éœ€è¦æè³ªåŒ…çš„æ”¯æ´\n"
+#~ "或是自動生æˆã€‚\n"
+#~ "必須啟用著色器。"
-#, fuzzy
-#~ msgid "Darkness sharpness"
-#~ msgstr "湖泊å¡åº¦"
+#~ msgid "Enables filmic tone mapping"
+#~ msgstr "啟用電影色調映射"
-#~ msgid "Controls width of tunnels, a smaller value creates wider tunnels."
-#~ msgstr "控制隧é“的寬度,較å°çš„值會創造出較寬的隧é“。"
+#~ msgid ""
+#~ "Enables on the fly normalmap generation (Emboss effect).\n"
+#~ "Requires bumpmapping to be enabled."
+#~ msgstr ""
+#~ "啟用忙碌的一般地圖生æˆï¼ˆæµ®é›•效果)。\n"
+#~ "必須啟用貼圖轉儲。"
-#, fuzzy
#~ msgid ""
-#~ "Controls the density of mountain-type floatlands.\n"
-#~ "Is a noise offset added to the 'mgv7_np_mountain' noise value."
+#~ "Enables parallax occlusion mapping.\n"
+#~ "Requires shaders to be enabled."
#~ msgstr ""
-#~ "控制山地的浮地密度。\n"
-#~ "是加入到 'np_mountain' 噪音值的補償。"
+#~ "啟用視差é®è”½è²¼åœ–。\n"
+#~ "必須啟用著色器。"
#~ msgid ""
-#~ "Adjust the gamma encoding for the light tables. Higher numbers are "
-#~ "brighter.\n"
-#~ "This setting is for the client only and is ignored by the server."
+#~ "Experimental option, might cause visible spaces between blocks\n"
+#~ "when set to higher number than 0."
#~ msgstr ""
-#~ "調整亮度表的伽瑪編碼。較高的數值會較亮。\n"
-#~ "這個設定是給客戶端使用的,會被伺æœå™¨å¿½ç•¥ã€‚"
+#~ "實驗性é¸é …,當設定到大於零的值時\n"
+#~ "也許會造æˆåœ¨æ–¹å¡Šé–“有視覺空隙。"
-#~ msgid "Path to save screenshots at."
-#~ msgstr "儲存螢幕截圖的路徑。"
+#~ msgid "FPS in pause menu"
+#~ msgstr "在暫åœé¸å–®ä¸­çš„ FPS"
-#~ msgid "Parallax occlusion strength"
-#~ msgstr "視差é®è”½å¼·åº¦"
+#~ msgid "Floatland base height noise"
+#~ msgstr "浮地基礎高度噪音"
+
+#~ msgid "Font shadow alpha (opaqueness, between 0 and 255)."
+#~ msgstr "字型陰影 alpha(ä¸é€æ˜Žåº¦ï¼Œä»‹æ–¼ 0 到 255)。"
+
+#~ msgid "Gamma"
+#~ msgstr "Gamma"
+
+#~ msgid "Generate Normal Maps"
+#~ msgstr "產生一般地圖"
+
+#~ msgid "Generate normalmaps"
+#~ msgstr "生æˆä¸€èˆ¬åœ°åœ–"
+
+#~ msgid "IPv6 support."
+#~ msgstr "IPv6 支æ´ã€‚"
+
+#, fuzzy
+#~ msgid "Lava depth"
+#~ msgstr "大型洞穴深度"
#~ msgid "Limit of emerge queues on disk"
#~ msgstr "在ç£ç¢Ÿä¸Šå‡ºç¾ä½‡åˆ—çš„é™åˆ¶"
-#~ msgid "Downloading and installing $1, please wait..."
-#~ msgstr "æ­£åœ¨ä¸‹è¼‰ä¸¦å®‰è£ $1,請ç¨å€™â€¦â€¦"
+#~ msgid "Main"
+#~ msgstr "主è¦"
-#~ msgid "Back"
-#~ msgstr "返回"
+#, fuzzy
+#~ msgid "Main menu style"
+#~ msgstr "主é¸å–®æŒ‡ä»¤ç¨¿"
+
+#~ msgid "Minimap in radar mode, Zoom x2"
+#~ msgstr "雷锿¨¡å¼çš„迷你地圖,放大 2 å€"
+
+#~ msgid "Minimap in radar mode, Zoom x4"
+#~ msgstr "雷锿¨¡å¼çš„迷你地圖,放大 4 å€"
+
+#~ msgid "Minimap in surface mode, Zoom x2"
+#~ msgstr "è¡¨é¢æ¨¡å¼çš„迷你地圖,放大 2 å€"
+
+#~ msgid "Minimap in surface mode, Zoom x4"
+#~ msgstr "è¡¨é¢æ¨¡å¼çš„迷你地圖,放大 4 å€"
+
+#~ msgid "Name/Password"
+#~ msgstr "å稱ï¼å¯†ç¢¼"
+
+#~ msgid "No"
+#~ msgstr "å¦"
+
+#~ msgid "Normalmaps sampling"
+#~ msgstr "法線貼圖採樣"
+
+#~ msgid "Normalmaps strength"
+#~ msgstr "法線貼圖強度"
+
+#~ msgid "Number of parallax occlusion iterations."
+#~ msgstr "視差é®è”½è¿­ä»£æ¬¡æ•¸ã€‚"
#~ msgid "Ok"
#~ msgstr "確定"
+
+#~ msgid "Overall bias of parallax occlusion effect, usually scale/2."
+#~ msgstr "視差é®è”½æ•ˆæžœçš„總åå·®ï¼Œé€šå¸¸æ˜¯è¦æ¨¡/2。"
+
+#~ msgid "Overall scale of parallax occlusion effect."
+#~ msgstr "視差é®è”½æ•ˆæžœçš„ç¸½è¦æ¨¡ã€‚"
+
+#~ msgid "Parallax Occlusion"
+#~ msgstr "視差é®è”½"
+
+#~ msgid "Parallax occlusion"
+#~ msgstr "視差é®è”½"
+
+#~ msgid "Parallax occlusion bias"
+#~ msgstr "視差é®è”½åå·®"
+
+#~ msgid "Parallax occlusion iterations"
+#~ msgstr "視差é®è”½è¿­ä»£"
+
+#~ msgid "Parallax occlusion mode"
+#~ msgstr "視差é®è”½æ¨¡å¼"
+
+#, fuzzy
+#~ msgid "Parallax occlusion scale"
+#~ msgstr "視差é®è”½ä¿‚數"
+
+#~ msgid "Parallax occlusion strength"
+#~ msgstr "視差é®è”½å¼·åº¦"
+
+#~ msgid "Path to TrueTypeFont or bitmap."
+#~ msgstr "TrueType 字型或點陣字的路徑。"
+
+#~ msgid "Path to save screenshots at."
+#~ msgstr "儲存螢幕截圖的路徑。"
+
+#~ msgid "Reset singleplayer world"
+#~ msgstr "é‡è¨­å–®äººéŠæˆ²ä¸–界"
+
+#, fuzzy
+#~ msgid "Select Package File:"
+#~ msgstr "é¸å– Mod 檔案:"
+
+#~ msgid "Shadow limit"
+#~ msgstr "é™°å½±é™åˆ¶"
+
+#~ msgid "Start Singleplayer"
+#~ msgstr "é–‹å§‹å–®äººéŠæˆ²"
+
+#~ msgid "Strength of generated normalmaps."
+#~ msgstr "生æˆä¹‹ä¸€èˆ¬åœ°åœ–的強度。"
+
+#~ msgid "This font will be used for certain languages."
+#~ msgstr "這個字型將會被用於特定的語言。"
+
+#~ msgid "Toggle Cinematic"
+#~ msgstr "切æ›éŽå ´å‹•ç•«"
+
+#, fuzzy
+#~ msgid ""
+#~ "Typical maximum height, above and below midpoint, of floatland mountains."
+#~ msgstr "浮地山å€åŸŸçš„典型最大高度,高於與低於中點。"
+
+#~ msgid "Variation of hill height and lake depth on floatland smooth terrain."
+#~ msgstr "在平整浮地地形的山丘高度與湖泊深度變化。"
+
+#~ msgid "View"
+#~ msgstr "查看"
+
+#~ msgid "Waving Water"
+#~ msgstr "波動的水"
+
+#~ msgid "Waving water"
+#~ msgstr "波動的水"
+
+#, fuzzy
+#~ msgid "Y of upper limit of lava in large caves."
+#~ msgstr "大型å½éš¨æ©Ÿæ´žç©´çš„ Y 上é™ã€‚"
+
+#~ msgid "Y-level of floatland midpoint and lake surface."
+#~ msgstr "浮地中點與湖表é¢çš„ Y 高度。"
+
+#~ msgid "Y-level to which floatland shadows extend."
+#~ msgstr "浮地陰影擴展的 Y 高度。"
+
+#~ msgid "Yes"
+#~ msgstr "是"
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 3d6d1b0ea..7bcf8d6c7 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,5 +1,3 @@
-cmake_minimum_required(VERSION 2.6)
-
project(minetest)
INCLUDE(CheckIncludeFiles)
@@ -124,27 +122,6 @@ option(ENABLE_FREETYPE "Enable FreeType2 (TrueType fonts and basic unicode suppo
set(USE_FREETYPE FALSE)
if(ENABLE_FREETYPE)
-##
-## Note: FindFreetype.cmake seems to have been fixed in recent versions of
-## CMake. If issues persist, re-enable this workaround specificially for the
-## failing platforms.
-##
-# if(UNIX)
-# include(FindPkgConfig)
-# if(PKG_CONFIG_FOUND)
-# pkg_check_modules(FREETYPE QUIET freetype2)
-# if(FREETYPE_FOUND)
-# SET(FREETYPE_PKGCONFIG_FOUND TRUE)
-# SET(FREETYPE_LIBRARY ${FREETYPE_LIBRARIES})
-# # Because CMake is idiotic
-# string(REPLACE ";" " " FREETYPE_CFLAGS_STR ${FREETYPE_CFLAGS})
-# string(REPLACE ";" " " FREETYPE_LDFLAGS_STR ${FREETYPE_LDFLAGS})
-# endif(FREETYPE_FOUND)
-# endif(PKG_CONFIG_FOUND)
-# endif(UNIX)
-# if(NOT FREETYPE_FOUND)
-# find_package(Freetype)
-# endif()
find_package(Freetype)
if(FREETYPE_FOUND)
message(STATUS "Freetype enabled.")
@@ -351,6 +328,10 @@ else()
if (ICONV_LIBRARY)
set(PLATFORM_LIBS ${PLATFORM_LIBS} ${ICONV_LIBRARY})
endif()
+ if (HAIKU)
+ set(PLATFORM_LIBS ${PLATFORM_LIBS} intl network)
+ endif()
+
endif()
check_include_files(endian.h HAVE_ENDIAN_H)
@@ -551,7 +532,7 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin")
if(BUILD_CLIENT)
add_executable(${PROJECT_NAME} ${client_SRCS} ${extra_windows_SRCS})
add_dependencies(${PROJECT_NAME} GenerateVersion)
- set(client_LIBS
+ target_link_libraries(
${PROJECT_NAME}
${ZLIB_LIBRARIES}
${IRRLICHT_LIBRARY}
@@ -567,9 +548,14 @@ if(BUILD_CLIENT)
${PLATFORM_LIBS}
${CLIENT_PLATFORM_LIBS}
)
- target_link_libraries(
- ${client_LIBS}
- )
+ if(NOT USE_LUAJIT)
+ set_target_properties(${PROJECT_NAME} PROPERTIES
+ # This is necessary for dynamic Lua modules
+ # to work when Lua is statically linked (issue #10806)
+ ENABLE_EXPORTS 1
+ )
+ endif()
+
if(ENABLE_GLES)
target_link_libraries(
${PROJECT_NAME}
@@ -640,7 +626,15 @@ if(BUILD_SERVER)
${PLATFORM_LIBS}
)
set_target_properties(${PROJECT_NAME}server PROPERTIES
- COMPILE_DEFINITIONS "SERVER")
+ COMPILE_DEFINITIONS "SERVER")
+ if(NOT USE_LUAJIT)
+ set_target_properties(${PROJECT_NAME}server PROPERTIES
+ # This is necessary for dynamic Lua modules
+ # to work when Lua is statically linked (issue #10806)
+ ENABLE_EXPORTS 1
+ )
+ endif()
+
if (USE_GETTEXT)
target_link_libraries(${PROJECT_NAME}server ${GETTEXT_LIBRARY})
endif()
@@ -673,10 +667,11 @@ endif(BUILD_SERVER)
# Blacklisted locales that don't work.
# see issue #4638
set(GETTEXT_BLACKLISTED_LOCALES
- be
+ ar
he
- ko
ky
+ ms_Arab
+ th
)
option(APPLY_LOCALE_BLACKLIST "Use a blacklist to avoid broken locales" TRUE)
@@ -684,7 +679,7 @@ option(APPLY_LOCALE_BLACKLIST "Use a blacklist to avoid broken locales" TRUE)
if (GETTEXTLIB_FOUND AND APPLY_LOCALE_BLACKLIST)
set(GETTEXT_USED_LOCALES "")
foreach(LOCALE ${GETTEXT_AVAILABLE_LOCALES})
- if (NOT ";${GETTEXT_BLACKLISTED_LOCALES};" MATCHES ";${LOCALE};")
+ if (NOT "${LOCALE}" IN_LIST GETTEXT_BLACKLISTED_LOCALES)
list(APPEND GETTEXT_USED_LOCALES ${LOCALE})
endif()
endforeach()
@@ -697,21 +692,14 @@ include(CheckCSourceCompiles)
if(MSVC)
# Visual Studio
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D WIN32_LEAN_AND_MEAN /MP")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D WIN32_LEAN_AND_MEAN")
# EHa enables SEH exceptions (used for catching segfaults)
- set(CMAKE_CXX_FLAGS_RELEASE "/EHa /Ox /GL /FD /MD /GS- /Zi /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0 /TP")
+ set(CMAKE_CXX_FLAGS_RELEASE "/EHa /Ox /MD /GS- /Zi /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0")
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /arch:SSE")
endif()
-
- if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF")
- else()
- set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG /INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF")
- endif()
-
- set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
+ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
set(CMAKE_CXX_FLAGS_SEMIDEBUG "/MDd /Zi /Ob0 /O1 /RTC1")
@@ -722,6 +710,19 @@ if(MSVC)
# Flags for C files (sqlite)
# /MD = dynamically link to MSVCRxxx.dll
set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MD")
+
+ # Flags that cannot be shared between cl and clang-cl
+ # https://clang.llvm.org/docs/UsersManual.html#clang-cl
+ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=lld")
+
+ # Disable pragma-pack warning
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wno-pragma-pack")
+ else()
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /TP /FD /GL")
+ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
+ endif()
else()
# GCC or compatible compilers such as Clang
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
diff --git a/src/activeobject.h b/src/activeobject.h
index 85e160d10..1d8a3712b 100644
--- a/src/activeobject.h
+++ b/src/activeobject.h
@@ -28,11 +28,11 @@ enum ActiveObjectType {
ACTIVEOBJECT_TYPE_INVALID = 0,
ACTIVEOBJECT_TYPE_TEST = 1,
// Obsolete stuff
- ACTIVEOBJECT_TYPE_ITEM = 2,
-// ACTIVEOBJECT_TYPE_RAT = 3,
-// ACTIVEOBJECT_TYPE_OERKKI1 = 4,
-// ACTIVEOBJECT_TYPE_FIREFLY = 5,
- ACTIVEOBJECT_TYPE_MOBV2 = 6,
+// ACTIVEOBJECT_TYPE_ITEM = 2,
+// ACTIVEOBJECT_TYPE_RAT = 3,
+// ACTIVEOBJECT_TYPE_OERKKI1 = 4,
+// ACTIVEOBJECT_TYPE_FIREFLY = 5,
+// ACTIVEOBJECT_TYPE_MOBV2 = 6,
// End obsolete stuff
ACTIVEOBJECT_TYPE_LUAENTITY = 7,
// Special type, not stored as a static object
@@ -120,9 +120,9 @@ public:
virtual void setAttachment(int parent_id, const std::string &bone, v3f position,
- v3f rotation) {}
+ v3f rotation, bool force_visible) {}
virtual void getAttachment(int *parent_id, std::string *bone, v3f *position,
- v3f *rotation) const {}
+ v3f *rotation, bool *force_visible) const {}
virtual void clearChildAttachments() {}
virtual void clearParentAttachment() {}
virtual void addAttachmentChild(int child_id) {}
diff --git a/src/activeobjectmgr.h b/src/activeobjectmgr.h
index 95e7d3344..aa0538e60 100644
--- a/src/activeobjectmgr.h
+++ b/src/activeobjectmgr.h
@@ -25,7 +25,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class TestClientActiveObjectMgr;
class TestServerActiveObjectMgr;
-template <typename T> class ActiveObjectMgr
+template <typename T>
+class ActiveObjectMgr
{
friend class ::TestClientActiveObjectMgr;
friend class ::TestServerActiveObjectMgr;
diff --git a/src/chat.cpp b/src/chat.cpp
index c3ed59804..c9317a079 100644
--- a/src/chat.cpp
+++ b/src/chat.cpp
@@ -123,14 +123,14 @@ void ChatBuffer::deleteByAge(f32 maxAge)
deleteOldest(count);
}
-u32 ChatBuffer::getColumns() const
+u32 ChatBuffer::getRows() const
{
- return m_cols;
+ return m_rows;
}
-u32 ChatBuffer::getRows() const
+void ChatBuffer::scrollTop()
{
- return m_rows;
+ m_scroll = getTopScrollPos();
}
void ChatBuffer::reformat(u32 cols, u32 rows)
@@ -220,11 +220,6 @@ void ChatBuffer::scrollBottom()
m_scroll = getBottomScrollPos();
}
-void ChatBuffer::scrollTop()
-{
- m_scroll = getTopScrollPos();
-}
-
u32 ChatBuffer::formatChatLine(const ChatLine& line, u32 cols,
std::vector<ChatFormattedLine>& destination) const
{
@@ -490,8 +485,8 @@ void ChatPrompt::nickCompletion(const std::list<std::string>& names, bool backwa
// find all names that start with the selected prefix
std::vector<std::wstring> completions;
for (const std::string &name : names) {
- if (str_starts_with(narrow_to_wide(name), prefix, true)) {
- std::wstring completion = narrow_to_wide(name);
+ std::wstring completion = utf8_to_wide(name);
+ if (str_starts_with(completion, prefix, true)) {
if (prefix_start == 0)
completion += L": ";
completions.push_back(completion);
diff --git a/src/chat.h b/src/chat.h
index f84ece206..0b98e4d3c 100644
--- a/src/chat.h
+++ b/src/chat.h
@@ -94,8 +94,6 @@ public:
// Delete lines older than maxAge.
void deleteByAge(f32 maxAge);
- // Get number of columns, 0 if reformat has not been called yet.
- u32 getColumns() const;
// Get number of rows, 0 if reformat has not been called yet.
u32 getRows() const;
// Update console size and reformat all formatted lines.
diff --git a/src/client/camera.cpp b/src/client/camera.cpp
index abc55e4b7..350b685e1 100644
--- a/src/client/camera.cpp
+++ b/src/client/camera.cpp
@@ -30,7 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "wieldmesh.h"
#include "noise.h" // easeCurve
#include "sound.h"
-#include "event.h"
+#include "mtevent.h"
#include "nodedef.h"
#include "util/numeric.h"
#include "constants.h"
@@ -79,6 +79,7 @@ Camera::Camera(MapDrawControl &draw_control, Client *client):
m_cache_fov = std::fmax(g_settings->getFloat("fov"), 45.0f);
m_arm_inertia = g_settings->getBool("arm_inertia");
m_nametags.clear();
+ m_show_nametag_backgrounds = g_settings->getBool("show_nametag_backgrounds");
}
Camera::~Camera()
@@ -691,46 +692,47 @@ void Camera::drawNametags()
core::matrix4 trans = m_cameranode->getProjectionMatrix();
trans *= m_cameranode->getViewMatrix();
- for (std::list<Nametag *>::const_iterator
- i = m_nametags.begin();
- i != m_nametags.end(); ++i) {
- Nametag *nametag = *i;
- if (nametag->nametag_color.getAlpha() == 0) {
- // Enforce hiding nametag,
- // because if freetype is enabled, a grey
- // shadow can remain.
- continue;
- }
- v3f pos = nametag->parent_node->getAbsolutePosition() + nametag->nametag_pos * BS;
+ gui::IGUIFont *font = g_fontengine->getFont();
+ video::IVideoDriver *driver = RenderingEngine::get_video_driver();
+ v2u32 screensize = driver->getScreenSize();
+
+ for (const Nametag *nametag : m_nametags) {
+ // Nametags are hidden in GenericCAO::updateNametag()
+
+ v3f pos = nametag->parent_node->getAbsolutePosition() + nametag->pos * BS;
f32 transformed_pos[4] = { pos.X, pos.Y, pos.Z, 1.0f };
trans.multiplyWith1x4Matrix(transformed_pos);
if (transformed_pos[3] > 0) {
std::wstring nametag_colorless =
- unescape_translate(utf8_to_wide(nametag->nametag_text));
- core::dimension2d<u32> textsize =
- g_fontengine->getFont()->getDimension(
+ unescape_translate(utf8_to_wide(nametag->text));
+ core::dimension2d<u32> textsize = font->getDimension(
nametag_colorless.c_str());
f32 zDiv = transformed_pos[3] == 0.0f ? 1.0f :
core::reciprocal(transformed_pos[3]);
- v2u32 screensize = RenderingEngine::get_video_driver()->getScreenSize();
v2s32 screen_pos;
screen_pos.X = screensize.X *
(0.5 * transformed_pos[0] * zDiv + 0.5) - textsize.Width / 2;
screen_pos.Y = screensize.Y *
(0.5 - transformed_pos[1] * zDiv * 0.5) - textsize.Height / 2;
core::rect<s32> size(0, 0, textsize.Width, textsize.Height);
- g_fontengine->getFont()->draw(
- translate_string(utf8_to_wide(nametag->nametag_text)).c_str(),
- size + screen_pos, nametag->nametag_color);
+ core::rect<s32> bg_size(-2, 0, textsize.Width+2, textsize.Height);
+
+ auto bgcolor = nametag->getBgColor(m_show_nametag_backgrounds);
+ if (bgcolor.getAlpha() != 0)
+ driver->draw2DRectangle(bgcolor, bg_size + screen_pos);
+
+ font->draw(
+ translate_string(utf8_to_wide(nametag->text)).c_str(),
+ size + screen_pos, nametag->textcolor);
}
}
}
Nametag *Camera::addNametag(scene::ISceneNode *parent_node,
- const std::string &nametag_text, video::SColor nametag_color,
- const v3f &pos)
+ const std::string &text, video::SColor textcolor,
+ Optional<video::SColor> bgcolor, const v3f &pos)
{
- Nametag *nametag = new Nametag(parent_node, nametag_text, nametag_color, pos);
+ Nametag *nametag = new Nametag(parent_node, text, textcolor, bgcolor, pos);
m_nametags.push_back(nametag);
return nametag;
}
diff --git a/src/client/camera.h b/src/client/camera.h
index 3a59637bc..6fd8d9aa7 100644
--- a/src/client/camera.h
+++ b/src/client/camera.h
@@ -25,27 +25,47 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <ICameraSceneNode.h>
#include <ISceneNode.h>
#include <list>
+#include "util/Optional.h"
class LocalPlayer;
struct MapDrawControl;
class Client;
class WieldMeshSceneNode;
-struct Nametag {
+struct Nametag
+{
+ scene::ISceneNode *parent_node;
+ std::string text;
+ video::SColor textcolor;
+ Optional<video::SColor> bgcolor;
+ v3f pos;
+
Nametag(scene::ISceneNode *a_parent_node,
- const std::string &a_nametag_text,
- const video::SColor &a_nametag_color,
- const v3f &a_nametag_pos):
+ const std::string &text,
+ const video::SColor &textcolor,
+ const Optional<video::SColor> &bgcolor,
+ const v3f &pos):
parent_node(a_parent_node),
- nametag_text(a_nametag_text),
- nametag_color(a_nametag_color),
- nametag_pos(a_nametag_pos)
+ text(text),
+ textcolor(textcolor),
+ bgcolor(bgcolor),
+ pos(pos)
{
}
- scene::ISceneNode *parent_node;
- std::string nametag_text;
- video::SColor nametag_color;
- v3f nametag_pos;
+
+ video::SColor getBgColor(bool use_fallback) const
+ {
+ if (bgcolor)
+ return bgcolor.value();
+ else if (!use_fallback)
+ return video::SColor(0, 0, 0, 0);
+ else if (textcolor.getLuminance() > 186)
+ // Dark background for light text
+ return video::SColor(50, 50, 50, 50);
+ else
+ // Light background for dark text
+ return video::SColor(50, 255, 255, 255);
+ }
};
enum CameraMode {CAMERA_MODE_FIRST, CAMERA_MODE_THIRD, CAMERA_MODE_THIRD_FRONT};
@@ -164,13 +184,11 @@ public:
}
Nametag *addNametag(scene::ISceneNode *parent_node,
- const std::string &nametag_text, video::SColor nametag_color,
- const v3f &pos);
+ const std::string &text, video::SColor textcolor,
+ Optional<video::SColor> bgcolor, const v3f &pos);
void removeNametag(Nametag *nametag);
- const std::list<Nametag *> &getNametags() { return m_nametags; }
-
void drawNametags();
inline void addArmInertia(f32 player_yaw);
@@ -247,4 +265,5 @@ private:
bool m_arm_inertia;
std::list<Nametag *> m_nametags;
+ bool m_show_nametag_backgrounds;
};
diff --git a/src/client/client.cpp b/src/client/client.cpp
index 65e5b3d8c..ef4a3cdfc 100644
--- a/src/client/client.cpp
+++ b/src/client/client.cpp
@@ -129,6 +129,7 @@ Client::Client(
if (g_settings->getBool("enable_minimap")) {
m_minimap = new Minimap(this);
}
+
m_cache_save_interval = g_settings->getU16("server_map_save_interval");
}
@@ -158,20 +159,6 @@ void Client::loadMods()
scanModIntoMemory(BUILTIN_MOD_NAME, getBuiltinLuaPath());
m_script->loadModFromMemory(BUILTIN_MOD_NAME);
- // TODO Uncomment when server-sent CSM and verifying of builtin are complete
- /*
- // Don't load client-provided mods if disabled by server
- if (checkCSMRestrictionFlag(CSMRestrictionFlags::CSM_RF_LOAD_CLIENT_MODS)) {
- warningstream << "Client-provided mod loading is disabled by server." <<
- std::endl;
- // If builtin integrity is wrong, disconnect user
- if (!checkBuiltinIntegrity()) {
- // TODO disconnect user
- }
- return;
- }
- */
-
ClientModConfiguration modconf(getClientModsLuaPath());
m_mods = modconf.getMods();
// complain about mods with unsatisfied dependencies
@@ -215,12 +202,6 @@ void Client::loadMods()
m_script->on_minimap_ready(m_minimap);
}
-bool Client::checkBuiltinIntegrity()
-{
- // TODO
- return true;
-}
-
void Client::scanModSubfolder(const std::string &mod_name, const std::string &mod_path,
std::string mod_subpath)
{
@@ -238,18 +219,13 @@ void Client::scanModSubfolder(const std::string &mod_name, const std::string &mo
infostream << "Client::scanModSubfolder(): Loading \"" << real_path
<< "\" as \"" << vfs_path << "\"." << std::endl;
- std::ifstream is(real_path, std::ios::binary | std::ios::ate);
- if(!is.good()) {
+ std::string contents;
+ if (!fs::ReadFile(real_path, contents)) {
errorstream << "Client::scanModSubfolder(): Can't read file \""
<< real_path << "\"." << std::endl;
continue;
}
- auto size = is.tellg();
- std::string contents(size, '\0');
- is.seekg(0);
- is.read(&contents[0], size);
- infostream << " size: " << size << " bytes" << std::endl;
m_mod_vfs.emplace(vfs_path, contents);
}
}
@@ -330,6 +306,8 @@ Client::~Client()
}
delete m_minimap;
+ m_minimap = nullptr;
+
delete m_media_downloader;
}
@@ -1218,7 +1196,7 @@ void Client::sendChatMessage(const std::wstring &message)
if (canSendChatMessage()) {
u32 now = time(NULL);
float time_passed = now - m_last_chat_message_sent;
- m_last_chat_message_sent = time(NULL);
+ m_last_chat_message_sent = now;
m_chat_message_allowance += time_passed * (CLIENT_CHAT_MESSAGE_LIMIT_PER_10S / 8.0f);
if (m_chat_message_allowance > CLIENT_CHAT_MESSAGE_LIMIT_PER_10S)
@@ -1297,9 +1275,8 @@ void Client::sendPlayerPos()
// Save bandwidth by only updating position when
// player is not dead and something changed
- // FIXME: This part causes breakages in mods like 3d_armor, and has been commented for now
- // if (m_activeobjects_received && player->isDead())
- // return;
+ if (m_activeobjects_received && player->isDead())
+ return;
if (
player->last_position == player->getPosition() &&
@@ -1307,7 +1284,7 @@ void Client::sendPlayerPos()
player->last_pitch == player->getPitch() &&
player->last_yaw == player->getYaw() &&
player->last_keyPressed == player->keyPressed &&
- player->last_camera_fov == camera_fov &&
+ player->last_camera_fov == camera_fov &&
player->last_wanted_range == wanted_range)
return;
@@ -1669,11 +1646,6 @@ ClientEvent *Client::getClientEvent()
return event;
}
-bool Client::connectedToServer()
-{
- return m_con->Connected();
-}
-
const Address Client::getServerAddress()
{
return m_con->GetPeerAddress(PEER_ID_SERVER);
@@ -1860,7 +1832,7 @@ void Client::makeScreenshot()
sstr << "Failed to save screenshot '" << filename << "'";
}
pushToChatQueue(new ChatMessage(CHATMESSAGE_TYPE_SYSTEM,
- narrow_to_wide(sstr.str())));
+ utf8_to_wide(sstr.str())));
infostream << sstr.str() << std::endl;
image->drop();
}
diff --git a/src/client/client.h b/src/client/client.h
index 733634db1..25a1b97ba 100644
--- a/src/client/client.h
+++ b/src/client/client.h
@@ -223,6 +223,7 @@ public:
void handleCommand_CSMRestrictionFlags(NetworkPacket *pkt);
void handleCommand_PlayerSpeed(NetworkPacket *pkt);
void handleCommand_MediaPush(NetworkPacket *pkt);
+ void handleCommand_MinimapModes(NetworkPacket *pkt);
void ProcessData(NetworkPacket *pkt);
@@ -337,7 +338,6 @@ public:
u16 getProtoVersion()
{ return m_proto_ver; }
- bool connectedToServer();
void confirmRegistration();
bool m_is_registration_confirmation_state = false;
bool m_simple_singleplayer_mode;
@@ -415,11 +415,6 @@ public:
return m_csm_restriction_flags & flag;
}
- u32 getCSMNodeRangeLimit() const
- {
- return m_csm_restriction_noderange;
- }
-
inline std::unordered_map<u32, u32> &getHUDTranslationMap()
{
return m_hud_server_to_client;
@@ -437,7 +432,6 @@ public:
}
private:
void loadMods();
- bool checkBuiltinIntegrity();
// Virtual methods from con::PeerHandler
void peerAdded(con::Peer *peer) override;
@@ -587,7 +581,6 @@ private:
// Client modding
ClientScripting *m_script = nullptr;
- bool m_modding_enabled;
std::unordered_map<std::string, ModMetadata *> m_mod_storages;
float m_mod_storage_save_timer = 10.0f;
std::vector<ModSpec> m_mods;
diff --git a/src/client/clientenvironment.cpp b/src/client/clientenvironment.cpp
index 895b0193c..fc7cbe254 100644
--- a/src/client/clientenvironment.cpp
+++ b/src/client/clientenvironment.cpp
@@ -25,7 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "clientmap.h"
#include "scripting_client.h"
#include "mapblock_mesh.h"
-#include "event.h"
+#include "mtevent.h"
#include "collision.h"
#include "nodedef.h"
#include "profiler.h"
@@ -51,12 +51,8 @@ public:
~CAOShaderConstantSetter() override = default;
- void onSetConstants(video::IMaterialRendererServices *services,
- bool is_highlevel) override
+ void onSetConstants(video::IMaterialRendererServices *services) override
{
- if (!is_highlevel)
- return;
-
// Ambient color
video::SColorf emissive_color(m_emissive_color);
@@ -183,84 +179,61 @@ void ClientEnvironment::step(float dtime)
if(dtime > 0.5)
dtime = 0.5;
- f32 dtime_downcount = dtime;
-
/*
Stuff that has a maximum time increment
*/
- u32 loopcount = 0;
- do
- {
- loopcount++;
-
- f32 dtime_part;
- if(dtime_downcount > dtime_max_increment)
- {
- dtime_part = dtime_max_increment;
- dtime_downcount -= dtime_part;
- }
- else
- {
- dtime_part = dtime_downcount;
- /*
- Setting this to 0 (no -=dtime_part) disables an infinite loop
- when dtime_part is so small that dtime_downcount -= dtime_part
- does nothing
- */
- dtime_downcount = 0;
- }
-
+ u32 steps = ceil(dtime / dtime_max_increment);
+ f32 dtime_part = dtime / steps;
+ for (; steps > 0; --steps) {
/*
- Handle local player
+ Local player handling
*/
- {
- // Control local player
- lplayer->applyControl(dtime_part, this);
-
- // Apply physics
- if (!free_move && !is_climbing) {
- // Gravity
- v3f speed = lplayer->getSpeed();
- if (!lplayer->in_liquid)
- speed.Y -= lplayer->movement_gravity *
- lplayer->physics_override_gravity * dtime_part * 2.0f;
-
- // Liquid floating / sinking
- if (lplayer->in_liquid && !lplayer->swimming_vertical &&
- !lplayer->swimming_pitch)
- speed.Y -= lplayer->movement_liquid_sink * dtime_part * 2.0f;
-
- // Liquid resistance
- if (lplayer->in_liquid_stable || lplayer->in_liquid) {
- // How much the node's viscosity blocks movement, ranges
- // between 0 and 1. Should match the scale at which viscosity
- // increase affects other liquid attributes.
- static const f32 viscosity_factor = 0.3f;
-
- v3f d_wanted = -speed / lplayer->movement_liquid_fluidity;
- f32 dl = d_wanted.getLength();
- if (dl > lplayer->movement_liquid_fluidity_smooth)
- dl = lplayer->movement_liquid_fluidity_smooth;
-
- dl *= (lplayer->liquid_viscosity * viscosity_factor) +
- (1 - viscosity_factor);
- v3f d = d_wanted.normalize() * (dl * dtime_part * 100.0f);
- speed += d;
- }
-
- lplayer->setSpeed(speed);
+ // Control local player
+ lplayer->applyControl(dtime_part, this);
+
+ // Apply physics
+ if (!free_move && !is_climbing) {
+ // Gravity
+ v3f speed = lplayer->getSpeed();
+ if (!lplayer->in_liquid)
+ speed.Y -= lplayer->movement_gravity *
+ lplayer->physics_override_gravity * dtime_part * 2.0f;
+
+ // Liquid floating / sinking
+ if (lplayer->in_liquid && !lplayer->swimming_vertical &&
+ !lplayer->swimming_pitch)
+ speed.Y -= lplayer->movement_liquid_sink * dtime_part * 2.0f;
+
+ // Liquid resistance
+ if (lplayer->in_liquid_stable || lplayer->in_liquid) {
+ // How much the node's viscosity blocks movement, ranges
+ // between 0 and 1. Should match the scale at which viscosity
+ // increase affects other liquid attributes.
+ static const f32 viscosity_factor = 0.3f;
+
+ v3f d_wanted = -speed / lplayer->movement_liquid_fluidity;
+ f32 dl = d_wanted.getLength();
+ if (dl > lplayer->movement_liquid_fluidity_smooth)
+ dl = lplayer->movement_liquid_fluidity_smooth;
+
+ dl *= (lplayer->liquid_viscosity * viscosity_factor) +
+ (1 - viscosity_factor);
+ v3f d = d_wanted.normalize() * (dl * dtime_part * 100.0f);
+ speed += d;
}
- /*
- Move the lplayer.
- This also does collision detection.
- */
- lplayer->move(dtime_part, this, position_max_increment,
- &player_collisions);
+ lplayer->setSpeed(speed);
}
- } while (dtime_downcount > 0.001);
+
+ /*
+ Move the lplayer.
+ This also does collision detection.
+ */
+ lplayer->move(dtime_part, this, position_max_increment,
+ &player_collisions);
+ }
bool player_immortal = lplayer->getCAO() && lplayer->getCAO()->isImmortal();
@@ -361,28 +334,6 @@ GenericCAO* ClientEnvironment::getGenericCAO(u16 id)
return NULL;
}
-bool isFreeClientActiveObjectId(const u16 id,
- ClientActiveObjectMap &objects)
-{
- return id != 0 && objects.find(id) == objects.end();
-
-}
-
-u16 getFreeClientActiveObjectId(ClientActiveObjectMap &objects)
-{
- // try to reuse id's as late as possible
- static u16 last_used_id = 0;
- u16 startid = last_used_id;
- for(;;) {
- last_used_id ++;
- if (isFreeClientActiveObjectId(last_used_id, objects))
- return last_used_id;
-
- if (last_used_id == startid)
- return 0;
- }
-}
-
u16 ClientEnvironment::addActiveObject(ClientActiveObject *object)
{
// Register object. If failed return zero id
diff --git a/src/client/clientlauncher.cpp b/src/client/clientlauncher.cpp
index f18915a55..2bb0bc385 100644
--- a/src/client/clientlauncher.cpp
+++ b/src/client/clientlauncher.cpp
@@ -56,6 +56,20 @@ bool isMenuActive()
// Passed to menus to allow disconnecting and exiting
MainGameCallback *g_gamecallback = nullptr;
+#if 0
+// This can be helpful for the next code cleanup
+static void dump_start_data(const GameStartData &data)
+{
+ std::cout <<
+ "\ndedicated " << (int)data.is_dedicated_server <<
+ "\nport " << data.socket_port <<
+ "\nworld_path " << data.world_spec.path <<
+ "\nworld game " << data.world_spec.gameid <<
+ "\ngame path " << data.game_spec.path <<
+ "\nplayer name " << data.name <<
+ "\naddress " << data.address << std::endl;
+}
+#endif
ClientLauncher::~ClientLauncher()
{
@@ -74,9 +88,16 @@ ClientLauncher::~ClientLauncher()
}
-bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args)
+bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args)
{
- init_args(game_params, cmd_args);
+ /* This function is called when a client must be started.
+ * Covered cases:
+ * - Singleplayer (address but map provided)
+ * - Join server (no map but address provided)
+ * - Local server (for main menu only)
+ */
+
+ init_args(start_data, cmd_args);
// List video modes if requested
if (list_video_modes)
@@ -154,7 +175,7 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args)
}
}
#endif
- g_fontengine = new FontEngine(g_settings, guienv);
+ g_fontengine = new FontEngine(guienv);
FATAL_ERROR_IF(g_fontengine == NULL, "Font engine creation failed.");
#if (IRRLICHT_VERSION_MAJOR >= 1 && IRRLICHT_VERSION_MINOR >= 8) || IRRLICHT_VERSION_MAJOR >= 2
@@ -216,7 +237,7 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args)
core::rect<s32>(0, 0, 10000, 10000));
bool game_has_run = launch_game(error_message, reconnect_requested,
- game_params, cmd_args);
+ start_data, cmd_args);
// Reset the reconnect_requested flag
reconnect_requested = false;
@@ -241,13 +262,6 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args)
break;
}
- if (current_playername.length() > PLAYERNAME_SIZE-1) {
- error_message = gettext("Player name too long.");
- playername = current_playername.substr(0, PLAYERNAME_SIZE-1);
- g_settings->set("name", playername);
- continue;
- }
-
RenderingEngine::get_video_driver()->setTextureCreationFlag(
video::ETCF_CREATE_MIP_MAPS, g_settings->getBool("mip_map"));
@@ -258,18 +272,11 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args)
the_game(
kill,
- random_input,
input,
- worldspec.path,
- current_playername,
- current_password,
- current_address,
- current_port,
+ start_data,
error_message,
chat_backend,
- &reconnect_requested,
- gamespec,
- simple_singleplayer_mode
+ &reconnect_requested
);
RenderingEngine::get_scene_manager()->clear();
@@ -311,31 +318,27 @@ bool ClientLauncher::run(GameParams &game_params, const Settings &cmd_args)
return retval;
}
-void ClientLauncher::init_args(GameParams &game_params, const Settings &cmd_args)
+void ClientLauncher::init_args(GameStartData &start_data, const Settings &cmd_args)
{
-
skip_main_menu = cmd_args.getFlag("go");
- // FIXME: This is confusing (but correct)
-
- /* If world_path is set then override it unless skipping the main menu using
- * the --go command line param. Else, give preference to the address
- * supplied on the command line
- */
- address = g_settings->get("address");
- if (!game_params.world_path.empty() && !skip_main_menu)
- address = "";
- else if (cmd_args.exists("address"))
- address = cmd_args.get("address");
+ start_data.address = g_settings->get("address");
+ if (cmd_args.exists("address")) {
+ // Join a remote server
+ start_data.address = cmd_args.get("address");
+ start_data.world_path.clear();
+ start_data.name = g_settings->get("name");
+ }
+ if (!start_data.world_path.empty()) {
+ // Start a singleplayer instance
+ start_data.address = "";
+ }
- playername = g_settings->get("name");
if (cmd_args.exists("name"))
- playername = cmd_args.get("name");
+ start_data.name = cmd_args.get("name");
list_video_modes = cmd_args.getFlag("videomodes");
- use_freetype = g_settings->getBool("freetype");
-
random_input = g_settings->getBool("random_input")
|| cmd_args.getFlag("random-input");
}
@@ -375,28 +378,20 @@ void ClientLauncher::init_input()
}
bool ClientLauncher::launch_game(std::string &error_message,
- bool reconnect_requested, GameParams &game_params,
+ bool reconnect_requested, GameStartData &start_data,
const Settings &cmd_args)
{
- // Initialize menu data
- MainMenuData menudata;
- menudata.address = address;
- menudata.name = playername;
- menudata.password = password;
- menudata.port = itos(game_params.socket_port);
- menudata.script_data.errormessage = error_message;
- menudata.script_data.reconnect_requested = reconnect_requested;
-
+ // Prepare and check the start data to launch a game
+ std::string error_message_lua = error_message;
error_message.clear();
if (cmd_args.exists("password"))
- menudata.password = cmd_args.get("password");
-
+ start_data.password = cmd_args.get("password");
if (cmd_args.exists("password-file")) {
std::ifstream passfile(cmd_args.get("password-file"));
if (passfile.good()) {
- getline(passfile, menudata.password);
+ getline(passfile, start_data.password);
} else {
error_message = gettext("Provided password file "
"failed to open: ")
@@ -407,88 +402,106 @@ bool ClientLauncher::launch_game(std::string &error_message,
}
// If a world was commanded, append and select it
- if (!game_params.world_path.empty()) {
- worldspec.gameid = getWorldGameId(game_params.world_path, true);
- worldspec.name = _("[--world parameter]");
+ // This is provieded by "get_world_from_cmdline()", main.cpp
+ if (!start_data.world_path.empty()) {
+ auto &spec = start_data.world_spec;
+
+ spec.path = start_data.world_path;
+ spec.gameid = getWorldGameId(spec.path, true);
+ spec.name = _("[--world parameter]");
- if (worldspec.gameid.empty()) { // Create new
- worldspec.gameid = g_settings->get("default_game");
- worldspec.name += " [new]";
+ if (spec.gameid.empty()) { // Create new
+ spec.gameid = g_settings->get("default_game");
+ spec.name += " [new]";
}
- worldspec.path = game_params.world_path;
}
/* Show the GUI menu
*/
+ std::string server_name, server_description;
if (!skip_main_menu) {
+ // Initialize menu data
+ // TODO: Re-use existing structs (GameStartData)
+ MainMenuData menudata;
+ menudata.address = start_data.address;
+ menudata.name = start_data.name;
+ menudata.password = start_data.password;
+ menudata.port = itos(start_data.socket_port);
+ menudata.script_data.errormessage = error_message_lua;
+ menudata.script_data.reconnect_requested = reconnect_requested;
+
main_menu(&menudata);
// Skip further loading if there was an exit signal.
if (*porting::signal_handler_killstatus())
return false;
- address = menudata.address;
+ if (!menudata.script_data.errormessage.empty()) {
+ /* The calling function will pass this back into this function upon the
+ * next iteration (if any) causing it to be displayed by the GUI
+ */
+ error_message = menudata.script_data.errormessage;
+ return false;
+ }
+
int newport = stoi(menudata.port);
if (newport != 0)
- game_params.socket_port = newport;
-
- simple_singleplayer_mode = menudata.simple_singleplayer_mode;
+ start_data.socket_port = newport;
+ // Update world information using main menu data
std::vector<WorldSpec> worldspecs = getAvailableWorlds();
- if (menudata.selected_world >= 0
- && menudata.selected_world < (int)worldspecs.size()) {
+ int world_index = menudata.selected_world;
+ if (world_index >= 0 && world_index < (int)worldspecs.size()) {
g_settings->set("selected_world_path",
- worldspecs[menudata.selected_world].path);
- worldspec = worldspecs[menudata.selected_world];
+ worldspecs[world_index].path);
+ start_data.world_spec = worldspecs[world_index];
}
+
+ start_data.name = menudata.name;
+ start_data.password = menudata.password;
+ start_data.address = std::move(menudata.address);
+ server_name = menudata.servername;
+ server_description = menudata.serverdescription;
+
+ start_data.local_server = !menudata.simple_singleplayer_mode &&
+ start_data.address.empty();
+ } else {
+ start_data.local_server = !start_data.world_path.empty() &&
+ start_data.address.empty() && !start_data.name.empty();
}
- if (!menudata.script_data.errormessage.empty()) {
- /* The calling function will pass this back into this function upon the
- * next iteration (if any) causing it to be displayed by the GUI
- */
- error_message = menudata.script_data.errormessage;
+ if (!RenderingEngine::run())
return false;
- }
- if (menudata.name.empty() && !simple_singleplayer_mode) {
+ if (!start_data.isSinglePlayer() && start_data.name.empty()) {
error_message = gettext("Please choose a name!");
errorstream << error_message << std::endl;
return false;
}
- playername = menudata.name;
- password = menudata.password;
-
- current_playername = playername;
- current_password = password;
- current_address = address;
- current_port = game_params.socket_port;
-
// If using simple singleplayer mode, override
- if (simple_singleplayer_mode) {
- assert(!skip_main_menu);
- current_playername = "singleplayer";
- current_password = "";
- current_address = "";
- current_port = myrand_range(49152, 65535);
+ if (start_data.isSinglePlayer()) {
+ start_data.name = "singleplayer";
+ start_data.password = "";
+ start_data.socket_port = myrand_range(49152, 65535);
} else {
- g_settings->set("name", playername);
- if (!address.empty()) {
- ServerListSpec server;
- server["name"] = menudata.servername;
- server["address"] = menudata.address;
- server["port"] = menudata.port;
- server["description"] = menudata.serverdescription;
- ServerList::insert(server);
- }
+ g_settings->set("name", start_data.name);
+ }
+
+ if (start_data.name.length() > PLAYERNAME_SIZE - 1) {
+ error_message = gettext("Player name too long.");
+ start_data.name.resize(PLAYERNAME_SIZE);
+ g_settings->set("name", start_data.name);
+ return false;
}
+ auto &worldspec = start_data.world_spec;
infostream << "Selected world: " << worldspec.name
<< " [" << worldspec.path << "]" << std::endl;
- if (current_address.empty()) { // If local game
+ if (start_data.address.empty()) {
+ // For singleplayer and local server
if (worldspec.path.empty()) {
error_message = gettext("No world selected and no address "
"provided. Nothing to do.");
@@ -504,8 +517,8 @@ bool ClientLauncher::launch_game(std::string &error_message,
}
// Load gamespec for required game
- gamespec = findWorldSubgame(worldspec.path);
- if (!gamespec.isValid() && !game_params.game_spec.isValid()) {
+ start_data.game_spec = findWorldSubgame(worldspec.path);
+ if (!start_data.game_spec.isValid()) {
error_message = gettext("Could not find or load game \"")
+ worldspec.gameid + "\"";
errorstream << error_message << std::endl;
@@ -515,15 +528,7 @@ bool ClientLauncher::launch_game(std::string &error_message,
if (porting::signal_handler_killstatus())
return true;
- if (game_params.game_spec.isValid() &&
- game_params.game_spec.id != worldspec.gameid) {
- warningstream << "Overriding gamespec from \""
- << worldspec.gameid << "\" to \""
- << game_params.game_spec.id << "\"" << std::endl;
- gamespec = game_params.game_spec;
- }
-
- if (!gamespec.isValid()) {
+ if (!start_data.game_spec.isValid()) {
error_message = gettext("Invalid gamespec.");
error_message += " (world.gameid=" + worldspec.gameid + ")";
errorstream << error_message << std::endl;
@@ -531,6 +536,7 @@ bool ClientLauncher::launch_game(std::string &error_message,
}
}
+ start_data.world_path = start_data.world_spec.path;
return true;
}
diff --git a/src/client/clientlauncher.h b/src/client/clientlauncher.h
index 2702895d6..b280d8e6b 100644
--- a/src/client/clientlauncher.h
+++ b/src/client/clientlauncher.h
@@ -32,15 +32,15 @@ public:
~ClientLauncher();
- bool run(GameParams &game_params, const Settings &cmd_args);
+ bool run(GameStartData &start_data, const Settings &cmd_args);
-protected:
- void init_args(GameParams &game_params, const Settings &cmd_args);
+private:
+ void init_args(GameStartData &start_data, const Settings &cmd_args);
bool init_engine();
void init_input();
bool launch_game(std::string &error_message, bool reconnect_requested,
- GameParams &game_params, const Settings &cmd_args);
+ GameStartData &start_data, const Settings &cmd_args);
void main_menu(MainMenuData *menudata);
@@ -48,23 +48,8 @@ protected:
bool list_video_modes = false;
bool skip_main_menu = false;
- bool use_freetype = false;
bool random_input = false;
- std::string address = "";
- std::string playername = "";
- std::string password = "";
InputHandler *input = nullptr;
MyEventReceiver *receiver = nullptr;
gui::IGUISkin *skin = nullptr;
- gui::IGUIFont *font = nullptr;
- SubgameSpec gamespec;
- WorldSpec worldspec;
- bool simple_singleplayer_mode = false;
-
- // These are set up based on the menu and other things
- // TODO: Are these required since there's already playername, password, etc
- std::string current_playername = "inv£lid";
- std::string current_password = "";
- std::string current_address = "does-not-exist";
- int current_port = 0;
};
diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp
index 3e4ab2e94..b9e0cc2ce 100644
--- a/src/client/clientmap.cpp
+++ b/src/client/clientmap.cpp
@@ -31,12 +31,43 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <algorithm>
#include "client/renderingengine.h"
+// struct MeshBufListList
+void MeshBufListList::clear()
+{
+ for (auto &list : lists)
+ list.clear();
+}
+
+void MeshBufListList::add(scene::IMeshBuffer *buf, v3s16 position, u8 layer)
+{
+ // Append to the correct layer
+ std::vector<MeshBufList> &list = lists[layer];
+ const video::SMaterial &m = buf->getMaterial();
+ for (MeshBufList &l : list) {
+ // comparing a full material is quite expensive so we don't do it if
+ // not even first texture is equal
+ if (l.m.TextureLayer[0].Texture != m.TextureLayer[0].Texture)
+ continue;
+
+ if (l.m == m) {
+ l.bufs.emplace_back(position, buf);
+ return;
+ }
+ }
+ MeshBufList l;
+ l.m = m;
+ l.bufs.emplace_back(position, buf);
+ list.emplace_back(l);
+}
+
+// ClientMap
+
ClientMap::ClientMap(
Client *client,
MapDrawControl &control,
s32 id
):
- Map(dout_client, client),
+ Map(client),
scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(),
RenderingEngine::get_scene_manager(), id),
m_client(client),
@@ -122,20 +153,20 @@ void ClientMap::updateDrawList()
}
m_drawlist.clear();
- v3f camera_position = m_camera_position;
- v3f camera_direction = m_camera_direction;
- f32 camera_fov = m_camera_fov;
+ const v3f camera_position = m_camera_position;
+ const v3f camera_direction = m_camera_direction;
// Use a higher fov to accomodate faster camera movements.
// Blocks are cropped better when they are drawn.
- // Or maybe they aren't? Well whatever.
- camera_fov *= 1.2;
+ const f32 camera_fov = m_camera_fov * 1.1f;
v3s16 cam_pos_nodes = floatToInt(camera_position, BS);
v3s16 p_blocks_min;
v3s16 p_blocks_max;
getBlocksInViewRange(cam_pos_nodes, &p_blocks_min, &p_blocks_max);
+ // Number of blocks currently loaded by the client
+ u32 blocks_loaded = 0;
// Number of blocks with mesh in rendering range
u32 blocks_in_range_with_mesh = 0;
// Number of blocks occlusion culled
@@ -160,6 +191,7 @@ void ClientMap::updateDrawList()
MapSector *sector = sector_it.second;
v2s16 sp = sector->getPos();
+ blocks_loaded += sector->size();
if (!m_control.range_all) {
if (sp.X < p_blocks_min.X || sp.X > p_blocks_max.X ||
sp.Y < p_blocks_min.Z || sp.Y > p_blocks_max.Z)
@@ -181,8 +213,10 @@ void ClientMap::updateDrawList()
if not seen on display
*/
- if (block->mesh)
- block->mesh->updateCameraOffset(m_camera_offset);
+ if (!block->mesh) {
+ // Ignore if mesh doesn't exist
+ continue;
+ }
float range = 100000 * BS;
if (!m_control.range_all)
@@ -193,13 +227,6 @@ void ClientMap::updateDrawList()
camera_direction, camera_fov, range, &d))
continue;
-
- /*
- Ignore if mesh doesn't exist
- */
- if (!block->mesh)
- continue;
-
blocks_in_range_with_mesh++;
/*
@@ -228,52 +255,9 @@ void ClientMap::updateDrawList()
g_profiler->avg("MapBlock meshes in range [#]", blocks_in_range_with_mesh);
g_profiler->avg("MapBlocks occlusion culled [#]", blocks_occlusion_culled);
g_profiler->avg("MapBlocks drawn [#]", m_drawlist.size());
+ g_profiler->avg("MapBlocks loaded [#]", blocks_loaded);
}
-struct MeshBufList
-{
- video::SMaterial m;
- std::vector<scene::IMeshBuffer*> bufs;
-};
-
-struct MeshBufListList
-{
- /*!
- * Stores the mesh buffers of the world.
- * The array index is the material's layer.
- * The vector part groups vertices by material.
- */
- std::vector<MeshBufList> lists[MAX_TILE_LAYERS];
-
- void clear()
- {
- for (auto &list : lists)
- list.clear();
- }
-
- void add(scene::IMeshBuffer *buf, u8 layer)
- {
- // Append to the correct layer
- std::vector<MeshBufList> &list = lists[layer];
- const video::SMaterial &m = buf->getMaterial();
- for (MeshBufList &l : list) {
- // comparing a full material is quite expensive so we don't do it if
- // not even first texture is equal
- if (l.m.TextureLayer[0].Texture != m.TextureLayer[0].Texture)
- continue;
-
- if (l.m == m) {
- l.bufs.push_back(buf);
- return;
- }
- }
- MeshBufList l;
- l.m = m;
- l.bufs.push_back(buf);
- list.push_back(l);
- }
-};
-
void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
{
bool is_transparent_pass = pass == scene::ESNRP_TRANSPARENT;
@@ -293,19 +277,20 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
/*
Get animation parameters
*/
- float animation_time = m_client->getAnimationTime();
- int crack = m_client->getCrackLevel();
- u32 daynight_ratio = m_client->getEnv().getDayNightRatio();
+ const float animation_time = m_client->getAnimationTime();
+ const int crack = m_client->getCrackLevel();
+ const u32 daynight_ratio = m_client->getEnv().getDayNightRatio();
- v3f camera_position = m_camera_position;
- v3f camera_direction = m_camera_direction;
- f32 camera_fov = m_camera_fov;
+ const v3f camera_position = m_camera_position;
+ const v3f camera_direction = m_camera_direction;
+ const f32 camera_fov = m_camera_fov;
/*
Get all blocks and draw all visible ones
*/
u32 vertex_count = 0;
+ u32 drawcall_count = 0;
// For limiting number of mesh animations per frame
u32 mesh_animate_count = 0;
@@ -318,6 +303,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
MeshBufListList drawbufs;
for (auto &i : m_drawlist) {
+ v3s16 block_pos = i.first;
MapBlock *block = i.second;
// If the mesh of the block happened to get deleted, ignore it
@@ -383,7 +369,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
material.setFlag(video::EMF_WIREFRAME,
m_control.show_wireframe);
- drawbufs.add(buf, layer);
+ drawbufs.add(buf, block_pos, layer);
}
}
}
@@ -392,6 +378,9 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
TimeTaker draw("Drawing mesh buffers");
+ core::matrix4 m; // Model matrix
+ v3f offset = intToFloat(m_camera_offset, BS);
+
// Render all layers in order
for (auto &lists : drawbufs.lists) {
for (MeshBufList &list : lists) {
@@ -403,7 +392,14 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
}
driver->setMaterial(list.m);
- for (scene::IMeshBuffer *buf : list.bufs) {
+ drawcall_count += list.bufs.size();
+ for (auto &pair : list.bufs) {
+ scene::IMeshBuffer *buf = pair.second;
+
+ v3f block_wpos = intToFloat(pair.first * MAP_BLOCKSIZE, BS);
+ m.setTranslation(block_wpos - offset);
+
+ driver->setTransform(video::ETS_WORLD, m);
driver->drawMeshBuffer(buf);
vertex_count += buf->getVertexCount();
}
@@ -417,6 +413,7 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
}
g_profiler->avg(prefix + "vertices drawn [#]", vertex_count);
+ g_profiler->avg(prefix + "drawcalls [#]", drawcall_count);
}
static bool getVisibleBrightness(Map *map, const v3f &p0, v3f dir, float step,
@@ -608,5 +605,3 @@ void ClientMap::PrintInfo(std::ostream &out)
{
out<<"ClientMap: ";
}
-
-
diff --git a/src/client/clientmap.h b/src/client/clientmap.h
index 172e3a1d6..57cc4427e 100644
--- a/src/client/clientmap.h
+++ b/src/client/clientmap.h
@@ -35,6 +35,25 @@ struct MapDrawControl
bool show_wireframe = false;
};
+struct MeshBufList
+{
+ video::SMaterial m;
+ std::vector<std::pair<v3s16,scene::IMeshBuffer*>> bufs;
+};
+
+struct MeshBufListList
+{
+ /*!
+ * Stores the mesh buffers of the world.
+ * The array index is the material's layer.
+ * The vector part groups vertices by material.
+ */
+ std::vector<MeshBufList> lists[MAX_TILE_LAYERS];
+
+ void clear();
+ void add(scene::IMeshBuffer *buf, v3s16 position, u8 layer);
+};
+
class Client;
class ITextureSource;
diff --git a/src/client/clientmedia.cpp b/src/client/clientmedia.cpp
index 8cd3b6bcc..c4c08c05d 100644
--- a/src/client/clientmedia.cpp
+++ b/src/client/clientmedia.cpp
@@ -260,7 +260,8 @@ void ClientMediaDownloader::initialStep(Client *client)
fetch_request.request_id = m_httpfetch_next_id; // == i
fetch_request.timeout = m_httpfetch_timeout;
fetch_request.connect_timeout = m_httpfetch_timeout;
- fetch_request.post_data = required_hash_set;
+ fetch_request.method = HTTP_POST;
+ fetch_request.raw_data = required_hash_set;
fetch_request.extra_headers.emplace_back(
"Content-Type: application/octet-stream");
diff --git a/src/client/clouds.cpp b/src/client/clouds.cpp
index 887a62f25..253dee8b9 100644
--- a/src/client/clouds.cpp
+++ b/src/client/clouds.cpp
@@ -170,8 +170,9 @@ void Clouds::render()
// Read noise
- bool *grid = new bool[m_cloud_radius_i * 2 * m_cloud_radius_i * 2];
-
+ std::vector<char> grid(m_cloud_radius_i * 2 * m_cloud_radius_i * 2); // vector<bool> is broken
+ std::vector<video::S3DVertex> vertices;
+ vertices.reserve(16 * m_cloud_radius_i * m_cloud_radius_i);
for(s16 zi = -m_cloud_radius_i; zi < m_cloud_radius_i; zi++) {
u32 si = (zi + m_cloud_radius_i) * m_cloud_radius_i * 2 + m_cloud_radius_i;
@@ -195,12 +196,7 @@ void Clouds::render()
{
s16 zi = zi0;
s16 xi = xi0;
- // Draw from front to back (needed for transparency)
- /*if(zi <= 0)
- zi = -m_cloud_radius_i - zi;
- if(xi <= 0)
- xi = -m_cloud_radius_i - xi;*/
- // Draw from back to front
+ // Draw from back to front for proper transparency
if(zi >= 0)
zi = m_cloud_radius_i - zi - 1;
if(xi >= 0)
@@ -220,17 +216,10 @@ void Clouds::render()
video::S3DVertex(0,0,0, 0,0,0, c_top, 0, 0)
};
- /*if(zi <= 0 && xi <= 0){
- v[0].Color.setBlue(255);
- v[1].Color.setBlue(255);
- v[2].Color.setBlue(255);
- v[3].Color.setBlue(255);
- }*/
-
- f32 rx = cloud_size / 2.0f;
+ const f32 rx = cloud_size / 2.0f;
// if clouds are flat, the top layer should be at the given height
- f32 ry = m_enable_3d ? m_params.thickness * BS : 0.0f;
- f32 rz = cloud_size / 2;
+ const f32 ry = m_enable_3d ? m_params.thickness * BS : 0.0f;
+ const f32 rz = cloud_size / 2;
for(int i=0; i<num_faces_to_draw; i++)
{
@@ -320,15 +309,25 @@ void Clouds::render()
v3f pos(p0.X, m_params.height * BS, p0.Y);
pos -= intToFloat(m_camera_offset, BS);
- for (video::S3DVertex &vertex : v)
+ for (video::S3DVertex &vertex : v) {
vertex.Pos += pos;
- u16 indices[] = {0,1,2,2,3,0};
- driver->drawVertexPrimitiveList(v, 4, indices, 2,
- video::EVT_STANDARD, scene::EPT_TRIANGLES, video::EIT_16BIT);
+ vertices.push_back(vertex);
+ }
}
}
-
- delete[] grid;
+ int quad_count = vertices.size() / 4;
+ std::vector<u16> indices;
+ indices.reserve(quad_count * 6);
+ for (int k = 0; k < quad_count; k++) {
+ indices.push_back(4 * k + 0);
+ indices.push_back(4 * k + 1);
+ indices.push_back(4 * k + 2);
+ indices.push_back(4 * k + 2);
+ indices.push_back(4 * k + 3);
+ indices.push_back(4 * k + 0);
+ }
+ driver->drawVertexPrimitiveList(vertices.data(), vertices.size(), indices.data(), 2 * quad_count,
+ video::EVT_STANDARD, scene::EPT_TRIANGLES, video::EIT_16BIT);
// Restore fog settings
driver->setFog(fog_color, fog_type, fog_start, fog_end, fog_density,
@@ -342,14 +341,13 @@ void Clouds::step(float dtime)
void Clouds::update(const v3f &camera_p, const video::SColorf &color_diffuse)
{
+ video::SColorf ambient(m_params.color_ambient);
+ video::SColorf bright(m_params.color_bright);
m_camera_pos = camera_p;
- m_color.r = MYMIN(MYMAX(color_diffuse.r * m_params.color_bright.getRed(),
- m_params.color_ambient.getRed()), 255) / 255.0f;
- m_color.g = MYMIN(MYMAX(color_diffuse.g * m_params.color_bright.getGreen(),
- m_params.color_ambient.getGreen()), 255) / 255.0f;
- m_color.b = MYMIN(MYMAX(color_diffuse.b * m_params.color_bright.getBlue(),
- m_params.color_ambient.getBlue()), 255) / 255.0f;
- m_color.a = m_params.color_bright.getAlpha() / 255.0f;
+ m_color.r = core::clamp(color_diffuse.r * bright.r, ambient.r, 1.0f);
+ m_color.g = core::clamp(color_diffuse.g * bright.g, ambient.g, 1.0f);
+ m_color.b = core::clamp(color_diffuse.b * bright.b, ambient.b, 1.0f);
+ m_color.a = bright.a;
// is the camera inside the cloud mesh?
m_camera_inside_cloud = false; // default
diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp
index 4f949f6b0..97ae9afc4 100644
--- a/src/client/content_cao.cpp
+++ b/src/client/content_cao.cpp
@@ -47,6 +47,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <algorithm>
#include <cmath>
#include "client/shader.h"
+#include "client/minimap.h"
class Settings;
struct ToolCapabilities;
@@ -353,6 +354,8 @@ void GenericCAO::initialize(const std::string &data)
m_is_local_player = true;
m_is_visible = false;
player->setCAO(this);
+
+ m_prop.show_on_minimap = false;
}
}
@@ -371,7 +374,7 @@ void GenericCAO::processInitData(const std::string &data)
}
// PROTOCOL_VERSION >= 37
- m_name = deSerializeString(is);
+ m_name = deSerializeString16(is);
m_is_player = readU8(is);
m_id = readU16(is);
m_position = readV3F32(is);
@@ -381,7 +384,7 @@ void GenericCAO::processInitData(const std::string &data)
const u8 num_messages = readU8(is);
for (int i = 0; i < num_messages; i++) {
- std::string message = deSerializeLongString(is);
+ std::string message = deSerializeString32(is);
processMessage(message);
}
@@ -456,18 +459,21 @@ void GenericCAO::setChildrenVisible(bool toset)
for (u16 cao_id : m_attachment_child_ids) {
GenericCAO *obj = m_env->getGenericCAO(cao_id);
if (obj) {
- obj->setVisible(toset);
+ // Check if the entity is forced to appear in first person.
+ obj->setVisible(obj->m_force_visible ? true : toset);
}
}
}
-void GenericCAO::setAttachment(int parent_id, const std::string &bone, v3f position, v3f rotation)
+void GenericCAO::setAttachment(int parent_id, const std::string &bone,
+ v3f position, v3f rotation, bool force_visible)
{
int old_parent = m_attachment_parent_id;
m_attachment_parent_id = parent_id;
m_attachment_bone = bone;
m_attachment_position = position;
m_attachment_rotation = rotation;
+ m_force_visible = force_visible;
ClientActiveObject *parent = m_env->getActiveObject(parent_id);
@@ -477,18 +483,31 @@ void GenericCAO::setAttachment(int parent_id, const std::string &bone, v3f posit
if (parent)
parent->addAttachmentChild(m_id);
}
-
-
updateAttachments();
+
+ // Forcibly show attachments if required by set_attach
+ if (m_force_visible) {
+ m_is_visible = true;
+ } else if (!m_is_local_player) {
+ // Objects attached to the local player should be hidden in first person
+ m_is_visible = !m_attached_to_local ||
+ m_client->getCamera()->getCameraMode() != CAMERA_MODE_FIRST;
+ m_force_visible = false;
+ } else {
+ // Local players need to have this set,
+ // otherwise first person attachments fail.
+ m_is_visible = true;
+ }
}
void GenericCAO::getAttachment(int *parent_id, std::string *bone, v3f *position,
- v3f *rotation) const
+ v3f *rotation, bool *force_visible) const
{
*parent_id = m_attachment_parent_id;
*bone = m_attachment_bone;
*position = m_attachment_position;
*rotation = m_attachment_rotation;
+ *force_visible = m_force_visible;
}
void GenericCAO::clearChildAttachments()
@@ -498,7 +517,7 @@ void GenericCAO::clearChildAttachments()
int child_id = *m_attachment_child_ids.begin();
if (ClientActiveObject *child = m_env->getActiveObject(child_id))
- child->setAttachment(0, "", v3f(), v3f());
+ child->setAttachment(0, "", v3f(), v3f(), false);
removeAttachmentChild(child_id);
}
@@ -507,9 +526,9 @@ void GenericCAO::clearChildAttachments()
void GenericCAO::clearParentAttachment()
{
if (m_attachment_parent_id)
- setAttachment(0, "", m_attachment_position, m_attachment_rotation);
+ setAttachment(0, "", m_attachment_position, m_attachment_rotation, false);
else
- setAttachment(0, "", v3f(), v3f());
+ setAttachment(0, "", v3f(), v3f(), false);
}
void GenericCAO::addAttachmentChild(int child_id)
@@ -567,6 +586,9 @@ void GenericCAO::removeFromScene(bool permanent)
m_client->getCamera()->removeNametag(m_nametag);
m_nametag = nullptr;
}
+
+ if (m_marker && m_client->getMinimap())
+ m_client->getMinimap()->removeMarker(&m_marker);
}
void GenericCAO::addToScene(ITextureSource *tsrc)
@@ -795,11 +817,13 @@ void GenericCAO::addToScene(ITextureSource *tsrc)
node->setParent(m_matrixnode);
updateNametag();
+ updateMarker();
updateNodePos();
updateAnimation();
updateBonePosition();
updateAttachments();
setNodeLight(m_last_light);
+ updateMeshCulling();
}
void GenericCAO::updateLight(u32 day_night_ratio)
@@ -885,12 +909,32 @@ u16 GenericCAO::getLightPosition(v3s16 *pos)
return 3;
}
+void GenericCAO::updateMarker()
+{
+ if (!m_client->getMinimap())
+ return;
+
+ if (!m_prop.show_on_minimap) {
+ if (m_marker)
+ m_client->getMinimap()->removeMarker(&m_marker);
+ return;
+ }
+
+ if (m_marker)
+ return;
+
+ scene::ISceneNode *node = getSceneNode();
+ if (!node)
+ return;
+ m_marker = m_client->getMinimap()->addMarker(node);
+}
+
void GenericCAO::updateNametag()
{
if (m_is_local_player) // No nametag for local player
return;
- if (m_prop.nametag.empty()) {
+ if (m_prop.nametag.empty() || m_prop.nametag_color.getAlpha() == 0) {
// Delete nametag
if (m_nametag) {
m_client->getCamera()->removeNametag(m_nametag);
@@ -908,12 +952,14 @@ void GenericCAO::updateNametag()
if (!m_nametag) {
// Add nametag
m_nametag = m_client->getCamera()->addNametag(node,
- m_prop.nametag, m_prop.nametag_color, pos);
+ m_prop.nametag, m_prop.nametag_color,
+ m_prop.nametag_bgcolor, pos);
} else {
// Update nametag
- m_nametag->nametag_text = m_prop.nametag;
- m_nametag->nametag_color = m_prop.nametag_color;
- m_nametag->nametag_pos = pos;
+ m_nametag->text = m_prop.nametag;
+ m_nametag->textcolor = m_prop.nametag_color;
+ m_nametag->bgcolor = m_prop.nametag_bgcolor;
+ m_nametag->pos = pos;
}
}
@@ -975,13 +1021,13 @@ void GenericCAO::step(float dtime, ClientEnvironment *env)
if (controls.sneak && walking)
new_speed /= 2;
- if (walking && (controls.LMB || controls.RMB)) {
+ if (walking && (controls.dig || controls.place)) {
new_anim = player->local_animations[3];
player->last_animation = WD_ANIM;
- } else if(walking) {
+ } else if (walking) {
new_anim = player->local_animations[1];
player->last_animation = WALK_ANIM;
- } else if(controls.LMB || controls.RMB) {
+ } else if (controls.dig || controls.place) {
new_anim = player->local_animations[2];
player->last_animation = DIG_ANIM;
}
@@ -1004,9 +1050,9 @@ void GenericCAO::step(float dtime, ClientEnvironment *env)
// Update local player animations
if ((player->last_animation != old_anim ||
- m_animation_speed != old_anim_speed) &&
- player->last_animation != NO_ANIM && allow_update)
- updateAnimation();
+ m_animation_speed != old_anim_speed) &&
+ player->last_animation != NO_ANIM && allow_update)
+ updateAnimation();
}
}
@@ -1121,7 +1167,7 @@ void GenericCAO::step(float dtime, ClientEnvironment *env)
}
}
- if (!getParent() && std::fabs(m_prop.automatic_rotate) > 0.001) {
+ if (!getParent() && node && fabs(m_prop.automatic_rotate) > 0.001f) {
// This is the child node's rotation. It is only used for automatic_rotate.
v3f local_rot = node->getRotation();
local_rot.Y = modulo360f(local_rot.Y - dtime * core::RADTODEG *
@@ -1130,7 +1176,7 @@ void GenericCAO::step(float dtime, ClientEnvironment *env)
}
if (!getParent() && m_prop.automatic_face_movement_dir &&
- (fabs(m_velocity.Z) > 0.001 || fabs(m_velocity.X) > 0.001)) {
+ (fabs(m_velocity.Z) > 0.001f || fabs(m_velocity.X) > 0.001f)) {
float target_yaw = atan2(m_velocity.Z, m_velocity.X) * 180 / M_PI
+ m_prop.automatic_face_movement_dir_offset;
float max_rotation_per_sec =
@@ -1176,6 +1222,7 @@ void GenericCAO::updateTexturePos()
int row = m_tx_basepos.Y;
int col = m_tx_basepos.X;
+ // Yawpitch goes rightwards
if (m_tx_select_horiz_by_yawpitch) {
if (cam_to_entity.Y > 0.75)
col += 5;
@@ -1206,6 +1253,27 @@ void GenericCAO::updateTexturePos()
float tys = m_tx_size.Y;
setBillboardTextureMatrix(m_spritenode, txs, tys, col, row);
}
+
+ else if (m_meshnode) {
+ if (m_prop.visual == "upright_sprite") {
+ int row = m_tx_basepos.Y;
+ int col = m_tx_basepos.X;
+
+ // Animation goes downwards
+ row += m_anim_frame;
+
+ const auto &tx = m_tx_size;
+ v2f t[4] = { // cf. vertices in GenericCAO::addToScene()
+ tx * v2f(col+1, row+1),
+ tx * v2f(col, row+1),
+ tx * v2f(col, row),
+ tx * v2f(col+1, row),
+ };
+ auto mesh = m_meshnode->getMesh();
+ setMeshBufferTextureCoords(mesh->getMeshBuffer(0), t, 4);
+ setMeshBufferTextureCoords(mesh->getMeshBuffer(1), t, 4);
+ }
+ }
}
// Do not pass by reference, see header.
@@ -1247,7 +1315,7 @@ void GenericCAO::updateTextures(std::string mod)
}
}
- if (m_animated_meshnode) {
+ else if (m_animated_meshnode) {
if (m_prop.visual == "mesh") {
for (u32 i = 0; i < m_prop.textures.size() &&
i < m_animated_meshnode->getMaterialCount(); ++i) {
@@ -1296,8 +1364,8 @@ void GenericCAO::updateTextures(std::string mod)
}
}
}
- if(m_meshnode)
- {
+
+ else if (m_meshnode) {
if(m_prop.visual == "cube")
{
for (u32 i = 0; i < 6; ++i)
@@ -1389,6 +1457,9 @@ void GenericCAO::updateTextures(std::string mod)
setMeshColor(mesh, m_prop.colors[0]);
}
}
+ // Prevent showing the player after changing texture
+ if (m_is_local_player)
+ updateMeshCulling();
}
void GenericCAO::updateAnimation()
@@ -1558,6 +1629,8 @@ void GenericCAO::processMessage(const std::string &data)
u8 cmd = readU8(is);
if (cmd == AO_CMD_SET_PROPERTIES) {
ObjectProperties newprops;
+ newprops.show_on_minimap = m_is_player; // default
+
newprops.deSerialize(is);
// Check what exactly changed
@@ -1591,6 +1664,8 @@ void GenericCAO::processMessage(const std::string &data)
if ((m_is_player && !m_is_local_player) && m_prop.nametag.empty())
m_prop.nametag = m_name;
+ if (m_is_local_player)
+ m_prop.show_on_minimap = false;
if (expire_visuals) {
expireVisuals();
@@ -1603,6 +1678,7 @@ void GenericCAO::processMessage(const std::string &data)
updateTextures(m_current_texture_modifier);
}
updateNametag();
+ updateMarker();
}
} else if (cmd == AO_CMD_UPDATE_POSITION) {
// Not sent by the server if this object is an attachment.
@@ -1635,7 +1711,7 @@ void GenericCAO::processMessage(const std::string &data)
rot_translator.update(m_rotation, false, update_interval);
updateNodePos();
} else if (cmd == AO_CMD_SET_TEXTURE_MOD) {
- std::string mod = deSerializeString(is);
+ std::string mod = deSerializeString16(is);
// immediately reset a engine issued texture modifier if a mod sends a different one
if (m_reset_textures_timer > 0) {
@@ -1713,7 +1789,7 @@ void GenericCAO::processMessage(const std::string &data)
m_animation_speed = readF32(is);
updateAnimationSpeed();
} else if (cmd == AO_CMD_SET_BONE_POSITION) {
- std::string bone = deSerializeString(is);
+ std::string bone = deSerializeString16(is);
v3f position = readV3F32(is);
v3f rotation = readV3F32(is);
m_bone_position[bone] = core::vector2d<v3f>(position, rotation);
@@ -1721,15 +1797,12 @@ void GenericCAO::processMessage(const std::string &data)
// updateBonePosition(); now called every step
} else if (cmd == AO_CMD_ATTACH_TO) {
u16 parent_id = readS16(is);
- std::string bone = deSerializeString(is);
+ std::string bone = deSerializeString16(is);
v3f position = readV3F32(is);
v3f rotation = readV3F32(is);
+ bool force_visible = readU8(is); // Returns false for EOF
- setAttachment(parent_id, bone, position, rotation);
-
- // localplayer itself can't be attached to localplayer
- if (!m_is_local_player)
- m_is_visible = !m_attached_to_local;
+ setAttachment(parent_id, bone, position, rotation, force_visible);
} else if (cmd == AO_CMD_PUNCHED) {
u16 result_hp = readU16(is);
@@ -1771,7 +1844,7 @@ void GenericCAO::processMessage(const std::string &data)
int armor_groups_size = readU16(is);
for(int i=0; i<armor_groups_size; i++)
{
- std::string name = deSerializeString(is);
+ std::string name = deSerializeString16(is);
int rating = readS16(is);
m_armor_groups[name] = rating;
}
@@ -1843,5 +1916,43 @@ std::string GenericCAO::debugInfoText()
return os.str();
}
+void GenericCAO::updateMeshCulling()
+{
+ if (!m_is_local_player)
+ return;
+
+ const bool hidden = m_client->getCamera()->getCameraMode() == CAMERA_MODE_FIRST;
+
+ if (m_meshnode && m_prop.visual == "upright_sprite") {
+ u32 buffers = m_meshnode->getMesh()->getMeshBufferCount();
+ for (u32 i = 0; i < buffers; i++) {
+ video::SMaterial &mat = m_meshnode->getMesh()->getMeshBuffer(i)->getMaterial();
+ // upright sprite has no backface culling
+ mat.setFlag(video::EMF_FRONT_FACE_CULLING, hidden);
+ }
+ return;
+ }
+
+ irr::scene::ISceneNode *node = getSceneNode();
+ if (!node)
+ return;
+
+ if (hidden) {
+ // Hide the mesh by culling both front and
+ // back faces. Serious hackyness but it works for our
+ // purposes. This also preserves the skeletal armature.
+ node->setMaterialFlag(video::EMF_BACK_FACE_CULLING,
+ true);
+ node->setMaterialFlag(video::EMF_FRONT_FACE_CULLING,
+ true);
+ } else {
+ // Restore mesh visibility.
+ node->setMaterialFlag(video::EMF_BACK_FACE_CULLING,
+ m_prop.backface_culling);
+ node->setMaterialFlag(video::EMF_FRONT_FACE_CULLING,
+ false);
+ }
+}
+
// Prototype
GenericCAO proto_GenericCAO(NULL, NULL);
diff --git a/src/client/content_cao.h b/src/client/content_cao.h
index 974ff9a1e..7c134fb48 100644
--- a/src/client/content_cao.h
+++ b/src/client/content_cao.h
@@ -30,6 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class Camera;
class Client;
struct Nametag;
+struct MinimapMarker;
/*
SmoothTranslator
@@ -84,6 +85,7 @@ private:
scene::IBillboardSceneNode *m_spritenode = nullptr;
scene::IDummyTransformationSceneNode *m_matrixnode = nullptr;
Nametag *m_nametag = nullptr;
+ MinimapMarker *m_marker = nullptr;
v3f m_position = v3f(0.0f, 10.0f * BS, 0);
v3f m_velocity;
v3f m_acceleration;
@@ -109,6 +111,7 @@ private:
v3f m_attachment_position;
v3f m_attachment_rotation;
bool m_attached_to_local = false;
+ bool m_force_visible = false;
int m_anim_frame = 0;
int m_anim_num_frames = 1;
@@ -216,9 +219,10 @@ public:
}
void setChildrenVisible(bool toset);
- void setAttachment(int parent_id, const std::string &bone, v3f position, v3f rotation);
+ void setAttachment(int parent_id, const std::string &bone, v3f position,
+ v3f rotation, bool force_visible);
void getAttachment(int *parent_id, std::string *bone, v3f *position,
- v3f *rotation) const;
+ v3f *rotation, bool *force_visible) const;
void clearChildAttachments();
void clearParentAttachment();
void addAttachmentChild(int child_id);
@@ -248,6 +252,8 @@ public:
void updateNametag();
+ void updateMarker();
+
void updateNodePos();
void step(float dtime, ClientEnvironment *env);
@@ -275,4 +281,6 @@ public:
{
return m_prop.infotext;
}
+
+ void updateMeshCulling();
};
diff --git a/src/client/content_mapblock.cpp b/src/client/content_mapblock.cpp
index 3d06584c4..90284ecce 100644
--- a/src/client/content_mapblock.cpp
+++ b/src/client/content_mapblock.cpp
@@ -513,10 +513,10 @@ f32 MapblockMeshGenerator::getCornerLevel(int i, int k)
count++;
} else if (content == CONTENT_AIR) {
air_count++;
- if (air_count >= 2)
- return -0.5 * BS + 0.2;
}
}
+ if (air_count >= 2)
+ return -0.5 * BS + 0.2;
if (count > 0)
return sum / count;
return 0;
@@ -723,7 +723,8 @@ void MapblockMeshGenerator::drawGlasslikeFramedNode()
for (auto &glass_tile : glass_tiles)
glass_tile = tiles[4];
- u8 param2 = n.getParam2();
+ // Only respect H/V merge bits when paramtype2 = "glasslikeliquidlevel" (liquid tank)
+ u8 param2 = (f->param_type_2 == CPT2_GLASSLIKE_LIQUID_LEVEL) ? n.getParam2() : 0;
bool H_merge = !(param2 & 128);
bool V_merge = !(param2 & 64);
param2 &= 63;
@@ -1454,10 +1455,10 @@ void MapblockMeshGenerator::generate()
}
}
-void MapblockMeshGenerator::renderSingle(content_t node)
+void MapblockMeshGenerator::renderSingle(content_t node, u8 param2)
{
p = {0, 0, 0};
- n = MapNode(node, 0xff, 0x00);
+ n = MapNode(node, 0xff, param2);
f = &nodedef->get(n);
drawNode();
}
diff --git a/src/client/content_mapblock.h b/src/client/content_mapblock.h
index 97947cdbe..487d84a07 100644
--- a/src/client/content_mapblock.h
+++ b/src/client/content_mapblock.h
@@ -174,5 +174,5 @@ public:
public:
MapblockMeshGenerator(MeshMakeData *input, MeshCollector *output);
void generate();
- void renderSingle(content_t node);
+ void renderSingle(content_t node, u8 param2 = 0x00);
};
diff --git a/src/client/event_manager.h b/src/client/event_manager.h
index 3762e89bf..16f7bcf07 100644
--- a/src/client/event_manager.h
+++ b/src/client/event_manager.h
@@ -19,7 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#pragma once
-#include "event.h"
+#include "mtevent.h"
#include <list>
#include <map>
diff --git a/src/client/fontengine.cpp b/src/client/fontengine.cpp
index 61d52cc2f..47218c0d9 100644
--- a/src/client/fontengine.cpp
+++ b/src/client/fontengine.cpp
@@ -42,8 +42,7 @@ static void font_setting_changed(const std::string &name, void *userdata)
}
/******************************************************************************/
-FontEngine::FontEngine(Settings* main_settings, gui::IGUIEnvironment* env) :
- m_settings(main_settings),
+FontEngine::FontEngine(gui::IGUIEnvironment* env) :
m_env(env)
{
@@ -51,34 +50,34 @@ FontEngine::FontEngine(Settings* main_settings, gui::IGUIEnvironment* env) :
i = (FontMode) FONT_SIZE_UNSPECIFIED;
}
- assert(m_settings != NULL); // pre-condition
+ assert(g_settings != NULL); // pre-condition
assert(m_env != NULL); // pre-condition
assert(m_env->getSkin() != NULL); // pre-condition
readSettings();
if (m_currentMode == FM_Standard) {
- m_settings->registerChangedCallback("font_size", font_setting_changed, NULL);
- m_settings->registerChangedCallback("font_bold", font_setting_changed, NULL);
- m_settings->registerChangedCallback("font_italic", font_setting_changed, NULL);
- m_settings->registerChangedCallback("font_path", font_setting_changed, NULL);
- m_settings->registerChangedCallback("font_path_bold", font_setting_changed, NULL);
- m_settings->registerChangedCallback("font_path_italic", font_setting_changed, NULL);
- m_settings->registerChangedCallback("font_path_bolditalic", font_setting_changed, NULL);
- m_settings->registerChangedCallback("font_shadow", font_setting_changed, NULL);
- m_settings->registerChangedCallback("font_shadow_alpha", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("font_size", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("font_bold", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("font_italic", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("font_path", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("font_path_bold", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("font_path_italic", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("font_path_bolditalic", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("font_shadow", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("font_shadow_alpha", font_setting_changed, NULL);
}
else if (m_currentMode == FM_Fallback) {
- m_settings->registerChangedCallback("fallback_font_size", font_setting_changed, NULL);
- m_settings->registerChangedCallback("fallback_font_path", font_setting_changed, NULL);
- m_settings->registerChangedCallback("fallback_font_shadow", font_setting_changed, NULL);
- m_settings->registerChangedCallback("fallback_font_shadow_alpha", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("fallback_font_size", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("fallback_font_path", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("fallback_font_shadow", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("fallback_font_shadow_alpha", font_setting_changed, NULL);
}
- m_settings->registerChangedCallback("mono_font_path", font_setting_changed, NULL);
- m_settings->registerChangedCallback("mono_font_size", font_setting_changed, NULL);
- m_settings->registerChangedCallback("screen_dpi", font_setting_changed, NULL);
- m_settings->registerChangedCallback("gui_scaling", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("mono_font_path", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("mono_font_size", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("screen_dpi", font_setting_changed, NULL);
+ g_settings->registerChangedCallback("gui_scaling", font_setting_changed, NULL);
}
/******************************************************************************/
@@ -186,13 +185,28 @@ unsigned int FontEngine::getDefaultFontSize()
return m_default_size[m_currentMode];
}
+unsigned int FontEngine::getFontSize(FontMode mode)
+{
+ if (m_currentMode == FM_Simple) {
+ if (mode == FM_Mono || mode == FM_SimpleMono)
+ return m_default_size[FM_SimpleMono];
+ else
+ return m_default_size[FM_Simple];
+ }
+
+ if (mode == FM_Unspecified)
+ return m_default_size[FM_Standard];
+
+ return m_default_size[mode];
+}
+
/******************************************************************************/
void FontEngine::readSettings()
{
if (USE_FREETYPE && g_settings->getBool("freetype")) {
- m_default_size[FM_Standard] = m_settings->getU16("font_size");
- m_default_size[FM_Fallback] = m_settings->getU16("fallback_font_size");
- m_default_size[FM_Mono] = m_settings->getU16("mono_font_size");
+ m_default_size[FM_Standard] = g_settings->getU16("font_size");
+ m_default_size[FM_Fallback] = g_settings->getU16("fallback_font_size");
+ m_default_size[FM_Mono] = g_settings->getU16("mono_font_size");
/*~ DO NOT TRANSLATE THIS LITERALLY!
This is a special string. Put either "no" or "yes"
@@ -205,15 +219,15 @@ void FontEngine::readSettings()
m_currentMode = is_yes(gettext("needs_fallback_font")) ?
FM_Fallback : FM_Standard;
- m_default_bold = m_settings->getBool("font_bold");
- m_default_italic = m_settings->getBool("font_italic");
+ m_default_bold = g_settings->getBool("font_bold");
+ m_default_italic = g_settings->getBool("font_italic");
} else {
m_currentMode = FM_Simple;
}
- m_default_size[FM_Simple] = m_settings->getU16("font_size");
- m_default_size[FM_SimpleMono] = m_settings->getU16("mono_font_size");
+ m_default_size[FM_Simple] = g_settings->getU16("font_size");
+ m_default_size[FM_SimpleMono] = g_settings->getU16("mono_font_size");
cleanCache();
updateFontCache();
@@ -229,7 +243,7 @@ void FontEngine::updateSkin()
m_env->getSkin()->setFont(font);
else
errorstream << "FontEngine: Default font file: " <<
- "\n\t\"" << m_settings->get("font_path") << "\"" <<
+ "\n\t\"" << g_settings->get("font_path") << "\"" <<
"\n\trequired for current screen configuration was not found" <<
" or was invalid file format." <<
"\n\tUsing irrlicht default font." << std::endl;
@@ -277,7 +291,7 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec)
setting_suffix.append("_italic");
u32 size = std::floor(RenderingEngine::getDisplayDensity() *
- m_settings->getFloat("gui_scaling") * spec.size);
+ g_settings->getFloat("gui_scaling") * spec.size);
if (size == 0) {
errorstream << "FontEngine: attempt to use font size 0" << std::endl;
@@ -296,8 +310,8 @@ gui::IGUIFont *FontEngine::initFont(const FontSpec &spec)
std::string fallback_settings[] = {
wanted_font_path,
- m_settings->get("fallback_font_path"),
- m_settings->getDefault(setting_prefix + "font_path")
+ g_settings->get("fallback_font_path"),
+ Settings::getLayer(SL_DEFAULTS)->get(setting_prefix + "font_path")
};
#if USE_FREETYPE
@@ -331,7 +345,7 @@ gui::IGUIFont *FontEngine::initSimpleFont(const FontSpec &spec)
assert(spec.mode == FM_Simple || spec.mode == FM_SimpleMono);
assert(spec.size != FONT_SIZE_UNSPECIFIED);
- const std::string &font_path = m_settings->get(
+ const std::string &font_path = g_settings->get(
(spec.mode == FM_SimpleMono) ? "mono_font_path" : "font_path");
size_t pos_dot = font_path.find_last_of('.');
@@ -349,7 +363,7 @@ gui::IGUIFont *FontEngine::initSimpleFont(const FontSpec &spec)
u32 size = std::floor(
RenderingEngine::getDisplayDensity() *
- m_settings->getFloat("gui_scaling") *
+ g_settings->getFloat("gui_scaling") *
spec.size);
irr::gui::IGUIFont *font = nullptr;
diff --git a/src/client/fontengine.h b/src/client/fontengine.h
index 53f14c45f..e27ef60e9 100644
--- a/src/client/fontengine.h
+++ b/src/client/fontengine.h
@@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <map>
#include <vector>
#include "util/basic_macros.h"
+#include "irrlichttypes.h"
#include <IGUIFont.h>
#include <IGUISkin.h>
#include <IGUIEnvironment.h>
@@ -48,7 +49,7 @@ struct FontSpec {
u16 getHash()
{
- return (mode << 2) | (bold << 1) | italic;
+ return (mode << 2) | (static_cast<u8>(bold) << 1) | static_cast<u8>(italic);
}
unsigned int size;
@@ -61,7 +62,7 @@ class FontEngine
{
public:
- FontEngine(Settings* main_settings, gui::IGUIEnvironment* env);
+ FontEngine(gui::IGUIEnvironment* env);
~FontEngine();
@@ -124,8 +125,8 @@ public:
/** get default font size */
unsigned int getDefaultFontSize();
- /** initialize font engine */
- void initialize(Settings* main_settings, gui::IGUIEnvironment* env);
+ /** get font size for a specific mode */
+ unsigned int getFontSize(FontMode mode);
/** update internal parameters from settings */
void readSettings();
@@ -146,9 +147,6 @@ private:
/** clean cache */
void cleanCache();
- /** pointer to settings for registering callbacks or reading config */
- Settings* m_settings = nullptr;
-
/** pointer to irrlicht gui environment */
gui::IGUIEnvironment* m_env = nullptr;
diff --git a/src/client/game.cpp b/src/client/game.cpp
index 069c482ca..3c58fb46f 100644
--- a/src/client/game.cpp
+++ b/src/client/game.cpp
@@ -34,11 +34,13 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "clouds.h"
#include "config.h"
#include "content_cao.h"
+#include "content/subgames.h"
#include "client/event_manager.h"
#include "fontengine.h"
#include "itemdef.h"
#include "log.h"
#include "filesys.h"
+#include "gameparams.h"
#include "gettext.h"
#include "gui/guiChatConsole.h"
#include "gui/guiConfirmRegistration.h"
@@ -169,13 +171,7 @@ struct LocalFormspecHandler : public TextDest
return;
}
- if (fields.find("quit") != fields.end()) {
- return;
- }
-
- if (fields.find("btn_continue") != fields.end()) {
- return;
- }
+ return;
}
if (m_formname == "MT_DEATH_SCREEN") {
@@ -184,7 +180,7 @@ struct LocalFormspecHandler : public TextDest
return;
}
- if (m_client && m_client->modsLoaded())
+ if (m_client->modsLoaded())
m_client->getScript()->on_formspec_input(m_formname, fields);
}
@@ -422,14 +418,13 @@ class GameGlobalShaderConstantSetter : public IShaderConstantSetter
CachedVertexShaderSetting<float> m_animation_timer_vertex;
CachedPixelShaderSetting<float> m_animation_timer_pixel;
CachedPixelShaderSetting<float, 3> m_day_light;
+ CachedPixelShaderSetting<float, 4> m_star_color;
CachedPixelShaderSetting<float, 3> m_eye_position_pixel;
CachedVertexShaderSetting<float, 3> m_eye_position_vertex;
CachedPixelShaderSetting<float, 3> m_minimap_yaw;
CachedPixelShaderSetting<float, 3> m_camera_offset_pixel;
CachedPixelShaderSetting<float, 3> m_camera_offset_vertex;
CachedPixelShaderSetting<SamplerLayer_t> m_base_texture;
- CachedPixelShaderSetting<SamplerLayer_t> m_normal_texture;
- CachedPixelShaderSetting<SamplerLayer_t> m_texture_flags;
Client *m_client;
public:
@@ -456,14 +451,13 @@ public:
m_animation_timer_vertex("animationTimer"),
m_animation_timer_pixel("animationTimer"),
m_day_light("dayLight"),
+ m_star_color("starColor"),
m_eye_position_pixel("eyePosition"),
m_eye_position_vertex("eyePosition"),
m_minimap_yaw("yawVec"),
m_camera_offset_pixel("cameraOffset"),
m_camera_offset_vertex("cameraOffset"),
m_base_texture("baseTexture"),
- m_normal_texture("normalTexture"),
- m_texture_flags("textureFlags"),
m_client(client)
{
g_settings->registerChangedCallback("enable_fog", settingsCallback, this);
@@ -475,12 +469,8 @@ public:
g_settings->deregisterChangedCallback("enable_fog", settingsCallback, this);
}
- virtual void onSetConstants(video::IMaterialRendererServices *services,
- bool is_highlevel)
+ void onSetConstants(video::IMaterialRendererServices *services) override
{
- if (!is_highlevel)
- return;
-
// Background color
video::SColor bgcolor = m_sky->getBgColor();
video::SColorf bgcolorf(bgcolor);
@@ -509,6 +499,10 @@ public:
sunlight.b };
m_day_light.set(dnc, services);
+ video::SColorf star_color = m_sky->getCurrentStarColor();
+ float clr[4] = {star_color.r, star_color.g, star_color.b, star_color.a};
+ m_star_color.set(clr, services);
+
u32 animation_timer = porting::getTimeMs() % 1000000;
float animation_timer_f = (float)animation_timer / 100000.f;
m_animation_timer_vertex.set(&animation_timer_f, services);
@@ -551,12 +545,8 @@ public:
m_camera_offset_pixel.set(camera_offset_array, services);
m_camera_offset_vertex.set(camera_offset_array, services);
- SamplerLayer_t base_tex = 0,
- normal_tex = 1,
- flags_tex = 2;
+ SamplerLayer_t base_tex = 0;
m_base_texture.set(&base_tex, services);
- m_normal_texture.set(&normal_tex, services);
- m_texture_flags.set(&flags_tex, services);
}
};
@@ -587,7 +577,7 @@ public:
virtual IShaderConstantSetter* create()
{
- GameGlobalShaderConstantSetter *scs = new GameGlobalShaderConstantSetter(
+ auto *scs = new GameGlobalShaderConstantSetter(
m_sky, m_force_fog_off, m_fog_range, m_client);
if (!m_sky)
created_nosky.push_back(scs);
@@ -602,7 +592,6 @@ public:
#endif
/****************************************************************************
-
****************************************************************************/
const float object_hit_delay = 0.2;
@@ -623,15 +612,15 @@ struct GameRunData {
u16 new_playeritem;
PointedThing pointed_old;
bool digging;
- bool ldown_for_dig;
+ bool punching;
+ bool btn_down_for_dig;
bool dig_instantly;
bool digging_blocked;
- bool left_punch;
bool reset_jump_timer;
float nodig_delay_timer;
float dig_time;
float dig_time_complete;
- float repeat_rightclick_timer;
+ float repeat_place_timer;
float object_hit_delay_timer;
float time_from_last_punch;
ClientActiveObject *selected_object;
@@ -669,19 +658,11 @@ public:
~Game();
bool startup(bool *kill,
- bool random_input,
InputHandler *input,
- const std::string &map_dir,
- const std::string &playername,
- const std::string &password,
- // If address is "", local server is used and address is updated
- std::string *address,
- u16 port,
+ const GameStartData &game_params,
std::string &error_message,
bool *reconnect,
- ChatBackend *chat_backend,
- const SubgameSpec &gamespec, // Used for local game
- bool simple_singleplayer_mode);
+ ChatBackend *chat_backend);
void run();
void shutdown();
@@ -691,21 +672,18 @@ protected:
void extendedResourceCleanup();
// Basic initialisation
- bool init(const std::string &map_dir, std::string *address,
- u16 port,
- const SubgameSpec &gamespec);
+ bool init(const std::string &map_dir, const std::string &address,
+ u16 port, const SubgameSpec &gamespec);
bool initSound();
bool createSingleplayerServer(const std::string &map_dir,
- const SubgameSpec &gamespec, u16 port, std::string *address);
+ const SubgameSpec &gamespec, u16 port);
// Client creation
- bool createClient(const std::string &playername,
- const std::string &password, std::string *address, u16 port);
+ bool createClient(const GameStartData &start_data);
bool initGui();
// Client connection
- bool connectToServer(const std::string &playername,
- const std::string &password, std::string *address, u16 port,
+ bool connectToServer(const GameStartData &start_data,
bool *connect_ok, bool *aborted);
bool getServerContent(bool *aborted);
@@ -796,6 +774,14 @@ protected:
{
return input->wasKeyDown(k);
}
+ inline bool wasKeyPressed(GameKeyType k)
+ {
+ return input->wasKeyPressed(k);
+ }
+ inline bool wasKeyReleased(GameKeyType k)
+ {
+ return input->wasKeyReleased(k);
+ }
#ifdef __ANDROID__
void handleAndroidChatInput();
@@ -885,7 +871,6 @@ private:
bool *reconnect_requested;
scene::ISceneNode *skybox;
- bool random_input;
bool simple_singleplayer_mode;
/* End 'cache' */
@@ -910,7 +895,7 @@ private:
bool m_cache_enable_free_move;
f32 m_cache_mouse_sensitivity;
f32 m_cache_joystick_frustum_sensitivity;
- f32 m_repeat_right_click_time;
+ f32 m_repeat_place_time;
f32 m_cache_cam_smoothing;
f32 m_cache_fog_start;
@@ -920,6 +905,7 @@ private:
bool m_does_lost_focus_pause_game = false;
+ int m_reset_HW_buffer_counter = 0;
#ifdef __ANDROID__
bool m_cache_hold_aux1;
bool m_android_chat_open;
@@ -944,7 +930,7 @@ Game::Game() :
&settingChangedCallback, this);
g_settings->registerChangedCallback("joystick_frustum_sensitivity",
&settingChangedCallback, this);
- g_settings->registerChangedCallback("repeat_rightclick_time",
+ g_settings->registerChangedCallback("repeat_place_time",
&settingChangedCallback, this);
g_settings->registerChangedCallback("noclip",
&settingChangedCallback, this);
@@ -1002,7 +988,7 @@ Game::~Game()
&settingChangedCallback, this);
g_settings->deregisterChangedCallback("mouse_sensitivity",
&settingChangedCallback, this);
- g_settings->deregisterChangedCallback("repeat_rightclick_time",
+ g_settings->deregisterChangedCallback("repeat_place_time",
&settingChangedCallback, this);
g_settings->deregisterChangedCallback("noclip",
&settingChangedCallback, this);
@@ -1017,28 +1003,21 @@ Game::~Game()
}
bool Game::startup(bool *kill,
- bool random_input,
InputHandler *input,
- const std::string &map_dir,
- const std::string &playername,
- const std::string &password,
- std::string *address, // can change if simple_singleplayer_mode
- u16 port,
+ const GameStartData &start_data,
std::string &error_message,
bool *reconnect,
- ChatBackend *chat_backend,
- const SubgameSpec &gamespec,
- bool simple_singleplayer_mode)
+ ChatBackend *chat_backend)
{
+
// "cache"
this->device = RenderingEngine::get_raw_device();
this->kill = kill;
this->error_message = &error_message;
this->reconnect_requested = reconnect;
- this->random_input = random_input;
this->input = input;
this->chat_backend = chat_backend;
- this->simple_singleplayer_mode = simple_singleplayer_mode;
+ this->simple_singleplayer_mode = start_data.isSinglePlayer();
input->keycache.populate();
@@ -1059,10 +1038,12 @@ bool Game::startup(bool *kill,
g_client_translations->clear();
- if (!init(map_dir, address, port, gamespec))
+ // address can change if simple_singleplayer_mode
+ if (!init(start_data.world_spec.path, start_data.address,
+ start_data.socket_port, start_data.game_spec))
return false;
- if (!createClient(playername, password, address, port))
+ if (!createClient(start_data))
return false;
RenderingEngine::initialize(client, hud);
@@ -1221,7 +1202,7 @@ void Game::shutdown()
bool Game::init(
const std::string &map_dir,
- std::string *address,
+ const std::string &address,
u16 port,
const SubgameSpec &gamespec)
{
@@ -1245,8 +1226,8 @@ bool Game::init(
return false;
// Create a server if not connecting to an existing one
- if (address->empty()) {
- if (!createSingleplayerServer(map_dir, gamespec, port, address))
+ if (address.empty()) {
+ if (!createSingleplayerServer(map_dir, gamespec, port))
return false;
}
@@ -1281,7 +1262,7 @@ bool Game::initSound()
}
bool Game::createSingleplayerServer(const std::string &map_dir,
- const SubgameSpec &gamespec, u16 port, std::string *address)
+ const SubgameSpec &gamespec, u16 port)
{
showOverlayMessage(N_("Creating server..."), 0, 5);
@@ -1308,14 +1289,14 @@ bool Game::createSingleplayerServer(const std::string &map_dir,
return false;
}
- server = new Server(map_dir, gamespec, simple_singleplayer_mode, bind_addr, false);
+ server = new Server(map_dir, gamespec, simple_singleplayer_mode, bind_addr,
+ false, nullptr, error_message);
server->start();
return true;
}
-bool Game::createClient(const std::string &playername,
- const std::string &password, std::string *address, u16 port)
+bool Game::createClient(const GameStartData &start_data)
{
showOverlayMessage(N_("Creating client..."), 0, 10);
@@ -1330,8 +1311,7 @@ bool Game::createClient(const std::string &playername,
g_touchscreengui->hide();
}
#endif
- if (!connectToServer(playername, password, address, port,
- &could_connect, &connect_aborted))
+ if (!connectToServer(start_data, &could_connect, &connect_aborted))
return false;
if (!could_connect) {
@@ -1352,7 +1332,7 @@ bool Game::createClient(const std::string &playername,
return false;
}
- GameGlobalShaderConstantSetterFactory *scsf = new GameGlobalShaderConstantSetterFactory(
+ auto *scsf = new GameGlobalShaderConstantSetterFactory(
&m_flags.force_fog_off, &runData.fog_range, client);
shader_src->addShaderConstantSetterFactory(scsf);
@@ -1362,33 +1342,21 @@ bool Game::createClient(const std::string &playername,
/* Camera
*/
camera = new Camera(*draw_control, client);
- if (!camera || !camera->successfullyCreated(*error_message))
+ if (!camera->successfullyCreated(*error_message))
return false;
client->setCamera(camera);
/* Clouds
*/
- if (m_cache_enable_clouds) {
+ if (m_cache_enable_clouds)
clouds = new Clouds(smgr, -1, time(0));
- if (!clouds) {
- *error_message = "Memory allocation error (clouds)";
- errorstream << *error_message << std::endl;
- return false;
- }
- }
/* Skybox
*/
- sky = new Sky(-1, texture_src);
+ sky = new Sky(-1, texture_src, shader_src);
scsf->setSky(sky);
skybox = NULL; // This is used/set later on in the main run loop
- if (!sky) {
- *error_message = "Memory allocation error sky";
- errorstream << *error_message << std::endl;
- return false;
- }
-
/* Pre-calculated values
*/
video::ITexture *t = texture_src->getTexture("crack_anylength.png");
@@ -1418,18 +1386,10 @@ bool Game::createClient(const std::string &playername,
hud = new Hud(guienv, client, player, &player->inventory);
- if (!hud) {
- *error_message = "Memory error: could not create HUD";
- errorstream << *error_message << std::endl;
- return false;
- }
-
mapper = client->getMinimap();
- if (mapper) {
- mapper->setMinimapMode(MINIMAP_MODE_OFF);
- if (client->modsLoaded())
- client->getScript()->on_minimap_ready(mapper);
- }
+
+ if (mapper && client->modsLoaded())
+ client->getScript()->on_minimap_ready(mapper);
return true;
}
@@ -1447,11 +1407,6 @@ bool Game::initGui()
// Chat backend and console
gui_chat_console = new GUIChatConsole(guienv, guienv->getRootGUIElement(),
-1, chat_backend, client, &g_menumgr);
- if (!gui_chat_console) {
- *error_message = "Could not allocate memory for chat console";
- errorstream << *error_message << std::endl;
- return false;
- }
#ifdef HAVE_TOUCHSCREENGUI
@@ -1463,8 +1418,7 @@ bool Game::initGui()
return true;
}
-bool Game::connectToServer(const std::string &playername,
- const std::string &password, std::string *address, u16 port,
+bool Game::connectToServer(const GameStartData &start_data,
bool *connect_ok, bool *connection_aborted)
{
*connect_ok = false; // Let's not be overly optimistic
@@ -1473,10 +1427,10 @@ bool Game::connectToServer(const std::string &playername,
showOverlayMessage(N_("Resolving address..."), 0, 15);
- Address connect_address(0, 0, 0, 0, port);
+ Address connect_address(0, 0, 0, 0, start_data.socket_port);
try {
- connect_address.Resolve(address->c_str());
+ connect_address.Resolve(start_data.address.c_str());
if (connect_address.isZero()) { // i.e. INADDR_ANY, IN6ADDR_ANY
//connect_address.Resolve("localhost");
@@ -1503,14 +1457,12 @@ bool Game::connectToServer(const std::string &playername,
return false;
}
- client = new Client(playername.c_str(), password, *address,
+ client = new Client(start_data.name.c_str(),
+ start_data.password, start_data.address,
*draw_control, texture_src, shader_src,
itemdef_manager, nodedef_manager, sound, eventmgr,
connect_address.isIPv6(), m_game_ui.get());
- if (!client)
- return false;
-
client->m_simple_singleplayer_mode = simple_singleplayer_mode;
infostream << "Connecting to server at ";
@@ -1574,13 +1526,13 @@ bool Game::connectToServer(const std::string &playername,
} else {
registration_confirmation_shown = true;
(new GUIConfirmRegistration(guienv, guienv->getRootGUIElement(), -1,
- &g_menumgr, client, playername, password,
+ &g_menumgr, client, start_data.name, start_data.password,
connection_aborted, texture_src))->drop();
}
} else {
wait_time += dtime;
// Only time out if we aren't waiting for the server we started
- if (!address->empty() && wait_time > 10) {
+ if (!start_data.isSinglePlayer() && wait_time > 10) {
*error_message = "Connection timed out.";
errorstream << *error_message << std::endl;
break;
@@ -1659,7 +1611,10 @@ bool Game::getServerContent(bool *aborted)
std::stringstream message;
std::fixed(message);
message.precision(0);
- message << gettext("Media...") << " " << (client->mediaReceiveProgress()*100) << "%";
+ float receive = client->mediaReceiveProgress() * 100;
+ message << gettext("Media...");
+ if (receive > 0)
+ message << " " << receive << "%";
message.precision(2);
if ((USE_CURL == 0) ||
@@ -2029,15 +1984,11 @@ void Game::processItemSelection(u16 *new_playeritem)
s32 dir = wheel;
- if (input->joystick.wasKeyDown(KeyType::SCROLL_DOWN) ||
- wasKeyDown(KeyType::HOTBAR_NEXT)) {
+ if (wasKeyDown(KeyType::HOTBAR_NEXT))
dir = -1;
- }
- if (input->joystick.wasKeyDown(KeyType::SCROLL_UP) ||
- wasKeyDown(KeyType::HOTBAR_PREV)) {
+ if (wasKeyDown(KeyType::HOTBAR_PREV))
dir = 1;
- }
if (dir < 0)
*new_playeritem = *new_playeritem < max_item ? *new_playeritem + 1 : 0;
@@ -2090,7 +2041,7 @@ void Game::openInventory()
TextDest *txt_dst = new TextDestPlayerInventory(client);
auto *&formspec = m_game_ui->updateFormspec("");
GUIFormSpecMenu::create(formspec, client, &input->joystick, fs_src,
- txt_dst, client->getFormspecPrepend());
+ txt_dst, client->getFormspecPrepend(), sound);
formspec->setFormSpec(fs_src->getForm(), inventoryloc);
}
@@ -2231,52 +2182,37 @@ void Game::toggleMinimap(bool shift_pressed)
if (!mapper || !m_game_ui->m_flags.show_hud || !g_settings->getBool("enable_minimap"))
return;
- if (shift_pressed) {
+ if (shift_pressed)
mapper->toggleMinimapShape();
- return;
- }
+ else
+ mapper->nextMode();
+
+ // TODO: When legacy minimap is deprecated, keep only HUD minimap stuff here
+ // Not so satisying code to keep compatibility with old fixed mode system
+ // -->
u32 hud_flags = client->getEnv().getLocalPlayer()->hud_flags;
- MinimapMode mode = MINIMAP_MODE_OFF;
- if (hud_flags & HUD_FLAG_MINIMAP_VISIBLE) {
- mode = mapper->getMinimapMode();
- mode = (MinimapMode)((int)mode + 1);
- // If radar is disabled and in, or switching to, radar mode
- if (!(hud_flags & HUD_FLAG_MINIMAP_RADAR_VISIBLE) && mode > 3)
- mode = MINIMAP_MODE_OFF;
- }
+ if (!(hud_flags & HUD_FLAG_MINIMAP_VISIBLE)) {
+ m_game_ui->m_flags.show_minimap = false;
+ } else {
- m_game_ui->m_flags.show_minimap = true;
- switch (mode) {
- case MINIMAP_MODE_SURFACEx1:
- m_game_ui->showTranslatedStatusText("Minimap in surface mode, Zoom x1");
- break;
- case MINIMAP_MODE_SURFACEx2:
- m_game_ui->showTranslatedStatusText("Minimap in surface mode, Zoom x2");
- break;
- case MINIMAP_MODE_SURFACEx4:
- m_game_ui->showTranslatedStatusText("Minimap in surface mode, Zoom x4");
- break;
- case MINIMAP_MODE_RADARx1:
- m_game_ui->showTranslatedStatusText("Minimap in radar mode, Zoom x1");
- break;
- case MINIMAP_MODE_RADARx2:
- m_game_ui->showTranslatedStatusText("Minimap in radar mode, Zoom x2");
- break;
- case MINIMAP_MODE_RADARx4:
- m_game_ui->showTranslatedStatusText("Minimap in radar mode, Zoom x4");
- break;
- default:
- mode = MINIMAP_MODE_OFF;
- m_game_ui->m_flags.show_minimap = false;
- if (hud_flags & HUD_FLAG_MINIMAP_VISIBLE)
- m_game_ui->showTranslatedStatusText("Minimap hidden");
- else
- m_game_ui->showTranslatedStatusText("Minimap currently disabled by game or mod");
- }
+ // If radar is disabled, try to find a non radar mode or fall back to 0
+ if (!(hud_flags & HUD_FLAG_MINIMAP_RADAR_VISIBLE))
+ while (mapper->getModeIndex() &&
+ mapper->getModeDef().type == MINIMAP_TYPE_RADAR)
+ mapper->nextMode();
- mapper->setMinimapMode(mode);
+ m_game_ui->m_flags.show_minimap = mapper->getModeDef().type !=
+ MINIMAP_TYPE_OFF;
+ }
+ // <--
+ // End of 'not so satifying code'
+ if ((hud_flags & HUD_FLAG_MINIMAP_VISIBLE) ||
+ (hud && hud->hasElementOfType(HUD_ELEM_MINIMAP)))
+ m_game_ui->showStatusText(utf8_to_wide(mapper->getModeDef().label));
+ else
+ m_game_ui->showTranslatedStatusText("Minimap currently disabled by game or mod");
}
void Game::toggleFog()
@@ -2399,10 +2335,10 @@ void Game::checkZoomEnabled()
void Game::updateCameraDirection(CameraOrientation *cam, float dtime)
{
if ((device->isWindowActive() && device->isWindowFocused()
- && !isMenuActive()) || random_input) {
+ && !isMenuActive()) || input->isRandom()) {
#ifndef __ANDROID__
- if (!random_input) {
+ if (!input->isRandom()) {
// Mac OSX gets upset if this is set every frame
if (device->getCursorControl()->isVisible())
device->getCursorControl()->setVisible(false);
@@ -2482,8 +2418,8 @@ void Game::updatePlayerControl(const CameraOrientation &cam)
isKeyDown(KeyType::SPECIAL1),
isKeyDown(KeyType::SNEAK),
isKeyDown(KeyType::ZOOM),
- input->getLeftState(),
- input->getRightState(),
+ isKeyDown(KeyType::DIG),
+ isKeyDown(KeyType::PLACE),
cam.camera_pitch,
cam.camera_yaw,
input->joystick.getAxisWithoutDead(JA_SIDEWARD_MOVE),
@@ -2498,8 +2434,8 @@ void Game::updatePlayerControl(const CameraOrientation &cam)
( (u32)(isKeyDown(KeyType::JUMP) & 0x1) << 4) |
( (u32)(isKeyDown(KeyType::SPECIAL1) & 0x1) << 5) |
( (u32)(isKeyDown(KeyType::SNEAK) & 0x1) << 6) |
- ( (u32)(input->getLeftState() & 0x1) << 7) |
- ( (u32)(input->getRightState() & 0x1) << 8) |
+ ( (u32)(isKeyDown(KeyType::DIG) & 0x1) << 7) |
+ ( (u32)(isKeyDown(KeyType::PLACE) & 0x1) << 8) |
( (u32)(isKeyDown(KeyType::ZOOM) & 0x1) << 9)
);
@@ -2637,7 +2573,7 @@ void Game::handleClientEvent_ShowFormSpec(ClientEvent *event, CameraOrientation
auto *&formspec = m_game_ui->updateFormspec(*(event->show_formspec.formname));
GUIFormSpecMenu::create(formspec, client, &input->joystick,
- fs_src, txt_dst, client->getFormspecPrepend());
+ fs_src, txt_dst, client->getFormspecPrepend(), sound);
}
delete event->show_formspec.formspec;
@@ -2650,7 +2586,7 @@ void Game::handleClientEvent_ShowLocalFormSpec(ClientEvent *event, CameraOrienta
LocalFormspecHandler *txt_dst =
new LocalFormspecHandler(*event->show_formspec.formname, client);
GUIFormSpecMenu::create(m_game_ui->getFormspecGUI(), client, &input->joystick,
- fs_src, txt_dst, client->getFormspecPrepend());
+ fs_src, txt_dst, client->getFormspecPrepend(), sound);
delete event->show_formspec.formspec;
delete event->show_formspec.formname;
@@ -2959,7 +2895,8 @@ void Game::updateCamera(u32 busy_time, f32 dtime)
camera->toggleCameraMode();
- playercao->setVisible(camera->getCameraMode() > CAMERA_MODE_FIRST);
+ // Make the player visible depending on camera mode.
+ playercao->updateMeshCulling();
playercao->setChildrenVisible(camera->getCameraMode() > CAMERA_MODE_FIRST);
}
@@ -3081,7 +3018,7 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug)
PointedThing pointed = updatePointedThing(shootline,
selected_def.liquids_pointable,
- !runData.ldown_for_dig,
+ !runData.btn_down_for_dig,
camera_offset);
if (pointed != runData.pointed_old) {
@@ -3089,20 +3026,18 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug)
hud->updateSelectionMesh(camera_offset);
}
- if (runData.digging_blocked && !input->getLeftState()) {
- // allow digging again if button is not pressed
+ // Allow digging again if button is not pressed
+ if (runData.digging_blocked && !isKeyDown(KeyType::DIG))
runData.digging_blocked = false;
- }
/*
Stop digging when
- - releasing left mouse button
+ - releasing dig button
- pointing away from node
*/
if (runData.digging) {
- if (input->getLeftReleased()) {
- infostream << "Left button released"
- << " (stopped digging)" << std::endl;
+ if (wasKeyReleased(KeyType::DIG)) {
+ infostream << "Dig button released (stopped digging)" << std::endl;
runData.digging = false;
} else if (pointed != runData.pointed_old) {
if (pointed.type == POINTEDTHING_NODE
@@ -3112,8 +3047,7 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug)
// Still pointing to the same node, but a different face.
// Don't reset.
} else {
- infostream << "Pointing away from node"
- << " (stopped digging)" << std::endl;
+ infostream << "Pointing away from node (stopped digging)" << std::endl;
runData.digging = false;
hud->updateSelectionMesh(camera_offset);
}
@@ -3124,55 +3058,60 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug)
client->setCrack(-1, v3s16(0, 0, 0));
runData.dig_time = 0.0;
}
- } else if (runData.dig_instantly && input->getLeftReleased()) {
- // Remove e.g. torches faster when clicking instead of holding LMB
+ } else if (runData.dig_instantly && wasKeyReleased(KeyType::DIG)) {
+ // Remove e.g. torches faster when clicking instead of holding dig button
runData.nodig_delay_timer = 0;
runData.dig_instantly = false;
}
- if (!runData.digging && runData.ldown_for_dig && !input->getLeftState()) {
- runData.ldown_for_dig = false;
- }
+ if (!runData.digging && runData.btn_down_for_dig && !isKeyDown(KeyType::DIG))
+ runData.btn_down_for_dig = false;
- runData.left_punch = false;
+ runData.punching = false;
soundmaker->m_player_leftpunch_sound.name = "";
// Prepare for repeating, unless we're not supposed to
- if (input->getRightState() && !g_settings->getBool("safe_dig_and_place"))
- runData.repeat_rightclick_timer += dtime;
+ if (isKeyDown(KeyType::PLACE) && !g_settings->getBool("safe_dig_and_place"))
+ runData.repeat_place_timer += dtime;
else
- runData.repeat_rightclick_timer = 0;
+ runData.repeat_place_timer = 0;
- if (selected_def.usable && input->getLeftState()) {
- if (input->getLeftClicked() && (!client->modsLoaded()
- || !client->getScript()->on_item_use(selected_item, pointed)))
+ if (selected_def.usable && isKeyDown(KeyType::DIG)) {
+ if (wasKeyPressed(KeyType::DIG) && (!client->modsLoaded() ||
+ !client->getScript()->on_item_use(selected_item, pointed)))
client->interact(INTERACT_USE, pointed);
} else if (pointed.type == POINTEDTHING_NODE) {
handlePointingAtNode(pointed, selected_item, hand_item, dtime);
} else if (pointed.type == POINTEDTHING_OBJECT) {
v3f player_position = player->getPosition();
handlePointingAtObject(pointed, tool_item, player_position, show_debug);
- } else if (input->getLeftState()) {
+ } else if (isKeyDown(KeyType::DIG)) {
// When button is held down in air, show continuous animation
- runData.left_punch = true;
+ runData.punching = true;
// Run callback even though item is not usable
- if (input->getLeftClicked() && client->modsLoaded())
+ if (wasKeyPressed(KeyType::DIG) && client->modsLoaded())
client->getScript()->on_item_use(selected_item, pointed);
- } else if (input->getRightClicked()) {
+ } else if (wasKeyPressed(KeyType::PLACE)) {
handlePointingAtNothing(selected_item);
}
runData.pointed_old = pointed;
- if (runData.left_punch || input->getLeftClicked())
- camera->setDigging(0); // left click animation
+ if (runData.punching || wasKeyPressed(KeyType::DIG))
+ camera->setDigging(0); // dig animation
- input->resetLeftClicked();
- input->resetRightClicked();
+ input->clearWasKeyPressed();
+ input->clearWasKeyReleased();
+ // Ensure DIG & PLACE are marked as handled
+ wasKeyDown(KeyType::DIG);
+ wasKeyDown(KeyType::PLACE);
- input->resetLeftReleased();
- input->resetRightReleased();
+ input->joystick.clearWasKeyPressed(KeyType::DIG);
+ input->joystick.clearWasKeyPressed(KeyType::PLACE);
+
+ input->joystick.clearWasKeyReleased(KeyType::DIG);
+ input->joystick.clearWasKeyReleased(KeyType::PLACE);
}
@@ -3193,11 +3132,14 @@ PointedThing Game::updatePointedThing(
const NodeDefManager *nodedef = map.getNodeDefManager();
runData.selected_object = NULL;
+ hud->pointing_at_object = false;
RaycastState s(shootline, look_for_object, liquids_pointable);
PointedThing result;
env.continueRaycast(&s, &result);
if (result.type == POINTEDTHING_OBJECT) {
+ hud->pointing_at_object = true;
+
runData.selected_object = client->getEnv().getActiveObject(result.object_id);
aabb3f selection_box;
if (show_entity_selectionbox && runData.selected_object->doShowSelectionBox() &&
@@ -3269,7 +3211,7 @@ PointedThing Game::updatePointedThing(
void Game::handlePointingAtNothing(const ItemStack &playerItem)
{
- infostream << "Right Clicked in Air" << std::endl;
+ infostream << "Attempted to place item while pointing at nothing" << std::endl;
PointedThing fauxPointed;
fauxPointed.type = POINTEDTHING_NOTHING;
client->interact(INTERACT_ACTIVATE, fauxPointed);
@@ -3288,7 +3230,7 @@ void Game::handlePointingAtNode(const PointedThing &pointed,
ClientMap &map = client->getEnv().getClientMap();
- if (runData.nodig_delay_timer <= 0.0 && input->getLeftState()
+ if (runData.nodig_delay_timer <= 0.0 && isKeyDown(KeyType::DIG)
&& !runData.digging_blocked
&& client->checkPrivilege("interact")) {
handleDigging(pointed, nodepos, selected_item, hand_item, dtime);
@@ -3309,13 +3251,14 @@ void Game::handlePointingAtNode(const PointedThing &pointed,
}
}
- if ((input->getRightClicked() ||
- runData.repeat_rightclick_timer >= m_repeat_right_click_time) &&
+ if ((wasKeyPressed(KeyType::PLACE) ||
+ runData.repeat_place_timer >= m_repeat_place_time) &&
client->checkPrivilege("interact")) {
- runData.repeat_rightclick_timer = 0;
- infostream << "Ground right-clicked" << std::endl;
+ runData.repeat_place_timer = 0;
+ infostream << "Place button pressed while looking at ground" << std::endl;
- camera->setDigging(1); // right click animation (always shown for feedback)
+ // Placing animation (always shown for feedback)
+ camera->setDigging(1);
soundmaker->m_player_rightpunch_sound = SimpleSoundSpec();
@@ -3349,7 +3292,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def,
}
// formspec in meta
- if (meta && !meta->getString("formspec").empty() && !random_input
+ if (meta && !meta->getString("formspec").empty() && !input->isRandom()
&& !isKeyDown(KeyType::SNEAK)) {
// on_rightclick callbacks are called anyway
if (nodedef_manager->get(map.getNode(nodepos)).rightclickable)
@@ -3366,7 +3309,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def,
auto *&formspec = m_game_ui->updateFormspec("");
GUIFormSpecMenu::create(formspec, client, &input->joystick, fs_src,
- txt_dst, client->getFormspecPrepend());
+ txt_dst, client->getFormspecPrepend(), sound);
formspec->setFormSpec(meta->getString("formspec"), inventoryloc);
return false;
@@ -3381,8 +3324,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def,
}
verbosestream << "Node placement prediction for "
- << selected_def.name << " is "
- << prediction << std::endl;
+ << selected_def.name << " is " << prediction << std::endl;
v3s16 p = neighbourpos;
// Place inside node itself if buildable_to
@@ -3393,6 +3335,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def,
} else {
node = map.getNode(p, &is_valid_position);
if (is_valid_position && !nodedef->get(node).buildable_to) {
+ soundmaker->m_player_rightpunch_sound = selected_def.sound_place_failed;
// Report to server
client->interact(INTERACT_PLACE, pointed);
return false;
@@ -3465,6 +3408,7 @@ bool Game::nodePlacement(const ItemDefinition &selected_def,
pp = p + v3s16(0, -1, 0);
if (!nodedef->get(map.getNode(pp)).walkable) {
+ soundmaker->m_player_rightpunch_sound = selected_def.sound_place_failed;
// Report to server
client->interact(INTERACT_PLACE, pointed);
return false;
@@ -3541,7 +3485,7 @@ void Game::handlePointingAtObject(const PointedThing &pointed,
m_game_ui->setInfoText(infotext);
- if (input->getLeftState()) {
+ if (isKeyDown(KeyType::DIG)) {
bool do_punch = false;
bool do_punch_damage = false;
@@ -3551,12 +3495,12 @@ void Game::handlePointingAtObject(const PointedThing &pointed,
runData.object_hit_delay_timer = object_hit_delay;
}
- if (input->getLeftClicked())
+ if (wasKeyPressed(KeyType::DIG))
do_punch = true;
if (do_punch) {
- infostream << "Left-clicked object" << std::endl;
- runData.left_punch = true;
+ infostream << "Punched object" << std::endl;
+ runData.punching = true;
}
if (do_punch_damage) {
@@ -3571,8 +3515,8 @@ void Game::handlePointingAtObject(const PointedThing &pointed,
if (!disable_send)
client->interact(INTERACT_START_DIGGING, pointed);
}
- } else if (input->getRightClicked()) {
- infostream << "Right-clicked object" << std::endl;
+ } else if (wasKeyDown(KeyType::PLACE)) {
+ infostream << "Pressed place button while pointing at object" << std::endl;
client->interact(INTERACT_PLACE, pointed); // place
}
}
@@ -3618,7 +3562,7 @@ void Game::handleDigging(const PointedThing &pointed, const v3s16 &nodepos,
return;
client->interact(INTERACT_START_DIGGING, pointed);
runData.digging = true;
- runData.ldown_for_dig = true;
+ runData.btn_down_for_dig = true;
}
if (!runData.dig_instantly) {
@@ -3712,10 +3656,9 @@ void Game::handleDigging(const PointedThing &pointed, const v3s16 &nodepos,
client->setCrack(-1, nodepos);
}
- camera->setDigging(0); // left click animation
+ camera->setDigging(0); // Dig animation
}
-
void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime,
const CameraOrientation &cam)
{
@@ -3958,7 +3901,7 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime,
/*
Update minimap pos and rotation
*/
- if (mapper && m_game_ui->m_flags.show_minimap && m_game_ui->m_flags.show_hud) {
+ if (mapper && m_game_ui->m_flags.show_hud) {
mapper->setPos(floatToInt(player->getPosition(), BS));
mapper->setAngle(player->getYaw());
}
@@ -3966,6 +3909,27 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime,
/*
End scene
*/
+ if (++m_reset_HW_buffer_counter > 500) {
+ /*
+ Periodically remove all mesh HW buffers.
+
+ Work around for a quirk in Irrlicht where a HW buffer is only
+ released after 20000 iterations (triggered from endScene()).
+
+ Without this, all loaded but unused meshes will retain their HW
+ buffers for at least 5 minutes, at which point looking up the HW buffers
+ becomes a bottleneck and the framerate drops (as much as 30%).
+
+ Tests showed that numbers between 50 and 1000 are good, so picked 500.
+ There are no other public Irrlicht APIs that allow interacting with the
+ HW buffers without tracking the status of every individual mesh.
+
+ The HW buffers for _visible_ meshes will be reinitialized in the next frame.
+ */
+ infostream << "Game::updateFrame(): Removing all HW buffers." << std::endl;
+ driver->removeAllHardwareBuffers();
+ m_reset_HW_buffer_counter = 0;
+ }
driver->endScene();
stats->drawtime = tt_draw.stop(true);
@@ -4001,9 +3965,10 @@ inline void Game::limitFps(FpsControl *fps_timings, f32 *dtime)
else
fps_timings->busy_time = 0;
- u32 frametime_min = 1000 / (g_menumgr.pausesGame()
- ? g_settings->getFloat("pause_fps_max")
- : g_settings->getFloat("fps_max"));
+ u32 frametime_min = 1000 / (
+ device->isWindowFocused() && !g_menumgr.pausesGame()
+ ? g_settings->getFloat("fps_max")
+ : g_settings->getFloat("fps_max_unfocused"));
if (fps_timings->busy_time < frametime_min) {
fps_timings->sleep_time = frametime_min - fps_timings->busy_time;
@@ -4051,7 +4016,7 @@ void Game::readSettings()
m_cache_enable_fog = g_settings->getBool("enable_fog");
m_cache_mouse_sensitivity = g_settings->getFloat("mouse_sensitivity");
m_cache_joystick_frustum_sensitivity = g_settings->getFloat("joystick_frustum_sensitivity");
- m_repeat_right_click_time = g_settings->getFloat("repeat_rightclick_time");
+ m_repeat_place_time = g_settings->getFloat("repeat_place_time");
m_cache_enable_noclip = g_settings->getBool("noclip");
m_cache_enable_free_move = g_settings->getBool("free_move");
@@ -4116,7 +4081,7 @@ void Game::showDeathFormspec()
auto *&formspec = m_game_ui->getFormspecGUI();
GUIFormSpecMenu::create(formspec, client, &input->joystick,
- fs_src, txt_dst, client->getFormspecPrepend());
+ fs_src, txt_dst, client->getFormspecPrepend(), sound);
formspec->setFocus("btn_respawn");
}
@@ -4143,30 +4108,32 @@ void Game::showPauseMenu()
"- %s: move backwards\n"
"- %s: move left\n"
"- %s: move right\n"
- "- %s: jump/climb\n"
- "- %s: sneak/go down\n"
+ "- %s: jump/climb up\n"
+ "- %s: dig/punch\n"
+ "- %s: place/use\n"
+ "- %s: sneak/climb down\n"
"- %s: drop item\n"
"- %s: inventory\n"
"- Mouse: turn/look\n"
- "- Mouse left: dig/punch\n"
- "- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
);
- char control_text_buf[600];
-
- porting::mt_snprintf(control_text_buf, sizeof(control_text_buf), control_text_template.c_str(),
- GET_KEY_NAME(keymap_forward),
- GET_KEY_NAME(keymap_backward),
- GET_KEY_NAME(keymap_left),
- GET_KEY_NAME(keymap_right),
- GET_KEY_NAME(keymap_jump),
- GET_KEY_NAME(keymap_sneak),
- GET_KEY_NAME(keymap_drop),
- GET_KEY_NAME(keymap_inventory),
- GET_KEY_NAME(keymap_chat)
- );
+ char control_text_buf[600];
+
+ porting::mt_snprintf(control_text_buf, sizeof(control_text_buf), control_text_template.c_str(),
+ GET_KEY_NAME(keymap_forward),
+ GET_KEY_NAME(keymap_backward),
+ GET_KEY_NAME(keymap_left),
+ GET_KEY_NAME(keymap_right),
+ GET_KEY_NAME(keymap_jump),
+ GET_KEY_NAME(keymap_dig),
+ GET_KEY_NAME(keymap_place),
+ GET_KEY_NAME(keymap_sneak),
+ GET_KEY_NAME(keymap_drop),
+ GET_KEY_NAME(keymap_inventory),
+ GET_KEY_NAME(keymap_chat)
+ );
std::string control_text = std::string(control_text_buf);
str_formspec_escape(control_text);
@@ -4248,7 +4215,7 @@ void Game::showPauseMenu()
auto *&formspec = m_game_ui->getFormspecGUI();
GUIFormSpecMenu::create(formspec, client, &input->joystick,
- fs_src, txt_dst, client->getFormspecPrepend());
+ fs_src, txt_dst, client->getFormspecPrepend(), sound);
formspec->setFocus("btn_continue");
formspec->doPause = true;
}
@@ -4260,19 +4227,11 @@ void Game::showPauseMenu()
/****************************************************************************/
void the_game(bool *kill,
- bool random_input,
InputHandler *input,
- const std::string &map_dir,
- const std::string &playername,
- const std::string &password,
- const std::string &address, // If empty local server is created
- u16 port,
-
+ const GameStartData &start_data,
std::string &error_message,
ChatBackend &chat_backend,
- bool *reconnect_requested,
- const SubgameSpec &gamespec, // Used for local game
- bool simple_singleplayer_mode)
+ bool *reconnect_requested) // Used for local game
{
Game game;
@@ -4280,14 +4239,11 @@ void the_game(bool *kill,
* is created then this is updated and we don't want to change the value
* passed to us by the calling function
*/
- std::string server_address = address;
try {
- if (game.startup(kill, random_input, input, map_dir,
- playername, password, &server_address, port, error_message,
- reconnect_requested, &chat_backend, gamespec,
- simple_singleplayer_mode)) {
+ if (game.startup(kill, input, start_data, error_message,
+ reconnect_requested, &chat_backend)) {
game.run();
}
diff --git a/src/client/game.h b/src/client/game.h
index 69e6eed0b..d04153271 100644
--- a/src/client/game.h
+++ b/src/client/game.h
@@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class InputHandler;
class ChatBackend; /* to avoid having to include chat.h */
struct SubgameSpec;
+struct GameStartData;
struct Jitter {
f32 max, min, avg, counter, max_sample, min_sample, max_fraction;
@@ -41,16 +42,10 @@ struct CameraOrientation {
f32 camera_pitch; // "up/down"
};
+
void the_game(bool *kill,
- bool random_input,
InputHandler *input,
- const std::string &map_dir,
- const std::string &playername,
- const std::string &password,
- const std::string &address, // If "", local server is used
- u16 port,
+ const GameStartData &start_data,
std::string &error_message,
ChatBackend &chat_backend,
- bool *reconnect_requested,
- const SubgameSpec &gamespec, // Used for local game
- bool simple_singleplayer_mode);
+ bool *reconnect_requested);
diff --git a/src/client/gameui.cpp b/src/client/gameui.cpp
index c216f405d..0c08efeb5 100644
--- a/src/client/gameui.cpp
+++ b/src/client/gameui.cpp
@@ -61,17 +61,6 @@ void GameUI::init()
m_guitext2 = gui::StaticText::add(guienv, L"", core::rect<s32>(0, 0, 0, 0), false,
false, guiroot);
- // At the middle of the screen
- // Object infos are shown in this
- m_guitext_info = gui::StaticText::add(guienv, L"",
- core::rect<s32>(0, 0, 400, g_fontengine->getTextHeight() * 5 + 5)
- + v2s32(100, 200), false, true, guiroot);
-
- // Status text (displays info when showing and hiding GUI stuff, etc.)
- m_guitext_status = gui::StaticText::add(guienv, L"<Status>",
- core::rect<s32>(0, 0, 0, 0), false, false, guiroot);
- m_guitext_status->setVisible(false);
-
// Chat text
m_guitext_chat = gui::StaticText::add(guienv, L"", core::rect<s32>(0, 0, 0, 0),
//false, false); // Disable word wrap as of now
@@ -82,6 +71,20 @@ void GameUI::init()
chat_font_size, FM_Unspecified));
}
+ // At the middle of the screen
+ // Object infos are shown in this
+ u32 chat_font_height = m_guitext_chat->getActiveFont()->getDimension(L"Ay").Height;
+ m_guitext_info = gui::StaticText::add(guienv, L"",
+ core::rect<s32>(0, 0, 400, g_fontengine->getTextHeight() * 5 + 5) +
+ v2s32(100, chat_font_height *
+ (g_settings->getU16("recent_chat_messages") + 3)),
+ false, true, guiroot);
+
+ // Status text (displays info when showing and hiding GUI stuff, etc.)
+ m_guitext_status = gui::StaticText::add(guienv, L"<Status>",
+ core::rect<s32>(0, 0, 0, 0), false, false, guiroot);
+ m_guitext_status->setVisible(false);
+
// Profiler text (size is updated when text is updated)
m_guitext_profiler = gui::StaticText::add(guienv, L"<Profiler>",
core::rect<s32>(0, 0, 0, 0), false, false, guiroot);
@@ -113,8 +116,8 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_
<< std::setprecision(1)
<< " | view range: "
<< (draw_control->range_all ? "All" : itos(draw_control->wanted_range))
- << std::setprecision(3)
- << " | RTT: " << client->getRTT() << "s";
+ << std::setprecision(2)
+ << " | RTT: " << (client->getRTT() * 1000.0f) << "ms";
setStaticText(m_guitext, utf8_to_wide(os.str()).c_str());
m_guitext->setRelativePosition(core::rect<s32>(5, 5, screensize.X,
@@ -133,9 +136,9 @@ void GameUI::update(const RunStats &stats, Client *client, MapDrawControl *draw_
<< "pos: (" << (player_position.X / BS)
<< ", " << (player_position.Y / BS)
<< ", " << (player_position.Z / BS)
- << ") | yaw: " << (wrapDegrees_0_360(cam.camera_yaw)) << "\xC2\xB0 "
+ << ") | yaw: " << (wrapDegrees_0_360(cam.camera_yaw)) << "° "
<< yawToDirectionString(cam.camera_yaw)
- << " | pitch: " << (-wrapDegrees_180(cam.camera_pitch)) << "\xC2\xB0"
+ << " | pitch: " << (-wrapDegrees_180(cam.camera_pitch)) << "°"
<< " | seed: " << ((u64)client->getMapSeed());
if (pointed_old.type == POINTEDTHING_NODE) {
diff --git a/src/client/gameui.h b/src/client/gameui.h
index 67c6a9921..b6c8a224d 100644
--- a/src/client/gameui.h
+++ b/src/client/gameui.h
@@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#pragma once
+#include "irrlichttypes.h"
#include <IGUIEnvironment.h>
#include "gui/guiFormSpecMenu.h"
#include "util/enriched_string.h"
diff --git a/src/client/guiscalingfilter.cpp b/src/client/guiscalingfilter.cpp
index 4262331bd..406c096e6 100644
--- a/src/client/guiscalingfilter.cpp
+++ b/src/client/guiscalingfilter.cpp
@@ -172,11 +172,8 @@ void draw2DImageFilterScaled(video::IVideoDriver *driver, video::ITexture *txr,
void draw2DImage9Slice(video::IVideoDriver *driver, video::ITexture *texture,
const core::rect<s32> &rect, const core::rect<s32> &middle,
- const core::rect<s32> *cliprect)
+ const core::rect<s32> *cliprect, const video::SColor *const colors)
{
- const video::SColor color(255,255,255,255);
- const video::SColor colors[] = {color,color,color,color};
-
auto originalSize = texture->getOriginalSize();
core::vector2di lowerRightOffset = core::vector2di(originalSize.Width, originalSize.Height) - middle.LowerRightCorner;
diff --git a/src/client/guiscalingfilter.h b/src/client/guiscalingfilter.h
index b703d91f0..379a4bdb0 100644
--- a/src/client/guiscalingfilter.h
+++ b/src/client/guiscalingfilter.h
@@ -54,4 +54,5 @@ void draw2DImageFilterScaled(video::IVideoDriver *driver, video::ITexture *txr,
*/
void draw2DImage9Slice(video::IVideoDriver *driver, video::ITexture *texture,
const core::rect<s32> &rect, const core::rect<s32> &middle,
- const core::rect<s32> *cliprect = nullptr);
+ const core::rect<s32> *cliprect = nullptr,
+ const video::SColor *const colors = nullptr);
diff --git a/src/client/hud.cpp b/src/client/hud.cpp
index 31e633bc2..46736b325 100644
--- a/src/client/hud.cpp
+++ b/src/client/hud.cpp
@@ -36,11 +36,15 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "mesh.h"
#include "wieldmesh.h"
#include "client/renderingengine.h"
+#include "client/minimap.h"
#ifdef HAVE_TOUCHSCREENGUI
#include "gui/touchscreengui.h"
#endif
+#define OBJECT_CROSSHAIR_LINE_SIZE 8
+#define CROSSHAIR_LINE_SIZE 10
+
Hud::Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player,
Inventory *inventory)
{
@@ -76,6 +80,7 @@ Hud::Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player,
selectionbox_argb = video::SColor(255, sbox_r, sbox_g, sbox_b);
use_crosshair_image = tsrc->isKnownSourceImage("crosshair.png");
+ use_object_crosshair_image = tsrc->isKnownSourceImage("object_crosshair.png");
m_selection_boxes.clear();
m_halo_boxes.clear();
@@ -95,7 +100,7 @@ Hud::Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player,
if (g_settings->getBool("enable_shaders")) {
IShaderSource *shdrsrc = client->getShaderSource();
u16 shader_id = shdrsrc->getShader(
- m_mode == HIGHLIGHT_HALO ? "selection_shader" : "default_shader", 1, 1);
+ m_mode == HIGHLIGHT_HALO ? "selection_shader" : "default_shader", TILE_MATERIAL_ALPHA);
m_selection_material.MaterialType = shdrsrc->getShaderInfo(shader_id).material;
} else {
m_selection_material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
@@ -110,6 +115,28 @@ Hud::Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player,
} else {
m_selection_material.MaterialType = video::EMT_SOLID;
}
+
+ // Prepare mesh for compass drawing
+ m_rotation_mesh_buffer.Vertices.set_used(4);
+ m_rotation_mesh_buffer.Indices.set_used(6);
+
+ video::SColor white(255, 255, 255, 255);
+ v3f normal(0.f, 0.f, 1.f);
+
+ m_rotation_mesh_buffer.Vertices[0] = video::S3DVertex(v3f(-1.f, -1.f, 0.f), normal, white, v2f(0.f, 1.f));
+ m_rotation_mesh_buffer.Vertices[1] = video::S3DVertex(v3f(-1.f, 1.f, 0.f), normal, white, v2f(0.f, 0.f));
+ m_rotation_mesh_buffer.Vertices[2] = video::S3DVertex(v3f( 1.f, 1.f, 0.f), normal, white, v2f(1.f, 0.f));
+ m_rotation_mesh_buffer.Vertices[3] = video::S3DVertex(v3f( 1.f, -1.f, 0.f), normal, white, v2f(1.f, 1.f));
+
+ m_rotation_mesh_buffer.Indices[0] = 0;
+ m_rotation_mesh_buffer.Indices[1] = 1;
+ m_rotation_mesh_buffer.Indices[2] = 2;
+ m_rotation_mesh_buffer.Indices[3] = 2;
+ m_rotation_mesh_buffer.Indices[4] = 3;
+ m_rotation_mesh_buffer.Indices[5] = 0;
+
+ m_rotation_mesh_buffer.getMaterial().Lighting = false;
+ m_rotation_mesh_buffer.getMaterial().MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
}
Hud::~Hud()
@@ -271,6 +298,18 @@ void Hud::drawItems(v2s32 upperleftpos, v2s32 screen_offset, s32 itemcount,
}
}
+bool Hud::hasElementOfType(HudElementType type)
+{
+ for (size_t i = 0; i != player->maxHudId(); i++) {
+ HudElement *e = player->getHud(i);
+ if (!e)
+ continue;
+ if (e->type == type)
+ return true;
+ }
+ return false;
+}
+
// Calculates screen position of waypoint. Returns true if waypoint is visible (in front of the player), else false.
bool Hud::calculateScreenPos(const v3s16 &camera_offset, HudElement *e, v2s32 *pos)
{
@@ -419,6 +458,69 @@ void Hud::drawLuaElements(const v3s16 &camera_offset)
core::rect<s32>(core::position2d<s32>(0,0), imgsize),
NULL, colors, true);
break; }
+ case HUD_ELEM_COMPASS: {
+ video::ITexture *texture = tsrc->getTexture(e->text);
+ if (!texture)
+ continue;
+
+ // Positionning :
+ v2s32 dstsize(e->size.X, e->size.Y);
+ if (e->size.X < 0)
+ dstsize.X = m_screensize.X * (e->size.X * -0.01);
+ if (e->size.Y < 0)
+ dstsize.Y = m_screensize.Y * (e->size.Y * -0.01);
+
+ if (dstsize.X <= 0 || dstsize.Y <= 0)
+ return; // Avoid zero divides
+
+ // Angle according to camera view
+ v3f fore(0.f, 0.f, 1.f);
+ scene::ICameraSceneNode *cam = RenderingEngine::get_scene_manager()->getActiveCamera();
+ cam->getAbsoluteTransformation().rotateVect(fore);
+ int angle = - fore.getHorizontalAngle().Y;
+
+ // Limit angle and ajust with given offset
+ angle = (angle + (int)e->number) % 360;
+
+ core::rect<s32> dstrect(0, 0, dstsize.X, dstsize.Y);
+ dstrect += pos + v2s32(
+ (e->align.X - 1.0) * dstsize.X / 2,
+ (e->align.Y - 1.0) * dstsize.Y / 2) +
+ v2s32(e->offset.X * m_hud_scaling, e->offset.Y * m_hud_scaling);
+
+ switch (e->dir) {
+ case HUD_COMPASS_ROTATE:
+ drawCompassRotate(e, texture, dstrect, angle);
+ break;
+ case HUD_COMPASS_ROTATE_REVERSE:
+ drawCompassRotate(e, texture, dstrect, -angle);
+ break;
+ case HUD_COMPASS_TRANSLATE:
+ drawCompassTranslate(e, texture, dstrect, angle);
+ break;
+ case HUD_COMPASS_TRANSLATE_REVERSE:
+ drawCompassTranslate(e, texture, dstrect, -angle);
+ break;
+ default:
+ break;
+ }
+ break; }
+ case HUD_ELEM_MINIMAP: {
+ if (e->size.X <= 0 || e->size.Y <= 0)
+ break;
+ if (!client->getMinimap())
+ break;
+ // Draw a minimap of size "size"
+ v2s32 dstsize(e->size.X * m_scale_factor,
+ e->size.Y * m_scale_factor);
+ // (no percent size as minimap would likely be anamorphosed)
+ v2s32 offset((e->align.X - 1.0) * dstsize.X / 2,
+ (e->align.Y - 1.0) * dstsize.Y / 2);
+ core::rect<s32> rect(0, 0, dstsize.X, dstsize.Y);
+ rect += pos + offset + v2s32(e->offset.X * m_scale_factor,
+ e->offset.Y * m_scale_factor);
+ client->getMinimap()->drawMinimap(rect);
+ break; }
default:
infostream << "Hud::drawLuaElements: ignoring drawform " << e->type <<
" of hud element ID " << i << " due to unrecognized type" << std::endl;
@@ -426,6 +528,74 @@ void Hud::drawLuaElements(const v3s16 &camera_offset)
}
}
+void Hud::drawCompassTranslate(HudElement *e, video::ITexture *texture,
+ const core::rect<s32> &rect, int angle)
+{
+ const video::SColor color(255, 255, 255, 255);
+ const video::SColor colors[] = {color, color, color, color};
+
+ // Compute source image scaling
+ core::dimension2di imgsize(texture->getOriginalSize());
+ core::rect<s32> srcrect(0, 0, imgsize.Width, imgsize.Height);
+
+ v2s32 dstsize(rect.getHeight() * e->scale.X * imgsize.Width / imgsize.Height,
+ rect.getHeight() * e->scale.Y);
+
+ // Avoid infinite loop
+ if (dstsize.X <= 0 || dstsize.Y <= 0)
+ return;
+
+ core::rect<s32> tgtrect(0, 0, dstsize.X, dstsize.Y);
+ tgtrect += v2s32(
+ (rect.getWidth() - dstsize.X) / 2,
+ (rect.getHeight() - dstsize.Y) / 2) +
+ rect.UpperLeftCorner;
+
+ int offset = angle * dstsize.X / 360;
+
+ tgtrect += v2s32(offset, 0);
+
+ // Repeat image as much as needed
+ while (tgtrect.UpperLeftCorner.X > rect.UpperLeftCorner.X)
+ tgtrect -= v2s32(dstsize.X, 0);
+
+ draw2DImageFilterScaled(driver, texture, tgtrect, srcrect, &rect, colors, true);
+ tgtrect += v2s32(dstsize.X, 0);
+
+ while (tgtrect.UpperLeftCorner.X < rect.LowerRightCorner.X) {
+ draw2DImageFilterScaled(driver, texture, tgtrect, srcrect, &rect, colors, true);
+ tgtrect += v2s32(dstsize.X, 0);
+ }
+}
+
+void Hud::drawCompassRotate(HudElement *e, video::ITexture *texture,
+ const core::rect<s32> &rect, int angle)
+{
+ core::rect<s32> oldViewPort = driver->getViewPort();
+ core::matrix4 oldProjMat = driver->getTransform(video::ETS_PROJECTION);
+ core::matrix4 oldViewMat = driver->getTransform(video::ETS_VIEW);
+
+ core::matrix4 Matrix;
+ Matrix.makeIdentity();
+ Matrix.setRotationDegrees(v3f(0.f, 0.f, angle));
+
+ driver->setViewPort(rect);
+ driver->setTransform(video::ETS_PROJECTION, core::matrix4());
+ driver->setTransform(video::ETS_VIEW, core::matrix4());
+ driver->setTransform(video::ETS_WORLD, Matrix);
+
+ video::SMaterial &material = m_rotation_mesh_buffer.getMaterial();
+ material.TextureLayer[0].Texture = texture;
+ driver->setMaterial(material);
+ driver->drawMeshBuffer(&m_rotation_mesh_buffer);
+
+ driver->setTransform(video::ETS_WORLD, core::matrix4());
+ driver->setTransform(video::ETS_VIEW, oldViewMat);
+ driver->setTransform(video::ETS_PROJECTION, oldProjMat);
+
+ // restore the view area
+ driver->setViewPort(oldViewPort);
+}
void Hud::drawStatbar(v2s32 pos, u16 corner, u16 drawdir,
const std::string &texture, const std::string &bgtexture,
@@ -601,6 +771,31 @@ void Hud::drawHotbar(u16 playeritem) {
void Hud::drawCrosshair()
{
+ if (pointing_at_object) {
+ if (use_object_crosshair_image) {
+ video::ITexture *object_crosshair = tsrc->getTexture("object_crosshair.png");
+ v2u32 size = object_crosshair->getOriginalSize();
+ v2s32 lsize = v2s32(m_displaycenter.X - (size.X / 2),
+ m_displaycenter.Y - (size.Y / 2));
+ driver->draw2DImage(object_crosshair, lsize,
+ core::rect<s32>(0, 0, size.X, size.Y),
+ nullptr, crosshair_argb, true);
+ } else {
+ driver->draw2DLine(
+ m_displaycenter - v2s32(OBJECT_CROSSHAIR_LINE_SIZE,
+ OBJECT_CROSSHAIR_LINE_SIZE),
+ m_displaycenter + v2s32(OBJECT_CROSSHAIR_LINE_SIZE,
+ OBJECT_CROSSHAIR_LINE_SIZE), crosshair_argb);
+ driver->draw2DLine(
+ m_displaycenter + v2s32(OBJECT_CROSSHAIR_LINE_SIZE,
+ -OBJECT_CROSSHAIR_LINE_SIZE),
+ m_displaycenter + v2s32(-OBJECT_CROSSHAIR_LINE_SIZE,
+ OBJECT_CROSSHAIR_LINE_SIZE), crosshair_argb);
+ }
+
+ return;
+ }
+
if (use_crosshair_image) {
video::ITexture *crosshair = tsrc->getTexture("crosshair.png");
v2u32 size = crosshair->getOriginalSize();
@@ -608,12 +803,12 @@ void Hud::drawCrosshair()
m_displaycenter.Y - (size.Y / 2));
driver->draw2DImage(crosshair, lsize,
core::rect<s32>(0, 0, size.X, size.Y),
- 0, crosshair_argb, true);
+ nullptr, crosshair_argb, true);
} else {
- driver->draw2DLine(m_displaycenter - v2s32(10, 0),
- m_displaycenter + v2s32(10, 0), crosshair_argb);
- driver->draw2DLine(m_displaycenter - v2s32(0, 10),
- m_displaycenter + v2s32(0, 10), crosshair_argb);
+ driver->draw2DLine(m_displaycenter - v2s32(CROSSHAIR_LINE_SIZE, 0),
+ m_displaycenter + v2s32(CROSSHAIR_LINE_SIZE, 0), crosshair_argb);
+ driver->draw2DLine(m_displaycenter - v2s32(0, CROSSHAIR_LINE_SIZE),
+ m_displaycenter + v2s32(0, CROSSHAIR_LINE_SIZE), crosshair_argb);
}
}
@@ -858,9 +1053,9 @@ void drawItemStack(
if (def.type == ITEM_TOOL && item.wear != 0) {
// Draw a progressbar
- float barheight = rect.getHeight() / 16;
- float barpad_x = rect.getWidth() / 16;
- float barpad_y = rect.getHeight() / 16;
+ float barheight = static_cast<float>(rect.getHeight()) / 16;
+ float barpad_x = static_cast<float>(rect.getWidth()) / 16;
+ float barpad_y = static_cast<float>(rect.getHeight()) / 16;
core::rect<s32> progressrect(
rect.UpperLeftCorner.X + barpad_x,
diff --git a/src/client/hud.h b/src/client/hud.h
index 6f4c54626..d46545d71 100644
--- a/src/client/hud.h
+++ b/src/client/hud.h
@@ -45,12 +45,16 @@ public:
video::SColor crosshair_argb;
video::SColor selectionbox_argb;
+
bool use_crosshair_image = false;
+ bool use_object_crosshair_image = false;
std::string hotbar_image = "";
bool use_hotbar_image = false;
std::string hotbar_selected_image = "";
bool use_hotbar_selected_image = false;
+ bool pointing_at_object = false;
+
Hud(gui::IGUIEnvironment *guienv, Client *client, LocalPlayer *player,
Inventory *inventory);
~Hud();
@@ -77,6 +81,8 @@ public:
m_selected_face_normal = face_normal;
}
+ bool hasElementOfType(HudElementType type);
+
void drawLuaElements(const v3s16 &camera_offset);
private:
@@ -91,6 +97,12 @@ private:
void drawItem(const ItemStack &item, const core::rect<s32> &rect, bool selected);
+ void drawCompassTranslate(HudElement *e, video::ITexture *texture,
+ const core::rect<s32> &rect, int way);
+
+ void drawCompassRotate(HudElement *e, video::ITexture *texture,
+ const core::rect<s32> &rect, int way);
+
float m_hud_scaling; // cached minetest setting
float m_scale_factor;
v3s16 m_camera_offset;
@@ -111,6 +123,8 @@ private:
video::SMaterial m_selection_material;
+ scene::SMeshBuffer m_rotation_mesh_buffer;
+
enum
{
HIGHLIGHT_BOX,
diff --git a/src/client/inputhandler.cpp b/src/client/inputhandler.cpp
index a79b04a90..978baa320 100644
--- a/src/client/inputhandler.cpp
+++ b/src/client/inputhandler.cpp
@@ -37,6 +37,8 @@ void KeyCache::populate()
key[KeyType::JUMP] = getKeySetting("keymap_jump");
key[KeyType::SPECIAL1] = getKeySetting("keymap_special1");
key[KeyType::SNEAK] = getKeySetting("keymap_sneak");
+ key[KeyType::DIG] = getKeySetting("keymap_dig");
+ key[KeyType::PLACE] = getKeySetting("keymap_place");
key[KeyType::AUTOFORWARD] = getKeySetting("keymap_autoforward");
@@ -112,56 +114,75 @@ bool MyEventReceiver::OnEvent(const SEvent &event)
const KeyPress &keyCode = event.KeyInput;
if (keysListenedFor[keyCode]) {
if (event.KeyInput.PressedDown) {
+ if (!IsKeyDown(keyCode))
+ keyWasPressed.set(keyCode);
+
keyIsDown.set(keyCode);
keyWasDown.set(keyCode);
} else {
+ if (IsKeyDown(keyCode))
+ keyWasReleased.set(keyCode);
+
keyIsDown.unset(keyCode);
}
+
return true;
}
- }
#ifdef HAVE_TOUCHSCREENGUI
- // case of touchscreengui we have to handle different events
- if (m_touchscreengui && event.EventType == irr::EET_TOUCH_INPUT_EVENT) {
+ } else if (m_touchscreengui && event.EventType == irr::EET_TOUCH_INPUT_EVENT) {
+ // In case of touchscreengui, we have to handle different events
m_touchscreengui->translateEvent(event);
return true;
- }
#endif
- if (event.EventType == irr::EET_JOYSTICK_INPUT_EVENT) {
+ } else if (event.EventType == irr::EET_JOYSTICK_INPUT_EVENT) {
/* TODO add a check like:
if (event.JoystickEvent != joystick_we_listen_for)
return false;
*/
return joystick->handleEvent(event.JoystickEvent);
- }
- // handle mouse events
- if (event.EventType == irr::EET_MOUSE_INPUT_EVENT) {
- if (isMenuActive()) {
- left_active = false;
- middle_active = false;
- right_active = false;
- } else {
- left_active = event.MouseInput.isLeftPressed();
- middle_active = event.MouseInput.isMiddlePressed();
- right_active = event.MouseInput.isRightPressed();
-
- if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) {
- leftclicked = true;
- }
- if (event.MouseInput.Event == EMIE_RMOUSE_PRESSED_DOWN) {
- rightclicked = true;
- }
- if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) {
- leftreleased = true;
- }
- if (event.MouseInput.Event == EMIE_RMOUSE_LEFT_UP) {
- rightreleased = true;
- }
- if (event.MouseInput.Event == EMIE_MOUSE_WHEEL) {
- mouse_wheel += event.MouseInput.Wheel;
- }
+ } else if (event.EventType == irr::EET_MOUSE_INPUT_EVENT) {
+ // Handle mouse events
+ KeyPress key;
+ switch (event.MouseInput.Event) {
+ case EMIE_LMOUSE_PRESSED_DOWN:
+ key = "KEY_LBUTTON";
+ keyIsDown.set(key);
+ keyWasDown.set(key);
+ keyWasPressed.set(key);
+ break;
+ case EMIE_MMOUSE_PRESSED_DOWN:
+ key = "KEY_MBUTTON";
+ keyIsDown.set(key);
+ keyWasDown.set(key);
+ keyWasPressed.set(key);
+ break;
+ case EMIE_RMOUSE_PRESSED_DOWN:
+ key = "KEY_RBUTTON";
+ keyIsDown.set(key);
+ keyWasDown.set(key);
+ keyWasPressed.set(key);
+ break;
+ case EMIE_LMOUSE_LEFT_UP:
+ key = "KEY_LBUTTON";
+ keyIsDown.unset(key);
+ keyWasReleased.set(key);
+ break;
+ case EMIE_MMOUSE_LEFT_UP:
+ key = "KEY_MBUTTON";
+ keyIsDown.unset(key);
+ keyWasReleased.set(key);
+ break;
+ case EMIE_RMOUSE_LEFT_UP:
+ key = "KEY_RBUTTON";
+ keyIsDown.unset(key);
+ keyWasReleased.set(key);
+ break;
+ case EMIE_MOUSE_WHEEL:
+ mouse_wheel += event.MouseInput.Wheel;
+ break;
+ default: break;
}
} else if (event.EventType == irr::EET_LOG_TEXT_EVENT) {
static const LogLevel irr_loglev_conv[] = {
@@ -188,38 +209,28 @@ s32 RandomInputHandler::Rand(s32 min, s32 max)
return (myrand() % (max - min + 1)) + min;
}
+struct RandomInputHandlerSimData {
+ std::string key;
+ float counter;
+ int time_max;
+};
+
void RandomInputHandler::step(float dtime)
{
- {
- static float counter1 = 0;
- counter1 -= dtime;
- if (counter1 < 0.0) {
- counter1 = 0.1 * Rand(1, 40);
- keydown.toggle(getKeySetting("keymap_jump"));
- }
- }
- {
- static float counter1 = 0;
- counter1 -= dtime;
- if (counter1 < 0.0) {
- counter1 = 0.1 * Rand(1, 40);
- keydown.toggle(getKeySetting("keymap_special1"));
- }
- }
- {
- static float counter1 = 0;
- counter1 -= dtime;
- if (counter1 < 0.0) {
- counter1 = 0.1 * Rand(1, 40);
- keydown.toggle(getKeySetting("keymap_forward"));
- }
- }
- {
- static float counter1 = 0;
- counter1 -= dtime;
- if (counter1 < 0.0) {
- counter1 = 0.1 * Rand(1, 40);
- keydown.toggle(getKeySetting("keymap_left"));
+ static RandomInputHandlerSimData rnd_data[] = {
+ { "keymap_jump", 0.0f, 40 },
+ { "keymap_special1", 0.0f, 40 },
+ { "keymap_forward", 0.0f, 40 },
+ { "keymap_left", 0.0f, 40 },
+ { "keymap_dig", 0.0f, 30 },
+ { "keymap_place", 0.0f, 15 }
+ };
+
+ for (auto &i : rnd_data) {
+ i.counter -= dtime;
+ if (i.counter < 0.0) {
+ i.counter = 0.1 * Rand(1, i.time_max);
+ keydown.toggle(getKeySetting(i.key.c_str()));
}
}
{
@@ -230,29 +241,5 @@ void RandomInputHandler::step(float dtime)
mousespeed = v2s32(Rand(-20, 20), Rand(-15, 20));
}
}
- {
- static float counter1 = 0;
- counter1 -= dtime;
- if (counter1 < 0.0) {
- counter1 = 0.1 * Rand(1, 30);
- leftdown = !leftdown;
- if (leftdown)
- leftclicked = true;
- if (!leftdown)
- leftreleased = true;
- }
- }
- {
- static float counter1 = 0;
- counter1 -= dtime;
- if (counter1 < 0.0) {
- counter1 = 0.1 * Rand(1, 15);
- rightdown = !rightdown;
- if (rightdown)
- rightclicked = true;
- if (!rightdown)
- rightreleased = true;
- }
- }
mousepos += mousespeed;
}
diff --git a/src/client/inputhandler.h b/src/client/inputhandler.h
index 9be2a2ed4..1fb4cf0ec 100644
--- a/src/client/inputhandler.h
+++ b/src/client/inputhandler.h
@@ -144,6 +144,14 @@ public:
return b;
}
+ // Checks whether a key was just pressed. State will be cleared
+ // in the subsequent iteration of Game::processPlayerInteraction
+ bool WasKeyPressed(const KeyPress &keycode) const { return keyWasPressed[keycode]; }
+
+ // Checks whether a key was just released. State will be cleared
+ // in the subsequent iteration of Game::processPlayerInteraction
+ bool WasKeyReleased(const KeyPress &keycode) const { return keyWasReleased[keycode]; }
+
void listenForKey(const KeyPress &keyCode) { keysListenedFor.set(keyCode); }
void dontListenForKeys() { keysListenedFor.clear(); }
@@ -158,17 +166,20 @@ public:
{
keyIsDown.clear();
keyWasDown.clear();
+ keyWasPressed.clear();
+ keyWasReleased.clear();
- leftclicked = false;
- rightclicked = false;
- leftreleased = false;
- rightreleased = false;
+ mouse_wheel = 0;
+ }
- left_active = false;
- middle_active = false;
- right_active = false;
+ void clearWasKeyPressed()
+ {
+ keyWasPressed.clear();
+ }
- mouse_wheel = 0;
+ void clearWasKeyReleased()
+ {
+ keyWasReleased.clear();
}
MyEventReceiver()
@@ -178,15 +189,6 @@ public:
#endif
}
- bool leftclicked = false;
- bool rightclicked = false;
- bool leftreleased = false;
- bool rightreleased = false;
-
- bool left_active = false;
- bool middle_active = false;
- bool right_active = false;
-
s32 mouse_wheel = 0;
JoystickController *joystick = nullptr;
@@ -198,8 +200,16 @@ public:
private:
// The current state of keys
KeyList keyIsDown;
- // Whether a key has been pressed or not
+
+ // Like keyIsDown but only reset when that key is read
KeyList keyWasDown;
+
+ // Whether a key has just been pressed
+ KeyList keyWasPressed;
+
+ // Whether a key has just been released
+ KeyList keyWasReleased;
+
// List of keys we listen for
// TODO perhaps the type of this is not really
// performant as KeyList is designed for few but
@@ -219,29 +229,26 @@ public:
virtual ~InputHandler() = default;
+ virtual bool isRandom() const
+ {
+ return false;
+ }
+
virtual bool isKeyDown(GameKeyType k) = 0;
virtual bool wasKeyDown(GameKeyType k) = 0;
+ virtual bool wasKeyPressed(GameKeyType k) = 0;
+ virtual bool wasKeyReleased(GameKeyType k) = 0;
virtual bool cancelPressed() = 0;
+ virtual void clearWasKeyPressed() {}
+ virtual void clearWasKeyReleased() {}
+
virtual void listenForKey(const KeyPress &keyCode) {}
virtual void dontListenForKeys() {}
virtual v2s32 getMousePos() = 0;
virtual void setMousePos(s32 x, s32 y) = 0;
- virtual bool getLeftState() = 0;
- virtual bool getRightState() = 0;
-
- virtual bool getLeftClicked() = 0;
- virtual bool getRightClicked() = 0;
- virtual void resetLeftClicked() = 0;
- virtual void resetRightClicked() = 0;
-
- virtual bool getLeftReleased() = 0;
- virtual bool getRightReleased() = 0;
- virtual void resetLeftReleased() = 0;
- virtual void resetRightReleased() = 0;
-
virtual s32 getMouseWheel() = 0;
virtual void step(float dtime) {}
@@ -270,10 +277,26 @@ public:
{
return m_receiver->WasKeyDown(keycache.key[k]) || joystick.wasKeyDown(k);
}
+ virtual bool wasKeyPressed(GameKeyType k)
+ {
+ return m_receiver->WasKeyPressed(keycache.key[k]) || joystick.wasKeyPressed(k);
+ }
+ virtual bool wasKeyReleased(GameKeyType k)
+ {
+ return m_receiver->WasKeyReleased(keycache.key[k]) || joystick.wasKeyReleased(k);
+ }
virtual bool cancelPressed()
{
return wasKeyDown(KeyType::ESC) || m_receiver->WasKeyDown(CancelKey);
}
+ virtual void clearWasKeyPressed()
+ {
+ m_receiver->clearWasKeyPressed();
+ }
+ virtual void clearWasKeyReleased()
+ {
+ m_receiver->clearWasKeyReleased();
+ }
virtual void listenForKey(const KeyPress &keyCode)
{
m_receiver->listenForKey(keyCode);
@@ -301,59 +324,6 @@ public:
}
}
- virtual bool getLeftState()
- {
- return m_receiver->left_active || joystick.isKeyDown(KeyType::MOUSE_L);
- }
- virtual bool getRightState()
- {
- return m_receiver->right_active || joystick.isKeyDown(KeyType::MOUSE_R);
- }
-
- virtual bool getLeftClicked()
- {
- return m_receiver->leftclicked ||
- joystick.getWasKeyDown(KeyType::MOUSE_L);
- }
- virtual bool getRightClicked()
- {
- return m_receiver->rightclicked ||
- joystick.getWasKeyDown(KeyType::MOUSE_R);
- }
-
- virtual void resetLeftClicked()
- {
- m_receiver->leftclicked = false;
- joystick.clearWasKeyDown(KeyType::MOUSE_L);
- }
- virtual void resetRightClicked()
- {
- m_receiver->rightclicked = false;
- joystick.clearWasKeyDown(KeyType::MOUSE_R);
- }
-
- virtual bool getLeftReleased()
- {
- return m_receiver->leftreleased ||
- joystick.wasKeyReleased(KeyType::MOUSE_L);
- }
- virtual bool getRightReleased()
- {
- return m_receiver->rightreleased ||
- joystick.wasKeyReleased(KeyType::MOUSE_R);
- }
-
- virtual void resetLeftReleased()
- {
- m_receiver->leftreleased = false;
- joystick.clearWasKeyReleased(KeyType::MOUSE_L);
- }
- virtual void resetRightReleased()
- {
- m_receiver->rightreleased = false;
- joystick.clearWasKeyReleased(KeyType::MOUSE_R);
- }
-
virtual s32 getMouseWheel() { return m_receiver->getMouseWheel(); }
void clear()
@@ -372,25 +342,19 @@ class RandomInputHandler : public InputHandler
public:
RandomInputHandler() = default;
+ bool isRandom() const
+ {
+ return true;
+ }
+
virtual bool isKeyDown(GameKeyType k) { return keydown[keycache.key[k]]; }
virtual bool wasKeyDown(GameKeyType k) { return false; }
+ virtual bool wasKeyPressed(GameKeyType k) { return false; }
+ virtual bool wasKeyReleased(GameKeyType k) { return false; }
virtual bool cancelPressed() { return false; }
virtual v2s32 getMousePos() { return mousepos; }
virtual void setMousePos(s32 x, s32 y) { mousepos = v2s32(x, y); }
- virtual bool getLeftState() { return leftdown; }
- virtual bool getRightState() { return rightdown; }
-
- virtual bool getLeftClicked() { return leftclicked; }
- virtual bool getRightClicked() { return rightclicked; }
- virtual void resetLeftClicked() { leftclicked = false; }
- virtual void resetRightClicked() { rightclicked = false; }
-
- virtual bool getLeftReleased() { return leftreleased; }
- virtual bool getRightReleased() { return rightreleased; }
- virtual void resetLeftReleased() { leftreleased = false; }
- virtual void resetRightReleased() { rightreleased = false; }
-
virtual s32 getMouseWheel() { return 0; }
virtual void step(float dtime);
@@ -401,10 +365,4 @@ private:
KeyList keydown;
v2s32 mousepos;
v2s32 mousespeed;
- bool leftdown = false;
- bool rightdown = false;
- bool leftclicked = false;
- bool rightclicked = false;
- bool leftreleased = false;
- bool rightreleased = false;
};
diff --git a/src/client/joystick_controller.cpp b/src/client/joystick_controller.cpp
index c29e8b639..f61ae4ae6 100644
--- a/src/client/joystick_controller.cpp
+++ b/src/client/joystick_controller.cpp
@@ -37,7 +37,7 @@ bool JoystickAxisCmb::isTriggered(const irr::SEvent::SJoystickEvent &ev) const
{
s16 ax_val = ev.Axis[axis_to_compare];
- return (ax_val * direction < 0) && (thresh * direction > ax_val * direction);
+ return (ax_val * direction < -thresh);
}
// spares many characters
@@ -48,7 +48,7 @@ JoystickLayout create_default_layout()
{
JoystickLayout jlo;
- jlo.axes_dead_border = 1024;
+ jlo.axes_deadzone = g_settings->getU16("joystick_deadzone");
const JoystickAxisLayout axes[JA_COUNT] = {
{0, 1}, // JA_SIDEWARD_MOVE
@@ -74,8 +74,8 @@ JoystickLayout create_default_layout()
// Accessible without four modifier button pressed
// regardless whether start is pressed or not
- JLO_B_PB(KeyType::MOUSE_L, fb | 1 << 4, 1 << 4);
- JLO_B_PB(KeyType::MOUSE_R, fb | 1 << 5, 1 << 5);
+ JLO_B_PB(KeyType::DIG, fb | 1 << 4, 1 << 4);
+ JLO_B_PB(KeyType::PLACE, fb | 1 << 5, 1 << 5);
// Accessible without any modifier pressed
JLO_B_PB(KeyType::JUMP, bm | 1 << 0, 1 << 0);
@@ -83,9 +83,9 @@ JoystickLayout create_default_layout()
// Accessible with start button not pressed, but four pressed
// TODO find usage for button 0
- JLO_B_PB(KeyType::DROP, bm | 1 << 1, fb | 1 << 1);
- JLO_B_PB(KeyType::SCROLL_UP, bm | 1 << 4, fb | 1 << 4);
- JLO_B_PB(KeyType::SCROLL_DOWN,bm | 1 << 5, fb | 1 << 5);
+ JLO_B_PB(KeyType::DROP, bm | 1 << 1, fb | 1 << 1);
+ JLO_B_PB(KeyType::HOTBAR_PREV, bm | 1 << 4, fb | 1 << 4);
+ JLO_B_PB(KeyType::HOTBAR_NEXT, bm | 1 << 5, fb | 1 << 5);
// Accessible with start button and four pressed
// TODO find usage for buttons 0, 1 and 4, 5
@@ -93,14 +93,14 @@ JoystickLayout create_default_layout()
// Now about the buttons simulated by the axes
// Movement buttons, important for vessels
- JLO_A_PB(KeyType::FORWARD, 1, 1, 1024);
- JLO_A_PB(KeyType::BACKWARD, 1, -1, 1024);
- JLO_A_PB(KeyType::LEFT, 0, 1, 1024);
- JLO_A_PB(KeyType::RIGHT, 0, -1, 1024);
+ JLO_A_PB(KeyType::FORWARD, 1, 1, jlo.axes_deadzone);
+ JLO_A_PB(KeyType::BACKWARD, 1, -1, jlo.axes_deadzone);
+ JLO_A_PB(KeyType::LEFT, 0, 1, jlo.axes_deadzone);
+ JLO_A_PB(KeyType::RIGHT, 0, -1, jlo.axes_deadzone);
// Scroll buttons
- JLO_A_PB(KeyType::SCROLL_UP, 2, -1, 1024);
- JLO_A_PB(KeyType::SCROLL_DOWN, 5, -1, 1024);
+ JLO_A_PB(KeyType::HOTBAR_PREV, 2, -1, jlo.axes_deadzone);
+ JLO_A_PB(KeyType::HOTBAR_NEXT, 5, -1, jlo.axes_deadzone);
return jlo;
}
@@ -109,7 +109,7 @@ JoystickLayout create_xbox_layout()
{
JoystickLayout jlo;
- jlo.axes_dead_border = 7000;
+ jlo.axes_deadzone = 7000;
const JoystickAxisLayout axes[JA_COUNT] = {
{0, 1}, // JA_SIDEWARD_MOVE
@@ -134,10 +134,10 @@ JoystickLayout create_xbox_layout()
JLO_B_PB(KeyType::SNEAK, 1 << 12, 1 << 12); // right
// Triggers
- JLO_B_PB(KeyType::MOUSE_L, 1 << 6, 1 << 6); // lt
- JLO_B_PB(KeyType::MOUSE_R, 1 << 7, 1 << 7); // rt
- JLO_B_PB(KeyType::SCROLL_UP, 1 << 4, 1 << 4); // lb
- JLO_B_PB(KeyType::SCROLL_DOWN, 1 << 5, 1 << 5); // rb
+ JLO_B_PB(KeyType::DIG, 1 << 6, 1 << 6); // lt
+ JLO_B_PB(KeyType::PLACE, 1 << 7, 1 << 7); // rt
+ JLO_B_PB(KeyType::HOTBAR_PREV, 1 << 4, 1 << 4); // lb
+ JLO_B_PB(KeyType::HOTBAR_NEXT, 1 << 5, 1 << 5); // rb
// D-PAD
JLO_B_PB(KeyType::ZOOM, 1 << 15, 1 << 15); // up
@@ -146,10 +146,10 @@ JoystickLayout create_xbox_layout()
JLO_B_PB(KeyType::FREEMOVE, 1 << 16, 1 << 16); // down
// Movement buttons, important for vessels
- JLO_A_PB(KeyType::FORWARD, 1, 1, 1024);
- JLO_A_PB(KeyType::BACKWARD, 1, -1, 1024);
- JLO_A_PB(KeyType::LEFT, 0, 1, 1024);
- JLO_A_PB(KeyType::RIGHT, 0, -1, 1024);
+ JLO_A_PB(KeyType::FORWARD, 1, 1, jlo.axes_deadzone);
+ JLO_A_PB(KeyType::BACKWARD, 1, -1, jlo.axes_deadzone);
+ JLO_A_PB(KeyType::LEFT, 0, 1, jlo.axes_deadzone);
+ JLO_A_PB(KeyType::RIGHT, 0, -1, jlo.axes_deadzone);
return jlo;
}
@@ -219,16 +219,19 @@ bool JoystickController::handleEvent(const irr::SEvent::SJoystickEvent &ev)
for (size_t i = 0; i < KeyType::INTERNAL_ENUM_COUNT; i++) {
if (keys_pressed[i]) {
- if (!m_past_pressed_keys[i] &&
+ if (!m_past_keys_pressed[i] &&
m_past_pressed_time[i] < m_internal_time - doubling_dtime) {
- m_past_pressed_keys[i] = true;
+ m_past_keys_pressed[i] = true;
m_past_pressed_time[i] = m_internal_time;
}
- } else if (m_pressed_keys[i]) {
- m_past_released_keys[i] = true;
+ } else if (m_keys_down[i]) {
+ m_keys_released[i] = true;
}
- m_pressed_keys[i] = keys_pressed[i];
+ if (keys_pressed[i] && !(m_keys_down[i]))
+ m_keys_pressed[i] = true;
+
+ m_keys_down[i] = keys_pressed[i];
}
for (size_t i = 0; i < JA_COUNT; i++) {
@@ -236,23 +239,22 @@ bool JoystickController::handleEvent(const irr::SEvent::SJoystickEvent &ev)
m_axes_vals[i] = ax_la.invert * ev.Axis[ax_la.axis_id];
}
-
return true;
}
void JoystickController::clear()
{
- m_pressed_keys.reset();
- m_past_pressed_keys.reset();
- m_past_released_keys.reset();
+ m_keys_pressed.reset();
+ m_keys_down.reset();
+ m_past_keys_pressed.reset();
+ m_keys_released.reset();
memset(m_axes_vals, 0, sizeof(m_axes_vals));
}
s16 JoystickController::getAxisWithoutDead(JoystickAxis axis)
{
s16 v = m_axes_vals[axis];
- if (((v > 0) && (v < m_layout.axes_dead_border)) ||
- ((v < 0) && (v > -m_layout.axes_dead_border)))
+ if (abs(v) < m_layout.axes_deadzone)
return 0;
return v;
}
diff --git a/src/client/joystick_controller.h b/src/client/joystick_controller.h
index 7baacd81b..3f361e4ef 100644
--- a/src/client/joystick_controller.h
+++ b/src/client/joystick_controller.h
@@ -96,7 +96,7 @@ struct JoystickLayout {
std::vector<JoystickButtonCmb> button_keys;
std::vector<JoystickAxisCmb> axis_keys;
JoystickAxisLayout axes[JA_COUNT];
- s16 axes_dead_border;
+ s16 axes_deadzone;
};
class JoystickController {
@@ -111,37 +111,32 @@ public:
bool wasKeyDown(GameKeyType b)
{
- bool r = m_past_pressed_keys[b];
- m_past_pressed_keys[b] = false;
+ bool r = m_past_keys_pressed[b];
+ m_past_keys_pressed[b] = false;
return r;
}
- bool getWasKeyDown(GameKeyType b)
+
+ bool wasKeyReleased(GameKeyType b)
{
- return m_past_pressed_keys[b];
+ return m_keys_released[b];
}
- void clearWasKeyDown(GameKeyType b)
+ void clearWasKeyReleased(GameKeyType b)
{
- m_past_pressed_keys[b] = false;
+ m_keys_released[b] = false;
}
- bool wasKeyReleased(GameKeyType b)
+ bool wasKeyPressed(GameKeyType b)
{
- bool r = m_past_released_keys[b];
- m_past_released_keys[b] = false;
- return r;
- }
- bool getWasKeyReleased(GameKeyType b)
- {
- return m_past_pressed_keys[b];
+ return m_keys_pressed[b];
}
- void clearWasKeyReleased(GameKeyType b)
+ void clearWasKeyPressed(GameKeyType b)
{
- m_past_pressed_keys[b] = false;
+ m_keys_pressed[b] = false;
}
bool isKeyDown(GameKeyType b)
{
- return m_pressed_keys[b];
+ return m_keys_down[b];
}
s16 getAxis(JoystickAxis axis)
@@ -162,12 +157,13 @@ private:
u8 m_joystick_id = 0;
- std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_pressed_keys;
+ std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_keys_down;
+ std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_keys_pressed;
f32 m_internal_time;
f32 m_past_pressed_time[KeyType::INTERNAL_ENUM_COUNT];
- std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_past_pressed_keys;
- std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_past_released_keys;
+ std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_past_keys_pressed;
+ std::bitset<KeyType::INTERNAL_ENUM_COUNT> m_keys_released;
};
diff --git a/src/client/keycode.cpp b/src/client/keycode.cpp
index 6a0e9f569..ce5214f54 100644
--- a/src/client/keycode.cpp
+++ b/src/client/keycode.cpp
@@ -316,7 +316,8 @@ KeyPress::KeyPress(const char *name)
int chars_read = mbtowc(&Char, name, 1);
FATAL_ERROR_IF(chars_read != 1, "Unexpected multibyte character");
m_name = "";
- warningstream << "KeyPress: Unknown key '" << name << "', falling back to first char.";
+ warningstream << "KeyPress: Unknown key '" << name
+ << "', falling back to first char." << std::endl;
}
KeyPress::KeyPress(const irr::SEvent::SKeyInput &in, bool prefer_character)
diff --git a/src/client/keys.h b/src/client/keys.h
index 50d3d194b..60a7a3c45 100644
--- a/src/client/keys.h
+++ b/src/client/keys.h
@@ -35,6 +35,8 @@ public:
SPECIAL1,
SNEAK,
AUTOFORWARD,
+ DIG,
+ PLACE,
ESC,
@@ -108,12 +110,6 @@ public:
SLOT_31,
SLOT_32,
- // joystick specific keys
- MOUSE_L,
- MOUSE_R,
- SCROLL_UP,
- SCROLL_DOWN,
-
// Fake keycode for array size and internal checks
INTERNAL_ENUM_COUNT
diff --git a/src/client/localplayer.cpp b/src/client/localplayer.cpp
index 1e7040d57..f3eb1a2dd 100644
--- a/src/client/localplayer.cpp
+++ b/src/client/localplayer.cpp
@@ -19,7 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "localplayer.h"
#include <cmath>
-#include "event.h"
+#include "mtevent.h"
#include "collision.h"
#include "nodedef.h"
#include "settings.h"
diff --git a/src/client/mapblock_mesh.cpp b/src/client/mapblock_mesh.cpp
index 1020e35f5..167e1e3ec 100644
--- a/src/client/mapblock_mesh.cpp
+++ b/src/client/mapblock_mesh.cpp
@@ -35,11 +35,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
MeshMakeData
*/
-MeshMakeData::MeshMakeData(Client *client, bool use_shaders,
- bool use_tangent_vertices):
+MeshMakeData::MeshMakeData(Client *client, bool use_shaders):
m_client(client),
- m_use_shaders(use_shaders),
- m_use_tangent_vertices(use_tangent_vertices)
+ m_use_shaders(use_shaders)
{}
void MeshMakeData::fillBlockDataBegin(const v3s16 &blockpos)
@@ -81,33 +79,6 @@ void MeshMakeData::fill(MapBlock *block)
}
}
-void MeshMakeData::fillSingleNode(MapNode *node)
-{
- m_blockpos = v3s16(0,0,0);
-
- v3s16 blockpos_nodes = v3s16(0,0,0);
- VoxelArea area(blockpos_nodes-v3s16(1,1,1)*MAP_BLOCKSIZE,
- blockpos_nodes+v3s16(1,1,1)*MAP_BLOCKSIZE*2-v3s16(1,1,1));
- s32 volume = area.getVolume();
- s32 our_node_index = area.index(1,1,1);
-
- // Allocate this block + neighbors
- m_vmanip.clear();
- m_vmanip.addArea(area);
-
- // Fill in data
- MapNode *data = new MapNode[volume];
- for(s32 i = 0; i < volume; i++)
- {
- if (i == our_node_index)
- data[i] = *node;
- else
- data[i] = MapNode(CONTENT_AIR, LIGHT_MAX, 0);
- }
- m_vmanip.copyFrom(data, area, area.MinEdge, area.MinEdge, area.getExtent());
- delete[] data;
-}
-
void MeshMakeData::setCrack(int crack_level, v3s16 crack_pos)
{
if (crack_level >= 0)
@@ -419,12 +390,21 @@ static void getNodeVertexDirs(const v3s16 &dir, v3s16 *vertex_dirs)
u8 idx = (dir.X + 2 * dir.Y + 3 * dir.Z) & 7;
idx = (idx - 1) * 4;
+#if defined(__GNUC__) && !defined(__clang__)
+#pragma GCC diagnostic push
+#if __GNUC__ > 7
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
+#endif
memcpy(vertex_dirs, &vertex_dirs_table[idx], 4 * sizeof(v3s16));
+#if defined(__GNUC__) && !defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
}
static void getNodeTextureCoords(v3f base, const v3f &scale, const v3s16 &dir, float *u, float *v)
{
- if (dir.X > 0 || dir.Y > 0 || dir.Z < 0)
+ if (dir.X > 0 || dir.Y != 0 || dir.Z < 0)
base -= scale;
if (dir == v3s16(0,0,1)) {
*u = -base.X - 1;
@@ -442,8 +422,8 @@ static void getNodeTextureCoords(v3f base, const v3f &scale, const v3s16 &dir, f
*u = base.X + 1;
*v = -base.Z - 2;
} else if (dir == v3s16(0,-1,0)) {
- *u = base.X;
- *v = base.Z;
+ *u = base.X + 1;
+ *v = base.Z + 1;
}
}
@@ -1034,10 +1014,9 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset):
for (auto &m : m_mesh)
m = new scene::SMesh();
m_enable_shaders = data->m_use_shaders;
- m_use_tangent_vertices = data->m_use_tangent_vertices;
m_enable_vbo = g_settings->getBool("enable_vbo");
- if (g_settings->getBool("enable_minimap")) {
+ if (data->m_client->getMinimap()) {
m_minimap_mapblock = new MinimapMapblock;
m_minimap_mapblock->getMinimapNodes(
&data->m_vmanip, data->m_blockpos * MAP_BLOCKSIZE);
@@ -1188,51 +1167,15 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset):
scene::SMesh *mesh = (scene::SMesh *)m_mesh[layer];
- // Create meshbuffer, add to mesh
- if (m_use_tangent_vertices) {
- scene::SMeshBufferTangents *buf =
- new scene::SMeshBufferTangents();
- buf->Material = material;
- buf->Vertices.reallocate(p.vertices.size());
- buf->Indices.reallocate(p.indices.size());
- for (const video::S3DVertex &v: p.vertices)
- buf->Vertices.push_back(video::S3DVertexTangents(v.Pos, v.Color, v.TCoords));
- for (u16 i: p.indices)
- buf->Indices.push_back(i);
- buf->recalculateBoundingBox();
- mesh->addMeshBuffer(buf);
- buf->drop();
- } else {
- scene::SMeshBuffer *buf = new scene::SMeshBuffer();
- buf->Material = material;
- buf->append(&p.vertices[0], p.vertices.size(),
- &p.indices[0], p.indices.size());
- mesh->addMeshBuffer(buf);
- buf->drop();
- }
- }
-
- /*
- Do some stuff to the mesh
- */
- m_camera_offset = camera_offset;
- translateMesh(m_mesh[layer],
- intToFloat(data->m_blockpos * MAP_BLOCKSIZE - camera_offset, BS));
-
- if (m_use_tangent_vertices) {
- scene::IMeshManipulator* meshmanip =
- RenderingEngine::get_scene_manager()->getMeshManipulator();
- meshmanip->recalculateTangents(m_mesh[layer], true, false, false);
+ scene::SMeshBuffer *buf = new scene::SMeshBuffer();
+ buf->Material = material;
+ buf->append(&p.vertices[0], p.vertices.size(),
+ &p.indices[0], p.indices.size());
+ mesh->addMeshBuffer(buf);
+ buf->drop();
}
if (m_mesh[layer]) {
-#if 0
- // Usually 1-700 faces and 1-7 materials
- std::cout << "Updated MapBlock has " << fastfaces_new.size()
- << " faces and uses " << m_mesh[layer]->getMeshBufferCount()
- << " materials (meshbuffers)" << std::endl;
-#endif
-
// Use VBO for mesh (this just would set this for ever buffer)
if (m_enable_vbo)
m_mesh[layer]->setHardwareMappingHint(scene::EHM_STATIC);
@@ -1251,13 +1194,13 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset):
MapBlockMesh::~MapBlockMesh()
{
for (scene::IMesh *m : m_mesh) {
- if (m_enable_vbo && m)
+ if (m_enable_vbo) {
for (u32 i = 0; i < m->getMeshBufferCount(); i++) {
scene::IMeshBuffer *buf = m->getMeshBuffer(i);
RenderingEngine::get_video_driver()->removeHardwareBuffer(buf);
}
+ }
m->drop();
- m = NULL;
}
delete m_minimap_mapblock;
}
@@ -1351,19 +1294,6 @@ bool MapBlockMesh::animate(bool faraway, float time, int crack,
return true;
}
-void MapBlockMesh::updateCameraOffset(v3s16 camera_offset)
-{
- if (camera_offset != m_camera_offset) {
- for (scene::IMesh *layer : m_mesh) {
- translateMesh(layer,
- intToFloat(m_camera_offset - camera_offset, BS));
- if (m_enable_vbo)
- layer->setDirty();
- }
- m_camera_offset = camera_offset;
- }
-}
-
video::SColor encode_light(u16 light, u8 emissive_light)
{
// Get components
diff --git a/src/client/mapblock_mesh.h b/src/client/mapblock_mesh.h
index 6af23a656..3b17c4af9 100644
--- a/src/client/mapblock_mesh.h
+++ b/src/client/mapblock_mesh.h
@@ -45,10 +45,8 @@ struct MeshMakeData
Client *m_client;
bool m_use_shaders;
- bool m_use_tangent_vertices;
- MeshMakeData(Client *client, bool use_shaders,
- bool use_tangent_vertices = false);
+ MeshMakeData(Client *client, bool use_shaders);
/*
Copy block data manually (to allow optimizations by the caller)
@@ -63,11 +61,6 @@ struct MeshMakeData
void fill(MapBlock *block);
/*
- Set up with only a single node at (1,1,1)
- */
- void fillSingleNode(MapNode *node);
-
- /*
Set the (node) position of a crack
*/
void setCrack(int crack_level, v3s16 crack_pos);
@@ -132,8 +125,6 @@ public:
m_animation_force_timer--;
}
- void updateCameraOffset(v3s16 camera_offset);
-
private:
scene::IMesh *m_mesh[MAX_TILE_LAYERS];
MinimapMapblock *m_minimap_mapblock;
@@ -141,7 +132,6 @@ private:
IShaderSource *m_shdrsrc;
bool m_enable_shaders;
- bool m_use_tangent_vertices;
bool m_enable_vbo;
// Must animate() be called before rendering?
@@ -168,9 +158,6 @@ private:
// of sunlit vertices
// Keys are pairs of (mesh index, buffer index in the mesh)
std::map<std::pair<u8, u32>, std::map<u32, video::SColor > > m_daynight_diffs;
-
- // Camera offset info -> do we have to translate the mesh?
- v3s16 m_camera_offset;
};
/*!
diff --git a/src/client/mesh.cpp b/src/client/mesh.cpp
index e1ec22068..2400a374c 100644
--- a/src/client/mesh.cpp
+++ b/src/client/mesh.cpp
@@ -203,6 +203,15 @@ void setMeshColor(scene::IMesh *mesh, const video::SColor &color)
setMeshBufferColor(mesh->getMeshBuffer(j), color);
}
+void setMeshBufferTextureCoords(scene::IMeshBuffer *buf, const v2f *uv, u32 count)
+{
+ const u32 stride = getVertexPitchFromType(buf->getVertexType());
+ assert(buf->getVertexCount() >= count);
+ u8 *vertices = (u8 *) buf->getVertices();
+ for (u32 i = 0; i < count; i++)
+ ((video::S3DVertex*) (vertices + i * stride))->TCoords = uv[i];
+}
+
template <typename F>
static void applyToMesh(scene::IMesh *mesh, const F &fn)
{
diff --git a/src/client/mesh.h b/src/client/mesh.h
index 103c61e45..dbc091a06 100644
--- a/src/client/mesh.h
+++ b/src/client/mesh.h
@@ -58,6 +58,13 @@ void setMeshBufferColor(scene::IMeshBuffer *buf, const video::SColor &color);
*/
void setMeshColor(scene::IMesh *mesh, const video::SColor &color);
+
+/*
+ Sets texture coords for vertices in the mesh buffer.
+ `uv[]` must have `count` elements
+*/
+void setMeshBufferTextureCoords(scene::IMeshBuffer *buf, const v2f *uv, u32 count);
+
/*
Set a constant color for an animated mesh
*/
diff --git a/src/client/mesh_generator_thread.cpp b/src/client/mesh_generator_thread.cpp
index 53b980eeb..c8d1cba26 100644
--- a/src/client/mesh_generator_thread.cpp
+++ b/src/client/mesh_generator_thread.cpp
@@ -52,9 +52,6 @@ MeshUpdateQueue::MeshUpdateQueue(Client *client):
m_client(client)
{
m_cache_enable_shaders = g_settings->getBool("enable_shaders");
- m_cache_use_tangent_vertices = m_cache_enable_shaders && (
- g_settings->getBool("enable_bumpmapping") ||
- g_settings->getBool("enable_parallax_occlusion"));
m_cache_smooth_lighting = g_settings->getBool("smooth_lighting");
m_meshgen_block_cache_size = g_settings->getS32("meshgen_block_cache_size");
}
@@ -207,8 +204,7 @@ CachedMapBlockData* MeshUpdateQueue::getCachedBlock(const v3s16 &p)
void MeshUpdateQueue::fillDataFromMapBlockCache(QueuedMeshUpdate *q)
{
- MeshMakeData *data = new MeshMakeData(m_client, m_cache_enable_shaders,
- m_cache_use_tangent_vertices);
+ MeshMakeData *data = new MeshMakeData(m_client, m_cache_enable_shaders);
q->data = data;
data->fillBlockDataBegin(q->p);
diff --git a/src/client/mesh_generator_thread.h b/src/client/mesh_generator_thread.h
index 9a42852a3..4371b8390 100644
--- a/src/client/mesh_generator_thread.h
+++ b/src/client/mesh_generator_thread.h
@@ -40,7 +40,6 @@ struct QueuedMeshUpdate
{
v3s16 p = v3s16(-1337, -1337, -1337);
bool ack_block_to_server = false;
- bool urgent = false;
int crack_level = -1;
v3s16 crack_pos;
MeshMakeData *data = nullptr; // This is generated in MeshUpdateQueue::pop()
@@ -88,7 +87,6 @@ private:
// TODO: Add callback to update these when g_settings changes
bool m_cache_enable_shaders;
- bool m_cache_use_tangent_vertices;
bool m_cache_smooth_lighting;
int m_meshgen_block_cache_size;
diff --git a/src/client/minimap.cpp b/src/client/minimap.cpp
index 68770ec19..dd810ee0a 100644
--- a/src/client/minimap.cpp
+++ b/src/client/minimap.cpp
@@ -25,7 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "shader.h"
#include "mapblock.h"
#include "client/renderingengine.h"
-
+#include "gettext.h"
////
//// MinimapUpdateThread
@@ -108,8 +108,11 @@ void MinimapUpdateThread::doUpdate()
}
}
- if (data->map_invalidated && data->mode != MINIMAP_MODE_OFF) {
- getMap(data->pos, data->map_size, data->scan_height);
+
+ if (data->map_invalidated && (
+ data->mode.type == MINIMAP_TYPE_RADAR ||
+ data->mode.type == MINIMAP_TYPE_SURFACE)) {
+ getMap(data->pos, data->mode.map_size, data->mode.scan_height);
data->map_invalidated = false;
}
}
@@ -181,19 +184,26 @@ Minimap::Minimap(Client *client)
this->m_ndef = client->getNodeDefManager();
m_angle = 0.f;
+ m_current_mode_index = 0;
// Initialize static settings
m_enable_shaders = g_settings->getBool("enable_shaders");
m_surface_mode_scan_height =
g_settings->getBool("minimap_double_scan_height") ? 256 : 128;
+ // Initialize minimap modes
+ addMode(MINIMAP_TYPE_OFF);
+ addMode(MINIMAP_TYPE_SURFACE, 256);
+ addMode(MINIMAP_TYPE_SURFACE, 128);
+ addMode(MINIMAP_TYPE_SURFACE, 64);
+ addMode(MINIMAP_TYPE_RADAR, 512);
+ addMode(MINIMAP_TYPE_RADAR, 256);
+ addMode(MINIMAP_TYPE_RADAR, 128);
+
// Initialize minimap data
data = new MinimapData;
- data->mode = MINIMAP_MODE_OFF;
- data->is_radar = false;
- data->map_invalidated = true;
- data->texture = NULL;
- data->heightmap_texture = NULL;
+ data->map_invalidated = true;
+
data->minimap_shape_round = g_settings->getBool("minimap_shape_round");
// Get round minimap textures
@@ -215,6 +225,8 @@ Minimap::Minimap(Client *client)
// Create object marker texture
data->object_marker_red = m_tsrc->getTexture("object_marker_red.png");
+ setModeIndex(0);
+
// Create mesh buffer for minimap
m_meshbuffer = getMinimapMeshBuffer();
@@ -240,6 +252,10 @@ Minimap::~Minimap()
driver->removeTexture(data->minimap_overlay_square);
driver->removeTexture(data->object_marker_red);
+ for (MinimapMarker *m : m_markers)
+ delete m;
+ m_markers.clear();
+
delete data;
delete m_minimap_update_thread;
}
@@ -280,29 +296,102 @@ MinimapShape Minimap::getMinimapShape()
return MINIMAP_SHAPE_SQUARE;
}
-void Minimap::setMinimapMode(MinimapMode mode)
+void Minimap::setModeIndex(size_t index)
{
- static const MinimapModeDef modedefs[MINIMAP_MODE_COUNT] = {
- {false, 0, 0},
- {false, m_surface_mode_scan_height, 256},
- {false, m_surface_mode_scan_height, 128},
- {false, m_surface_mode_scan_height, 64},
- {true, 32, 128},
- {true, 32, 64},
- {true, 32, 32}
- };
-
- if (mode >= MINIMAP_MODE_COUNT)
- return;
-
MutexAutoLock lock(m_mutex);
- data->is_radar = modedefs[mode].is_radar;
- data->scan_height = modedefs[mode].scan_height;
- data->map_size = modedefs[mode].map_size;
- data->mode = mode;
+ if (index < m_modes.size()) {
+ data->mode = m_modes[index];
+ m_current_mode_index = index;
+ } else {
+ data->mode = MinimapModeDef{MINIMAP_TYPE_OFF, gettext("Minimap hidden"), 0, 0, ""};
+ m_current_mode_index = 0;
+ }
- m_minimap_update_thread->deferUpdate();
+ data->map_invalidated = true;
+
+ if (m_minimap_update_thread)
+ m_minimap_update_thread->deferUpdate();
+}
+
+void Minimap::addMode(MinimapModeDef mode)
+{
+ // Check validity
+ if (mode.type == MINIMAP_TYPE_TEXTURE) {
+ if (mode.texture.empty())
+ return;
+ if (mode.scale < 1)
+ mode.scale = 1;
+ }
+
+ int zoom = -1;
+
+ // Build a default standard label
+ if (mode.label == "") {
+ switch (mode.type) {
+ case MINIMAP_TYPE_OFF:
+ mode.label = gettext("Minimap hidden");
+ break;
+ case MINIMAP_TYPE_SURFACE:
+ mode.label = gettext("Minimap in surface mode, Zoom x%d");
+ if (mode.map_size > 0)
+ zoom = 256 / mode.map_size;
+ break;
+ case MINIMAP_TYPE_RADAR:
+ mode.label = gettext("Minimap in radar mode, Zoom x%d");
+ if (mode.map_size > 0)
+ zoom = 512 / mode.map_size;
+ break;
+ case MINIMAP_TYPE_TEXTURE:
+ mode.label = gettext("Minimap in texture mode");
+ break;
+ default:
+ break;
+ }
+ }
+ // else: Custom labels need mod-provided client-side translation
+
+ if (zoom >= 0) {
+ char label_buf[1024];
+ porting::mt_snprintf(label_buf, sizeof(label_buf),
+ mode.label.c_str(), zoom);
+ mode.label = label_buf;
+ }
+
+ m_modes.push_back(mode);
+}
+
+void Minimap::addMode(MinimapType type, u16 size, std::string label,
+ std::string texture, u16 scale)
+{
+ MinimapModeDef mode;
+ mode.type = type;
+ mode.label = label;
+ mode.map_size = size;
+ mode.texture = texture;
+ mode.scale = scale;
+ switch (type) {
+ case MINIMAP_TYPE_SURFACE:
+ mode.scan_height = m_surface_mode_scan_height;
+ break;
+ case MINIMAP_TYPE_RADAR:
+ mode.scan_height = 32;
+ break;
+ default:
+ mode.scan_height = 0;
+ }
+ addMode(mode);
+}
+
+void Minimap::nextMode()
+{
+ if (m_modes.empty())
+ return;
+ m_current_mode_index++;
+ if (m_current_mode_index >= m_modes.size())
+ m_current_mode_index = 0;
+
+ setModeIndex(m_current_mode_index);
}
void Minimap::setPos(v3s16 pos)
@@ -331,16 +420,16 @@ void Minimap::setAngle(f32 angle)
void Minimap::blitMinimapPixelsToImageRadar(video::IImage *map_image)
{
video::SColor c(240, 0, 0, 0);
- for (s16 x = 0; x < data->map_size; x++)
- for (s16 z = 0; z < data->map_size; z++) {
- MinimapPixel *mmpixel = &data->minimap_scan[x + z * data->map_size];
+ for (s16 x = 0; x < data->mode.map_size; x++)
+ for (s16 z = 0; z < data->mode.map_size; z++) {
+ MinimapPixel *mmpixel = &data->minimap_scan[x + z * data->mode.map_size];
if (mmpixel->air_count > 0)
c.setGreen(core::clamp(core::round32(32 + mmpixel->air_count * 8), 0, 255));
else
c.setGreen(0);
- map_image->setPixel(x, data->map_size - z - 1, c);
+ map_image->setPixel(x, data->mode.map_size - z - 1, c);
}
}
@@ -349,9 +438,9 @@ void Minimap::blitMinimapPixelsToImageSurface(
{
// This variable creation/destruction has a 1% cost on rendering minimap
video::SColor tilecolor;
- for (s16 x = 0; x < data->map_size; x++)
- for (s16 z = 0; z < data->map_size; z++) {
- MinimapPixel *mmpixel = &data->minimap_scan[x + z * data->map_size];
+ for (s16 x = 0; x < data->mode.map_size; x++)
+ for (s16 z = 0; z < data->mode.map_size; z++) {
+ MinimapPixel *mmpixel = &data->minimap_scan[x + z * data->mode.map_size];
const ContentFeatures &f = m_ndef->get(mmpixel->n);
const TileDef *tile = &f.tiledef[0];
@@ -367,10 +456,10 @@ void Minimap::blitMinimapPixelsToImageSurface(
tilecolor.setBlue(tilecolor.getBlue() * f.minimap_color.getBlue() / 255);
tilecolor.setAlpha(240);
- map_image->setPixel(x, data->map_size - z - 1, tilecolor);
+ map_image->setPixel(x, data->mode.map_size - z - 1, tilecolor);
u32 h = mmpixel->height;
- heightmap_image->setPixel(x,data->map_size - z - 1,
+ heightmap_image->setPixel(x,data->mode.map_size - z - 1,
video::SColor(255, h, h, h));
}
}
@@ -378,21 +467,46 @@ void Minimap::blitMinimapPixelsToImageSurface(
video::ITexture *Minimap::getMinimapTexture()
{
// update minimap textures when new scan is ready
- if (data->map_invalidated)
+ if (data->map_invalidated && data->mode.type != MINIMAP_TYPE_TEXTURE)
return data->texture;
// create minimap and heightmap images in memory
- core::dimension2d<u32> dim(data->map_size, data->map_size);
+ core::dimension2d<u32> dim(data->mode.map_size, data->mode.map_size);
video::IImage *map_image = driver->createImage(video::ECF_A8R8G8B8, dim);
video::IImage *heightmap_image = driver->createImage(video::ECF_A8R8G8B8, dim);
video::IImage *minimap_image = driver->createImage(video::ECF_A8R8G8B8,
core::dimension2d<u32>(MINIMAP_MAX_SX, MINIMAP_MAX_SY));
// Blit MinimapPixels to images
- if (data->is_radar)
- blitMinimapPixelsToImageRadar(map_image);
- else
+ switch(data->mode.type) {
+ case MINIMAP_TYPE_OFF:
+ break;
+ case MINIMAP_TYPE_SURFACE:
blitMinimapPixelsToImageSurface(map_image, heightmap_image);
+ break;
+ case MINIMAP_TYPE_RADAR:
+ blitMinimapPixelsToImageRadar(map_image);
+ break;
+ case MINIMAP_TYPE_TEXTURE:
+ // Want to use texture source, to : 1 find texture, 2 cache it
+ video::ITexture* texture = m_tsrc->getTexture(data->mode.texture);
+ video::IImage* image = driver->createImageFromData(
+ texture->getColorFormat(), texture->getSize(), texture->lock(), true, false);
+ texture->unlock();
+
+ auto dim = image->getDimension();
+
+ map_image->fill(video::SColor(255, 0, 0, 0));
+
+ image->copyTo(map_image,
+ irr::core::vector2d<int> {
+ ((data->mode.map_size - (static_cast<int>(dim.Width))) >> 1)
+ - data->pos.X / data->mode.scale,
+ ((data->mode.map_size - (static_cast<int>(dim.Height))) >> 1)
+ + data->pos.Z / data->mode.scale
+ });
+ image->drop();
+ }
map_image->copyToScaling(minimap_image);
map_image->drop();
@@ -461,21 +575,31 @@ scene::SMeshBuffer *Minimap::getMinimapMeshBuffer()
void Minimap::drawMinimap()
{
+ // Non hud managed minimap drawing (legacy minimap)
+ v2u32 screensize = RenderingEngine::get_instance()->getWindowSize();
+ const u32 size = 0.25 * screensize.Y;
+
+ drawMinimap(core::rect<s32>(
+ screensize.X - size - 10, 10,
+ screensize.X - 10, size + 10));
+}
+
+void Minimap::drawMinimap(core::rect<s32> rect) {
+
video::ITexture *minimap_texture = getMinimapTexture();
if (!minimap_texture)
return;
+ if (data->mode.type == MINIMAP_TYPE_OFF)
+ return;
+
updateActiveMarkers();
- v2u32 screensize = RenderingEngine::get_instance()->getWindowSize();
- const u32 size = 0.25 * screensize.Y;
core::rect<s32> oldViewPort = driver->getViewPort();
core::matrix4 oldProjMat = driver->getTransform(video::ETS_PROJECTION);
core::matrix4 oldViewMat = driver->getTransform(video::ETS_VIEW);
- driver->setViewPort(core::rect<s32>(
- screensize.X - size - 10, 10,
- screensize.X - 10, size + 10));
+ driver->setViewPort(rect);
driver->setTransform(video::ETS_PROJECTION, core::matrix4());
driver->setTransform(video::ETS_VIEW, core::matrix4());
@@ -488,8 +612,8 @@ void Minimap::drawMinimap()
material.TextureLayer[0].Texture = minimap_texture;
material.TextureLayer[1].Texture = data->heightmap_texture;
- if (m_enable_shaders && !data->is_radar) {
- u16 sid = m_shdrsrc->getShader("minimap_shader", 1, 1);
+ if (m_enable_shaders && data->mode.type == MINIMAP_TYPE_SURFACE) {
+ u16 sid = m_shdrsrc->getShader("minimap_shader", TILE_MATERIAL_ALPHA);
material.MaterialType = m_shdrsrc->getShaderInfo(sid).material;
} else {
material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
@@ -529,14 +653,14 @@ void Minimap::drawMinimap()
driver->setViewPort(oldViewPort);
// Draw player markers
- v2s32 s_pos(screensize.X - size - 10, 10);
+ v2s32 s_pos(rect.UpperLeftCorner.X, rect.UpperLeftCorner.Y);
core::dimension2di imgsize(data->object_marker_red->getOriginalSize());
core::rect<s32> img_rect(0, 0, imgsize.Width, imgsize.Height);
static const video::SColor col(255, 255, 255, 255);
static const video::SColor c[4] = {col, col, col, col};
f32 sin_angle = std::sin(m_angle * core::DEGTORAD);
f32 cos_angle = std::cos(m_angle * core::DEGTORAD);
- s32 marker_size2 = 0.025 * (float)size;
+ s32 marker_size2 = 0.025 * (float)rect.getWidth();;
for (std::list<v2f>::const_iterator
i = m_active_markers.begin();
i != m_active_markers.end(); ++i) {
@@ -547,8 +671,8 @@ void Minimap::drawMinimap()
posf.X = t1;
posf.Y = t2;
}
- posf.X = (posf.X + 0.5) * (float)size;
- posf.Y = (posf.Y + 0.5) * (float)size;
+ posf.X = (posf.X + 0.5) * (float)rect.getWidth();
+ posf.Y = (posf.Y + 0.5) * (float)rect.getHeight();
core::rect<s32> dest_rect(
s_pos.X + posf.X - marker_size2,
s_pos.Y + posf.Y - marker_size2,
@@ -559,28 +683,41 @@ void Minimap::drawMinimap()
}
}
+MinimapMarker* Minimap::addMarker(scene::ISceneNode *parent_node)
+{
+ MinimapMarker *m = new MinimapMarker(parent_node);
+ m_markers.push_back(m);
+ return m;
+}
+
+void Minimap::removeMarker(MinimapMarker **m)
+{
+ m_markers.remove(*m);
+ delete *m;
+ *m = nullptr;
+}
+
void Minimap::updateActiveMarkers()
{
video::IImage *minimap_mask = data->minimap_shape_round ?
data->minimap_mask_round : data->minimap_mask_square;
- const std::list<Nametag *> &nametags = client->getCamera()->getNametags();
-
m_active_markers.clear();
-
- for (Nametag *nametag : nametags) {
- v3s16 pos = floatToInt(nametag->parent_node->getAbsolutePosition() +
- intToFloat(client->getCamera()->getOffset(), BS), BS);
- pos -= data->pos - v3s16(data->map_size / 2,
- data->scan_height / 2,
- data->map_size / 2);
- if (pos.X < 0 || pos.X > data->map_size ||
- pos.Y < 0 || pos.Y > data->scan_height ||
- pos.Z < 0 || pos.Z > data->map_size) {
+ v3f cam_offset = intToFloat(client->getCamera()->getOffset(), BS);
+ v3s16 pos_offset = data->pos - v3s16(data->mode.map_size / 2,
+ data->mode.scan_height / 2,
+ data->mode.map_size / 2);
+
+ for (MinimapMarker *marker : m_markers) {
+ v3s16 pos = floatToInt(marker->parent_node->getAbsolutePosition() +
+ cam_offset, BS) - pos_offset;
+ if (pos.X < 0 || pos.X > data->mode.map_size ||
+ pos.Y < 0 || pos.Y > data->mode.scan_height ||
+ pos.Z < 0 || pos.Z > data->mode.map_size) {
continue;
}
- pos.X = ((float)pos.X / data->map_size) * MINIMAP_MAX_SX;
- pos.Z = ((float)pos.Z / data->map_size) * MINIMAP_MAX_SY;
+ pos.X = ((float)pos.X / data->mode.map_size) * MINIMAP_MAX_SX;
+ pos.Z = ((float)pos.Z / data->mode.map_size) * MINIMAP_MAX_SY;
const video::SColor &mask_col = minimap_mask->getPixel(pos.X, pos.Z);
if (!mask_col.getAlpha()) {
continue;
diff --git a/src/client/minimap.h b/src/client/minimap.h
index 258d5330d..87c9668ee 100644
--- a/src/client/minimap.h
+++ b/src/client/minimap.h
@@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#pragma once
+#include "../hud.h"
#include "irrlichttypes_extrabloated.h"
#include "util/thread.h"
#include "voxel.h"
@@ -33,28 +34,27 @@ class IShaderSource;
#define MINIMAP_MAX_SX 512
#define MINIMAP_MAX_SY 512
-enum MinimapMode {
- MINIMAP_MODE_OFF,
- MINIMAP_MODE_SURFACEx1,
- MINIMAP_MODE_SURFACEx2,
- MINIMAP_MODE_SURFACEx4,
- MINIMAP_MODE_RADARx1,
- MINIMAP_MODE_RADARx2,
- MINIMAP_MODE_RADARx4,
- MINIMAP_MODE_COUNT,
-};
-
enum MinimapShape {
MINIMAP_SHAPE_SQUARE,
MINIMAP_SHAPE_ROUND,
};
struct MinimapModeDef {
- bool is_radar;
+ MinimapType type;
+ std::string label;
u16 scan_height;
u16 map_size;
+ std::string texture;
+ u16 scale;
};
+struct MinimapMarker {
+ MinimapMarker(scene::ISceneNode *parent_node):
+ parent_node(parent_node)
+ {
+ }
+ scene::ISceneNode *parent_node;
+};
struct MinimapPixel {
//! The topmost node that the minimap displays.
MapNode n;
@@ -69,12 +69,9 @@ struct MinimapMapblock {
};
struct MinimapData {
- bool is_radar;
- MinimapMode mode;
+ MinimapModeDef mode;
v3s16 pos;
v3s16 old_pos;
- u16 scan_height;
- u16 map_size;
MinimapPixel minimap_scan[MINIMAP_MAX_SX * MINIMAP_MAX_SY];
bool map_invalidated;
bool minimap_shape_round;
@@ -127,12 +124,21 @@ public:
v3s16 getPos() const { return data->pos; }
void setAngle(f32 angle);
f32 getAngle() const { return m_angle; }
- void setMinimapMode(MinimapMode mode);
- MinimapMode getMinimapMode() const { return data->mode; }
void toggleMinimapShape();
void setMinimapShape(MinimapShape shape);
MinimapShape getMinimapShape();
+ void clearModes() { m_modes.clear(); };
+ void addMode(MinimapModeDef mode);
+ void addMode(MinimapType type, u16 size = 0, std::string label = "",
+ std::string texture = "", u16 scale = 1);
+
+ void setModeIndex(size_t index);
+ size_t getModeIndex() const { return m_current_mode_index; };
+ size_t getMaxModeIndex() const { return m_modes.size() - 1; };
+ void nextMode();
+
+ MinimapModeDef getModeDef() const { return data->mode; }
video::ITexture *getMinimapTexture();
@@ -142,8 +148,12 @@ public:
scene::SMeshBuffer *getMinimapMeshBuffer();
+ MinimapMarker* addMarker(scene::ISceneNode *parent_node);
+ void removeMarker(MinimapMarker **marker);
+
void updateActiveMarkers();
void drawMinimap();
+ void drawMinimap(core::rect<s32> rect);
video::IVideoDriver *driver;
Client* client;
@@ -153,11 +163,14 @@ private:
ITextureSource *m_tsrc;
IShaderSource *m_shdrsrc;
const NodeDefManager *m_ndef;
- MinimapUpdateThread *m_minimap_update_thread;
+ MinimapUpdateThread *m_minimap_update_thread = nullptr;
scene::SMeshBuffer *m_meshbuffer;
bool m_enable_shaders;
+ std::vector<MinimapModeDef> m_modes;
+ size_t m_current_mode_index;
u16 m_surface_mode_scan_height;
f32 m_angle;
std::mutex m_mutex;
+ std::list<MinimapMarker*> m_markers;
std::list<v2f> m_active_markers;
};
diff --git a/src/client/render/core.cpp b/src/client/render/core.cpp
index bf5aa6c2c..92a7137ea 100644
--- a/src/client/render/core.cpp
+++ b/src/client/render/core.cpp
@@ -86,6 +86,7 @@ void RenderingCore::drawHUD()
if (show_hud) {
if (draw_crosshair)
hud->drawCrosshair();
+
hud->drawHotbar(client->getEnv().getLocalPlayer()->getWieldIndex());
hud->drawLuaElements(camera->getOffset());
camera->drawNametags();
diff --git a/src/client/render/factory.cpp b/src/client/render/factory.cpp
index 30f9480fc..7fcec40dd 100644
--- a/src/client/render/factory.cpp
+++ b/src/client/render/factory.cpp
@@ -19,7 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
*/
#include "factory.h"
-#include <stdexcept>
+#include "log.h"
#include "plain.h"
#include "anaglyph.h"
#include "interlaced.h"
@@ -45,5 +45,8 @@ RenderingCore *createRenderingCore(const std::string &stereo_mode, IrrlichtDevic
return new RenderingCoreSideBySide(device, client, hud, true);
if (stereo_mode == "crossview")
return new RenderingCoreSideBySide(device, client, hud, false, true);
- throw std::invalid_argument("Invalid rendering mode: " + stereo_mode);
+
+ // fallback to plain renderer
+ errorstream << "Invalid rendering mode: " << stereo_mode << std::endl;
+ return new RenderingCorePlain(device, client, hud);
}
diff --git a/src/client/render/interlaced.cpp b/src/client/render/interlaced.cpp
index 2aadadc17..ce8e92f21 100644
--- a/src/client/render/interlaced.cpp
+++ b/src/client/render/interlaced.cpp
@@ -36,7 +36,7 @@ void RenderingCoreInterlaced::initMaterial()
mat.UseMipMaps = false;
mat.ZBuffer = false;
mat.ZWriteEnable = false;
- u32 shader = s->getShader("3d_interlaced_merge", TILE_MATERIAL_BASIC, 0);
+ u32 shader = s->getShader("3d_interlaced_merge", TILE_MATERIAL_BASIC);
mat.MaterialType = s->getShaderInfo(shader).material;
for (int k = 0; k < 3; ++k) {
mat.TextureLayer[k].AnisotropicFilter = false;
diff --git a/src/client/renderingengine.cpp b/src/client/renderingengine.cpp
index f5aca8f58..99ff8c1ee 100644
--- a/src/client/renderingengine.cpp
+++ b/src/client/renderingengine.cpp
@@ -153,7 +153,7 @@ RenderingEngine::RenderingEngine(IEventReceiver *receiver)
RenderingEngine::~RenderingEngine()
{
core.reset();
- m_device->drop();
+ m_device->closeDevice();
s_singleton = nullptr;
}
diff --git a/src/client/shader.cpp b/src/client/shader.cpp
index ee6079f7a..b3e4911f4 100644
--- a/src/client/shader.cpp
+++ b/src/client/shader.cpp
@@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <iterator>
#include "shader.h"
#include "irrlichttypes_extrabloated.h"
+#include "irr_ptr.h"
#include "debug.h"
#include "filesys.h"
#include "util/container.h"
@@ -37,6 +38,22 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "log.h"
#include "gamedef.h"
#include "client/tile.h"
+#include "config.h"
+
+#if ENABLE_GLES
+#ifdef _IRR_COMPILE_WITH_OGLES1_
+#include <GLES/gl.h>
+#else
+#include <GLES2/gl2.h>
+#endif
+#else
+#ifndef __APPLE__
+#include <GL/gl.h>
+#else
+#define GL_SILENCE_DEPRECATION
+#include <OpenGL/gl.h>
+#endif
+#endif
/*
A cache from shader name to shader path
@@ -173,19 +190,14 @@ private:
class ShaderCallback : public video::IShaderConstantSetCallBack
{
- std::vector<IShaderConstantSetter*> m_setters;
+ std::vector<std::unique_ptr<IShaderConstantSetter>> m_setters;
public:
- ShaderCallback(const std::vector<IShaderConstantSetterFactory *> &factories)
+ template <typename Factories>
+ ShaderCallback(const Factories &factories)
{
- for (IShaderConstantSetterFactory *factory : factories)
- m_setters.push_back(factory->create());
- }
-
- ~ShaderCallback()
- {
- for (IShaderConstantSetter *setter : m_setters)
- delete setter;
+ for (auto &&factory : factories)
+ m_setters.push_back(std::unique_ptr<IShaderConstantSetter>(factory->create()));
}
virtual void OnSetConstants(video::IMaterialRendererServices *services, s32 userData) override
@@ -193,15 +205,13 @@ public:
video::IVideoDriver *driver = services->getVideoDriver();
sanity_check(driver != NULL);
- bool is_highlevel = userData;
-
- for (IShaderConstantSetter *setter : m_setters)
- setter->onSetConstants(services, is_highlevel);
+ for (auto &&setter : m_setters)
+ setter->onSetConstants(services);
}
virtual void OnSetMaterial(const video::SMaterial& material) override
{
- for (IShaderConstantSetter *setter : m_setters)
+ for (auto &&setter : m_setters)
setter->onSetMaterial(material);
}
};
@@ -215,37 +225,61 @@ class MainShaderConstantSetter : public IShaderConstantSetter
{
CachedVertexShaderSetting<float, 16> m_world_view_proj;
CachedVertexShaderSetting<float, 16> m_world;
+#if ENABLE_GLES
+ // Modelview matrix
+ CachedVertexShaderSetting<float, 16> m_world_view;
+ // Texture matrix
+ CachedVertexShaderSetting<float, 16> m_texture;
+ // Normal matrix
+ CachedVertexShaderSetting<float, 9> m_normal;
+#endif
public:
MainShaderConstantSetter() :
- m_world_view_proj("mWorldViewProj"),
- m_world("mWorld")
+ m_world_view_proj("mWorldViewProj")
+ , m_world("mWorld")
+#if ENABLE_GLES
+ , m_world_view("mWorldView")
+ , m_texture("mTexture")
+ , m_normal("mNormal")
+#endif
{}
~MainShaderConstantSetter() = default;
- virtual void onSetConstants(video::IMaterialRendererServices *services,
- bool is_highlevel)
+ virtual void onSetConstants(video::IMaterialRendererServices *services) override
{
video::IVideoDriver *driver = services->getVideoDriver();
sanity_check(driver);
- // Set clip matrix
- core::matrix4 worldViewProj;
- worldViewProj = driver->getTransform(video::ETS_PROJECTION);
- worldViewProj *= driver->getTransform(video::ETS_VIEW);
- worldViewProj *= driver->getTransform(video::ETS_WORLD);
- if (is_highlevel)
- m_world_view_proj.set(*reinterpret_cast<float(*)[16]>(worldViewProj.pointer()), services);
- else
- services->setVertexShaderConstant(worldViewProj.pointer(), 0, 4);
-
// Set world matrix
core::matrix4 world = driver->getTransform(video::ETS_WORLD);
- if (is_highlevel)
- m_world.set(*reinterpret_cast<float(*)[16]>(world.pointer()), services);
- else
- services->setVertexShaderConstant(world.pointer(), 4, 4);
+ m_world.set(*reinterpret_cast<float(*)[16]>(world.pointer()), services);
+
+ // Set clip matrix
+ core::matrix4 worldView;
+ worldView = driver->getTransform(video::ETS_VIEW);
+ worldView *= world;
+ core::matrix4 worldViewProj;
+ worldViewProj = driver->getTransform(video::ETS_PROJECTION);
+ worldViewProj *= worldView;
+ m_world_view_proj.set(*reinterpret_cast<float(*)[16]>(worldViewProj.pointer()), services);
+
+#if ENABLE_GLES
+ core::matrix4 texture = driver->getTransform(video::ETS_TEXTURE_0);
+ m_world_view.set(*reinterpret_cast<float(*)[16]>(worldView.pointer()), services);
+ m_texture.set(*reinterpret_cast<float(*)[16]>(texture.pointer()), services);
+
+ core::matrix4 normal;
+ worldView.getTransposed(normal);
+ sanity_check(normal.makeInverse());
+ float m[9] = {
+ normal[0], normal[1], normal[2],
+ normal[4], normal[5], normal[6],
+ normal[8], normal[9], normal[10],
+ };
+ m_normal.set(m, services);
+#endif
}
};
@@ -266,7 +300,6 @@ class ShaderSource : public IWritableShaderSource
{
public:
ShaderSource();
- ~ShaderSource();
/*
- If shader material specified by name is found from cache,
@@ -276,7 +309,7 @@ public:
The id 0 points to a null shader. Its material is EMT_SOLID.
*/
u32 getShaderIdDirect(const std::string &name,
- const u8 material_type, const u8 drawtype);
+ MaterialType material_type, NodeDrawType drawtype) override;
/*
If shader specified by the name pointed by the id doesn't
@@ -288,26 +321,26 @@ public:
*/
u32 getShader(const std::string &name,
- const u8 material_type, const u8 drawtype);
+ MaterialType material_type, NodeDrawType drawtype) override;
- ShaderInfo getShaderInfo(u32 id);
+ ShaderInfo getShaderInfo(u32 id) override;
// Processes queued shader requests from other threads.
// Shall be called from the main thread.
- void processQueue();
+ void processQueue() override;
// Insert a shader program into the cache without touching the
// filesystem. Shall be called from the main thread.
void insertSourceShader(const std::string &name_of_shader,
- const std::string &filename, const std::string &program);
+ const std::string &filename, const std::string &program) override;
// Rebuild shaders from the current set of source shaders
// Shall be called from the main thread.
- void rebuildShaders();
+ void rebuildShaders() override;
- void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter)
+ void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) override
{
- m_setter_factories.push_back(setter);
+ m_setter_factories.push_back(std::unique_ptr<IShaderConstantSetterFactory>(setter));
}
private:
@@ -329,10 +362,11 @@ private:
RequestQueue<std::string, u32, u8, u8> m_get_shader_queue;
// Global constant setter factories
- std::vector<IShaderConstantSetterFactory *> m_setter_factories;
+ std::vector<std::unique_ptr<IShaderConstantSetterFactory>> m_setter_factories;
- // Shader callbacks
- std::vector<ShaderCallback *> m_callbacks;
+ // Generate shader given the shader name.
+ ShaderInfo generateShader(const std::string &name,
+ MaterialType material_type, NodeDrawType drawtype);
};
IWritableShaderSource *createShaderSource()
@@ -340,22 +374,6 @@ IWritableShaderSource *createShaderSource()
return new ShaderSource();
}
-/*
- Generate shader given the shader name.
-*/
-ShaderInfo generate_shader(const std::string &name,
- u8 material_type, u8 drawtype, std::vector<ShaderCallback *> &callbacks,
- const std::vector<IShaderConstantSetterFactory *> &setter_factories,
- SourceShaderCache *sourcecache);
-
-/*
- Load shader programs
-*/
-void load_shaders(const std::string &name, SourceShaderCache *sourcecache,
- video::E_DRIVER_TYPE drivertype, bool enable_shaders,
- std::string &vertex_program, std::string &pixel_program,
- std::string &geometry_program, bool &is_highlevel);
-
ShaderSource::ShaderSource()
{
m_main_thread = std::this_thread::get_id();
@@ -367,18 +385,8 @@ ShaderSource::ShaderSource()
addShaderConstantSetterFactory(new MainShaderConstantSetterFactory());
}
-ShaderSource::~ShaderSource()
-{
- for (ShaderCallback *callback : m_callbacks) {
- delete callback;
- }
- for (IShaderConstantSetterFactory *setter_factorie : m_setter_factories) {
- delete setter_factorie;
- }
-}
-
u32 ShaderSource::getShader(const std::string &name,
- const u8 material_type, const u8 drawtype)
+ MaterialType material_type, NodeDrawType drawtype)
{
/*
Get shader
@@ -420,7 +428,7 @@ u32 ShaderSource::getShader(const std::string &name,
This method generates all the shaders
*/
u32 ShaderSource::getShaderIdDirect(const std::string &name,
- const u8 material_type, const u8 drawtype)
+ MaterialType material_type, NodeDrawType drawtype)
{
//infostream<<"getShaderIdDirect(): name=\""<<name<<"\""<<std::endl;
@@ -447,8 +455,7 @@ u32 ShaderSource::getShaderIdDirect(const std::string &name,
return 0;
}
- ShaderInfo info = generate_shader(name, material_type, drawtype,
- m_callbacks, m_setter_factories, &m_sourcecache);
+ ShaderInfo info = generateShader(name, material_type, drawtype);
/*
Add shader to caches (add dummy shaders too)
@@ -512,24 +519,19 @@ void ShaderSource::rebuildShaders()
for (ShaderInfo &i : m_shaderinfo_cache) {
ShaderInfo *info = &i;
if (!info->name.empty()) {
- *info = generate_shader(info->name, info->material_type,
- info->drawtype, m_callbacks,
- m_setter_factories, &m_sourcecache);
+ *info = generateShader(info->name, info->material_type, info->drawtype);
}
}
}
-ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtype,
- std::vector<ShaderCallback *> &callbacks,
- const std::vector<IShaderConstantSetterFactory *> &setter_factories,
- SourceShaderCache *sourcecache)
+ShaderInfo ShaderSource::generateShader(const std::string &name,
+ MaterialType material_type, NodeDrawType drawtype)
{
ShaderInfo shaderinfo;
shaderinfo.name = name;
shaderinfo.material_type = material_type;
shaderinfo.drawtype = drawtype;
- shaderinfo.material = video::EMT_SOLID;
switch (material_type) {
case TILE_MATERIAL_OPAQUE:
case TILE_MATERIAL_LIQUID_OPAQUE:
@@ -550,326 +552,171 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp
shaderinfo.base_material = video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF;
break;
}
+ shaderinfo.material = shaderinfo.base_material;
bool enable_shaders = g_settings->getBool("enable_shaders");
if (!enable_shaders)
return shaderinfo;
video::IVideoDriver *driver = RenderingEngine::get_video_driver();
-
- video::IGPUProgrammingServices *gpu = driver->getGPUProgrammingServices();
- if(!gpu){
- errorstream<<"generate_shader(): "
- "failed to generate \""<<name<<"\", "
- "GPU programming not supported."
- <<std::endl;
+ if (!driver->queryFeature(video::EVDF_ARB_GLSL)) {
+ errorstream << "Shaders are enabled but GLSL is not supported by the driver\n";
return shaderinfo;
}
-
- // Choose shader language depending on driver type and settings
- // Then load shaders
- std::string vertex_program;
- std::string pixel_program;
- std::string geometry_program;
- bool is_highlevel;
- load_shaders(name, sourcecache, driver->getDriverType(),
- enable_shaders, vertex_program, pixel_program,
- geometry_program, is_highlevel);
- // Check hardware/driver support
- if (!vertex_program.empty() &&
- !driver->queryFeature(video::EVDF_VERTEX_SHADER_1_1) &&
- !driver->queryFeature(video::EVDF_ARB_VERTEX_PROGRAM_1)){
- infostream<<"generate_shader(): vertex shaders disabled "
- "because of missing driver/hardware support."
- <<std::endl;
- vertex_program = "";
- }
- if (!pixel_program.empty() &&
- !driver->queryFeature(video::EVDF_PIXEL_SHADER_1_1) &&
- !driver->queryFeature(video::EVDF_ARB_FRAGMENT_PROGRAM_1)){
- infostream<<"generate_shader(): pixel shaders disabled "
- "because of missing driver/hardware support."
- <<std::endl;
- pixel_program = "";
- }
- if (!geometry_program.empty() &&
- !driver->queryFeature(video::EVDF_GEOMETRY_SHADER)){
- infostream<<"generate_shader(): geometry shaders disabled "
- "because of missing driver/hardware support."
- <<std::endl;
- geometry_program = "";
- }
-
- // If no shaders are used, don't make a separate material type
- if (vertex_program.empty() && pixel_program.empty() && geometry_program.empty())
- return shaderinfo;
+ video::IGPUProgrammingServices *gpu = driver->getGPUProgrammingServices();
// Create shaders header
- std::string shaders_header = "#version 120\n";
-
- static const char* drawTypes[] = {
- "NDT_NORMAL",
- "NDT_AIRLIKE",
- "NDT_LIQUID",
- "NDT_FLOWINGLIQUID",
- "NDT_GLASSLIKE",
- "NDT_ALLFACES",
- "NDT_ALLFACES_OPTIONAL",
- "NDT_TORCHLIKE",
- "NDT_SIGNLIKE",
- "NDT_PLANTLIKE",
- "NDT_FENCELIKE",
- "NDT_RAILLIKE",
- "NDT_NODEBOX",
- "NDT_GLASSLIKE_FRAMED",
- "NDT_FIRELIKE",
- "NDT_GLASSLIKE_FRAMED_OPTIONAL",
- "NDT_PLANTLIKE_ROOTED",
- };
-
- for (int i = 0; i < 14; i++){
- shaders_header += "#define ";
- shaders_header += drawTypes[i];
- shaders_header += " ";
- shaders_header += itos(i);
- shaders_header += "\n";
- }
-
- static const char* materialTypes[] = {
- "TILE_MATERIAL_BASIC",
- "TILE_MATERIAL_ALPHA",
- "TILE_MATERIAL_LIQUID_TRANSPARENT",
- "TILE_MATERIAL_LIQUID_OPAQUE",
- "TILE_MATERIAL_WAVING_LEAVES",
- "TILE_MATERIAL_WAVING_PLANTS",
- "TILE_MATERIAL_OPAQUE",
- "TILE_MATERIAL_WAVING_LIQUID_BASIC",
- "TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT",
- "TILE_MATERIAL_WAVING_LIQUID_OPAQUE",
- "TILE_MATERIAL_PLAIN",
- "TILE_MATERIAL_PLAIN_ALPHA",
- };
-
- for (int i = 0; i < 12; i++){
- shaders_header += "#define ";
- shaders_header += materialTypes[i];
- shaders_header += " ";
- shaders_header += itos(i);
- shaders_header += "\n";
- }
-
- shaders_header += "#define MATERIAL_TYPE ";
- shaders_header += itos(material_type);
- shaders_header += "\n";
- shaders_header += "#define DRAW_TYPE ";
- shaders_header += itos(drawtype);
- shaders_header += "\n";
-
- if (g_settings->getBool("generate_normalmaps")) {
- shaders_header += "#define GENERATE_NORMALMAPS 1\n";
+ bool use_gles = false;
+#if ENABLE_GLES
+ use_gles = driver->getDriverType() == video::EDT_OGLES2;
+#endif
+ std::stringstream shaders_header;
+ shaders_header
+ << std::noboolalpha
+ << std::showpoint // for GLSL ES
+ ;
+ std::string vertex_header, fragment_header, geometry_header;
+ if (use_gles) {
+ shaders_header << R"(
+ #version 100
+ )";
+ vertex_header = R"(
+ uniform highp mat4 mWorldView;
+ uniform highp mat4 mWorldViewProj;
+ uniform mediump mat4 mTexture;
+ uniform mediump mat3 mNormal;
+
+ attribute highp vec4 inVertexPosition;
+ attribute lowp vec4 inVertexColor;
+ attribute mediump vec4 inTexCoord0;
+ attribute mediump vec3 inVertexNormal;
+ attribute mediump vec4 inVertexTangent;
+ attribute mediump vec4 inVertexBinormal;
+ )";
+ fragment_header = R"(
+ precision mediump float;
+ )";
} else {
- shaders_header += "#define GENERATE_NORMALMAPS 0\n";
- }
- shaders_header += "#define NORMALMAPS_STRENGTH ";
- shaders_header += ftos(g_settings->getFloat("normalmaps_strength"));
- shaders_header += "\n";
- float sample_step;
- int smooth = (int)g_settings->getFloat("normalmaps_smooth");
- switch (smooth){
- case 0:
- sample_step = 0.0078125; // 1.0 / 128.0
- break;
- case 1:
- sample_step = 0.00390625; // 1.0 / 256.0
- break;
- case 2:
- sample_step = 0.001953125; // 1.0 / 512.0
- break;
- default:
- sample_step = 0.0078125;
- break;
- }
- shaders_header += "#define SAMPLE_STEP ";
- shaders_header += ftos(sample_step);
- shaders_header += "\n";
-
- if (g_settings->getBool("enable_bumpmapping"))
- shaders_header += "#define ENABLE_BUMPMAPPING\n";
-
- if (g_settings->getBool("enable_parallax_occlusion")){
- int mode = g_settings->getFloat("parallax_occlusion_mode");
- float scale = g_settings->getFloat("parallax_occlusion_scale");
- float bias = g_settings->getFloat("parallax_occlusion_bias");
- int iterations = g_settings->getFloat("parallax_occlusion_iterations");
- shaders_header += "#define ENABLE_PARALLAX_OCCLUSION\n";
- shaders_header += "#define PARALLAX_OCCLUSION_MODE ";
- shaders_header += itos(mode);
- shaders_header += "\n";
- shaders_header += "#define PARALLAX_OCCLUSION_SCALE ";
- shaders_header += ftos(scale);
- shaders_header += "\n";
- shaders_header += "#define PARALLAX_OCCLUSION_BIAS ";
- shaders_header += ftos(bias);
- shaders_header += "\n";
- shaders_header += "#define PARALLAX_OCCLUSION_ITERATIONS ";
- shaders_header += itos(iterations);
- shaders_header += "\n";
- }
-
- shaders_header += "#define USE_NORMALMAPS ";
- if (g_settings->getBool("enable_bumpmapping") || g_settings->getBool("enable_parallax_occlusion"))
- shaders_header += "1\n";
- else
- shaders_header += "0\n";
-
- if (g_settings->getBool("enable_waving_water")){
- shaders_header += "#define ENABLE_WAVING_WATER 1\n";
- shaders_header += "#define WATER_WAVE_HEIGHT ";
- shaders_header += ftos(g_settings->getFloat("water_wave_height"));
- shaders_header += "\n";
- shaders_header += "#define WATER_WAVE_LENGTH ";
- shaders_header += ftos(g_settings->getFloat("water_wave_length"));
- shaders_header += "\n";
- shaders_header += "#define WATER_WAVE_SPEED ";
- shaders_header += ftos(g_settings->getFloat("water_wave_speed"));
- shaders_header += "\n";
- } else{
- shaders_header += "#define ENABLE_WAVING_WATER 0\n";
- }
-
- shaders_header += "#define ENABLE_WAVING_LEAVES ";
- if (g_settings->getBool("enable_waving_leaves"))
- shaders_header += "1\n";
- else
- shaders_header += "0\n";
-
- shaders_header += "#define ENABLE_WAVING_PLANTS ";
- if (g_settings->getBool("enable_waving_plants"))
- shaders_header += "1\n";
- else
- shaders_header += "0\n";
-
- if (g_settings->getBool("tone_mapping"))
- shaders_header += "#define ENABLE_TONE_MAPPING\n";
-
- shaders_header += "#define FOG_START ";
- shaders_header += ftos(rangelim(g_settings->getFloat("fog_start"), 0.0f, 0.99f));
- shaders_header += "\n";
-
- // Call addHighLevelShaderMaterial() or addShaderMaterial()
- const c8* vertex_program_ptr = 0;
- const c8* pixel_program_ptr = 0;
- const c8* geometry_program_ptr = 0;
- if (!vertex_program.empty()) {
- vertex_program = shaders_header + vertex_program;
- vertex_program_ptr = vertex_program.c_str();
- }
- if (!pixel_program.empty()) {
- pixel_program = shaders_header + pixel_program;
- pixel_program_ptr = pixel_program.c_str();
- }
- if (!geometry_program.empty()) {
- geometry_program = shaders_header + geometry_program;
- geometry_program_ptr = geometry_program.c_str();
- }
- ShaderCallback *cb = new ShaderCallback(setter_factories);
- s32 shadermat = -1;
- if(is_highlevel){
- infostream<<"Compiling high level shaders for "<<name<<std::endl;
- shadermat = gpu->addHighLevelShaderMaterial(
- vertex_program_ptr, // Vertex shader program
- "vertexMain", // Vertex shader entry point
- video::EVST_VS_1_1, // Vertex shader version
- pixel_program_ptr, // Pixel shader program
- "pixelMain", // Pixel shader entry point
- video::EPST_PS_1_2, // Pixel shader version
- geometry_program_ptr, // Geometry shader program
- "geometryMain", // Geometry shader entry point
- video::EGST_GS_4_0, // Geometry shader version
- scene::EPT_TRIANGLES, // Geometry shader input
- scene::EPT_TRIANGLE_STRIP, // Geometry shader output
- 0, // Support maximum number of vertices
- cb, // Set-constant callback
- shaderinfo.base_material, // Base material
- 1 // Userdata passed to callback
- );
- if(shadermat == -1){
- errorstream<<"generate_shader(): "
- "failed to generate \""<<name<<"\", "
- "addHighLevelShaderMaterial failed."
- <<std::endl;
- dumpShaderProgram(warningstream, "Vertex", vertex_program);
- dumpShaderProgram(warningstream, "Pixel", pixel_program);
- dumpShaderProgram(warningstream, "Geometry", geometry_program);
- delete cb;
- return shaderinfo;
- }
- }
- else{
- infostream<<"Compiling assembly shaders for "<<name<<std::endl;
- shadermat = gpu->addShaderMaterial(
- vertex_program_ptr, // Vertex shader program
- pixel_program_ptr, // Pixel shader program
- cb, // Set-constant callback
- shaderinfo.base_material, // Base material
- 0 // Userdata passed to callback
- );
-
- if(shadermat == -1){
- errorstream<<"generate_shader(): "
- "failed to generate \""<<name<<"\", "
- "addShaderMaterial failed."
- <<std::endl;
- dumpShaderProgram(warningstream, "Vertex", vertex_program);
- dumpShaderProgram(warningstream,"Pixel", pixel_program);
- delete cb;
- return shaderinfo;
- }
+ shaders_header << R"(
+ #version 120
+ #define lowp
+ #define mediump
+ #define highp
+ )";
+ vertex_header = R"(
+ #define mWorldView gl_ModelViewMatrix
+ #define mWorldViewProj gl_ModelViewProjectionMatrix
+ #define mTexture (gl_TextureMatrix[0])
+ #define mNormal gl_NormalMatrix
+
+ #define inVertexPosition gl_Vertex
+ #define inVertexColor gl_Color
+ #define inTexCoord0 gl_MultiTexCoord0
+ #define inVertexNormal gl_Normal
+ #define inVertexTangent gl_MultiTexCoord1
+ #define inVertexBinormal gl_MultiTexCoord2
+ )";
+ }
+
+ bool use_discard = use_gles;
+#ifdef __unix__
+ // For renderers that should use discard instead of GL_ALPHA_TEST
+ const char* gl_renderer = (const char*)glGetString(GL_RENDERER);
+ if (strstr(gl_renderer, "GC7000"))
+ use_discard = true;
+#endif
+ if (use_discard && shaderinfo.base_material != video::EMT_SOLID)
+ shaders_header << "#define USE_DISCARD 1\n";
+
+#define PROVIDE(constant) shaders_header << "#define " #constant " " << (int)constant << "\n"
+
+ PROVIDE(NDT_NORMAL);
+ PROVIDE(NDT_AIRLIKE);
+ PROVIDE(NDT_LIQUID);
+ PROVIDE(NDT_FLOWINGLIQUID);
+ PROVIDE(NDT_GLASSLIKE);
+ PROVIDE(NDT_ALLFACES);
+ PROVIDE(NDT_ALLFACES_OPTIONAL);
+ PROVIDE(NDT_TORCHLIKE);
+ PROVIDE(NDT_SIGNLIKE);
+ PROVIDE(NDT_PLANTLIKE);
+ PROVIDE(NDT_FENCELIKE);
+ PROVIDE(NDT_RAILLIKE);
+ PROVIDE(NDT_NODEBOX);
+ PROVIDE(NDT_GLASSLIKE_FRAMED);
+ PROVIDE(NDT_FIRELIKE);
+ PROVIDE(NDT_GLASSLIKE_FRAMED_OPTIONAL);
+ PROVIDE(NDT_PLANTLIKE_ROOTED);
+
+ PROVIDE(TILE_MATERIAL_BASIC);
+ PROVIDE(TILE_MATERIAL_ALPHA);
+ PROVIDE(TILE_MATERIAL_LIQUID_TRANSPARENT);
+ PROVIDE(TILE_MATERIAL_LIQUID_OPAQUE);
+ PROVIDE(TILE_MATERIAL_WAVING_LEAVES);
+ PROVIDE(TILE_MATERIAL_WAVING_PLANTS);
+ PROVIDE(TILE_MATERIAL_OPAQUE);
+ PROVIDE(TILE_MATERIAL_WAVING_LIQUID_BASIC);
+ PROVIDE(TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT);
+ PROVIDE(TILE_MATERIAL_WAVING_LIQUID_OPAQUE);
+ PROVIDE(TILE_MATERIAL_PLAIN);
+ PROVIDE(TILE_MATERIAL_PLAIN_ALPHA);
+
+#undef PROVIDE
+
+ shaders_header << "#define MATERIAL_TYPE " << (int)material_type << "\n";
+ shaders_header << "#define DRAW_TYPE " << (int)drawtype << "\n";
+
+ bool enable_waving_water = g_settings->getBool("enable_waving_water");
+ shaders_header << "#define ENABLE_WAVING_WATER " << enable_waving_water << "\n";
+ if (enable_waving_water) {
+ shaders_header << "#define WATER_WAVE_HEIGHT " << g_settings->getFloat("water_wave_height") << "\n";
+ shaders_header << "#define WATER_WAVE_LENGTH " << g_settings->getFloat("water_wave_length") << "\n";
+ shaders_header << "#define WATER_WAVE_SPEED " << g_settings->getFloat("water_wave_speed") << "\n";
+ }
+
+ shaders_header << "#define ENABLE_WAVING_LEAVES " << g_settings->getBool("enable_waving_leaves") << "\n";
+ shaders_header << "#define ENABLE_WAVING_PLANTS " << g_settings->getBool("enable_waving_plants") << "\n";
+ shaders_header << "#define ENABLE_TONE_MAPPING " << g_settings->getBool("tone_mapping") << "\n";
+
+ shaders_header << "#define FOG_START " << core::clamp(g_settings->getFloat("fog_start"), 0.0f, 0.99f) << "\n";
+
+ std::string common_header = shaders_header.str();
+
+ std::string vertex_shader = m_sourcecache.getOrLoad(name, "opengl_vertex.glsl");
+ std::string fragment_shader = m_sourcecache.getOrLoad(name, "opengl_fragment.glsl");
+ std::string geometry_shader = m_sourcecache.getOrLoad(name, "opengl_geometry.glsl");
+
+ vertex_shader = common_header + vertex_header + vertex_shader;
+ fragment_shader = common_header + fragment_header + fragment_shader;
+ const char *geometry_shader_ptr = nullptr; // optional
+ if (!geometry_shader.empty()) {
+ geometry_shader = common_header + geometry_header + geometry_shader;
+ geometry_shader_ptr = geometry_shader.c_str();
+ }
+
+ irr_ptr<ShaderCallback> cb{new ShaderCallback(m_setter_factories)};
+ infostream<<"Compiling high level shaders for "<<name<<std::endl;
+ s32 shadermat = gpu->addHighLevelShaderMaterial(
+ vertex_shader.c_str(), nullptr, video::EVST_VS_1_1,
+ fragment_shader.c_str(), nullptr, video::EPST_PS_1_1,
+ geometry_shader_ptr, nullptr, video::EGST_GS_4_0, scene::EPT_TRIANGLES, scene::EPT_TRIANGLES, 0,
+ cb.get(), shaderinfo.base_material, 1);
+ if (shadermat == -1) {
+ errorstream<<"generate_shader(): "
+ "failed to generate \""<<name<<"\", "
+ "addHighLevelShaderMaterial failed."
+ <<std::endl;
+ dumpShaderProgram(warningstream, "Vertex", vertex_shader);
+ dumpShaderProgram(warningstream, "Fragment", fragment_shader);
+ dumpShaderProgram(warningstream, "Geometry", geometry_shader);
+ return shaderinfo;
}
- callbacks.push_back(cb);
-
- // HACK, TODO: investigate this better
- // Grab the material renderer once more so minetest doesn't crash on exit
- driver->getMaterialRenderer(shadermat)->grab();
// Apply the newly created material type
shaderinfo.material = (video::E_MATERIAL_TYPE) shadermat;
return shaderinfo;
}
-void load_shaders(const std::string &name, SourceShaderCache *sourcecache,
- video::E_DRIVER_TYPE drivertype, bool enable_shaders,
- std::string &vertex_program, std::string &pixel_program,
- std::string &geometry_program, bool &is_highlevel)
-{
- vertex_program = "";
- pixel_program = "";
- geometry_program = "";
- is_highlevel = false;
-
- if(enable_shaders){
- // Look for high level shaders
- if(drivertype == video::EDT_DIRECT3D9){
- // Direct3D 9: HLSL
- // (All shaders in one file)
- vertex_program = sourcecache->getOrLoad(name, "d3d9.hlsl");
- pixel_program = vertex_program;
- geometry_program = vertex_program;
- }
- else if(drivertype == video::EDT_OPENGL){
- // OpenGL: GLSL
- vertex_program = sourcecache->getOrLoad(name, "opengl_vertex.glsl");
- pixel_program = sourcecache->getOrLoad(name, "opengl_fragment.glsl");
- geometry_program = sourcecache->getOrLoad(name, "opengl_geometry.glsl");
- }
- if (!vertex_program.empty() || !pixel_program.empty() || !geometry_program.empty()){
- is_highlevel = true;
- return;
- }
- }
-
-}
-
void dumpShaderProgram(std::ostream &output_stream,
const std::string &program_type, const std::string &program)
{
diff --git a/src/client/shader.h b/src/client/shader.h
index 109d39336..38ab76704 100644
--- a/src/client/shader.h
+++ b/src/client/shader.h
@@ -20,9 +20,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#pragma once
-#include <IMaterialRendererServices.h>
#include "irrlichttypes_bloated.h"
+#include <IMaterialRendererServices.h>
#include <string>
+#include "tile.h"
+#include "nodedef.h"
class IGameDef;
@@ -46,8 +48,8 @@ struct ShaderInfo {
std::string name = "";
video::E_MATERIAL_TYPE base_material = video::EMT_SOLID;
video::E_MATERIAL_TYPE material = video::EMT_SOLID;
- u8 drawtype = 0;
- u8 material_type = 0;
+ NodeDrawType drawtype = NDT_NORMAL;
+ MaterialType material_type = TILE_MATERIAL_BASIC;
ShaderInfo() = default;
virtual ~ShaderInfo() = default;
@@ -65,8 +67,7 @@ namespace irr { namespace video {
class IShaderConstantSetter {
public:
virtual ~IShaderConstantSetter() = default;
- virtual void onSetConstants(video::IMaterialRendererServices *services,
- bool is_highlevel) = 0;
+ virtual void onSetConstants(video::IMaterialRendererServices *services) = 0;
virtual void onSetMaterial(const video::SMaterial& material)
{ }
};
@@ -128,10 +129,10 @@ public:
virtual ~IShaderSource() = default;
virtual u32 getShaderIdDirect(const std::string &name,
- const u8 material_type, const u8 drawtype){return 0;}
+ MaterialType material_type, NodeDrawType drawtype = NDT_NORMAL){return 0;}
virtual ShaderInfo getShaderInfo(u32 id){return ShaderInfo();}
virtual u32 getShader(const std::string &name,
- const u8 material_type, const u8 drawtype){return 0;}
+ MaterialType material_type, NodeDrawType drawtype = NDT_NORMAL){return 0;}
};
class IWritableShaderSource : public IShaderSource {
@@ -139,16 +140,12 @@ public:
IWritableShaderSource() = default;
virtual ~IWritableShaderSource() = default;
- virtual u32 getShaderIdDirect(const std::string &name,
- const u8 material_type, const u8 drawtype){return 0;}
- virtual ShaderInfo getShaderInfo(u32 id){return ShaderInfo();}
- virtual u32 getShader(const std::string &name,
- const u8 material_type, const u8 drawtype){return 0;}
-
virtual void processQueue()=0;
virtual void insertSourceShader(const std::string &name_of_shader,
const std::string &filename, const std::string &program)=0;
virtual void rebuildShaders()=0;
+
+ /// @note Takes ownership of @p setter.
virtual void addShaderConstantSetterFactory(IShaderConstantSetterFactory *setter) = 0;
};
diff --git a/src/client/sky.cpp b/src/client/sky.cpp
index 2e0cbca86..3a40321dd 100644
--- a/src/client/sky.cpp
+++ b/src/client/sky.cpp
@@ -1,6 +1,7 @@
/*
Minetest
Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
+Copyright (C) 2020 numzero, Lobachevskiy Vitaliy <numzer0@yandex.ru>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
@@ -34,16 +35,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "config.h"
using namespace irr::core;
-Sky::Sky(s32 id, ITextureSource *tsrc) :
- scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(),
- RenderingEngine::get_scene_manager(), id)
+static video::SMaterial baseMaterial()
{
- setAutomaticCulling(scene::EAC_OFF);
- m_box.MaxEdge.set(0, 0, 0);
- m_box.MinEdge.set(0, 0, 0);
-
- // Create material
-
video::SMaterial mat;
mat.Lighting = false;
#if ENABLE_GLES
@@ -56,14 +49,31 @@ Sky::Sky(s32 id, ITextureSource *tsrc) :
mat.TextureLayer[0].TextureWrapU = video::ETC_CLAMP_TO_EDGE;
mat.TextureLayer[0].TextureWrapV = video::ETC_CLAMP_TO_EDGE;
mat.BackfaceCulling = false;
+ return mat;
+};
+
+Sky::Sky(s32 id, ITextureSource *tsrc, IShaderSource *ssrc) :
+ scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(),
+ RenderingEngine::get_scene_manager(), id)
+{
+ setAutomaticCulling(scene::EAC_OFF);
+ m_box.MaxEdge.set(0, 0, 0);
+ m_box.MinEdge.set(0, 0, 0);
+
+ m_enable_shaders = g_settings->getBool("enable_shaders");
- m_materials[0] = mat;
+ // Create materials
- m_materials[1] = mat;
+ m_materials[0] = baseMaterial();
+ m_materials[0].MaterialType = ssrc->getShaderInfo(ssrc->getShader("stars_shader", TILE_MATERIAL_ALPHA)).material;
+ m_materials[0].Lighting = true;
+ m_materials[0].ColorMaterial = video::ECM_NONE;
+
+ m_materials[1] = baseMaterial();
//m_materials[1].MaterialType = video::EMT_TRANSPARENT_VERTEX_ALPHA;
m_materials[1].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
- m_materials[2] = mat;
+ m_materials[2] = baseMaterial();
m_materials[2].setTexture(0, tsrc->getTextureForMesh("sunrisebg.png"));
m_materials[2].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
//m_materials[2].MaterialType = video::EMT_TRANSPARENT_ADD_COLOR;
@@ -80,7 +90,7 @@ Sky::Sky(s32 id, ITextureSource *tsrc) :
tsrc->getTexture(m_moon_params.tonemap) : NULL;
if (m_sun_texture) {
- m_materials[3] = mat;
+ m_materials[3] = baseMaterial();
m_materials[3].setTexture(0, m_sun_texture);
m_materials[3].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
// Disables texture filtering
@@ -92,7 +102,7 @@ Sky::Sky(s32 id, ITextureSource *tsrc) :
m_materials[3].Lighting = true;
}
if (m_moon_texture) {
- m_materials[4] = mat;
+ m_materials[4] = baseMaterial();
m_materials[4].setTexture(0, m_moon_texture);
m_materials[4].MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
// Disables texture filtering
@@ -105,7 +115,7 @@ Sky::Sky(s32 id, ITextureSource *tsrc) :
}
for (int i = 5; i < 11; i++) {
- m_materials[i] = mat;
+ m_materials[i] = baseMaterial();
m_materials[i].Lighting = true;
m_materials[i].MaterialType = video::EMT_SOLID;
}
@@ -202,7 +212,7 @@ void Sky::render()
const f32 t = 1.0f;
const f32 o = 0.0f;
- static const u16 indices[4] = {0, 1, 2, 3};
+ static const u16 indices[6] = {0, 1, 2, 0, 2, 3};
video::S3DVertex vertices[4];
driver->setMaterial(m_materials[1]);
@@ -244,7 +254,7 @@ void Sky::render()
vertex.Pos.rotateXZBy(180);
}
}
- driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2);
+ driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2);
}
}
@@ -270,7 +280,7 @@ void Sky::render()
// Switch from -Z (south) to +Z (north)
vertex.Pos.rotateXZBy(-180);
}
- driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2);
+ driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2);
}
}
@@ -301,7 +311,7 @@ void Sky::render()
// Switch from -Z (south) to -X (west)
vertex.Pos.rotateXZBy(-90);
}
- driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2);
+ driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2);
}
// Draw sun
@@ -337,7 +347,7 @@ void Sky::render()
// Switch from -Z (south) to +Z (north)
vertex.Pos.rotateXZBy(-180);
}
- driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2);
+ driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2);
}
// Draw bottom far cloudy fog thing in front of sun, moon and stars
@@ -346,7 +356,7 @@ void Sky::render()
vertices[1] = video::S3DVertex( 1, -1.0, -1, 0, 1, 0, c, o, t);
vertices[2] = video::S3DVertex( 1, -1.0, 1, 0, 1, 0, c, o, o);
vertices[3] = video::S3DVertex(-1, -1.0, 1, 0, 1, 0, c, t, o);
- driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2);
+ driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2);
}
}
}
@@ -590,7 +600,7 @@ void Sky::draw_sun(video::IVideoDriver *driver, float sunsize, const video::SCol
* wicked_time_of_day: current time of day, to know where should be the sun in the sky
*/
{
- static const u16 indices[4] = {0, 1, 2, 3};
+ static const u16 indices[] = {0, 1, 2, 0, 2, 3};
std::array<video::S3DVertex, 4> vertices;
if (!m_sun_texture) {
driver->setMaterial(m_materials[1]);
@@ -608,7 +618,7 @@ void Sky::draw_sun(video::IVideoDriver *driver, float sunsize, const video::SCol
for (int i = 0; i < 4; i++) {
draw_sky_body(vertices, -sunsizes[i], sunsizes[i], colors[i]);
place_sky_body(vertices, 90, wicked_time_of_day * 360 - 90);
- driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2);
+ driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2);
}
} else {
driver->setMaterial(m_materials[3]);
@@ -620,7 +630,7 @@ void Sky::draw_sun(video::IVideoDriver *driver, float sunsize, const video::SCol
c = video::SColor(255, 255, 255, 255);
draw_sky_body(vertices, -d, d, c);
place_sky_body(vertices, 90, wicked_time_of_day * 360 - 90);
- driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2);
+ driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2);
}
}
@@ -637,7 +647,7 @@ void Sky::draw_moon(video::IVideoDriver *driver, float moonsize, const video::SC
* the sky
*/
{
- static const u16 indices[4] = {0, 1, 2, 3};
+ static const u16 indices[] = {0, 1, 2, 0, 2, 3};
std::array<video::S3DVertex, 4> vertices;
if (!m_moon_texture) {
driver->setMaterial(m_materials[1]);
@@ -661,7 +671,7 @@ void Sky::draw_moon(video::IVideoDriver *driver, float moonsize, const video::SC
for (int i = 0; i < 4; i++) {
draw_sky_body(vertices, moonsizes_1[i], moonsizes_2[i], colors[i]);
place_sky_body(vertices, -90, wicked_time_of_day * 360 - 90);
- driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2);
+ driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2);
}
} else {
driver->setMaterial(m_materials[4]);
@@ -673,13 +683,12 @@ void Sky::draw_moon(video::IVideoDriver *driver, float moonsize, const video::SC
c = video::SColor(255, 255, 255, 255);
draw_sky_body(vertices, -d, d, c);
place_sky_body(vertices, -90, wicked_time_of_day * 360 - 90);
- driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2);
+ driver->drawIndexedTriangleList(&vertices[0], 4, indices, 2);
}
}
void Sky::draw_stars(video::IVideoDriver * driver, float wicked_time_of_day)
{
- driver->setMaterial(m_materials[1]);
// Tune values so that stars first appear just after the sun
// disappears over the horizon, and disappear just before the sun
// appears over the horizon.
@@ -687,87 +696,18 @@ void Sky::draw_stars(video::IVideoDriver * driver, float wicked_time_of_day)
// to time 4000.
float tod = wicked_time_of_day < 0.5f ? wicked_time_of_day : (1.0f - wicked_time_of_day);
- float starbrightness = clamp((0.25f - fabsf(tod)) * 20.0f, 0.0f, 1.0f);
-
- float f = starbrightness;
- float d = (0.006 / 2) * m_star_params.scale;
-
- video::SColor starcolor = m_star_params.starcolor;
- starcolor.setAlpha(f * m_star_params.starcolor.getAlpha());
-
- // Stars are only drawn when not fully transparent
- if (m_star_params.starcolor.getAlpha() < 1)
+ float starbrightness = (0.25f - fabsf(tod)) * 20.0f;
+ m_star_color = m_star_params.starcolor;
+ m_star_color.a *= clamp(starbrightness, 0.0f, 1.0f);
+ if (m_star_color.a <= 0.0f) // Stars are only drawn when not fully transparent
return;
-#if ENABLE_GLES
- u16 *indices = new u16[m_star_params.count * 3];
- video::S3DVertex *vertices =
- new video::S3DVertex[m_star_params.count * 3];
- for (u32 i = 0; i < m_star_params.count; i++) {
- indices[i * 3 + 0] = i * 3 + 0;
- indices[i * 3 + 1] = i * 3 + 1;
- indices[i * 3 + 2] = i * 3 + 2;
- v3f r = m_stars[i];
- core::CMatrix4<f32> a;
- a.buildRotateFromTo(v3f(0, 1, 0), r);
- v3f p = v3f(-d, 1, -d);
- v3f p1 = v3f(d, 1, 0);
- v3f p2 = v3f(-d, 1, d);
- a.rotateVect(p);
- a.rotateVect(p1);
- a.rotateVect(p2);
- p.rotateXYBy(wicked_time_of_day * 360 - 90);
- p1.rotateXYBy(wicked_time_of_day * 360 - 90);
- p2.rotateXYBy(wicked_time_of_day * 360 - 90);
- vertices[i * 3 + 0].Pos = p;
- vertices[i * 3 + 0].Color = starcolor;
- vertices[i * 3 + 1].Pos = p1;
- vertices[i * 3 + 1].Color = starcolor;
- vertices[i * 3 + 2].Pos = p2;
- vertices[i * 3 + 2].Color = starcolor;
- }
- driver->drawIndexedTriangleList(vertices, m_star_params.count * 3,
- indices, m_star_params.count);
- delete[] indices;
- delete[] vertices;
-#else
- u16 *indices = new u16[m_star_params.count * 4];
- video::S3DVertex *vertices =
- new video::S3DVertex[m_star_params.count * 4];
- for (u32 i = 0; i < m_star_params.count; i++) {
- indices[i * 4 + 0] = i * 4 + 0;
- indices[i * 4 + 1] = i * 4 + 1;
- indices[i * 4 + 2] = i * 4 + 2;
- indices[i * 4 + 3] = i * 4 + 3;
- v3f r = m_stars[i];
- core::CMatrix4<f32> a;
- a.buildRotateFromTo(v3f(0, 1, 0), r);
- v3f p = v3f(-d, 1, -d);
- v3f p1 = v3f(d, 1, -d);
- v3f p2 = v3f(d, 1, d);
- v3f p3 = v3f(-d, 1, d);
- a.rotateVect(p);
- a.rotateVect(p1);
- a.rotateVect(p2);
- a.rotateVect(p3);
- p.rotateXYBy(wicked_time_of_day * 360 - 90);
- p1.rotateXYBy(wicked_time_of_day * 360 - 90);
- p2.rotateXYBy(wicked_time_of_day * 360 - 90);
- p3.rotateXYBy(wicked_time_of_day * 360 - 90);
- vertices[i * 4 + 0].Pos = p;
- vertices[i * 4 + 0].Color = starcolor;
- vertices[i * 4 + 1].Pos = p1;
- vertices[i * 4 + 1].Color = starcolor;
- vertices[i * 4 + 2].Pos = p2;
- vertices[i * 4 + 2].Color = starcolor;
- vertices[i * 4 + 3].Pos = p3;
- vertices[i * 4 + 3].Color = starcolor;
- }
- driver->drawVertexPrimitiveList(vertices, m_star_params.count * 4,
- indices, m_star_params.count, video::EVT_STANDARD,
- scene::EPT_QUADS, video::EIT_16BIT);
- delete[] indices;
- delete[] vertices;
-#endif
+ m_materials[0].DiffuseColor = m_materials[0].EmissiveColor = m_star_color.toSColor();
+ auto sky_rotation = core::matrix4().setRotationAxisRadians(2.0f * M_PI * (wicked_time_of_day - 0.25f), v3f(0.0f, 0.0f, 1.0f));
+ auto world_matrix = driver->getTransform(video::ETS_WORLD);
+ driver->setTransform(video::ETS_WORLD, world_matrix * sky_rotation);
+ driver->setMaterial(m_materials[0]);
+ driver->drawMeshBuffer(m_stars.get());
+ driver->setTransform(video::ETS_WORLD, world_matrix);
}
void Sky::draw_sky_body(std::array<video::S3DVertex, 4> &vertices, float pos_1, float pos_2, const video::SColor &c)
@@ -822,7 +762,7 @@ void Sky::setSunTexture(std::string sun_texture,
m_sun_texture = tsrc->getTextureForMesh(m_sun_params.texture);
if (m_sun_texture) {
- m_materials[3] = m_materials[0];
+ m_materials[3] = baseMaterial();
m_materials[3].setTexture(0, m_sun_texture);
m_materials[3].MaterialType = video::
EMT_TRANSPARENT_ALPHA_CHANNEL;
@@ -870,7 +810,7 @@ void Sky::setMoonTexture(std::string moon_texture,
m_moon_texture = tsrc->getTextureForMesh(m_moon_params.texture);
if (m_moon_texture) {
- m_materials[4] = m_materials[0];
+ m_materials[4] = baseMaterial();
m_materials[4].setTexture(0, m_moon_texture);
m_materials[4].MaterialType = video::
EMT_TRANSPARENT_ALPHA_CHANNEL;
@@ -892,19 +832,58 @@ void Sky::setStarCount(u16 star_count, bool force_update)
// Allow force updating star count at game init.
if (m_star_params.count != star_count || force_update) {
m_star_params.count = star_count;
- m_stars.clear();
- // Rebuild the stars surrounding the camera
- for (u16 i = 0; i < star_count; i++) {
- v3f star = v3f(
- myrand_range(-10000, 10000),
- myrand_range(-10000, 10000),
- myrand_range(-10000, 10000)
- );
-
- star.normalize();
- m_stars.emplace_back(star);
- }
+ m_seed = (u64)myrand() << 32 | myrand();
+ updateStars();
+ }
+}
+
+void Sky::updateStars()
+{
+ m_stars.reset(new scene::SMeshBuffer());
+ // Stupid IrrLicht doesn’t allow non-indexed rendering, and indexed quad
+ // rendering is slow due to lack of hardware support. So as indices are
+ // 16-bit and there are 4 vertices per star... the limit is 2^16/4 = 0x4000.
+ // That should be well enough actually.
+ if (m_star_params.count > 0x4000) {
+ warningstream << "Requested " << m_star_params.count << " stars but " << 0x4000 << " is the max\n";
+ m_star_params.count = 0x4000;
+ }
+ m_stars->Vertices.reallocate(4 * m_star_params.count);
+ m_stars->Indices.reallocate(6 * m_star_params.count);
+
+ video::SColor fallback_color = m_star_params.starcolor; // used on GLES 2 “without shadersâ€
+ PcgRandom rgen(m_seed);
+ float d = (0.006 / 2) * m_star_params.scale;
+ for (u16 i = 0; i < m_star_params.count; i++) {
+ v3f r = v3f(
+ rgen.range(-10000, 10000),
+ rgen.range(-10000, 10000),
+ rgen.range(-10000, 10000)
+ );
+ core::CMatrix4<f32> a;
+ a.buildRotateFromTo(v3f(0, 1, 0), r);
+ v3f p = v3f(-d, 1, -d);
+ v3f p1 = v3f(d, 1, -d);
+ v3f p2 = v3f(d, 1, d);
+ v3f p3 = v3f(-d, 1, d);
+ a.rotateVect(p);
+ a.rotateVect(p1);
+ a.rotateVect(p2);
+ a.rotateVect(p3);
+ m_stars->Vertices.push_back(video::S3DVertex(p, {}, fallback_color, {}));
+ m_stars->Vertices.push_back(video::S3DVertex(p1, {}, fallback_color, {}));
+ m_stars->Vertices.push_back(video::S3DVertex(p2, {}, fallback_color, {}));
+ m_stars->Vertices.push_back(video::S3DVertex(p3, {}, fallback_color, {}));
+ }
+ for (u16 i = 0; i < m_star_params.count; i++) {
+ m_stars->Indices.push_back(i * 4 + 0);
+ m_stars->Indices.push_back(i * 4 + 1);
+ m_stars->Indices.push_back(i * 4 + 2);
+ m_stars->Indices.push_back(i * 4 + 2);
+ m_stars->Indices.push_back(i * 4 + 3);
+ m_stars->Indices.push_back(i * 4 + 0);
}
+ m_stars->setHardwareMappingHint(scene::EHM_STATIC);
}
void Sky::setSkyColors(const SkyColor &sky_color)
@@ -936,7 +915,7 @@ void Sky::addTextureToSkybox(std::string texture, int material_id,
// Keep a list of texture names handy.
m_sky_params.textures.emplace_back(texture);
video::ITexture *result = tsrc->getTextureForMesh(texture);
- m_materials[material_id+5] = m_materials[0];
+ m_materials[material_id+5] = baseMaterial();
m_materials[material_id+5].setTexture(0, result);
m_materials[material_id+5].MaterialType = video::EMT_SOLID;
}
diff --git a/src/client/sky.h b/src/client/sky.h
index 3227e8f59..342a97596 100644
--- a/src/client/sky.h
+++ b/src/client/sky.h
@@ -17,10 +17,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+#include "irrlichttypes_extrabloated.h"
#include <ISceneNode.h>
#include <array>
#include "camera.h"
-#include "irrlichttypes_extrabloated.h"
+#include "irr_ptr.h"
+#include "shader.h"
#include "skyparams.h"
#pragma once
@@ -34,7 +36,7 @@ class Sky : public scene::ISceneNode
{
public:
//! constructor
- Sky(s32 id, ITextureSource *tsrc);
+ Sky(s32 id, ITextureSource *tsrc, IShaderSource *ssrc);
virtual void OnRegisterSceneNode();
@@ -77,7 +79,7 @@ public:
void setStarsVisible(bool stars_visible) { m_star_params.visible = stars_visible; }
void setStarCount(u16 star_count, bool force_update);
void setStarColor(video::SColor star_color) { m_star_params.starcolor = star_color; }
- void setStarScale(f32 star_scale) { m_star_params.scale = star_scale; }
+ void setStarScale(f32 star_scale) { m_star_params.scale = star_scale; updateStars(); }
bool getCloudsVisible() const { return m_clouds_visible && m_clouds_enabled; }
const video::SColorf &getCloudColor() const { return m_cloudcolor_f; }
@@ -101,6 +103,8 @@ public:
void clearSkyboxTextures() { m_sky_params.textures.clear(); }
void addTextureToSkybox(std::string texture, int material_id,
ITextureSource *tsrc);
+ const video::SColorf &getCurrentStarColor() const { return m_star_color; }
+
private:
aabb3f m_box;
video::SMaterial m_materials[SKY_MATERIAL_COUNT];
@@ -154,6 +158,7 @@ private:
bool m_clouds_enabled = true; // Initialised to true, reset only by set_sky API
bool m_directional_colored_fog;
bool m_in_clouds = true; // Prevent duplicating bools to remember old values
+ bool m_enable_shaders = false;
video::SColorf m_bgcolor_bright_f = video::SColorf(1.0f, 1.0f, 1.0f, 1.0f);
video::SColorf m_skycolor_bright_f = video::SColorf(1.0f, 1.0f, 1.0f, 1.0f);
@@ -178,13 +183,17 @@ private:
bool m_default_tint = true;
- std::vector<v3f> m_stars;
+ u64 m_seed = 0;
+ irr_ptr<scene::SMeshBuffer> m_stars;
+ video::SColorf m_star_color;
video::ITexture *m_sun_texture;
video::ITexture *m_moon_texture;
video::ITexture *m_sun_tonemap;
video::ITexture *m_moon_tonemap;
+ void updateStars();
+
void draw_sun(video::IVideoDriver *driver, float sunsize, const video::SColor &suncolor,
const video::SColor &suncolor2, float wicked_time_of_day);
void draw_moon(video::IVideoDriver *driver, float moonsize, const video::SColor &mooncolor,
diff --git a/src/client/sound_openal.cpp b/src/client/sound_openal.cpp
index 20a651c1d..f4e61f93e 100644
--- a/src/client/sound_openal.cpp
+++ b/src/client/sound_openal.cpp
@@ -28,6 +28,7 @@ with this program; ifnot, write to the Free Software Foundation, Inc.,
#include <alc.h>
//#include <alext.h>
#elif defined(__APPLE__)
+ #define OPENAL_DEPRECATED
#include <OpenAL/al.h>
#include <OpenAL/alc.h>
//#include <OpenAL/alext.h>
@@ -337,14 +338,12 @@ private:
};
std::unordered_map<int, FadeState> m_sounds_fading;
- float m_fade_delay;
public:
OpenALSoundManager(SoundManagerSingleton *smg, OnDemandSoundFetcher *fetcher):
m_fetcher(fetcher),
m_device(smg->m_device.get()),
m_context(smg->m_context.get()),
- m_next_id(1),
- m_fade_delay(0)
+ m_next_id(1)
{
infostream << "Audio: Initialized: OpenAL " << std::endl;
}
@@ -616,38 +615,45 @@ public:
void fadeSound(int soundid, float step, float gain)
{
- m_sounds_fading[soundid] = FadeState(step, getSoundGain(soundid), gain);
+ // Ignore the command if step isn't valid.
+ if (step == 0)
+ return;
+ float current_gain = getSoundGain(soundid);
+ step = gain - current_gain > 0 ? abs(step) : -abs(step);
+ if (m_sounds_fading.find(soundid) != m_sounds_fading.end()) {
+ auto current_fade = m_sounds_fading[soundid];
+ // Do not replace the fade if it's equivalent.
+ if (current_fade.target_gain == gain && current_fade.step == step)
+ return;
+ m_sounds_fading.erase(soundid);
+ }
+ gain = rangelim(gain, 0, 1);
+ m_sounds_fading[soundid] = FadeState(step, current_gain, gain);
}
void doFades(float dtime)
{
- m_fade_delay += dtime;
-
- if (m_fade_delay < 0.1f)
- return;
+ for (auto i = m_sounds_fading.begin(); i != m_sounds_fading.end();) {
+ FadeState& fade = i->second;
+ assert(fade.step != 0);
+ fade.current_gain += (fade.step * dtime);
- float chkGain = 0;
- for (auto i = m_sounds_fading.begin();
- i != m_sounds_fading.end();) {
- if (i->second.step < 0.f)
- chkGain = -(i->second.current_gain);
+ if (fade.step < 0.f)
+ fade.current_gain = std::max(fade.current_gain, fade.target_gain);
else
- chkGain = i->second.current_gain;
+ fade.current_gain = std::min(fade.current_gain, fade.target_gain);
- if (chkGain < i->second.target_gain) {
- i->second.current_gain += (i->second.step * m_fade_delay);
- i->second.current_gain = rangelim(i->second.current_gain, 0, 1);
-
- updateSoundGain(i->first, i->second.current_gain);
- ++i;
- } else {
- if (i->second.target_gain <= 0.f)
- stopSound(i->first);
+ if (fade.current_gain <= 0.f)
+ stopSound(i->first);
+ else
+ updateSoundGain(i->first, fade.current_gain);
+ // The increment must happen during the erase call, or else it'll segfault.
+ if (fade.current_gain == fade.target_gain)
m_sounds_fading.erase(i++);
- }
+ else
+ i++;
}
- m_fade_delay = 0;
}
bool soundExists(int sound)
diff --git a/src/client/tile.cpp b/src/client/tile.cpp
index d03588b2b..f2639757e 100644
--- a/src/client/tile.cpp
+++ b/src/client/tile.cpp
@@ -429,7 +429,6 @@ private:
// Cached settings needed for making textures from meshes
bool m_setting_trilinear_filter;
bool m_setting_bilinear_filter;
- bool m_setting_anisotropic_filter;
};
IWritableTextureSource *createTextureSource()
@@ -450,7 +449,6 @@ TextureSource::TextureSource()
// for these settings to take effect
m_setting_trilinear_filter = g_settings->getBool("trilinear_filter");
m_setting_bilinear_filter = g_settings->getBool("bilinear_filter");
- m_setting_anisotropic_filter = g_settings->getBool("anisotropic_filter");
}
TextureSource::~TextureSource()
@@ -1633,6 +1631,13 @@ bool TextureSource::generateImagePart(std::string part_of_name,
/* IMPORTANT: When changing this, getTextureForMesh() needs to be
* updated too. */
+ if (!baseimg) {
+ errorstream << "generateImagePart(): baseimg == NULL "
+ << "for part_of_name=\"" << part_of_name
+ << "\", cancelling." << std::endl;
+ return false;
+ }
+
// Apply the "clean transparent" filter, if configured.
if (g_settings->getBool("texture_clean_transparent"))
imageCleanTransparent(baseimg, 127);
@@ -2219,9 +2224,14 @@ video::SColor TextureSource::getTextureAverageColor(const std::string &name)
video::IVideoDriver *driver = RenderingEngine::get_video_driver();
video::SColor c(0, 0, 0, 0);
video::ITexture *texture = getTexture(name);
+ if (!texture)
+ return c;
video::IImage *image = driver->createImage(texture,
core::position2d<s32>(0, 0),
texture->getOriginalSize());
+ if (!image)
+ return c;
+
u32 total = 0;
u32 tR = 0;
u32 tG = 0;
diff --git a/src/client/tile.h b/src/client/tile.h
index 52e0a2b2b..49c46f749 100644
--- a/src/client/tile.h
+++ b/src/client/tile.h
@@ -25,7 +25,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <string>
#include <vector>
#include <SMaterial.h>
-#include <memory>
#include "util/numeric.h"
#include "config.h"
@@ -272,7 +271,7 @@ struct TileLayer
u32 texture_id = 0;
u16 animation_frame_length_ms = 0;
- u8 animation_frame_count = 1;
+ u16 animation_frame_count = 1;
u8 material_type = TILE_MATERIAL_BASIC;
u8 material_flags =
@@ -284,7 +283,7 @@ struct TileLayer
//! If true, the tile has its own color.
bool has_color = false;
- std::shared_ptr<std::vector<FrameSpec>> frames = nullptr;
+ std::vector<FrameSpec> *frames = nullptr;
/*!
* The color of the tile, or if the tile does not own
diff --git a/src/client/wieldmesh.cpp b/src/client/wieldmesh.cpp
index 8cd3e29a9..ad583210a 100644
--- a/src/client/wieldmesh.cpp
+++ b/src/client/wieldmesh.cpp
@@ -303,13 +303,24 @@ void WieldMeshSceneNode::setExtruded(const std::string &imagename,
}
}
-scene::SMesh *createSpecialNodeMesh(Client *client, content_t id, std::vector<ItemPartColor> *colors)
+scene::SMesh *createSpecialNodeMesh(Client *client, content_t id, std::vector<ItemPartColor> *colors, const ContentFeatures &f)
{
- MeshMakeData mesh_make_data(client, false, false);
+ MeshMakeData mesh_make_data(client, false);
MeshCollector collector;
mesh_make_data.setSmoothLighting(false);
MapblockMeshGenerator gen(&mesh_make_data, &collector);
- gen.renderSingle(id);
+ u8 param2 = 0;
+ if (f.param_type_2 == CPT2_WALLMOUNTED ||
+ f.param_type_2 == CPT2_COLORED_WALLMOUNTED) {
+ if (f.drawtype == NDT_TORCHLIKE)
+ param2 = 1;
+ else if (f.drawtype == NDT_SIGNLIKE ||
+ f.drawtype == NDT_NODEBOX ||
+ f.drawtype == NDT_MESH)
+ param2 = 4;
+ }
+ gen.renderSingle(id, param2);
+
colors->clear();
scene::SMesh *mesh = new scene::SMesh();
for (auto &prebuffers : collector.prebuffers)
@@ -319,8 +330,9 @@ scene::SMesh *createSpecialNodeMesh(Client *client, content_t id, std::vector<It
p.layer.texture = frame.texture;
p.layer.normal_texture = frame.normal_texture;
}
- for (video::S3DVertex &v : p.vertices)
+ for (video::S3DVertex &v : p.vertices) {
v.Color.setAlpha(255);
+ }
scene::SMeshBuffer *buf = new scene::SMeshBuffer();
buf->Material.setTexture(0, p.layer.texture);
p.layer.applyMaterialOptions(buf->Material);
@@ -368,73 +380,61 @@ void WieldMeshSceneNode::setItem(const ItemStack &item, Client *client, bool che
// Handle nodes
// See also CItemDefManager::createClientCached()
if (def.type == ITEM_NODE) {
- if (f.mesh_ptr[0]) {
- // e.g. mesh nodes and nodeboxes
- mesh = cloneMesh(f.mesh_ptr[0]);
- postProcessNodeMesh(mesh, f, m_enable_shaders, true,
- &m_material_type, &m_colors);
+ bool cull_backface = f.needsBackfaceCulling();
+
+ // Select rendering method
+ switch (f.drawtype) {
+ case NDT_AIRLIKE:
+ setExtruded("no_texture_airlike.png", "",
+ v3f(1.0, 1.0, 1.0), tsrc, 1);
+ break;
+ case NDT_SIGNLIKE:
+ case NDT_TORCHLIKE:
+ case NDT_RAILLIKE:
+ case NDT_PLANTLIKE:
+ case NDT_PLANTLIKE_ROOTED:
+ case NDT_FLOWINGLIQUID: {
+ v3f wscale = def.wield_scale;
+ if (f.drawtype == NDT_FLOWINGLIQUID)
+ wscale.Z *= 0.1f;
+ setExtruded(tsrc->getTextureName(f.tiles[0].layers[0].texture_id),
+ tsrc->getTextureName(f.tiles[0].layers[1].texture_id),
+ wscale, tsrc,
+ f.tiles[0].layers[0].animation_frame_count);
+ // Add color
+ const TileLayer &l0 = f.tiles[0].layers[0];
+ m_colors.emplace_back(l0.has_color, l0.color);
+ const TileLayer &l1 = f.tiles[0].layers[1];
+ m_colors.emplace_back(l1.has_color, l1.color);
+ break;
+ }
+ case NDT_NORMAL:
+ case NDT_ALLFACES:
+ case NDT_LIQUID:
+ setCube(f, def.wield_scale);
+ break;
+ default:
+ // Render non-trivial drawtypes like the actual node
+ mesh = createSpecialNodeMesh(client, id, &m_colors, f);
changeToMesh(mesh);
mesh->drop();
- // mesh is pre-scaled by BS * f->visual_scale
m_meshnode->setScale(
- def.wield_scale * WIELD_SCALE_FACTOR
- / (BS * f.visual_scale));
- } else {
- switch (f.drawtype) {
- case NDT_AIRLIKE: {
- changeToMesh(nullptr);
- break;
- }
- case NDT_PLANTLIKE: {
- setExtruded(tsrc->getTextureName(f.tiles[0].layers[0].texture_id),
- tsrc->getTextureName(f.tiles[0].layers[1].texture_id),
- def.wield_scale, tsrc,
- f.tiles[0].layers[0].animation_frame_count);
- // Add color
- const TileLayer &l0 = f.tiles[0].layers[0];
- m_colors.emplace_back(l0.has_color, l0.color);
- const TileLayer &l1 = f.tiles[0].layers[1];
- m_colors.emplace_back(l1.has_color, l1.color);
- break;
- }
- case NDT_PLANTLIKE_ROOTED: {
- setExtruded(tsrc->getTextureName(f.special_tiles[0].layers[0].texture_id),
- "", def.wield_scale, tsrc,
- f.special_tiles[0].layers[0].animation_frame_count);
- // Add color
- const TileLayer &l0 = f.special_tiles[0].layers[0];
- m_colors.emplace_back(l0.has_color, l0.color);
- break;
- }
- case NDT_NORMAL:
- case NDT_ALLFACES:
- case NDT_LIQUID:
- case NDT_FLOWINGLIQUID: {
- setCube(f, def.wield_scale);
- break;
- }
- default: {
- mesh = createSpecialNodeMesh(client, id, &m_colors);
- changeToMesh(mesh);
- mesh->drop();
- m_meshnode->setScale(
- def.wield_scale * WIELD_SCALE_FACTOR
- / (BS * f.visual_scale));
- }
- }
+ def.wield_scale * WIELD_SCALE_FACTOR
+ / (BS * f.visual_scale));
+ break;
}
+
u32 material_count = m_meshnode->getMaterialCount();
for (u32 i = 0; i < material_count; ++i) {
video::SMaterial &material = m_meshnode->getMaterial(i);
material.MaterialType = m_material_type;
material.MaterialTypeParam = 0.5f;
- material.setFlag(video::EMF_BACK_FACE_CULLING, true);
+ material.setFlag(video::EMF_BACK_FACE_CULLING, cull_backface);
material.setFlag(video::EMF_BILINEAR_FILTER, m_bilinear_filter);
material.setFlag(video::EMF_TRILINEAR_FILTER, m_trilinear_filter);
}
return;
- }
- else if (!def.inventory_image.empty()) {
+ } else if (!def.inventory_image.empty()) {
setExtruded(def.inventory_image, def.inventory_overlay, def.wield_scale,
tsrc, 1);
m_colors.emplace_back();
@@ -529,6 +529,8 @@ void getItemMesh(Client *client, const ItemStack &item, ItemMesh *result)
// Shading is on by default
result->needs_shading = true;
+ bool cull_backface = f.needsBackfaceCulling();
+
// If inventory_image is defined, it overrides everything else
if (!def.inventory_image.empty()) {
mesh = getExtrudedMesh(tsrc, def.inventory_image,
@@ -538,51 +540,56 @@ void getItemMesh(Client *client, const ItemStack &item, ItemMesh *result)
result->buffer_colors.emplace_back(true, video::SColor(0xFFFFFFFF));
// Items with inventory images do not need shading
result->needs_shading = false;
+ } else if (def.type == ITEM_NODE && f.drawtype == NDT_AIRLIKE) {
+ // Fallback image for airlike node
+ mesh = getExtrudedMesh(tsrc, "no_texture_airlike.png",
+ def.inventory_overlay);
+ result->needs_shading = false;
} else if (def.type == ITEM_NODE) {
- if (f.mesh_ptr[0]) {
- mesh = cloneMesh(f.mesh_ptr[0]);
- scaleMesh(mesh, v3f(0.12, 0.12, 0.12));
+ switch (f.drawtype) {
+ case NDT_NORMAL:
+ case NDT_ALLFACES:
+ case NDT_LIQUID:
+ case NDT_FLOWINGLIQUID: {
+ scene::IMesh *cube = g_extrusion_mesh_cache->createCube();
+ mesh = cloneMesh(cube);
+ cube->drop();
+ if (f.drawtype == NDT_FLOWINGLIQUID) {
+ scaleMesh(mesh, v3f(1.2, 0.03, 1.2));
+ translateMesh(mesh, v3f(0, -0.57, 0));
+ } else
+ scaleMesh(mesh, v3f(1.2, 1.2, 1.2));
+ // add overlays
postProcessNodeMesh(mesh, f, false, false, nullptr,
- &result->buffer_colors);
- } else {
- switch (f.drawtype) {
- case NDT_PLANTLIKE: {
- mesh = getExtrudedMesh(tsrc,
- tsrc->getTextureName(f.tiles[0].layers[0].texture_id),
- tsrc->getTextureName(f.tiles[0].layers[1].texture_id));
- // Add color
- const TileLayer &l0 = f.tiles[0].layers[0];
- result->buffer_colors.emplace_back(l0.has_color, l0.color);
- const TileLayer &l1 = f.tiles[0].layers[1];
- result->buffer_colors.emplace_back(l1.has_color, l1.color);
- break;
- }
- case NDT_PLANTLIKE_ROOTED: {
- mesh = getExtrudedMesh(tsrc,
- tsrc->getTextureName(f.special_tiles[0].layers[0].texture_id), "");
- // Add color
- const TileLayer &l0 = f.special_tiles[0].layers[0];
- result->buffer_colors.emplace_back(l0.has_color, l0.color);
- break;
- }
- case NDT_NORMAL:
- case NDT_ALLFACES:
- case NDT_LIQUID:
- case NDT_FLOWINGLIQUID: {
- scene::IMesh *cube = g_extrusion_mesh_cache->createCube();
- mesh = cloneMesh(cube);
- cube->drop();
- scaleMesh(mesh, v3f(1.2, 1.2, 1.2));
- // add overlays
- postProcessNodeMesh(mesh, f, false, false, nullptr,
- &result->buffer_colors);
- break;
- }
- default: {
- mesh = createSpecialNodeMesh(client, id, &result->buffer_colors);
- scaleMesh(mesh, v3f(0.12, 0.12, 0.12));
- }
- }
+ &result->buffer_colors, true);
+ if (f.drawtype == NDT_ALLFACES)
+ scaleMesh(mesh, v3f(f.visual_scale));
+ break;
+ }
+ case NDT_PLANTLIKE: {
+ mesh = getExtrudedMesh(tsrc,
+ tsrc->getTextureName(f.tiles[0].layers[0].texture_id),
+ tsrc->getTextureName(f.tiles[0].layers[1].texture_id));
+ // Add color
+ const TileLayer &l0 = f.tiles[0].layers[0];
+ result->buffer_colors.emplace_back(l0.has_color, l0.color);
+ const TileLayer &l1 = f.tiles[0].layers[1];
+ result->buffer_colors.emplace_back(l1.has_color, l1.color);
+ break;
+ }
+ case NDT_PLANTLIKE_ROOTED: {
+ mesh = getExtrudedMesh(tsrc,
+ tsrc->getTextureName(f.special_tiles[0].layers[0].texture_id), "");
+ // Add color
+ const TileLayer &l0 = f.special_tiles[0].layers[0];
+ result->buffer_colors.emplace_back(l0.has_color, l0.color);
+ break;
+ }
+ default:
+ // Render non-trivial drawtypes like the actual node
+ mesh = createSpecialNodeMesh(client, id, &result->buffer_colors, f);
+ scaleMesh(mesh, v3f(0.12, 0.12, 0.12));
+ break;
}
u32 mc = mesh->getMeshBufferCount();
@@ -593,7 +600,7 @@ void getItemMesh(Client *client, const ItemStack &item, ItemMesh *result)
material.MaterialTypeParam = 0.5f;
material.setFlag(video::EMF_BILINEAR_FILTER, false);
material.setFlag(video::EMF_TRILINEAR_FILTER, false);
- material.setFlag(video::EMF_BACK_FACE_CULLING, true);
+ material.setFlag(video::EMF_BACK_FACE_CULLING, cull_backface);
material.setFlag(video::EMF_LIGHTING, false);
}
diff --git a/src/clientiface.cpp b/src/clientiface.cpp
index 602a44c90..797afd3c1 100644
--- a/src/clientiface.cpp
+++ b/src/clientiface.cpp
@@ -80,10 +80,11 @@ LuaEntitySAO *getAttachedObject(PlayerSAO *sao, ServerEnvironment *env)
int id;
std::string bone;
v3f dummy;
- sao->getAttachment(&id, &bone, &dummy, &dummy);
+ bool force_visible;
+ sao->getAttachment(&id, &bone, &dummy, &dummy, &force_visible);
ServerActiveObject *ao = env->getActiveObject(id);
while (id && ao) {
- ao->getAttachment(&id, &bone, &dummy, &dummy);
+ ao->getAttachment(&id, &bone, &dummy, &dummy, &force_visible);
if (id)
ao = env->getActiveObject(id);
}
@@ -98,7 +99,6 @@ void RemoteClient::GetNextBlocks (
{
// Increment timers
m_nothing_to_send_pause_timer -= dtime;
- m_nearest_unsent_reset_timer += dtime;
if (m_nothing_to_send_pause_timer >= 0)
return;
@@ -138,34 +138,6 @@ void RemoteClient::GetNextBlocks (
camera_dir.rotateYZBy(sao->getLookPitch());
camera_dir.rotateXZBy(sao->getRotation().Y);
- /*infostream<<"camera_dir=("<<camera_dir.X<<","<<camera_dir.Y<<","
- <<camera_dir.Z<<")"<<std::endl;*/
-
- /*
- Get the starting value of the block finder radius.
- */
-
- if (m_last_center != center) {
- m_nearest_unsent_d = 0;
- m_last_center = center;
- }
-
- /*infostream<<"m_nearest_unsent_reset_timer="
- <<m_nearest_unsent_reset_timer<<std::endl;*/
-
- // Reset periodically to workaround for some bugs or stuff
- if (m_nearest_unsent_reset_timer > 20.0f) {
- m_nearest_unsent_reset_timer = 0.0f;
- m_nearest_unsent_d = 0;
- //infostream<<"Resetting m_nearest_unsent_d for "
- // <<server->getPlayerName(peer_id)<<std::endl;
- }
-
- //s16 last_nearest_unsent_d = m_nearest_unsent_d;
- s16 d_start = m_nearest_unsent_d;
-
- //infostream<<"d_start="<<d_start<<std::endl;
-
u16 max_simul_sends_usually = m_max_simul_sends;
/*
@@ -197,6 +169,29 @@ void RemoteClient::GetNextBlocks (
s16 wanted_range = sao->getWantedRange() + 1;
float camera_fov = sao->getFov();
+ /*
+ Get the starting value of the block finder radius.
+ */
+ if (m_last_center != center) {
+ m_nearest_unsent_d = 0;
+ m_last_center = center;
+ }
+ // reset the unsent distance if the view angle has changed more that 10% of the fov
+ // (this matches isBlockInSight which allows for an extra 10%)
+ if (camera_dir.dotProduct(m_last_camera_dir) < std::cos(camera_fov * 0.1f)) {
+ m_nearest_unsent_d = 0;
+ m_last_camera_dir = camera_dir;
+ }
+ if (m_nearest_unsent_d > 0) {
+ // make sure any blocks modified since the last time we sent blocks are resent
+ for (const v3s16 &p : m_blocks_modified) {
+ m_nearest_unsent_d = std::min(m_nearest_unsent_d, center.getDistanceFrom(p));
+ }
+ }
+ m_blocks_modified.clear();
+
+ s16 d_start = m_nearest_unsent_d;
+
// Distrust client-sent FOV and get server-set player object property
// zoom FOV (degrees) as a check to avoid hacked clients using FOV to load
// distant world.
@@ -211,13 +206,13 @@ void RemoteClient::GetNextBlocks (
wanted_range);
const s16 d_blocks_in_sight = full_d_max * BS * MAP_BLOCKSIZE;
- s16 d_max = full_d_max;
s16 d_max_gen = std::min(adjustDist(m_max_gen_distance, prop_zoom_fov),
wanted_range);
- // Don't loop very much at a time, adjust with distance,
- // do more work per RTT with greater distances.
- s16 max_d_increment_at_time = full_d_max / 9 + 1;
+ s16 d_max = full_d_max;
+
+ // Don't loop very much at a time
+ s16 max_d_increment_at_time = 2;
if (d_max > d_start + max_d_increment_at_time)
d_max = d_start + max_d_increment_at_time;
@@ -310,20 +305,14 @@ void RemoteClient::GetNextBlocks (
*/
MapBlock *block = env->getMap().getBlockNoCreateNoEx(p);
- bool surely_not_found_on_disk = false;
- bool block_is_invalid = false;
+ bool block_not_found = false;
if (block) {
// Reset usage timer, this block will be of use in the future.
block->resetUsageTimer();
- // Block is dummy if data doesn't exist.
- // It means it has been not found from disk and not generated
- if (block->isDummy()) {
- surely_not_found_on_disk = true;
- }
-
- if (!block->isGenerated())
- block_is_invalid = true;
+ // Check whether the block exists (with data)
+ if (block->isDummy() || !block->isGenerated())
+ block_not_found = true;
/*
If block is not close, don't send it unless it is near
@@ -337,7 +326,7 @@ void RemoteClient::GetNextBlocks (
continue;
}
- if (m_occ_cull && !block_is_invalid &&
+ if (m_occ_cull && !block_not_found &&
env->getMap().isBlockOccluded(block, cam_pos_nodes)) {
continue;
}
@@ -347,7 +336,7 @@ void RemoteClient::GetNextBlocks (
If block has been marked to not exist on disk (dummy) or is
not generated and generating new ones is not wanted, skip block.
*/
- if (!generate && (surely_not_found_on_disk || block_is_invalid)) {
+ if (!generate && block_not_found) {
// get next one.
continue;
}
@@ -355,7 +344,7 @@ void RemoteClient::GetNextBlocks (
/*
Add inexistent block to emerge queue.
*/
- if (block == NULL || surely_not_found_on_disk || block_is_invalid) {
+ if (block == NULL || block_not_found) {
if (emerge->enqueueBlockEmerge(peer_id, p, generate)) {
if (nearest_emerged_d == -1)
nearest_emerged_d = d;
@@ -408,21 +397,18 @@ queue_full_break:
void RemoteClient::GotBlock(v3s16 p)
{
- if (m_blocks_modified.find(p) == m_blocks_modified.end()) {
- if (m_blocks_sending.find(p) != m_blocks_sending.end())
- m_blocks_sending.erase(p);
- else
- m_excess_gotblocks++;
-
+ if (m_blocks_sending.find(p) != m_blocks_sending.end()) {
+ m_blocks_sending.erase(p);
+ // only add to sent blocks if it actually was sending
+ // (it might have been modified since)
m_blocks_sent.insert(p);
+ } else {
+ m_excess_gotblocks++;
}
}
void RemoteClient::SentBlock(v3s16 p)
{
- if (m_blocks_modified.find(p) != m_blocks_modified.end())
- m_blocks_modified.erase(p);
-
if (m_blocks_sending.find(p) == m_blocks_sending.end())
m_blocks_sending[p] = 0.0f;
else
@@ -432,29 +418,24 @@ void RemoteClient::SentBlock(v3s16 p)
void RemoteClient::SetBlockNotSent(v3s16 p)
{
- m_nearest_unsent_d = 0;
m_nothing_to_send_pause_timer = 0;
- if (m_blocks_sending.find(p) != m_blocks_sending.end())
- m_blocks_sending.erase(p);
- if (m_blocks_sent.find(p) != m_blocks_sent.end())
- m_blocks_sent.erase(p);
- m_blocks_modified.insert(p);
+ // remove the block from sending and sent sets,
+ // and mark as modified if found
+ if (m_blocks_sending.erase(p) + m_blocks_sent.erase(p) > 0)
+ m_blocks_modified.insert(p);
}
void RemoteClient::SetBlocksNotSent(std::map<v3s16, MapBlock*> &blocks)
{
- m_nearest_unsent_d = 0;
m_nothing_to_send_pause_timer = 0;
for (auto &block : blocks) {
v3s16 p = block.first;
- m_blocks_modified.insert(p);
-
- if (m_blocks_sending.find(p) != m_blocks_sending.end())
- m_blocks_sending.erase(p);
- if (m_blocks_sent.find(p) != m_blocks_sent.end())
- m_blocks_sent.erase(p);
+ // remove the block from sending and sent sets,
+ // and mark as modified if found
+ if (m_blocks_sending.erase(p) + m_blocks_sent.erase(p) > 0)
+ m_blocks_modified.insert(p);
}
}
@@ -471,9 +452,6 @@ void RemoteClient::notifyEvent(ClientStateEvent event)
case CSE_Hello:
m_state = CS_HelloSent;
break;
- case CSE_InitLegacy:
- m_state = CS_AwaitingInit2;
- break;
case CSE_Disconnect:
m_state = CS_Disconnecting;
break;
diff --git a/src/clientiface.h b/src/clientiface.h
index 83fa6fe99..cc5292b71 100644
--- a/src/clientiface.h
+++ b/src/clientiface.h
@@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "serialization.h" // for SER_FMT_VER_INVALID
#include "network/networkpacket.h"
#include "network/networkprotocol.h"
+#include "network/address.h"
#include "porting.h"
#include <list>
@@ -188,7 +189,6 @@ enum ClientStateEvent
{
CSE_Hello,
CSE_AuthAccept,
- CSE_InitLegacy,
CSE_GotInit2,
CSE_SetDenied,
CSE_SetDefinitionsSent,
@@ -338,17 +338,24 @@ public:
u8 getMajor() const { return m_version_major; }
u8 getMinor() const { return m_version_minor; }
u8 getPatch() const { return m_version_patch; }
- const std::string &getFull() const { return m_full_version; }
+ const std::string &getFullVer() const { return m_full_version; }
void setLangCode(const std::string &code) { m_lang_code = code; }
const std::string &getLangCode() const { return m_lang_code; }
+
+ void setCachedAddress(const Address &addr) { m_addr = addr; }
+ const Address &getAddress() const { return m_addr; }
+
private:
// Version is stored in here after INIT before INIT2
u8 m_pending_serialization_version = SER_FMT_VER_INVALID;
/* current state of client */
ClientState m_state = CS_Created;
-
+
+ // Cached here so retrieval doesn't have to go to connection API
+ Address m_addr;
+
// Client sent language code
std::string m_lang_code;
@@ -364,7 +371,7 @@ private:
std::set<v3s16> m_blocks_sent;
s16 m_nearest_unsent_d = 0;
v3s16 m_last_center;
- float m_nearest_unsent_reset_timer = 0.0f;
+ v3f m_last_camera_dir;
const u16 m_max_simul_sends;
const float m_min_time_from_building;
@@ -384,10 +391,10 @@ private:
std::map<v3s16, float> m_blocks_sending;
/*
- Blocks that have been modified since last sending them.
- These blocks will not be marked as sent, even if the
- client reports it has received them to account for blocks
- that are being modified while on the line.
+ Blocks that have been modified since blocks were
+ sent to the client last (getNextBlocks()).
+ This is used to reset the unsent distance, so that
+ modified blocks are resent to the client.
List of block positions.
*/
@@ -412,7 +419,7 @@ private:
/*
client information
- */
+ */
u8 m_version_major = 0;
u8 m_version_minor = 0;
u8 m_version_patch = 0;
diff --git a/src/constants.h b/src/constants.h
index c17f3b6af..3cc3af094 100644
--- a/src/constants.h
+++ b/src/constants.h
@@ -89,7 +89,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
// Size of player's main inventory
#define PLAYER_INVENTORY_SIZE (8 * 4)
-// Default maximum hit points of a player
+// Default maximum health points of a player
#define PLAYER_MAX_HP_DEFAULT 20
// Default maximal breath of a player
diff --git a/src/content/CMakeLists.txt b/src/content/CMakeLists.txt
index 5adcf6b1e..6dd049418 100644
--- a/src/content/CMakeLists.txt
+++ b/src/content/CMakeLists.txt
@@ -1,6 +1,5 @@
set(content_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/content.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/packages.cpp
${CMAKE_CURRENT_SOURCE_DIR}/mods.cpp
${CMAKE_CURRENT_SOURCE_DIR}/subgames.cpp
PARENT_SCOPE
diff --git a/src/content/packages.cpp b/src/content/packages.cpp
deleted file mode 100644
index 2d488eb76..000000000
--- a/src/content/packages.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-Minetest
-Copyright (C) 2018 rubenwardy <rw@rubenwardy.com>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 2.1 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-*/
-
-#include "content/packages.h"
-#include "log.h"
-#include "filesys.h"
-#include "porting.h"
-#include "settings.h"
-#include "content/mods.h"
-#include "content/subgames.h"
-
-std::string Package::getDownloadURL(const std::string &baseURL) const
-{
- return baseURL + "/packages/" + author + "/" + name + "/releases/" +
- std::to_string(release) + "/download/";
-}
-
-#if USE_CURL
-std::vector<Package> getPackagesFromURL(const std::string &url)
-{
- std::vector<std::string> extra_headers;
- extra_headers.emplace_back("Accept: application/json");
-
- Json::Value json = fetchJsonValue(url, &extra_headers);
- if (!json.isArray()) {
- errorstream << "Invalid JSON download " << std::endl;
- return std::vector<Package>();
- }
-
- std::vector<Package> packages;
-
- // Note: `unsigned int` is required to index JSON
- for (unsigned int i = 0; i < json.size(); ++i) {
- Package package;
-
- package.author = json[i]["author"].asString();
- package.name = json[i]["name"].asString();
- package.title = json[i]["title"].asString();
- package.type = json[i]["type"].asString();
- package.shortDesc = json[i]["shortDesc"].asString();
- package.release = json[i]["release"].asInt();
- if (json[i].isMember("thumbnail"))
- package.thumbnail = json[i]["thumbnail"].asString();
-
- if (package.valid())
- packages.push_back(package);
- else
- errorstream << "Invalid package at " << i << std::endl;
- }
-
- return packages;
-}
-#endif
diff --git a/src/content/packages.h b/src/content/packages.h
deleted file mode 100644
index 9029475ef..000000000
--- a/src/content/packages.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-Minetest
-Copyright (C) 2018 rubenwardy <rw@rubenwardy.com>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 2.1 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-*/
-
-#pragma once
-#include "config.h"
-#include "convert_json.h"
-#include "irrlichttypes.h"
-
-struct Package
-{
- std::string author;
- std::string name; // Technical name
- std::string title;
- std::string type; // One of "mod", "game", or "txp"
-
- std::string shortDesc;
- u32 release;
- std::string thumbnail;
-
- bool valid() const
- {
- return !(author.empty() || name.empty() || title.empty() ||
- type.empty() || release <= 0);
- }
-
- std::string getDownloadURL(const std::string &baseURL) const;
-};
-
-#if USE_CURL
-std::vector<Package> getPackagesFromURL(const std::string &url);
-#else
-inline std::vector<Package> getPackagesFromURL(const std::string &url)
-{
- return std::vector<Package>();
-}
-#endif
diff --git a/src/content/subgames.cpp b/src/content/subgames.cpp
index 170f54e20..e9dc609b0 100644
--- a/src/content/subgames.cpp
+++ b/src/content/subgames.cpp
@@ -31,12 +31,20 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "client/tile.h" // getImagePath
#endif
+// The maximum number of identical world names allowed
+#define MAX_WORLD_NAMES 100
+
+namespace
+{
+
bool getGameMinetestConfig(const std::string &game_path, Settings &conf)
{
std::string conf_path = game_path + DIR_DELIM + "minetest.conf";
return conf.readConfigFile(conf_path.c_str());
}
+}
+
struct GameFindPath
{
std::string path;
@@ -213,6 +221,21 @@ bool getWorldExists(const std::string &world_path)
fs::PathExists(world_path + DIR_DELIM + "world.mt"));
}
+//! Try to get the displayed name of a world
+std::string getWorldName(const std::string &world_path, const std::string &default_name)
+{
+ std::string conf_path = world_path + DIR_DELIM + "world.mt";
+ Settings conf;
+ bool succeeded = conf.readConfigFile(conf_path.c_str());
+ if (!succeeded) {
+ return default_name;
+ }
+
+ if (!conf.exists("world_name"))
+ return default_name;
+ return conf.get("world_name");
+}
+
std::string getWorldGameId(const std::string &world_path, bool can_be_legacy)
{
std::string conf_path = world_path + DIR_DELIM + "world.mt";
@@ -259,7 +282,7 @@ std::vector<WorldSpec> getAvailableWorlds()
if (!dln.dir)
continue;
std::string fullpath = worldspath + DIR_DELIM + dln.name;
- std::string name = dln.name;
+ std::string name = getWorldName(fullpath, dln.name);
// Just allow filling in the gameid always for now
bool can_be_legacy = true;
std::string gameid = getWorldGameId(fullpath, can_be_legacy);
@@ -288,27 +311,45 @@ std::vector<WorldSpec> getAvailableWorlds()
return worlds;
}
-bool loadGameConfAndInitWorld(const std::string &path, const SubgameSpec &gamespec)
+void loadGameConfAndInitWorld(const std::string &path, const std::string &name,
+ const SubgameSpec &gamespec, bool create_world)
{
- // Override defaults with those provided by the game.
- // We clear and reload the defaults because the defaults
- // might have been overridden by other subgame config
- // files that were loaded before.
- g_settings->clearDefaults();
- set_default_settings(g_settings);
- Settings game_defaults;
- getGameMinetestConfig(gamespec.path, game_defaults);
- g_settings->overrideDefaults(&game_defaults);
+ std::string final_path = path;
+
+ // If we're creating a new world, ensure that the path isn't already taken
+ if (create_world) {
+ int counter = 1;
+ while (fs::PathExists(final_path) && counter < MAX_WORLD_NAMES) {
+ final_path = path + "_" + std::to_string(counter);
+ counter++;
+ }
- infostream << "Initializing world at " << path << std::endl;
+ if (fs::PathExists(final_path)) {
+ throw BaseException("Too many similar filenames");
+ }
+ }
- fs::CreateAllDirs(path);
+ Settings *game_settings = Settings::getLayer(SL_GAME);
+ const bool new_game_settings = (game_settings == nullptr);
+ if (new_game_settings) {
+ // Called by main-menu without a Server instance running
+ // -> create and free manually
+ game_settings = Settings::createLayer(SL_GAME);
+ }
+
+ getGameMinetestConfig(gamespec.path, *game_settings);
+ game_settings->removeSecureSettings();
+
+ infostream << "Initializing world at " << final_path << std::endl;
+
+ fs::CreateAllDirs(final_path);
// Create world.mt if does not already exist
- std::string worldmt_path = path + DIR_DELIM "world.mt";
+ std::string worldmt_path = final_path + DIR_DELIM "world.mt";
if (!fs::PathExists(worldmt_path)) {
Settings conf;
+ conf.set("world_name", name);
conf.set("gameid", gamespec.id);
conf.set("backend", "sqlite3");
conf.set("player_backend", "sqlite3");
@@ -316,16 +357,16 @@ bool loadGameConfAndInitWorld(const std::string &path, const SubgameSpec &gamesp
conf.setBool("creative_mode", g_settings->getBool("creative_mode"));
conf.setBool("enable_damage", g_settings->getBool("enable_damage"));
- if (!conf.updateConfigFile(worldmt_path.c_str()))
- return false;
+ if (!conf.updateConfigFile(worldmt_path.c_str())) {
+ throw BaseException("Failed to update the config file");
+ }
}
// Create map_meta.txt if does not already exist
- std::string map_meta_path = path + DIR_DELIM + "map_meta.txt";
+ std::string map_meta_path = final_path + DIR_DELIM + "map_meta.txt";
if (!fs::PathExists(map_meta_path)) {
verbosestream << "Creating map_meta.txt (" << map_meta_path << ")"
<< std::endl;
- fs::CreateAllDirs(path);
std::ostringstream oss(std::ios_base::binary);
Settings conf;
@@ -338,5 +379,8 @@ bool loadGameConfAndInitWorld(const std::string &path, const SubgameSpec &gamesp
fs::safeWriteToFile(map_meta_path, oss.str());
}
- return true;
+
+ // The Settings object is no longer needed for created worlds
+ if (new_game_settings)
+ delete game_settings;
}
diff --git a/src/content/subgames.h b/src/content/subgames.h
index 4198ea860..60392639b 100644
--- a/src/content/subgames.h
+++ b/src/content/subgames.h
@@ -53,9 +53,6 @@ struct SubgameSpec
bool isValid() const { return (!id.empty() && !path.empty()); }
};
-// minetest.conf
-bool getGameMinetestConfig(const std::string &game_path, Settings &conf);
-
SubgameSpec findSubgame(const std::string &id);
SubgameSpec findWorldSubgame(const std::string &world_path);
@@ -63,6 +60,8 @@ std::set<std::string> getAvailableGameIds();
std::vector<SubgameSpec> getAvailableGames();
bool getWorldExists(const std::string &world_path);
+//! Try to get the displayed name of a world
+std::string getWorldName(const std::string &world_path, const std::string &default_name);
std::string getWorldGameId(const std::string &world_path, bool can_be_legacy = false);
struct WorldSpec
@@ -88,4 +87,5 @@ std::vector<WorldSpec> getAvailableWorlds();
// loads the subgame's config and creates world directory
// and world.mt if they don't exist
-bool loadGameConfAndInitWorld(const std::string &path, const SubgameSpec &gamespec);
+void loadGameConfAndInitWorld(const std::string &path, const std::string &name,
+ const SubgameSpec &gamespec, bool create_world);
diff --git a/src/content_nodemeta.cpp b/src/content_nodemeta.cpp
index fc2859d27..39743c11f 100644
--- a/src/content_nodemeta.cpp
+++ b/src/content_nodemeta.cpp
@@ -43,26 +43,26 @@ static bool content_nodemeta_deserialize_legacy_body(
if(id == NODEMETA_GENERIC) // GenericNodeMetadata (0.4-dev)
{
meta->getInventory()->deSerialize(is);
- deSerializeLongString(is); // m_text
- deSerializeString(is); // m_owner
+ deSerializeString32(is); // m_text
+ deSerializeString16(is); // m_owner
- meta->setString("infotext",deSerializeString(is));
- meta->setString("formspec",deSerializeString(is));
+ meta->setString("infotext",deSerializeString16(is));
+ meta->setString("formspec",deSerializeString16(is));
readU8(is); // m_allow_text_input
readU8(is); // m_allow_removal
readU8(is); // m_enforce_owner
int num_vars = readU32(is);
for(int i=0; i<num_vars; i++){
- std::string name = deSerializeString(is);
- std::string var = deSerializeLongString(is);
+ std::string name = deSerializeString16(is);
+ std::string var = deSerializeString32(is);
meta->setString(name, var);
}
return false;
}
else if(id == NODEMETA_SIGN) // SignNodeMetadata
{
- meta->setString("text", deSerializeString(is));
+ meta->setString("text", deSerializeString16(is));
//meta->setString("infotext","\"${text}\"");
meta->setString("infotext",
std::string("\"") + meta->getString("text") + "\"");
@@ -87,7 +87,7 @@ static bool content_nodemeta_deserialize_legacy_body(
}
else if(id == NODEMETA_LOCKABLE_CHEST) // LockingChestNodeMetadata
{
- meta->setString("owner", deSerializeString(is));
+ meta->setString("owner", deSerializeString16(is));
meta->getInventory()->deSerialize(is);
// Rename inventory list "0" to "main"
@@ -138,7 +138,7 @@ static bool content_nodemeta_deserialize_legacy_meta(
s16 id = readS16(is);
// Read data
- std::string data = deSerializeString(is);
+ std::string data = deSerializeString16(is);
std::istringstream tmp_is(data, std::ios::binary);
return content_nodemeta_deserialize_legacy_body(tmp_is, id, meta);
}
diff --git a/src/database/database-dummy.cpp b/src/database/database-dummy.cpp
index a3d8cd579..b56f341c5 100644
--- a/src/database/database-dummy.cpp
+++ b/src/database/database-dummy.cpp
@@ -22,6 +22,7 @@ Dummy database class
*/
#include "database-dummy.h"
+#include "remoteplayer.h"
bool Database_Dummy::saveBlock(const v3s16 &pos, const std::string &data)
@@ -57,3 +58,25 @@ void Database_Dummy::listAllLoadableBlocks(std::vector<v3s16> &dst)
}
}
+void Database_Dummy::savePlayer(RemotePlayer *player)
+{
+ m_player_database.insert(player->getName());
+}
+
+bool Database_Dummy::loadPlayer(RemotePlayer *player, PlayerSAO *sao)
+{
+ return m_player_database.find(player->getName()) != m_player_database.end();
+}
+
+bool Database_Dummy::removePlayer(const std::string &name)
+{
+ m_player_database.erase(name);
+ return true;
+}
+
+void Database_Dummy::listPlayers(std::vector<std::string> &res)
+{
+ for (const auto &player : m_player_database) {
+ res.emplace_back(player);
+ }
+}
diff --git a/src/database/database-dummy.h b/src/database/database-dummy.h
index 2d87d58f6..b69919f84 100644
--- a/src/database/database-dummy.h
+++ b/src/database/database-dummy.h
@@ -32,14 +32,15 @@ public:
bool deleteBlock(const v3s16 &pos);
void listAllLoadableBlocks(std::vector<v3s16> &dst);
- void savePlayer(RemotePlayer *player) {}
- bool loadPlayer(RemotePlayer *player, PlayerSAO *sao) { return true; }
- bool removePlayer(const std::string &name) { return true; }
- void listPlayers(std::vector<std::string> &res) {}
+ void savePlayer(RemotePlayer *player);
+ bool loadPlayer(RemotePlayer *player, PlayerSAO *sao);
+ bool removePlayer(const std::string &name);
+ void listPlayers(std::vector<std::string> &res);
void beginSave() {}
void endSave() {}
private:
std::map<s64, std::string> m_database;
+ std::set<std::string> m_player_database;
};
diff --git a/src/database/database-files.cpp b/src/database/database-files.cpp
index d2b0b1543..d9d113b4e 100644
--- a/src/database/database-files.cpp
+++ b/src/database/database-files.cpp
@@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <cassert>
#include <json/json.h>
+#include "convert_json.h"
#include "database-files.h"
#include "remoteplayer.h"
#include "settings.h"
@@ -36,29 +37,116 @@ PlayerDatabaseFiles::PlayerDatabaseFiles(const std::string &savedir) : m_savedir
fs::CreateDir(m_savedir);
}
-void PlayerDatabaseFiles::serialize(std::ostringstream &os, RemotePlayer *player)
+void PlayerDatabaseFiles::deSerialize(RemotePlayer *p, std::istream &is,
+ const std::string &playername, PlayerSAO *sao)
+{
+ Settings args("PlayerArgsEnd");
+
+ if (!args.parseConfigLines(is)) {
+ throw SerializationError("PlayerArgsEnd of player " + playername + " not found!");
+ }
+
+ p->m_dirty = true;
+ //args.getS32("version"); // Version field value not used
+ const std::string &name = args.get("name");
+ strlcpy(p->m_name, name.c_str(), PLAYERNAME_SIZE);
+
+ if (sao) {
+ try {
+ sao->setHPRaw(args.getU16("hp"));
+ } catch(SettingNotFoundException &e) {
+ sao->setHPRaw(PLAYER_MAX_HP_DEFAULT);
+ }
+
+ try {
+ sao->setBasePosition(args.getV3F("position"));
+ } catch (SettingNotFoundException &e) {}
+
+ try {
+ sao->setLookPitch(args.getFloat("pitch"));
+ } catch (SettingNotFoundException &e) {}
+ try {
+ sao->setPlayerYaw(args.getFloat("yaw"));
+ } catch (SettingNotFoundException &e) {}
+
+ try {
+ sao->setBreath(args.getU16("breath"), false);
+ } catch (SettingNotFoundException &e) {}
+
+ try {
+ const std::string &extended_attributes = args.get("extended_attributes");
+ std::istringstream iss(extended_attributes);
+ Json::CharReaderBuilder builder;
+ builder.settings_["collectComments"] = false;
+ std::string errs;
+
+ Json::Value attr_root;
+ Json::parseFromStream(builder, iss, &attr_root, &errs);
+
+ const Json::Value::Members attr_list = attr_root.getMemberNames();
+ for (const auto &it : attr_list) {
+ Json::Value attr_value = attr_root[it];
+ sao->getMeta().setString(it, attr_value.asString());
+ }
+ sao->getMeta().setModified(false);
+ } catch (SettingNotFoundException &e) {}
+ }
+
+ try {
+ p->inventory.deSerialize(is);
+ } catch (SerializationError &e) {
+ errorstream << "Failed to deserialize player inventory. player_name="
+ << name << " " << e.what() << std::endl;
+ }
+
+ if (!p->inventory.getList("craftpreview") && p->inventory.getList("craftresult")) {
+ // Convert players without craftpreview
+ p->inventory.addList("craftpreview", 1);
+
+ bool craftresult_is_preview = true;
+ if(args.exists("craftresult_is_preview"))
+ craftresult_is_preview = args.getBool("craftresult_is_preview");
+ if(craftresult_is_preview)
+ {
+ // Clear craftresult
+ p->inventory.getList("craftresult")->changeItem(0, ItemStack());
+ }
+ }
+}
+
+void PlayerDatabaseFiles::serialize(RemotePlayer *p, std::ostream &os)
{
// Utilize a Settings object for storing values
- Settings args;
+ Settings args("PlayerArgsEnd");
args.setS32("version", 1);
- args.set("name", player->getName());
+ args.set("name", p->m_name);
- sanity_check(player->getPlayerSAO());
- args.setU16("hp", player->getPlayerSAO()->getHP());
- args.setV3F("position", player->getPlayerSAO()->getBasePosition());
- args.setFloat("pitch", player->getPlayerSAO()->getLookPitch());
- args.setFloat("yaw", player->getPlayerSAO()->getRotation().Y);
- args.setU16("breath", player->getPlayerSAO()->getBreath());
+ PlayerSAO *sao = p->getPlayerSAO();
+ // This should not happen
+ sanity_check(sao);
+ args.setU16("hp", sao->getHP());
+ args.setV3F("position", sao->getBasePosition());
+ args.setFloat("pitch", sao->getLookPitch());
+ args.setFloat("yaw", sao->getRotation().Y);
+ args.setU16("breath", sao->getBreath());
std::string extended_attrs;
- player->serializeExtraAttributes(extended_attrs);
+ {
+ // serializeExtraAttributes
+ Json::Value json_root;
+
+ const StringMap &attrs = sao->getMeta().getStrings();
+ for (const auto &attr : attrs) {
+ json_root[attr.first] = attr.second;
+ }
+
+ extended_attrs = fastWriteJson(json_root);
+ }
args.set("extended_attributes", extended_attrs);
args.writeLines(os);
- os << "PlayerArgsEnd\n";
-
- player->inventory.serialize(os);
+ p->inventory.serialize(os);
}
void PlayerDatabaseFiles::savePlayer(RemotePlayer *player)
@@ -83,7 +171,7 @@ void PlayerDatabaseFiles::savePlayer(RemotePlayer *player)
return;
}
- testplayer.deSerialize(is, path, NULL);
+ deSerialize(&testplayer, is, path, NULL);
is.close();
if (strcmp(testplayer.getName(), player->getName()) == 0) {
path_found = true;
@@ -101,7 +189,7 @@ void PlayerDatabaseFiles::savePlayer(RemotePlayer *player)
// Open and serialize file
std::ostringstream ss(std::ios_base::binary);
- serialize(ss, player);
+ serialize(player, ss);
if (!fs::safeWriteToFile(path, ss.str())) {
infostream << "Failed to write " << path << std::endl;
}
@@ -121,7 +209,7 @@ bool PlayerDatabaseFiles::removePlayer(const std::string &name)
if (!is.good())
continue;
- temp_player.deSerialize(is, path, NULL);
+ deSerialize(&temp_player, is, path, NULL);
is.close();
if (temp_player.getName() == name) {
@@ -147,7 +235,7 @@ bool PlayerDatabaseFiles::loadPlayer(RemotePlayer *player, PlayerSAO *sao)
if (!is.good())
continue;
- player->deSerialize(is, path, sao);
+ deSerialize(player, is, path, sao);
is.close();
if (player->getName() == player_to_load)
@@ -180,7 +268,7 @@ void PlayerDatabaseFiles::listPlayers(std::vector<std::string> &res)
// Null env & dummy peer_id
PlayerSAO playerSAO(NULL, &player, 15789, false);
- player.deSerialize(is, "", &playerSAO);
+ deSerialize(&player, is, "", &playerSAO);
is.close();
res.emplace_back(player.getName());
diff --git a/src/database/database-files.h b/src/database/database-files.h
index cb830a3ed..e647a2e24 100644
--- a/src/database/database-files.h
+++ b/src/database/database-files.h
@@ -38,7 +38,14 @@ public:
void listPlayers(std::vector<std::string> &res);
private:
- void serialize(std::ostringstream &os, RemotePlayer *player);
+ void deSerialize(RemotePlayer *p, std::istream &is, const std::string &playername,
+ PlayerSAO *sao);
+ /*
+ serialize() writes a bunch of text that can contain
+ any characters except a '\0', and such an ending that
+ deSerialize stops reading exactly at the right point.
+ */
+ void serialize(RemotePlayer *p, std::ostream &os);
std::string m_savedir;
};
diff --git a/src/database/database-leveldb.cpp b/src/database/database-leveldb.cpp
index 1976ae13d..73cd63f6d 100644
--- a/src/database/database-leveldb.cpp
+++ b/src/database/database-leveldb.cpp
@@ -145,8 +145,8 @@ void PlayerDatabaseLevelDB::savePlayer(RemotePlayer *player)
StringMap stringvars = sao->getMeta().getStrings();
writeU32(os, stringvars.size());
for (const auto &it : stringvars) {
- os << serializeString(it.first);
- os << serializeLongString(it.second);
+ os << serializeString16(it.first);
+ os << serializeString32(it.second);
}
player->inventory.serialize(os);
@@ -183,8 +183,8 @@ bool PlayerDatabaseLevelDB::loadPlayer(RemotePlayer *player, PlayerSAO *sao)
u32 attribute_count = readU32(is);
for (u32 i = 0; i < attribute_count; i++) {
- std::string name = deSerializeString(is);
- std::string value = deSerializeLongString(is);
+ std::string name = deSerializeString16(is);
+ std::string value = deSerializeString32(is);
sao->getMeta().setString(name, value);
}
sao->getMeta().setModified(false);
@@ -247,13 +247,13 @@ bool AuthDatabaseLevelDB::getAuth(const std::string &name, AuthEntry &res)
res.id = 1;
res.name = name;
- res.password = deSerializeString(is);
+ res.password = deSerializeString16(is);
u16 privilege_count = readU16(is);
res.privileges.clear();
res.privileges.reserve(privilege_count);
for (u16 i = 0; i < privilege_count; i++) {
- res.privileges.push_back(deSerializeString(is));
+ res.privileges.push_back(deSerializeString16(is));
}
res.last_login = readS64(is);
@@ -264,14 +264,14 @@ bool AuthDatabaseLevelDB::saveAuth(const AuthEntry &authEntry)
{
std::ostringstream os;
writeU8(os, 1);
- os << serializeString(authEntry.password);
+ os << serializeString16(authEntry.password);
size_t privilege_count = authEntry.privileges.size();
FATAL_ERROR_IF(privilege_count > U16_MAX,
"Unsupported number of privileges");
writeU16(os, privilege_count);
for (const std::string &privilege : authEntry.privileges) {
- os << serializeString(privilege);
+ os << serializeString16(privilege);
}
writeS64(os, authEntry.last_login);
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index abb6593b7..cda953082 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -27,8 +27,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "mapgen/mapgen.h" // Mapgen::setDefaultSettings
#include "util/string.h"
-void set_default_settings(Settings *settings)
+void set_default_settings()
{
+ Settings *settings = Settings::createLayer(SL_DEFAULTS);
+
// Client and server
settings->setDefault("language", "");
settings->setDefault("name", "");
@@ -52,7 +54,7 @@ void set_default_settings(Settings *settings)
settings->setDefault("screenshot_format", "png");
settings->setDefault("screenshot_quality", "0");
settings->setDefault("client_unload_unused_data_timeout", "600");
- settings->setDefault("client_mapblock_limit", "5000");
+ settings->setDefault("client_mapblock_limit", "7500");
settings->setDefault("enable_build_where_you_stand", "false");
settings->setDefault("curl_timeout", "5000");
settings->setDefault("curl_parallel_limit", "8");
@@ -73,6 +75,8 @@ void set_default_settings(Settings *settings)
settings->setDefault("keymap_right", "KEY_KEY_D");
settings->setDefault("keymap_jump", "KEY_SPACE");
settings->setDefault("keymap_sneak", "KEY_LSHIFT");
+ settings->setDefault("keymap_dig", "KEY_LBUTTON");
+ settings->setDefault("keymap_place", "KEY_RBUTTON");
settings->setDefault("keymap_drop", "KEY_KEY_Q");
settings->setDefault("keymap_zoom", "KEY_KEY_Z");
settings->setDefault("keymap_inventory", "KEY_KEY_I");
@@ -163,8 +167,8 @@ void set_default_settings(Settings *settings)
settings->setDefault("tooltip_show_delay", "400");
settings->setDefault("tooltip_append_itemname", "false");
settings->setDefault("fps_max", "60");
- settings->setDefault("pause_fps_max", "20");
- settings->setDefault("viewing_range", "100");
+ settings->setDefault("fps_max_unfocused", "20");
+ settings->setDefault("viewing_range", "190");
#if ENABLE_GLES
settings->setDefault("near_plane", "0.1");
#endif
@@ -225,10 +229,10 @@ void set_default_settings(Settings *settings)
settings->setDefault("desynchronize_mapblock_texture_animation", "true");
settings->setDefault("hud_hotbar_max_width", "1.0");
settings->setDefault("enable_local_map_saving", "false");
- settings->setDefault("show_entity_selectionbox", "true");
+ settings->setDefault("show_entity_selectionbox", "false");
settings->setDefault("texture_clean_transparent", "false");
settings->setDefault("texture_min_size", "64");
- settings->setDefault("ambient_occlusion_gamma", "2.2");
+ settings->setDefault("ambient_occlusion_gamma", "1.8");
#if ENABLE_GLES
settings->setDefault("enable_shaders", "false");
#else
@@ -236,6 +240,7 @@ void set_default_settings(Settings *settings)
#endif
settings->setDefault("enable_particles", "true");
settings->setDefault("arm_inertia", "true");
+ settings->setDefault("show_nametag_backgrounds", "true");
settings->setDefault("enable_minimap", "true");
settings->setDefault("minimap_shape_round", "true");
@@ -249,15 +254,6 @@ void set_default_settings(Settings *settings)
settings->setDefault("bilinear_filter", "false");
settings->setDefault("trilinear_filter", "false");
settings->setDefault("tone_mapping", "false");
- settings->setDefault("enable_bumpmapping", "false");
- settings->setDefault("enable_parallax_occlusion", "false");
- settings->setDefault("generate_normalmaps", "false");
- settings->setDefault("normalmaps_strength", "0.6");
- settings->setDefault("normalmaps_smooth", "1");
- settings->setDefault("parallax_occlusion_mode", "1");
- settings->setDefault("parallax_occlusion_iterations", "4");
- settings->setDefault("parallax_occlusion_scale", "0.08");
- settings->setDefault("parallax_occlusion_bias", "0.04");
settings->setDefault("enable_waving_water", "false");
settings->setDefault("water_wave_height", "1.0");
settings->setDefault("water_wave_length", "20.0");
@@ -269,7 +265,7 @@ void set_default_settings(Settings *settings)
// Input
settings->setDefault("invert_mouse", "false");
settings->setDefault("mouse_sensitivity", "0.2");
- settings->setDefault("repeat_rightclick_time", "0.25");
+ settings->setDefault("repeat_place_time", "0.25");
settings->setDefault("safe_dig_and_place", "false");
settings->setDefault("random_input", "false");
settings->setDefault("aux1_descends", "false");
@@ -286,11 +282,11 @@ void set_default_settings(Settings *settings)
settings->setDefault("joystick_type", "");
settings->setDefault("repeat_joystick_button_time", "0.17");
settings->setDefault("joystick_frustum_sensitivity", "170");
+ settings->setDefault("joystick_deadzone", "2048");
// Main menu
- settings->setDefault("main_menu_style", "full");
settings->setDefault("main_menu_path", "");
- settings->setDefault("serverlist_file", "favoriteservers.txt");
+ settings->setDefault("serverlist_file", "favoriteservers.json");
#if USE_FREETYPE
settings->setDefault("freetype", "true");
@@ -328,6 +324,8 @@ void set_default_settings(Settings *settings)
// ContentDB
settings->setDefault("contentdb_url", "https://content.minetest.net");
+ settings->setDefault("contentdb_max_concurrent_downloads", "3");
+
#ifdef __ANDROID__
settings->setDefault("contentdb_flag_blacklist", "nonfree, android_default");
#else
@@ -364,11 +362,7 @@ void set_default_settings(Settings *settings)
settings->setDefault("disallow_empty_password", "false");
settings->setDefault("disable_anticheat", "false");
settings->setDefault("enable_rollback_recording", "false");
-#ifdef NDEBUG
- settings->setDefault("deprecated_lua_api_handling", "legacy");
-#else
settings->setDefault("deprecated_lua_api_handling", "log");
-#endif
settings->setDefault("kick_msg_shutdown", "Server shutting down.");
settings->setDefault("kick_msg_crash", "This server has experienced an internal error. You will now be disconnected.");
@@ -376,11 +370,11 @@ void set_default_settings(Settings *settings)
settings->setDefault("chat_message_format", "<@name> @message");
settings->setDefault("profiler_print_interval", "0");
- settings->setDefault("active_object_send_range_blocks", "4");
- settings->setDefault("active_block_range", "3");
+ settings->setDefault("active_object_send_range_blocks", "8");
+ settings->setDefault("active_block_range", "4");
//settings->setDefault("max_simultaneous_block_sends_per_client", "1");
// This causes frametime jitter on client side, or does it?
- settings->setDefault("max_block_send_distance", "10");
+ settings->setDefault("max_block_send_distance", "12");
settings->setDefault("block_send_optimize_distance", "4");
settings->setDefault("server_side_occlusion_culling", "true");
settings->setDefault("csm_restriction_flags", "62");
@@ -395,19 +389,22 @@ void set_default_settings(Settings *settings)
settings->setDefault("chat_message_limit_per_10sec", "8.0");
settings->setDefault("chat_message_limit_trigger_kick", "50");
settings->setDefault("sqlite_synchronous", "2");
+ settings->setDefault("map_compression_level_disk", "3");
+ settings->setDefault("map_compression_level_net", "-1");
settings->setDefault("full_block_send_enable_min_time_from_building", "2.0");
settings->setDefault("dedicated_server_step", "0.09");
settings->setDefault("active_block_mgmt_interval", "2.0");
settings->setDefault("abm_interval", "1.0");
+ settings->setDefault("abm_time_budget", "0.2");
settings->setDefault("nodetimer_interval", "0.2");
settings->setDefault("ignore_world_load_errors", "false");
settings->setDefault("remote_media", "");
settings->setDefault("debug_log_level", "action");
settings->setDefault("debug_log_size_max", "50");
settings->setDefault("chat_log_level", "error");
- settings->setDefault("emergequeue_limit_total", "512");
- settings->setDefault("emergequeue_limit_diskonly", "64");
- settings->setDefault("emergequeue_limit_generate", "64");
+ settings->setDefault("emergequeue_limit_total", "1024");
+ settings->setDefault("emergequeue_limit_diskonly", "128");
+ settings->setDefault("emergequeue_limit_generate", "128");
settings->setDefault("num_emerge_threads", "1");
settings->setDefault("secure.enable_security", "true");
settings->setDefault("secure.trusted_mods", "");
@@ -438,7 +435,7 @@ void set_default_settings(Settings *settings)
settings->setDefault("mapgen_limit", "31000");
settings->setDefault("chunksize", "5");
settings->setDefault("fixed_map_seed", "");
- settings->setDefault("max_block_generate_distance", "8");
+ settings->setDefault("max_block_generate_distance", "10");
settings->setDefault("enable_mapgen_debug_info", "false");
Mapgen::setDefaultSettings(settings);
@@ -465,7 +462,6 @@ void set_default_settings(Settings *settings)
settings->setDefault("screen_h", "0");
settings->setDefault("fullscreen", "true");
settings->setDefault("touchtarget", "true");
- settings->setDefault("TMPFolder", porting::path_cache);
settings->setDefault("touchscreen_threshold","20");
settings->setDefault("fixed_virtual_joystick", "false");
settings->setDefault("virtual_joystick_triggers_aux", "false");
@@ -476,9 +472,11 @@ void set_default_settings(Settings *settings)
settings->setDefault("max_block_generate_distance", "5");
settings->setDefault("enable_3d_clouds", "false");
settings->setDefault("fps_max", "30");
- settings->setDefault("pause_fps_max", "10");
+ settings->setDefault("fps_max_unfocused", "10");
settings->setDefault("max_objects_per_block", "20");
settings->setDefault("sqlite_synchronous", "1");
+ settings->setDefault("map_compression_level_disk", "-1");
+ settings->setDefault("map_compression_level_net", "3");
settings->setDefault("server_map_save_interval", "15");
settings->setDefault("client_mapblock_limit", "1000");
settings->setDefault("active_block_range", "2");
diff --git a/src/defaultsettings.h b/src/defaultsettings.h
index c81e88502..c239b3c12 100644
--- a/src/defaultsettings.h
+++ b/src/defaultsettings.h
@@ -25,11 +25,4 @@ class Settings;
* initialize basic default settings
* @param settings pointer to settings
*/
-void set_default_settings(Settings *settings);
-
-/**
- * override a default settings by settings from another settings element
- * @param settings target settings pointer
- * @param from source settings pointer
- */
-void override_default_settings(Settings *settings, Settings *from);
+void set_default_settings();
diff --git a/src/emerge.cpp b/src/emerge.cpp
index 0ac26a682..e0dc5628e 100644
--- a/src/emerge.cpp
+++ b/src/emerge.cpp
@@ -396,14 +396,7 @@ int EmergeManager::getGroundLevelAtPoint(v2s16 p)
// TODO(hmmmm): Move this to ServerMap
bool EmergeManager::isBlockUnderground(v3s16 blockpos)
{
-#if 0
- v2s16 p = v2s16((blockpos.X * MAP_BLOCKSIZE) + MAP_BLOCKSIZE / 2,
- (blockpos.Y * MAP_BLOCKSIZE) + MAP_BLOCKSIZE / 2);
- int ground_level = getGroundLevelAtPoint(p);
- return blockpos.Y * (MAP_BLOCKSIZE + 1) <= min(water_level, ground_level);
-#endif
-
- // Use a simple heuristic; the above method is wildly inaccurate anyway.
+ // Use a simple heuristic
return blockpos.Y * (MAP_BLOCKSIZE + 1) <= mgparams->water_level;
}
@@ -426,6 +419,10 @@ bool EmergeManager::pushBlockEmergeData(
m_qlimit_generate : m_qlimit_diskonly;
if (count_peer >= qlimit_peer)
return false;
+ } else {
+ // limit block enqueue requests for active blocks to 1/2 of total
+ if (count_peer * 2 >= m_qlimit_total)
+ return false;
}
}
diff --git a/src/emerge.h b/src/emerge.h
index 6f204666d..da845e243 100644
--- a/src/emerge.h
+++ b/src/emerge.h
@@ -52,7 +52,6 @@ struct BlockMakeData {
u64 seed = 0;
v3s16 blockpos_min;
v3s16 blockpos_max;
- v3s16 blockpos_requested;
UniqueQueue<v3s16> transforming_liquid;
const NodeDefManager *nodedef = nullptr;
diff --git a/src/environment.cpp b/src/environment.cpp
index 6751f39e4..06f2b8bf9 100644
--- a/src/environment.cpp
+++ b/src/environment.cpp
@@ -36,6 +36,7 @@ Environment::Environment(IGameDef *gamedef):
m_cache_active_block_mgmt_interval = g_settings->getFloat("active_block_mgmt_interval");
m_cache_abm_interval = g_settings->getFloat("abm_interval");
m_cache_nodetimer_interval = g_settings->getFloat("nodetimer_interval");
+ m_cache_abm_time_budget = g_settings->getFloat("abm_time_budget");
m_time_of_day = g_settings->getU32("world_start_time");
m_time_of_day_f = (float)m_time_of_day / 24000.0f;
diff --git a/src/environment.h b/src/environment.h
index 91c33ba15..b4884fdb3 100644
--- a/src/environment.h
+++ b/src/environment.h
@@ -147,6 +147,7 @@ protected:
float m_cache_active_block_mgmt_interval;
float m_cache_abm_interval;
float m_cache_nodetimer_interval;
+ float m_cache_abm_time_budget;
IGameDef *m_gamedef;
diff --git a/src/exceptions.h b/src/exceptions.h
index c54307653..a558adc5d 100644
--- a/src/exceptions.h
+++ b/src/exceptions.h
@@ -72,11 +72,6 @@ public:
SettingNotFoundException(const std::string &s): BaseException(s) {}
};
-class InvalidFilenameException : public BaseException {
-public:
- InvalidFilenameException(const std::string &s): BaseException(s) {}
-};
-
class ItemNotFoundException : public BaseException {
public:
ItemNotFoundException(const std::string &s): BaseException(s) {}
diff --git a/src/filesys.cpp b/src/filesys.cpp
index 0bc351669..5ffb4506e 100644
--- a/src/filesys.cpp
+++ b/src/filesys.cpp
@@ -27,9 +27,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "log.h"
#include "config.h"
#include "porting.h"
-#ifdef __ANDROID__
-#include "settings.h" // For g_settings
-#endif
namespace fs
{
@@ -295,31 +292,26 @@ bool RecursiveDelete(const std::string &path)
infostream<<"Removing \""<<path<<"\""<<std::endl;
- //return false;
-
pid_t child_pid = fork();
if(child_pid == 0)
{
// Child
- char argv_data[3][10000];
+ const char *argv[4] = {
#ifdef __ANDROID__
- strcpy(argv_data[0], "/system/bin/rm");
+ "/system/bin/rm",
#else
- strcpy(argv_data[0], "/bin/rm");
+ "/bin/rm",
#endif
- strcpy(argv_data[1], "-rf");
- strncpy(argv_data[2], path.c_str(), sizeof(argv_data[2]) - 1);
- char *argv[4];
- argv[0] = argv_data[0];
- argv[1] = argv_data[1];
- argv[2] = argv_data[2];
- argv[3] = NULL;
+ "-rf",
+ path.c_str(),
+ NULL
+ };
verbosestream<<"Executing '"<<argv[0]<<"' '"<<argv[1]<<"' '"
<<argv[2]<<"'"<<std::endl;
- execv(argv[0], argv);
+ execv(argv[0], const_cast<char**>(argv));
// Execv shouldn't return. Failed.
_exit(1);
@@ -331,7 +323,6 @@ bool RecursiveDelete(const std::string &path)
pid_t tpid;
do{
tpid = wait(&child_status);
- //if(tpid != child_pid) process_terminated(tpid);
}while(tpid != child_pid);
return (child_status == 0);
}
@@ -365,8 +356,9 @@ std::string TempPath()
compatible with lua's os.tmpname which under the default
configuration hardcodes mkstemp("/tmp/lua_XXXXXX").
*/
+
#ifdef __ANDROID__
- return g_settings->get("TMPFolder");
+ return porting::path_cache;
#else
return DIR_DELIM "tmp";
#endif
@@ -407,21 +399,6 @@ void GetRecursiveSubPaths(const std::string &path,
}
}
-bool DeletePaths(const std::vector<std::string> &paths)
-{
- bool success = true;
- // Go backwards to succesfully delete the output of GetRecursiveSubPaths
- for(int i=paths.size()-1; i>=0; i--){
- const std::string &path = paths[i];
- bool did = DeleteSingleFileOrEmptyDirectory(path);
- if(!did){
- errorstream<<"Failed to delete "<<path<<std::endl;
- success = false;
- }
- }
- return success;
-}
-
bool RecursiveDeleteContent(const std::string &path)
{
infostream<<"Removing content of \""<<path<<"\""<<std::endl;
@@ -750,6 +727,21 @@ bool safeWriteToFile(const std::string &path, const std::string &content)
return true;
}
+bool ReadFile(const std::string &path, std::string &out)
+{
+ std::ifstream is(path, std::ios::binary | std::ios::ate);
+ if (!is.good()) {
+ return false;
+ }
+
+ auto size = is.tellg();
+ out.resize(size);
+ is.seekg(0);
+ is.read(&out[0], size);
+
+ return true;
+}
+
bool Rename(const std::string &from, const std::string &to)
{
return rename(from.c_str(), to.c_str()) == 0;
diff --git a/src/filesys.h b/src/filesys.h
index 09f129aa3..cfbfa02bf 100644
--- a/src/filesys.h
+++ b/src/filesys.h
@@ -85,9 +85,6 @@ void GetRecursiveSubPaths(const std::string &path,
bool list_files,
const std::set<char> &ignore = {});
-// Tries to delete all, returns false if any failed
-bool DeletePaths(const std::vector<std::string> &paths);
-
// Only pass full paths to this one. True on success.
bool RecursiveDeleteContent(const std::string &path);
@@ -128,6 +125,8 @@ const char *GetFilenameFromPath(const char *path);
bool safeWriteToFile(const std::string &path, const std::string &content);
+bool ReadFile(const std::string &path, std::string &out);
+
bool Rename(const std::string &from, const std::string &to);
} // namespace fs
diff --git a/src/gameparams.h b/src/gameparams.h
index 28794a649..70b0ffcde 100644
--- a/src/gameparams.h
+++ b/src/gameparams.h
@@ -23,10 +23,29 @@ with this program; if not, write to the Free Software Foundation, Inc.,
struct SubgameSpec;
+// Information provided from "main"
struct GameParams
{
+ GameParams() = default;
+
u16 socket_port;
std::string world_path;
SubgameSpec game_spec;
bool is_dedicated_server;
};
+
+// Information processed by main menu
+struct GameStartData : GameParams
+{
+ GameStartData() = default;
+
+ bool isSinglePlayer() const { return address.empty() && !local_server; }
+
+ std::string name;
+ std::string password;
+ std::string address;
+ bool local_server;
+
+ // "world_path" must be kept in sync!
+ WorldSpec world_spec;
+};
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
index 147f445f4..fdd36914a 100644
--- a/src/gui/CMakeLists.txt
+++ b/src/gui/CMakeLists.txt
@@ -7,6 +7,7 @@ set(gui_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/guiButtonItemImage.cpp
${CMAKE_CURRENT_SOURCE_DIR}/guiChatConsole.cpp
${CMAKE_CURRENT_SOURCE_DIR}/guiConfirmRegistration.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/guiEditBox.cpp
${CMAKE_CURRENT_SOURCE_DIR}/guiEditBoxWithScrollbar.cpp
${CMAKE_CURRENT_SOURCE_DIR}/guiEngine.cpp
${CMAKE_CURRENT_SOURCE_DIR}/guiFormSpecMenu.cpp
@@ -15,6 +16,7 @@ set(gui_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/guiKeyChangeMenu.cpp
${CMAKE_CURRENT_SOURCE_DIR}/guiPasswordChange.cpp
${CMAKE_CURRENT_SOURCE_DIR}/guiPathSelectMenu.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/guiScene.cpp
${CMAKE_CURRENT_SOURCE_DIR}/guiScrollBar.cpp
${CMAKE_CURRENT_SOURCE_DIR}/guiScrollContainer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/guiSkin.cpp
diff --git a/src/gui/StyleSpec.h b/src/gui/StyleSpec.h
index 3e842e826..fc92a861b 100644
--- a/src/gui/StyleSpec.h
+++ b/src/gui/StyleSpec.h
@@ -18,10 +18,13 @@ with this program; if not, write to the Free Software Foundation, Inc.,
*/
#include "client/tile.h" // ITextureSource
+#include "client/fontengine.h"
#include "debug.h"
#include "irrlichttypes_extrabloated.h"
#include "util/string.h"
+#include <algorithm>
#include <array>
+#include <vector>
#pragma once
@@ -46,6 +49,14 @@ public:
ALPHA,
CONTENT_OFFSET,
PADDING,
+ FONT,
+ FONT_SIZE,
+ COLORS,
+ BORDERCOLORS,
+ BORDERWIDTHS,
+ SOUND,
+ SPACING,
+ SIZE,
NUM_PROPERTIES,
NONE
};
@@ -98,6 +109,22 @@ public:
return CONTENT_OFFSET;
} else if (name == "padding") {
return PADDING;
+ } else if (name == "font") {
+ return FONT;
+ } else if (name == "font_size") {
+ return FONT_SIZE;
+ } else if (name == "colors") {
+ return COLORS;
+ } else if (name == "bordercolors") {
+ return BORDERCOLORS;
+ } else if (name == "borderwidths") {
+ return BORDERWIDTHS;
+ } else if (name == "sound") {
+ return SOUND;
+ } else if (name == "spacing") {
+ return SPACING;
+ } else if (name == "size") {
+ return SIZE;
} else {
return NONE;
}
@@ -179,6 +206,42 @@ public:
return color;
}
+ std::array<video::SColor, 4> getColorArray(Property prop,
+ std::array<video::SColor, 4> def) const
+ {
+ const auto &val = properties[prop];
+ if (val.empty())
+ return def;
+
+ std::vector<std::string> strs;
+ if (!parseArray(val, strs))
+ return def;
+
+ for (size_t i = 0; i <= 3; i++) {
+ video::SColor color;
+ if (parseColorString(strs[i], color, false, 0xff))
+ def[i] = color;
+ }
+
+ return def;
+ }
+
+ std::array<s32, 4> getIntArray(Property prop, std::array<s32, 4> def) const
+ {
+ const auto &val = properties[prop];
+ if (val.empty())
+ return def;
+
+ std::vector<std::string> strs;
+ if (!parseArray(val, strs))
+ return def;
+
+ for (size_t i = 0; i <= 3; i++)
+ def[i] = stoi(strs[i]);
+
+ return def;
+ }
+
irr::core::rect<s32> getRect(Property prop, irr::core::rect<s32> def) const
{
const auto &val = properties[prop];
@@ -202,27 +265,81 @@ public:
return rect;
}
- irr::core::vector2d<s32> getVector2i(Property prop, irr::core::vector2d<s32> def) const
+ v2f32 getVector2f(Property prop, v2f32 def) const
{
const auto &val = properties[prop];
if (val.empty())
return def;
- irr::core::vector2d<s32> vec;
- if (!parseVector2i(val, &vec))
+ v2f32 vec;
+ if (!parseVector2f(val, &vec))
return def;
return vec;
}
- irr::core::vector2d<s32> getVector2i(Property prop) const
+ v2s32 getVector2i(Property prop, v2s32 def) const
+ {
+ const auto &val = properties[prop];
+ if (val.empty())
+ return def;
+
+ v2f32 vec;
+ if (!parseVector2f(val, &vec))
+ return def;
+
+ return v2s32(vec.X, vec.Y);
+ }
+
+ v2s32 getVector2i(Property prop) const
{
const auto &val = properties[prop];
FATAL_ERROR_IF(val.empty(), "Unexpected missing property");
- irr::core::vector2d<s32> vec;
- parseVector2i(val, &vec);
- return vec;
+ v2f32 vec;
+ parseVector2f(val, &vec);
+ return v2s32(vec.X, vec.Y);
+ }
+
+ gui::IGUIFont *getFont() const
+ {
+ FontSpec spec(FONT_SIZE_UNSPECIFIED, FM_Standard, false, false);
+
+ const std::string &font = properties[FONT];
+ const std::string &size = properties[FONT_SIZE];
+
+ if (font.empty() && size.empty())
+ return nullptr;
+
+ std::vector<std::string> modes = split(font, ',');
+
+ for (size_t i = 0; i < modes.size(); i++) {
+ if (modes[i] == "normal")
+ spec.mode = FM_Standard;
+ else if (modes[i] == "mono")
+ spec.mode = FM_Mono;
+ else if (modes[i] == "bold")
+ spec.bold = true;
+ else if (modes[i] == "italic")
+ spec.italic = true;
+ }
+
+ if (!size.empty()) {
+ int calc_size = 1;
+
+ if (size[0] == '*') {
+ std::string new_size = size.substr(1); // Remove '*' (invalid for stof)
+ calc_size = stof(new_size) * g_fontengine->getFontSize(spec.mode);
+ } else if (size[0] == '+' || size[0] == '-') {
+ calc_size = stoi(size) + g_fontengine->getFontSize(spec.mode);
+ } else {
+ calc_size = stoi(size);
+ }
+
+ spec.size = (unsigned)std::min(std::max(calc_size, 1), 999);
+ }
+
+ return g_fontengine->getFont(spec);
}
video::ITexture *getTexture(Property prop, ISimpleTextureSource *tsrc,
@@ -285,6 +402,24 @@ public:
}
private:
+ bool parseArray(const std::string &value, std::vector<std::string> &arr) const
+ {
+ std::vector<std::string> strs = split(value, ',');
+
+ if (strs.size() == 1) {
+ arr = {strs[0], strs[0], strs[0], strs[0]};
+ } else if (strs.size() == 2) {
+ arr = {strs[0], strs[1], strs[0], strs[1]};
+ } else if (strs.size() == 4) {
+ arr = strs;
+ } else {
+ warningstream << "Invalid array size (" << strs.size()
+ << " arguments): \"" << value << "\"" << std::endl;
+ return false;
+ }
+ return true;
+ }
+
bool parseRect(const std::string &value, irr::core::rect<s32> *parsed_rect) const
{
irr::core::rect<s32> rect;
@@ -316,22 +451,20 @@ private:
return true;
}
- bool parseVector2i(const std::string &value, irr::core::vector2d<s32> *parsed_vec) const
+ bool parseVector2f(const std::string &value, v2f32 *parsed_vec) const
{
- irr::core::vector2d<s32> vec;
+ v2f32 vec;
std::vector<std::string> v_vector = split(value, ',');
if (v_vector.size() == 1) {
- s32 x = stoi(v_vector[0]);
+ f32 x = stof(v_vector[0]);
vec.X = x;
vec.Y = x;
} else if (v_vector.size() == 2) {
- s32 x = stoi(v_vector[0]);
- s32 y = stoi(v_vector[1]);
- vec.X = x;
- vec.Y = y;
+ vec.X = stof(v_vector[0]);
+ vec.Y = stof(v_vector[1]);
} else {
- warningstream << "Invalid vector2d string format: \"" << value
+ warningstream << "Invalid 2d vector string format: \"" << value
<< "\"" << std::endl;
return false;
}
diff --git a/src/gui/guiBox.cpp b/src/gui/guiBox.cpp
index 7f329cc32..443f1064f 100644
--- a/src/gui/guiBox.cpp
+++ b/src/gui/guiBox.cpp
@@ -20,9 +20,14 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "guiBox.h"
GUIBox::GUIBox(gui::IGUIEnvironment *env, gui::IGUIElement *parent, s32 id,
- const core::rect<s32> &rectangle, const video::SColor &color) :
+ const core::rect<s32> &rectangle,
+ const std::array<video::SColor, 4> &colors,
+ const std::array<video::SColor, 4> &bordercolors,
+ const std::array<s32, 4> &borderwidths) :
gui::IGUIElement(gui::EGUIET_ELEMENT, env, parent, id, rectangle),
- m_color(color)
+ m_colors(colors),
+ m_bordercolors(bordercolors),
+ m_borderwidths(borderwidths)
{
}
@@ -31,8 +36,82 @@ void GUIBox::draw()
if (!IsVisible)
return;
- Environment->getVideoDriver()->draw2DRectangle(m_color, AbsoluteRect,
- &AbsoluteClippingRect);
+ std::array<s32, 4> negative_borders = {0, 0, 0, 0};
+ std::array<s32, 4> positive_borders = {0, 0, 0, 0};
+
+ for (size_t i = 0; i <= 3; i++) {
+ if (m_borderwidths[i] > 0)
+ positive_borders[i] = m_borderwidths[i];
+ else
+ negative_borders[i] = m_borderwidths[i];
+ }
+
+ v2s32 upperleft = AbsoluteRect.UpperLeftCorner;
+ v2s32 lowerright = AbsoluteRect.LowerRightCorner;
+
+ v2s32 topleft_border = {
+ upperleft.X - positive_borders[3],
+ upperleft.Y - positive_borders[0]
+ };
+ v2s32 topleft_rect = {
+ upperleft.X - negative_borders[3],
+ upperleft.Y - negative_borders[0]
+ };
+
+ v2s32 lowerright_border = {
+ lowerright.X + positive_borders[1],
+ lowerright.Y + positive_borders[2]
+ };
+ v2s32 lowerright_rect = {
+ lowerright.X + negative_borders[1],
+ lowerright.Y + negative_borders[2]
+ };
+
+ core::rect<s32> main_rect(
+ topleft_rect.X,
+ topleft_rect.Y,
+ lowerright_rect.X,
+ lowerright_rect.Y
+ );
+
+ std::array<core::rect<s32>, 4> border_rects;
+
+ border_rects[0] = core::rect<s32>(
+ topleft_border.X,
+ topleft_border.Y,
+ lowerright_border.X,
+ topleft_rect.Y
+ );
+
+ border_rects[1] = core::rect<s32>(
+ lowerright_rect.X,
+ topleft_rect.Y,
+ lowerright_border.X,
+ lowerright_rect.Y
+ );
+
+ border_rects[2] = core::rect<s32>(
+ topleft_border.X,
+ lowerright_rect.Y,
+ lowerright_border.X,
+ lowerright_border.Y
+ );
+
+ border_rects[3] = core::rect<s32>(
+ topleft_border.X,
+ topleft_rect.Y,
+ topleft_rect.X,
+ lowerright_rect.Y
+ );
+
+ video::IVideoDriver *driver = Environment->getVideoDriver();
+
+ driver->draw2DRectangle(main_rect, m_colors[0], m_colors[1], m_colors[3],
+ m_colors[2], &AbsoluteClippingRect);
+
+ for (size_t i = 0; i <= 3; i++)
+ driver->draw2DRectangle(m_bordercolors[i], border_rects[i],
+ &AbsoluteClippingRect);
IGUIElement::draw();
}
diff --git a/src/gui/guiBox.h b/src/gui/guiBox.h
index 5306fdf65..ca8f83771 100644
--- a/src/gui/guiBox.h
+++ b/src/gui/guiBox.h
@@ -19,16 +19,23 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#pragma once
+#include <vector>
+#include <array>
#include "irrlichttypes_extrabloated.h"
class GUIBox : public gui::IGUIElement
{
public:
GUIBox(gui::IGUIEnvironment *env, gui::IGUIElement *parent, s32 id,
- const core::rect<s32> &rectangle, const video::SColor &color);
+ const core::rect<s32> &rectangle,
+ const std::array<video::SColor, 4> &colors,
+ const std::array<video::SColor, 4> &bordercolors,
+ const std::array<s32, 4> &borderwidths);
virtual void draw() override;
private:
- video::SColor m_color;
+ std::array<video::SColor, 4> m_colors;
+ std::array<video::SColor, 4> m_bordercolors;
+ std::array<s32, 4> m_borderwidths;
};
diff --git a/src/gui/guiButton.cpp b/src/gui/guiButton.cpp
index 6732a9233..b98e5de82 100644
--- a/src/gui/guiButton.cpp
+++ b/src/gui/guiButton.cpp
@@ -313,11 +313,12 @@ void GUIButton::draw()
// PATCH
video::ITexture* texture = ButtonImages[(u32)imageState].Texture;
+ video::SColor image_colors[] = { BgColor, BgColor, BgColor, BgColor };
if (BgMiddle.getArea() == 0) {
driver->draw2DImage(texture,
ScaleImage? AbsoluteRect : core::rect<s32>(pos, sourceRect.getSize()),
sourceRect, &AbsoluteClippingRect,
- 0, UseAlphaChannel);
+ image_colors, UseAlphaChannel);
} else {
core::rect<s32> middle = BgMiddle;
// `-x` is interpreted as `w - x`
@@ -327,7 +328,7 @@ void GUIButton::draw()
middle.LowerRightCorner.Y += texture->getOriginalSize().Height;
draw2DImage9Slice(driver, texture,
ScaleImage ? AbsoluteRect : core::rect<s32>(pos, sourceRect.getSize()),
- middle, &AbsoluteClippingRect);
+ middle, &AbsoluteClippingRect, image_colors);
}
// END PATCH
}
@@ -722,6 +723,8 @@ GUIButton* GUIButton::addButton(IGUIEnvironment *environment,
void GUIButton::setColor(video::SColor color)
{
+ BgColor = color;
+
float d = 0.65f;
for (size_t i = 0; i < 4; i++) {
video::SColor base = Environment->getSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i);
@@ -750,22 +753,26 @@ void GUIButton::setFromStyle(const StyleSpec& style)
bool pressed = (style.getState() & StyleSpec::STATE_PRESSED) != 0;
if (style.isNotDefault(StyleSpec::BGCOLOR)) {
-
setColor(style.getColor(StyleSpec::BGCOLOR));
// If we have a propagated hover/press color, we need to automatically
// lighten/darken it
if (!Styles[style.getState()].isNotDefault(StyleSpec::BGCOLOR)) {
- for (size_t i = 0; i < 4; i++) {
if (pressed) {
- Colors[i] = multiplyColorValue(Colors[i], COLOR_PRESSED_MOD);
+ BgColor = multiplyColorValue(BgColor, COLOR_PRESSED_MOD);
+
+ for (size_t i = 0; i < 4; i++)
+ Colors[i] = multiplyColorValue(Colors[i], COLOR_PRESSED_MOD);
} else if (hovered) {
- Colors[i] = multiplyColorValue(Colors[i], COLOR_HOVERED_MOD);
+ BgColor = multiplyColorValue(BgColor, COLOR_HOVERED_MOD);
+
+ for (size_t i = 0; i < 4; i++)
+ Colors[i] = multiplyColorValue(Colors[i], COLOR_HOVERED_MOD);
}
- }
}
} else {
+ BgColor = video::SColor(255, 255, 255, 255);
for (size_t i = 0; i < 4; i++) {
video::SColor base =
Environment->getSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i);
@@ -788,6 +795,7 @@ void GUIButton::setFromStyle(const StyleSpec& style)
setNotClipped(style.getBool(StyleSpec::NOCLIP, false));
setDrawBorder(style.getBool(StyleSpec::BORDER, true));
setUseAlphaChannel(style.getBool(StyleSpec::ALPHA, true));
+ setOverrideFont(style.getFont());
if (style.isNotDefault(StyleSpec::BGIMG)) {
video::ITexture *texture = style.getTexture(StyleSpec::BGIMG,
diff --git a/src/gui/guiButton.h b/src/gui/guiButton.h
index 95fa1a2a1..4e1b04aac 100644
--- a/src/gui/guiButton.h
+++ b/src/gui/guiButton.h
@@ -338,5 +338,6 @@ private:
core::rect<s32> BgMiddle;
core::rect<s32> Padding;
core::vector2d<s32> ContentOffset;
+ video::SColor BgColor;
// END PATCH
};
diff --git a/src/gui/guiButtonItemImage.cpp b/src/gui/guiButtonItemImage.cpp
index d8b9042ac..39272fe37 100644
--- a/src/gui/guiButtonItemImage.cpp
+++ b/src/gui/guiButtonItemImage.cpp
@@ -39,7 +39,6 @@ GUIButtonItemImage::GUIButtonItemImage(gui::IGUIEnvironment *environment,
item, getActiveFont(), client);
sendToBack(m_image);
- m_item_name = item;
m_client = client;
}
diff --git a/src/gui/guiButtonItemImage.h b/src/gui/guiButtonItemImage.h
index aad923bda..b90ac757e 100644
--- a/src/gui/guiButtonItemImage.h
+++ b/src/gui/guiButtonItemImage.h
@@ -42,7 +42,6 @@ public:
Client *client);
private:
- std::string m_item_name;
Client *m_client;
GUIItemImage *m_image;
};
diff --git a/src/gui/guiChatConsole.cpp b/src/gui/guiChatConsole.cpp
index 8de00c12f..ef471106d 100644
--- a/src/gui/guiChatConsole.cpp
+++ b/src/gui/guiChatConsole.cpp
@@ -136,11 +136,6 @@ void GUIChatConsole::closeConsoleAtOnce()
recalculateConsolePosition();
}
-f32 GUIChatConsole::getDesiredHeight() const
-{
- return m_desired_height_fraction;
-}
-
void GUIChatConsole::replaceAndAddToHistory(const std::wstring &line)
{
ChatPrompt& prompt = m_chat_backend->getPrompt();
@@ -545,7 +540,7 @@ bool GUIChatConsole::OnEvent(const SEvent& event)
if (prompt.getCursorLength() <= 0)
return true;
std::wstring wselected = prompt.getSelection();
- std::string selected(wselected.begin(), wselected.end());
+ std::string selected = wide_to_utf8(wselected);
Environment->getOSOperator()->copyToClipboard(selected.c_str());
return true;
}
@@ -575,7 +570,7 @@ bool GUIChatConsole::OnEvent(const SEvent& event)
if (prompt.getCursorLength() <= 0)
return true;
std::wstring wselected = prompt.getSelection();
- std::string selected(wselected.begin(), wselected.end());
+ std::string selected = wide_to_utf8(wselected);
Environment->getOSOperator()->copyToClipboard(selected.c_str());
prompt.cursorOperation(
ChatPrompt::CURSOROP_DELETE,
diff --git a/src/gui/guiChatConsole.h b/src/gui/guiChatConsole.h
index 7be40e27c..896342ab0 100644
--- a/src/gui/guiChatConsole.h
+++ b/src/gui/guiChatConsole.h
@@ -55,10 +55,6 @@ public:
// Set whether to close the console after the user presses enter.
void setCloseOnEnter(bool close) { m_close_on_enter = close; }
- // Return the desired height (fraction of screen size)
- // Zero if the console is closed or getting closed
- f32 getDesiredHeight() const;
-
// Replace actual line when adding the actual to the history (if there is any)
void replaceAndAddToHistory(const std::wstring &line);
@@ -72,8 +68,6 @@ public:
// Irrlicht draw method
virtual void draw();
- bool canTakeFocus(gui::IGUIElement* element) { return false; }
-
virtual bool OnEvent(const SEvent& event);
virtual void setVisible(bool visible);
diff --git a/src/gui/guiConfirmRegistration.cpp b/src/gui/guiConfirmRegistration.cpp
index 58ac42740..4a798c39b 100644
--- a/src/gui/guiConfirmRegistration.cpp
+++ b/src/gui/guiConfirmRegistration.cpp
@@ -73,7 +73,11 @@ void GUIConfirmRegistration::regenerateGui(v2u32 screensize)
/*
Calculate new sizes and positions
*/
+#ifdef __ANDROID__
+ const float s = m_gui_scale * porting::getDisplayDensity() / 2;
+#else
const float s = m_gui_scale;
+#endif
DesiredRect = core::rect<s32>(
screensize.X / 2 - 600 * s / 2,
screensize.Y / 2 - 360 * s / 2,
@@ -188,8 +192,7 @@ void GUIConfirmRegistration::acceptInput()
bool GUIConfirmRegistration::processInput()
{
- std::wstring m_password_ws = narrow_to_wide(m_password);
- if (m_password_ws != m_pass_confirm) {
+ if (utf8_to_wide(m_password) != m_pass_confirm) {
gui::IGUIElement *e = getElementFromId(ID_message);
if (e)
e->setVisible(true);
@@ -222,7 +225,7 @@ bool GUIConfirmRegistration::OnEvent(const SEvent &event)
if (event.GUIEvent.EventType == gui::EGET_ELEMENT_FOCUS_LOST && isVisible()) {
if (!canTakeFocus(event.GUIEvent.Element)) {
- dstream << "GUIConfirmRegistration: Not allowing focus change."
+ infostream << "GUIConfirmRegistration: Not allowing focus change."
<< std::endl;
// Returning true disables focus change
return true;
@@ -257,12 +260,19 @@ bool GUIConfirmRegistration::getAndroidUIInput()
if (!hasAndroidUIInput() || m_jni_field_name != "password")
return false;
- std::string text = porting::getInputDialogValue();
- gui::IGUIElement *e = getElementFromId(ID_confirmPassword);
- if (e)
- e->setText(utf8_to_wide(text).c_str());
+ // still waiting
+ if (porting::getInputDialogState() == -1)
+ return true;
m_jni_field_name.clear();
+
+ gui::IGUIElement *e = getElementFromId(ID_confirmPassword);
+
+ if (!e || e->getType() != irr::gui::EGUIET_EDIT_BOX)
+ return false;
+
+ std::string text = porting::getInputDialogValue();
+ e->setText(utf8_to_wide(text).c_str());
return false;
}
#endif
diff --git a/src/gui/guiEditBox.cpp b/src/gui/guiEditBox.cpp
new file mode 100644
index 000000000..79979dbc3
--- /dev/null
+++ b/src/gui/guiEditBox.cpp
@@ -0,0 +1,911 @@
+/*
+Minetest
+Copyright (C) 2021 Minetest
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "guiEditBox.h"
+
+#include "IGUISkin.h"
+#include "IGUIEnvironment.h"
+#include "IGUIFont.h"
+
+#include "porting.h"
+
+GUIEditBox::~GUIEditBox()
+{
+ if (m_override_font)
+ m_override_font->drop();
+
+ if (m_operator)
+ m_operator->drop();
+
+ if (m_vscrollbar)
+ m_vscrollbar->drop();
+}
+
+void GUIEditBox::setOverrideFont(IGUIFont *font)
+{
+ if (m_override_font == font)
+ return;
+
+ if (m_override_font)
+ m_override_font->drop();
+
+ m_override_font = font;
+
+ if (m_override_font)
+ m_override_font->grab();
+
+ breakText();
+}
+
+//! Get the font which is used right now for drawing
+IGUIFont *GUIEditBox::getActiveFont() const
+{
+ if (m_override_font)
+ return m_override_font;
+ IGUISkin *skin = Environment->getSkin();
+ if (skin)
+ return skin->getFont();
+ return 0;
+}
+
+//! Sets another color for the text.
+void GUIEditBox::setOverrideColor(video::SColor color)
+{
+ m_override_color = color;
+ m_override_color_enabled = true;
+}
+
+video::SColor GUIEditBox::getOverrideColor() const
+{
+ return m_override_color;
+}
+
+//! Sets if the text should use the overide color or the color in the gui skin.
+void GUIEditBox::enableOverrideColor(bool enable)
+{
+ m_override_color_enabled = enable;
+}
+
+//! Enables or disables word wrap
+void GUIEditBox::setWordWrap(bool enable)
+{
+ m_word_wrap = enable;
+ breakText();
+}
+
+//! Enables or disables newlines.
+void GUIEditBox::setMultiLine(bool enable)
+{
+ m_multiline = enable;
+}
+
+//! Enables or disables automatic scrolling with cursor position
+//! \param enable: If set to true, the text will move around with the cursor position
+void GUIEditBox::setAutoScroll(bool enable)
+{
+ m_autoscroll = enable;
+}
+
+void GUIEditBox::setPasswordBox(bool password_box, wchar_t password_char)
+{
+ m_passwordbox = password_box;
+ if (m_passwordbox) {
+ m_passwordchar = password_char;
+ setMultiLine(false);
+ setWordWrap(false);
+ m_broken_text.clear();
+ }
+}
+
+//! Sets text justification
+void GUIEditBox::setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical)
+{
+ m_halign = horizontal;
+ m_valign = vertical;
+}
+
+//! Sets the new caption of this element.
+void GUIEditBox::setText(const wchar_t *text)
+{
+ Text = text;
+ if (u32(m_cursor_pos) > Text.size())
+ m_cursor_pos = Text.size();
+ m_hscroll_pos = 0;
+ breakText();
+}
+
+//! Sets the maximum amount of characters which may be entered in the box.
+//! \param max: Maximum amount of characters. If 0, the character amount is
+//! infinity.
+void GUIEditBox::setMax(u32 max)
+{
+ m_max = max;
+
+ if (Text.size() > m_max && m_max != 0)
+ Text = Text.subString(0, m_max);
+}
+
+//! Gets the area of the text in the edit box
+//! \return Returns the size in pixels of the text
+core::dimension2du GUIEditBox::getTextDimension()
+{
+ core::rect<s32> ret;
+
+ setTextRect(0);
+ ret = m_current_text_rect;
+
+ for (u32 i = 1; i < m_broken_text.size(); ++i) {
+ setTextRect(i);
+ ret.addInternalPoint(m_current_text_rect.UpperLeftCorner);
+ ret.addInternalPoint(m_current_text_rect.LowerRightCorner);
+ }
+
+ return core::dimension2du(ret.getSize());
+}
+
+//! Turns the border on or off
+void GUIEditBox::setDrawBorder(bool border)
+{
+ m_border = border;
+}
+
+void GUIEditBox::setWritable(bool can_write_text)
+{
+ m_writable = can_write_text;
+}
+
+//! set text markers
+void GUIEditBox::setTextMarkers(s32 begin, s32 end)
+{
+ if (begin != m_mark_begin || end != m_mark_end) {
+ m_mark_begin = begin;
+ m_mark_end = end;
+ sendGuiEvent(EGET_EDITBOX_MARKING_CHANGED);
+ }
+}
+
+//! send some gui event to parent
+void GUIEditBox::sendGuiEvent(EGUI_EVENT_TYPE type)
+{
+ if (Parent) {
+ SEvent e;
+ e.EventType = EET_GUI_EVENT;
+ e.GUIEvent.Caller = this;
+ e.GUIEvent.Element = 0;
+ e.GUIEvent.EventType = type;
+
+ Parent->OnEvent(e);
+ }
+}
+
+//! called if an event happened.
+bool GUIEditBox::OnEvent(const SEvent &event)
+{
+ if (isEnabled()) {
+
+ switch (event.EventType) {
+ case EET_GUI_EVENT:
+ if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST) {
+ if (event.GUIEvent.Caller == this) {
+ m_mouse_marking = false;
+ setTextMarkers(0, 0);
+ }
+ }
+ break;
+ case EET_KEY_INPUT_EVENT: {
+#if (defined(__linux__) || defined(__FreeBSD__)) || defined(__DragonFly__)
+ // ################################################################
+ // ValkaTR:
+ // This part is the difference from the original intlGUIEditBox
+ // It converts UTF-8 character into a UCS-2 (wchar_t)
+ wchar_t wc = L'_';
+ mbtowc(&wc, (char *)&event.KeyInput.Char,
+ sizeof(event.KeyInput.Char));
+
+ // printf( "char: %lc (%u) \r\n", wc, wc );
+
+ SEvent irrevent(event);
+ irrevent.KeyInput.Char = wc;
+ // ################################################################
+
+ if (processKey(irrevent))
+ return true;
+#else
+ if (processKey(event))
+ return true;
+#endif // defined(linux)
+
+ break;
+ }
+ case EET_MOUSE_INPUT_EVENT:
+ if (processMouse(event))
+ return true;
+ break;
+ default:
+ break;
+ }
+ }
+
+ return IGUIElement::OnEvent(event);
+}
+
+bool GUIEditBox::processKey(const SEvent &event)
+{
+ if (!m_writable) {
+ return false;
+ }
+
+ if (!event.KeyInput.PressedDown)
+ return false;
+
+ bool text_changed = false;
+ s32 new_mark_begin = m_mark_begin;
+ s32 new_mark_end = m_mark_end;
+
+ // control shortcut handling
+ if (event.KeyInput.Control) {
+
+ // german backlash '\' entered with control + '?'
+ if (event.KeyInput.Char == '\\') {
+ inputChar(event.KeyInput.Char);
+ return true;
+ }
+
+ switch (event.KeyInput.Key) {
+ case KEY_KEY_A:
+ // select all
+ new_mark_begin = 0;
+ new_mark_end = Text.size();
+ break;
+ case KEY_KEY_C:
+ onKeyControlC(event);
+ break;
+ case KEY_KEY_X:
+ text_changed = onKeyControlX(event, new_mark_begin, new_mark_end);
+ break;
+ case KEY_KEY_V:
+ text_changed = onKeyControlV(event, new_mark_begin, new_mark_end);
+ break;
+ case KEY_HOME:
+ // move/highlight to start of text
+ if (event.KeyInput.Shift) {
+ new_mark_end = m_cursor_pos;
+ new_mark_begin = 0;
+ m_cursor_pos = 0;
+ } else {
+ m_cursor_pos = 0;
+ new_mark_begin = 0;
+ new_mark_end = 0;
+ }
+ break;
+ case KEY_END:
+ // move/highlight to end of text
+ if (event.KeyInput.Shift) {
+ new_mark_begin = m_cursor_pos;
+ new_mark_end = Text.size();
+ m_cursor_pos = 0;
+ } else {
+ m_cursor_pos = Text.size();
+ new_mark_begin = 0;
+ new_mark_end = 0;
+ }
+ break;
+ default:
+ return false;
+ }
+ } else {
+ switch (event.KeyInput.Key) {
+ case KEY_END: {
+ s32 p = Text.size();
+ if (m_word_wrap || m_multiline) {
+ p = getLineFromPos(m_cursor_pos);
+ p = m_broken_text_positions[p] +
+ (s32)m_broken_text[p].size();
+ if (p > 0 && (Text[p - 1] == L'\r' ||
+ Text[p - 1] == L'\n'))
+ p -= 1;
+ }
+
+ if (event.KeyInput.Shift) {
+ if (m_mark_begin == m_mark_end)
+ new_mark_begin = m_cursor_pos;
+
+ new_mark_end = p;
+ } else {
+ new_mark_begin = 0;
+ new_mark_end = 0;
+ }
+ m_cursor_pos = p;
+ m_blink_start_time = porting::getTimeMs();
+ } break;
+ case KEY_HOME: {
+
+ s32 p = 0;
+ if (m_word_wrap || m_multiline) {
+ p = getLineFromPos(m_cursor_pos);
+ p = m_broken_text_positions[p];
+ }
+
+ if (event.KeyInput.Shift) {
+ if (m_mark_begin == m_mark_end)
+ new_mark_begin = m_cursor_pos;
+ new_mark_end = p;
+ } else {
+ new_mark_begin = 0;
+ new_mark_end = 0;
+ }
+ m_cursor_pos = p;
+ m_blink_start_time = porting::getTimeMs();
+ } break;
+ case KEY_RETURN:
+ if (m_multiline) {
+ inputChar(L'\n');
+ } else {
+ calculateScrollPos();
+ sendGuiEvent(EGET_EDITBOX_ENTER);
+ }
+ return true;
+ case KEY_LEFT:
+ if (event.KeyInput.Shift) {
+ if (m_cursor_pos > 0) {
+ if (m_mark_begin == m_mark_end)
+ new_mark_begin = m_cursor_pos;
+
+ new_mark_end = m_cursor_pos - 1;
+ }
+ } else {
+ new_mark_begin = 0;
+ new_mark_end = 0;
+ }
+
+ if (m_cursor_pos > 0)
+ m_cursor_pos--;
+ m_blink_start_time = porting::getTimeMs();
+ break;
+ case KEY_RIGHT:
+ if (event.KeyInput.Shift) {
+ if (Text.size() > (u32)m_cursor_pos) {
+ if (m_mark_begin == m_mark_end)
+ new_mark_begin = m_cursor_pos;
+
+ new_mark_end = m_cursor_pos + 1;
+ }
+ } else {
+ new_mark_begin = 0;
+ new_mark_end = 0;
+ }
+
+ if (Text.size() > (u32)m_cursor_pos)
+ m_cursor_pos++;
+ m_blink_start_time = porting::getTimeMs();
+ break;
+ case KEY_UP:
+ if (!onKeyUp(event, new_mark_begin, new_mark_end)) {
+ return false;
+ }
+ break;
+ case KEY_DOWN:
+ if (!onKeyDown(event, new_mark_begin, new_mark_end)) {
+ return false;
+ }
+ break;
+ case KEY_BACK:
+ text_changed = onKeyBack(event, new_mark_begin, new_mark_end);
+ break;
+
+ case KEY_DELETE:
+ text_changed = onKeyDelete(event, new_mark_begin, new_mark_end);
+ break;
+
+ case KEY_ESCAPE:
+ case KEY_TAB:
+ case KEY_SHIFT:
+ case KEY_F1:
+ case KEY_F2:
+ case KEY_F3:
+ case KEY_F4:
+ case KEY_F5:
+ case KEY_F6:
+ case KEY_F7:
+ case KEY_F8:
+ case KEY_F9:
+ case KEY_F10:
+ case KEY_F11:
+ case KEY_F12:
+ case KEY_F13:
+ case KEY_F14:
+ case KEY_F15:
+ case KEY_F16:
+ case KEY_F17:
+ case KEY_F18:
+ case KEY_F19:
+ case KEY_F20:
+ case KEY_F21:
+ case KEY_F22:
+ case KEY_F23:
+ case KEY_F24:
+ // ignore these keys
+ return false;
+
+ default:
+ inputChar(event.KeyInput.Char);
+ return true;
+ }
+ }
+
+ // Set new text markers
+ setTextMarkers(new_mark_begin, new_mark_end);
+
+ // break the text if it has changed
+ if (text_changed) {
+ breakText();
+ sendGuiEvent(EGET_EDITBOX_CHANGED);
+ }
+
+ calculateScrollPos();
+
+ return true;
+}
+
+bool GUIEditBox::onKeyUp(const SEvent &event, s32 &mark_begin, s32 &mark_end)
+{
+ // clang-format off
+ if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) {
+ s32 lineNo = getLineFromPos(m_cursor_pos);
+ s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos :
+ (m_mark_begin > m_mark_end ? m_mark_begin : m_mark_end);
+ if (lineNo > 0) {
+ s32 cp = m_cursor_pos - m_broken_text_positions[lineNo];
+ if ((s32)m_broken_text[lineNo - 1].size() < cp) {
+ m_cursor_pos = m_broken_text_positions[lineNo - 1] +
+ core::max_((u32)1, m_broken_text[lineNo - 1].size()) - 1;
+ }
+ else
+ m_cursor_pos = m_broken_text_positions[lineNo - 1] + cp;
+ }
+
+ if (event.KeyInput.Shift) {
+ mark_begin = mb;
+ mark_end = m_cursor_pos;
+ } else {
+ mark_begin = 0;
+ mark_end = 0;
+ }
+
+ return true;
+ }
+
+ // clang-format on
+ return false;
+}
+
+bool GUIEditBox::onKeyDown(const SEvent &event, s32 &mark_begin, s32 &mark_end)
+{
+ // clang-format off
+ if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) {
+ s32 lineNo = getLineFromPos(m_cursor_pos);
+ s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos :
+ (m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end);
+ if (lineNo < (s32)m_broken_text.size() - 1) {
+ s32 cp = m_cursor_pos - m_broken_text_positions[lineNo];
+ if ((s32)m_broken_text[lineNo + 1].size() < cp) {
+ m_cursor_pos = m_broken_text_positions[lineNo + 1] +
+ core::max_((u32)1, m_broken_text[lineNo + 1].size()) - 1;
+ }
+ else
+ m_cursor_pos = m_broken_text_positions[lineNo + 1] + cp;
+ }
+
+ if (event.KeyInput.Shift) {
+ mark_begin = mb;
+ mark_end = m_cursor_pos;
+ } else {
+ mark_begin = 0;
+ mark_end = 0;
+ }
+
+ return true;
+ }
+
+ // clang-format on
+ return false;
+}
+
+void GUIEditBox::onKeyControlC(const SEvent &event)
+{
+ // copy to clipboard
+ if (m_passwordbox || !m_operator || m_mark_begin == m_mark_end)
+ return;
+
+ const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
+ const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
+
+ core::stringc s;
+ s = Text.subString(realmbgn, realmend - realmbgn).c_str();
+ m_operator->copyToClipboard(s.c_str());
+}
+
+bool GUIEditBox::onKeyControlX(const SEvent &event, s32 &mark_begin, s32 &mark_end)
+{
+ // First copy to clipboard
+ onKeyControlC(event);
+
+ if (m_passwordbox || !m_operator || m_mark_begin == m_mark_end)
+ return false;
+
+ const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
+ const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
+
+ // Now remove from box if enabled
+ if (isEnabled()) {
+ // delete
+ core::stringw s;
+ s = Text.subString(0, realmbgn);
+ s.append(Text.subString(realmend, Text.size() - realmend));
+ Text = s;
+
+ m_cursor_pos = realmbgn;
+ mark_begin = 0;
+ mark_end = 0;
+ return true;
+ }
+
+ return false;
+}
+
+bool GUIEditBox::onKeyControlV(const SEvent &event, s32 &mark_begin, s32 &mark_end)
+{
+ if (!isEnabled())
+ return false;
+
+ // paste from the clipboard
+ if (!m_operator)
+ return false;
+
+ const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
+ const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
+
+ // add new character
+ if (const c8 *p = m_operator->getTextFromClipboard()) {
+ if (m_mark_begin == m_mark_end) {
+ // insert text
+ core::stringw s = Text.subString(0, m_cursor_pos);
+ s.append(p);
+ s.append(Text.subString(
+ m_cursor_pos, Text.size() - m_cursor_pos));
+
+ if (!m_max || s.size() <= m_max) {
+ Text = s;
+ s = p;
+ m_cursor_pos += s.size();
+ }
+ } else {
+ // replace text
+
+ core::stringw s = Text.subString(0, realmbgn);
+ s.append(p);
+ s.append(Text.subString(realmend, Text.size() - realmend));
+
+ if (!m_max || s.size() <= m_max) {
+ Text = s;
+ s = p;
+ m_cursor_pos = realmbgn + s.size();
+ }
+ }
+ }
+
+ mark_begin = 0;
+ mark_end = 0;
+ return true;
+}
+
+bool GUIEditBox::onKeyBack(const SEvent &event, s32 &mark_begin, s32 &mark_end)
+{
+ if (!isEnabled() || Text.empty())
+ return false;
+
+ core::stringw s;
+
+ if (m_mark_begin != m_mark_end) {
+ // delete marked text
+ const s32 realmbgn =
+ m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
+ const s32 realmend =
+ m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
+
+ s = Text.subString(0, realmbgn);
+ s.append(Text.subString(realmend, Text.size() - realmend));
+ Text = s;
+
+ m_cursor_pos = realmbgn;
+ } else {
+ // delete text behind cursor
+ if (m_cursor_pos > 0)
+ s = Text.subString(0, m_cursor_pos - 1);
+ else
+ s = L"";
+ s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos));
+ Text = s;
+ --m_cursor_pos;
+ }
+
+ if (m_cursor_pos < 0)
+ m_cursor_pos = 0;
+ m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime();
+ mark_begin = 0;
+ mark_end = 0;
+ return true;
+}
+
+bool GUIEditBox::onKeyDelete(const SEvent &event, s32 &mark_begin, s32 &mark_end)
+{
+ if (!isEnabled() || Text.empty())
+ return false;
+
+ core::stringw s;
+
+ if (m_mark_begin != m_mark_end) {
+ // delete marked text
+ const s32 realmbgn =
+ m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
+ const s32 realmend =
+ m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
+
+ s = Text.subString(0, realmbgn);
+ s.append(Text.subString(realmend, Text.size() - realmend));
+ Text = s;
+
+ m_cursor_pos = realmbgn;
+ } else {
+ // delete text before cursor
+ s = Text.subString(0, m_cursor_pos);
+ s.append(Text.subString(
+ m_cursor_pos + 1, Text.size() - m_cursor_pos - 1));
+ Text = s;
+ }
+
+ if (m_cursor_pos > (s32)Text.size())
+ m_cursor_pos = (s32)Text.size();
+
+ m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime();
+ mark_begin = 0;
+ mark_end = 0;
+ return true;
+}
+
+void GUIEditBox::inputChar(wchar_t c)
+{
+ if (!isEnabled() || !m_writable)
+ return;
+
+ if (c != 0) {
+ if (Text.size() < m_max || m_max == 0) {
+ core::stringw s;
+
+ if (m_mark_begin != m_mark_end) {
+ // clang-format off
+ // replace marked text
+ s32 real_begin = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
+ s32 real_end = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
+
+ s = Text.subString(0, real_begin);
+ s.append(c);
+ s.append(Text.subString(real_end, Text.size() - real_end));
+ Text = s;
+ m_cursor_pos = real_begin + 1;
+ // clang-format on
+ } else {
+ // add new character
+ s = Text.subString(0, m_cursor_pos);
+ s.append(c);
+ s.append(Text.subString(m_cursor_pos,
+ Text.size() - m_cursor_pos));
+ Text = s;
+ ++m_cursor_pos;
+ }
+
+ m_blink_start_time = porting::getTimeMs();
+ setTextMarkers(0, 0);
+ }
+ }
+ breakText();
+ sendGuiEvent(EGET_EDITBOX_CHANGED);
+ calculateScrollPos();
+}
+
+bool GUIEditBox::processMouse(const SEvent &event)
+{
+ switch (event.MouseInput.Event) {
+ case irr::EMIE_LMOUSE_LEFT_UP:
+ if (Environment->hasFocus(this)) {
+ m_cursor_pos = getCursorPos(
+ event.MouseInput.X, event.MouseInput.Y);
+ if (m_mouse_marking) {
+ setTextMarkers(m_mark_begin, m_cursor_pos);
+ }
+ m_mouse_marking = false;
+ calculateScrollPos();
+ return true;
+ }
+ break;
+ case irr::EMIE_MOUSE_MOVED: {
+ if (m_mouse_marking) {
+ m_cursor_pos = getCursorPos(
+ event.MouseInput.X, event.MouseInput.Y);
+ setTextMarkers(m_mark_begin, m_cursor_pos);
+ calculateScrollPos();
+ return true;
+ }
+ } break;
+ case EMIE_LMOUSE_PRESSED_DOWN:
+
+ if (!Environment->hasFocus(this)) {
+ m_blink_start_time = porting::getTimeMs();
+ m_mouse_marking = true;
+ m_cursor_pos = getCursorPos(
+ event.MouseInput.X, event.MouseInput.Y);
+ setTextMarkers(m_cursor_pos, m_cursor_pos);
+ calculateScrollPos();
+ return true;
+ } else {
+ if (!AbsoluteClippingRect.isPointInside(core::position2d<s32>(
+ event.MouseInput.X, event.MouseInput.Y))) {
+ return false;
+ } else {
+ // move cursor
+ m_cursor_pos = getCursorPos(
+ event.MouseInput.X, event.MouseInput.Y);
+
+ s32 newMarkBegin = m_mark_begin;
+ if (!m_mouse_marking)
+ newMarkBegin = m_cursor_pos;
+
+ m_mouse_marking = true;
+ setTextMarkers(newMarkBegin, m_cursor_pos);
+ calculateScrollPos();
+ return true;
+ }
+ }
+ case EMIE_MOUSE_WHEEL:
+ if (m_vscrollbar && m_vscrollbar->isVisible()) {
+ s32 pos = m_vscrollbar->getPos();
+ s32 step = m_vscrollbar->getSmallStep();
+ m_vscrollbar->setPos(pos - event.MouseInput.Wheel * step);
+ return true;
+ }
+ break;
+ default:
+ break;
+ }
+
+ return false;
+}
+
+s32 GUIEditBox::getLineFromPos(s32 pos)
+{
+ if (!m_word_wrap && !m_multiline)
+ return 0;
+
+ s32 i = 0;
+ while (i < (s32)m_broken_text_positions.size()) {
+ if (m_broken_text_positions[i] > pos)
+ return i - 1;
+ ++i;
+ }
+ return (s32)m_broken_text_positions.size() - 1;
+}
+
+void GUIEditBox::updateVScrollBar()
+{
+ if (!m_vscrollbar) {
+ return;
+ }
+
+ // OnScrollBarChanged(...)
+ if (m_vscrollbar->getPos() != m_vscroll_pos) {
+ s32 deltaScrollY = m_vscrollbar->getPos() - m_vscroll_pos;
+ m_current_text_rect.UpperLeftCorner.Y -= deltaScrollY;
+ m_current_text_rect.LowerRightCorner.Y -= deltaScrollY;
+
+ s32 scrollymax = getTextDimension().Height - m_frame_rect.getHeight();
+ if (scrollymax != m_vscrollbar->getMax()) {
+ // manage a newline or a deleted line
+ m_vscrollbar->setMax(scrollymax);
+ m_vscrollbar->setPageSize(s32(getTextDimension().Height));
+ calculateScrollPos();
+ } else {
+ // manage a newline or a deleted line
+ m_vscroll_pos = m_vscrollbar->getPos();
+ }
+ }
+
+ // check if a vertical scrollbar is needed ?
+ if (getTextDimension().Height > (u32)m_frame_rect.getHeight()) {
+ m_frame_rect.LowerRightCorner.X -= m_scrollbar_width;
+
+ s32 scrollymax = getTextDimension().Height - m_frame_rect.getHeight();
+ if (scrollymax != m_vscrollbar->getMax()) {
+ m_vscrollbar->setMax(scrollymax);
+ m_vscrollbar->setPageSize(s32(getTextDimension().Height));
+ }
+
+ if (!m_vscrollbar->isVisible()) {
+ m_vscrollbar->setVisible(true);
+ }
+ } else {
+ if (m_vscrollbar->isVisible()) {
+ m_vscrollbar->setVisible(false);
+ m_vscroll_pos = 0;
+ m_vscrollbar->setPos(0);
+ m_vscrollbar->setMax(1);
+ m_vscrollbar->setPageSize(s32(getTextDimension().Height));
+ }
+ }
+}
+
+void GUIEditBox::deserializeAttributes(
+ io::IAttributes *in, io::SAttributeReadWriteOptions *options = 0)
+{
+ IGUIEditBox::deserializeAttributes(in, options);
+
+ setOverrideColor(in->getAttributeAsColor("OverrideColor"));
+ enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled"));
+ setMax(in->getAttributeAsInt("MaxChars"));
+ setWordWrap(in->getAttributeAsBool("WordWrap"));
+ setMultiLine(in->getAttributeAsBool("MultiLine"));
+ setAutoScroll(in->getAttributeAsBool("AutoScroll"));
+ core::stringw ch = in->getAttributeAsStringW("PasswordChar");
+
+ if (ch.empty())
+ setPasswordBox(in->getAttributeAsBool("PasswordBox"));
+ else
+ setPasswordBox(in->getAttributeAsBool("PasswordBox"), ch[0]);
+
+ setTextAlignment((EGUI_ALIGNMENT)in->getAttributeAsEnumeration(
+ "HTextAlign", GUIAlignmentNames),
+ (EGUI_ALIGNMENT)in->getAttributeAsEnumeration(
+ "VTextAlign", GUIAlignmentNames));
+
+ setWritable(in->getAttributeAsBool("Writable"));
+ // setOverrideFont(in->getAttributeAsFont("OverrideFont"));
+}
+
+//! Writes attributes of the element.
+void GUIEditBox::serializeAttributes(
+ io::IAttributes *out, io::SAttributeReadWriteOptions *options = 0) const
+{
+ // IGUIEditBox::serializeAttributes(out,options);
+
+ out->addBool("OverrideColorEnabled", m_override_color_enabled);
+ out->addColor("OverrideColor", m_override_color);
+ // out->addFont("OverrideFont",m_override_font);
+ out->addInt("MaxChars", m_max);
+ out->addBool("WordWrap", m_word_wrap);
+ out->addBool("MultiLine", m_multiline);
+ out->addBool("AutoScroll", m_autoscroll);
+ out->addBool("PasswordBox", m_passwordbox);
+ core::stringw ch = L" ";
+ ch[0] = m_passwordchar;
+ out->addString("PasswordChar", ch.c_str());
+ out->addEnum("HTextAlign", m_halign, GUIAlignmentNames);
+ out->addEnum("VTextAlign", m_valign, GUIAlignmentNames);
+ out->addBool("Writable", m_writable);
+
+ IGUIEditBox::serializeAttributes(out, options);
+}
diff --git a/src/gui/guiEditBox.h b/src/gui/guiEditBox.h
new file mode 100644
index 000000000..c616d75d1
--- /dev/null
+++ b/src/gui/guiEditBox.h
@@ -0,0 +1,220 @@
+/*
+Minetest
+Copyright (C) 2021 Minetest
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#pragma once
+
+#include "irrlichttypes.h"
+#include "IGUIEditBox.h"
+#include "IOSOperator.h"
+#include "guiScrollBar.h"
+#include <vector>
+
+using namespace irr;
+using namespace irr::gui;
+
+class GUIEditBox : public IGUIEditBox
+{
+public:
+ GUIEditBox(IGUIEnvironment *environment, IGUIElement *parent, s32 id,
+ core::rect<s32> rectangle, bool border, bool writable) :
+ IGUIEditBox(environment, parent, id, rectangle),
+ m_border(border), m_writable(writable), m_frame_rect(rectangle)
+ {
+ }
+
+ virtual ~GUIEditBox();
+
+ //! Sets another skin independent font.
+ virtual void setOverrideFont(IGUIFont *font = 0);
+
+ virtual IGUIFont *getOverrideFont() const { return m_override_font; }
+
+ //! Get the font which is used right now for drawing
+ /** Currently this is the override font when one is set and the
+ font of the active skin otherwise */
+ virtual IGUIFont *getActiveFont() const;
+
+ //! Sets another color for the text.
+ virtual void setOverrideColor(video::SColor color);
+
+ //! Gets the override color
+ virtual video::SColor getOverrideColor() const;
+
+ //! Sets if the text should use the overide color or the
+ //! color in the gui skin.
+ virtual void enableOverrideColor(bool enable);
+
+ //! Checks if an override color is enabled
+ /** \return true if the override color is enabled, false otherwise */
+ virtual bool isOverrideColorEnabled(void) const
+ {
+ return m_override_color_enabled;
+ }
+
+ //! Enables or disables word wrap for using the edit box as multiline text editor.
+ virtual void setWordWrap(bool enable);
+
+ //! Checks if word wrap is enabled
+ //! \return true if word wrap is enabled, false otherwise
+ virtual bool isWordWrapEnabled() const { return m_word_wrap; }
+
+ //! Turns the border on or off
+ virtual void setDrawBorder(bool border);
+
+ virtual bool isDrawBorderEnabled() const { return m_border; }
+
+ //! Enables or disables newlines.
+ /** \param enable: If set to true, the EGET_EDITBOX_ENTER event will not be fired,
+ instead a newline character will be inserted. */
+ virtual void setMultiLine(bool enable);
+
+ //! Checks if multi line editing is enabled
+ //! \return true if mult-line is enabled, false otherwise
+ virtual bool isMultiLineEnabled() const { return m_multiline; }
+
+ //! Enables or disables automatic scrolling with cursor position
+ //! \param enable: If set to true, the text will move around with the cursor
+ //! position
+ virtual void setAutoScroll(bool enable);
+
+ //! Checks to see if automatic scrolling is enabled
+ //! \return true if automatic scrolling is enabled, false if not
+ virtual bool isAutoScrollEnabled() const { return m_autoscroll; }
+
+ //! Sets whether the edit box is a password box. Setting this to true will
+ /** disable MultiLine, WordWrap and the ability to copy with ctrl+c or ctrl+x
+ \param passwordBox: true to enable password, false to disable
+ \param passwordChar: the character that is displayed instead of letters */
+ virtual void setPasswordBox(bool passwordBox, wchar_t passwordChar = L'*');
+
+ //! Returns true if the edit box is currently a password box.
+ virtual bool isPasswordBox() const { return m_passwordbox; }
+
+ //! Sets text justification
+ virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical);
+
+ //! Sets the new caption of this element.
+ virtual void setText(const wchar_t *text);
+
+ //! Sets the maximum amount of characters which may be entered in the box.
+ //! \param max: Maximum amount of characters. If 0, the character amount is
+ //! infinity.
+ virtual void setMax(u32 max);
+
+ //! Returns maximum amount of characters, previously set by setMax();
+ virtual u32 getMax() const { return m_max; }
+
+ //! Gets the size area of the text in the edit box
+ //! \return Returns the size in pixels of the text
+ virtual core::dimension2du getTextDimension();
+
+ //! set true if this EditBox is writable
+ virtual void setWritable(bool can_write_text);
+
+ //! called if an event happened.
+ virtual bool OnEvent(const SEvent &event);
+
+ //! Writes attributes of the element.
+ virtual void serializeAttributes(io::IAttributes *out,
+ io::SAttributeReadWriteOptions *options) const;
+
+ //! Reads attributes of the element
+ virtual void deserializeAttributes(
+ io::IAttributes *in, io::SAttributeReadWriteOptions *options);
+
+protected:
+ virtual void breakText() = 0;
+
+ //! sets the area of the given line
+ virtual void setTextRect(s32 line) = 0;
+
+ //! set text markers
+ void setTextMarkers(s32 begin, s32 end);
+
+ //! send some gui event to parent
+ void sendGuiEvent(EGUI_EVENT_TYPE type);
+
+ //! calculates the current scroll position
+ virtual void calculateScrollPos() = 0;
+
+ virtual s32 getCursorPos(s32 x, s32 y) = 0;
+
+ bool processKey(const SEvent &event);
+ virtual void inputChar(wchar_t c);
+
+ //! returns the line number that the cursor is on
+ s32 getLineFromPos(s32 pos);
+
+ //! update the vertical scrollBar (visibilty & position)
+ void updateVScrollBar();
+
+ gui::IGUIFont *m_override_font = nullptr;
+
+ bool m_override_color_enabled = false;
+ bool m_word_wrap = false;
+ bool m_multiline = false;
+ bool m_autoscroll = true;
+
+ bool m_border;
+
+ bool m_passwordbox = false;
+ wchar_t m_passwordchar = L'*';
+
+ std::vector<core::stringw> m_broken_text;
+ std::vector<s32> m_broken_text_positions;
+
+ EGUI_ALIGNMENT m_halign = EGUIA_UPPERLEFT;
+ EGUI_ALIGNMENT m_valign = EGUIA_CENTER;
+
+ u32 m_blink_start_time = 0;
+ s32 m_cursor_pos = 0;
+ s32 m_hscroll_pos = 0;
+ s32 m_vscroll_pos = 0; // scroll position in characters
+ u32 m_max = 0;
+
+ video::SColor m_override_color = video::SColor(101, 255, 255, 255);
+
+ core::rect<s32> m_current_text_rect = core::rect<s32>(0, 0, 1, 1);
+
+ bool m_writable;
+
+ bool m_mouse_marking = false;
+
+ s32 m_mark_begin = 0;
+ s32 m_mark_end = 0;
+
+ gui::IGUIFont *m_last_break_font = nullptr;
+ IOSOperator *m_operator = nullptr;
+
+ core::rect<s32> m_frame_rect; // temporary values
+
+ u32 m_scrollbar_width = 0;
+ GUIScrollBar *m_vscrollbar = nullptr;
+
+private:
+ bool processMouse(const SEvent &event);
+
+ bool onKeyUp(const SEvent &event, s32 &mark_begin, s32 &mark_end);
+ bool onKeyDown(const SEvent &event, s32 &mark_begin, s32 &mark_end);
+ void onKeyControlC(const SEvent &event);
+ bool onKeyControlX(const SEvent &event, s32 &mark_begin, s32 &mark_end);
+ bool onKeyControlV(const SEvent &event, s32 &mark_begin, s32 &mark_end);
+ bool onKeyBack(const SEvent &event, s32 &mark_begin, s32 &mark_end);
+ bool onKeyDelete(const SEvent &event, s32 &mark_begin, s32 &mark_end);
+};
diff --git a/src/gui/guiEditBoxWithScrollbar.cpp b/src/gui/guiEditBoxWithScrollbar.cpp
index 442406688..c72070787 100644
--- a/src/gui/guiEditBoxWithScrollbar.cpp
+++ b/src/gui/guiEditBoxWithScrollbar.cpp
@@ -22,20 +22,12 @@ optional? dragging selected text
numerical
*/
-
//! constructor
GUIEditBoxWithScrollBar::GUIEditBoxWithScrollBar(const wchar_t* text, bool border,
IGUIEnvironment* environment, IGUIElement* parent, s32 id,
const core::rect<s32>& rectangle, bool writable, bool has_vscrollbar)
- : IGUIEditBox(environment, parent, id, rectangle), m_mouse_marking(false),
- m_border(border), m_background(true), m_override_color_enabled(false), m_mark_begin(0), m_mark_end(0),
- m_override_color(video::SColor(101, 255, 255, 255)), m_override_font(0), m_last_break_font(0),
- m_operator(0), m_blink_start_time(0), m_cursor_pos(0), m_hscroll_pos(0), m_vscroll_pos(0), m_max(0),
- m_word_wrap(false), m_multiline(false), m_autoscroll(true), m_passwordbox(false),
- m_passwordchar(L'*'), m_halign(EGUIA_UPPERLEFT), m_valign(EGUIA_CENTER),
- m_current_text_rect(0, 0, 1, 1), m_frame_rect(rectangle),
- m_scrollbar_width(0), m_vscrollbar(NULL), m_writable(writable),
- m_bg_color_used(false)
+ : GUIEditBox(environment, parent, id, rectangle, border, writable),
+ m_background(true), m_bg_color_used(false)
{
#ifdef _DEBUG
setDebugName("GUIEditBoxWithScrollBar");
@@ -65,99 +57,12 @@ GUIEditBoxWithScrollBar::GUIEditBoxWithScrollBar(const wchar_t* text, bool borde
setWritable(writable);
}
-
-//! destructor
-GUIEditBoxWithScrollBar::~GUIEditBoxWithScrollBar()
-{
- if (m_override_font)
- m_override_font->drop();
-
- if (m_operator)
- m_operator->drop();
-
- if (m_vscrollbar)
- m_vscrollbar->drop();
-}
-
-
-//! Sets another skin independent font.
-void GUIEditBoxWithScrollBar::setOverrideFont(IGUIFont* font)
-{
- if (m_override_font == font)
- return;
-
- if (m_override_font)
- m_override_font->drop();
-
- m_override_font = font;
-
- if (m_override_font)
- m_override_font->grab();
-
- breakText();
-}
-
-//! Gets the override font (if any)
-IGUIFont * GUIEditBoxWithScrollBar::getOverrideFont() const
-{
- return m_override_font;
-}
-
-//! Get the font which is used right now for drawing
-IGUIFont* GUIEditBoxWithScrollBar::getActiveFont() const
-{
- if (m_override_font)
- return m_override_font;
- IGUISkin* skin = Environment->getSkin();
- if (skin)
- return skin->getFont();
- return 0;
-}
-
-//! Sets another color for the text.
-void GUIEditBoxWithScrollBar::setOverrideColor(video::SColor color)
-{
- m_override_color = color;
- m_override_color_enabled = true;
-}
-
-
-video::SColor GUIEditBoxWithScrollBar::getOverrideColor() const
-{
- return m_override_color;
-}
-
-
-//! Turns the border on or off
-void GUIEditBoxWithScrollBar::setDrawBorder(bool border)
-{
- m_border = border;
-}
-
//! Sets whether to draw the background
void GUIEditBoxWithScrollBar::setDrawBackground(bool draw)
{
m_background = draw;
}
-//! Sets if the text should use the overide color or the color in the gui skin.
-void GUIEditBoxWithScrollBar::enableOverrideColor(bool enable)
-{
- m_override_color_enabled = enable;
-}
-
-bool GUIEditBoxWithScrollBar::isOverrideColorEnabled() const
-{
- return m_override_color_enabled;
-}
-
-//! Enables or disables word wrap
-void GUIEditBoxWithScrollBar::setWordWrap(bool enable)
-{
- m_word_wrap = enable;
- breakText();
-}
-
void GUIEditBoxWithScrollBar::updateAbsolutePosition()
{
@@ -170,486 +75,6 @@ void GUIEditBoxWithScrollBar::updateAbsolutePosition()
}
}
-//! Checks if word wrap is enabled
-bool GUIEditBoxWithScrollBar::isWordWrapEnabled() const
-{
- return m_word_wrap;
-}
-
-
-//! Enables or disables newlines.
-void GUIEditBoxWithScrollBar::setMultiLine(bool enable)
-{
- m_multiline = enable;
-}
-
-
-//! Checks if multi line editing is enabled
-bool GUIEditBoxWithScrollBar::isMultiLineEnabled() const
-{
- return m_multiline;
-}
-
-
-void GUIEditBoxWithScrollBar::setPasswordBox(bool password_box, wchar_t password_char)
-{
- m_passwordbox = password_box;
- if (m_passwordbox) {
- m_passwordchar = password_char;
- setMultiLine(false);
- setWordWrap(false);
- m_broken_text.clear();
- }
-}
-
-
-bool GUIEditBoxWithScrollBar::isPasswordBox() const
-{
- return m_passwordbox;
-}
-
-
-//! Sets text justification
-void GUIEditBoxWithScrollBar::setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical)
-{
- m_halign = horizontal;
- m_valign = vertical;
-}
-
-
-//! called if an event happened.
-bool GUIEditBoxWithScrollBar::OnEvent(const SEvent& event)
-{
- if (isEnabled()) {
- switch (event.EventType)
- {
- case EET_GUI_EVENT:
- if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST) {
- if (event.GUIEvent.Caller == this) {
- m_mouse_marking = false;
- setTextMarkers(0, 0);
- }
- }
- break;
- case EET_KEY_INPUT_EVENT:
- if (processKey(event))
- return true;
- break;
- case EET_MOUSE_INPUT_EVENT:
- if (processMouse(event))
- return true;
- break;
- default:
- break;
- }
- }
-
- return IGUIElement::OnEvent(event);
-}
-
-
-bool GUIEditBoxWithScrollBar::processKey(const SEvent& event)
-{
- if (!m_writable) {
- return false;
- }
-
- if (!event.KeyInput.PressedDown)
- return false;
-
- bool text_changed = false;
- s32 new_mark_begin = m_mark_begin;
- s32 new_mark_end = m_mark_end;
-
- // control shortcut handling
-
- if (event.KeyInput.Control) {
-
- // german backlash '\' entered with control + '?'
- if (event.KeyInput.Char == '\\') {
- inputChar(event.KeyInput.Char);
- return true;
- }
-
- switch (event.KeyInput.Key) {
- case KEY_KEY_A:
- // select all
- new_mark_begin = 0;
- new_mark_end = Text.size();
- break;
- case KEY_KEY_C:
- // copy to clipboard
- if (!m_passwordbox && m_operator && m_mark_begin != m_mark_end)
- {
- const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
- const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
-
- core::stringc s;
- s = Text.subString(realmbgn, realmend - realmbgn).c_str();
- m_operator->copyToClipboard(s.c_str());
- }
- break;
- case KEY_KEY_X:
- // cut to the clipboard
- if (!m_passwordbox && m_operator && m_mark_begin != m_mark_end) {
- const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
- const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
-
- // copy
- core::stringc sc;
- sc = Text.subString(realmbgn, realmend - realmbgn).c_str();
- m_operator->copyToClipboard(sc.c_str());
-
- if (isEnabled())
- {
- // delete
- core::stringw s;
- s = Text.subString(0, realmbgn);
- s.append(Text.subString(realmend, Text.size() - realmend));
- Text = s;
-
- m_cursor_pos = realmbgn;
- new_mark_begin = 0;
- new_mark_end = 0;
- text_changed = true;
- }
- }
- break;
- case KEY_KEY_V:
- if (!isEnabled())
- break;
-
- // paste from the clipboard
- if (m_operator) {
- const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
- const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
-
- // add new character
- const c8* p = m_operator->getTextFromClipboard();
- if (p) {
- if (m_mark_begin == m_mark_end) {
- // insert text
- core::stringw s = Text.subString(0, m_cursor_pos);
- s.append(p);
- s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos));
-
- if (!m_max || s.size() <= m_max) // thx to Fish FH for fix
- {
- Text = s;
- s = p;
- m_cursor_pos += s.size();
- }
- } else {
- // replace text
-
- core::stringw s = Text.subString(0, realmbgn);
- s.append(p);
- s.append(Text.subString(realmend, Text.size() - realmend));
-
- if (!m_max || s.size() <= m_max) // thx to Fish FH for fix
- {
- Text = s;
- s = p;
- m_cursor_pos = realmbgn + s.size();
- }
- }
- }
-
- new_mark_begin = 0;
- new_mark_end = 0;
- text_changed = true;
- }
- break;
- case KEY_HOME:
- // move/highlight to start of text
- if (event.KeyInput.Shift) {
- new_mark_end = m_cursor_pos;
- new_mark_begin = 0;
- m_cursor_pos = 0;
- } else {
- m_cursor_pos = 0;
- new_mark_begin = 0;
- new_mark_end = 0;
- }
- break;
- case KEY_END:
- // move/highlight to end of text
- if (event.KeyInput.Shift) {
- new_mark_begin = m_cursor_pos;
- new_mark_end = Text.size();
- m_cursor_pos = 0;
- } else {
- m_cursor_pos = Text.size();
- new_mark_begin = 0;
- new_mark_end = 0;
- }
- break;
- default:
- return false;
- }
- }
- // default keyboard handling
- else
- switch (event.KeyInput.Key) {
- case KEY_END:
- {
- s32 p = Text.size();
- if (m_word_wrap || m_multiline) {
- p = getLineFromPos(m_cursor_pos);
- p = m_broken_text_positions[p] + (s32)m_broken_text[p].size();
- if (p > 0 && (Text[p - 1] == L'\r' || Text[p - 1] == L'\n'))
- p -= 1;
- }
-
- if (event.KeyInput.Shift) {
- if (m_mark_begin == m_mark_end)
- new_mark_begin = m_cursor_pos;
-
- new_mark_end = p;
- } else {
- new_mark_begin = 0;
- new_mark_end = 0;
- }
- m_cursor_pos = p;
- m_blink_start_time = porting::getTimeMs();
- }
- break;
- case KEY_HOME:
- {
-
- s32 p = 0;
- if (m_word_wrap || m_multiline) {
- p = getLineFromPos(m_cursor_pos);
- p = m_broken_text_positions[p];
- }
-
- if (event.KeyInput.Shift) {
- if (m_mark_begin == m_mark_end)
- new_mark_begin = m_cursor_pos;
- new_mark_end = p;
- } else {
- new_mark_begin = 0;
- new_mark_end = 0;
- }
- m_cursor_pos = p;
- m_blink_start_time = porting::getTimeMs();
- }
- break;
- case KEY_RETURN:
- if (m_multiline) {
- inputChar(L'\n');
- } else {
- calculateScrollPos();
- sendGuiEvent(EGET_EDITBOX_ENTER);
- }
- return true;
- case KEY_LEFT:
-
- if (event.KeyInput.Shift) {
- if (m_cursor_pos > 0) {
- if (m_mark_begin == m_mark_end)
- new_mark_begin = m_cursor_pos;
-
- new_mark_end = m_cursor_pos - 1;
- }
- } else {
- new_mark_begin = 0;
- new_mark_end = 0;
- }
-
- if (m_cursor_pos > 0)
- m_cursor_pos--;
- m_blink_start_time = porting::getTimeMs();
- break;
-
- case KEY_RIGHT:
- if (event.KeyInput.Shift) {
- if (Text.size() > (u32)m_cursor_pos) {
- if (m_mark_begin == m_mark_end)
- new_mark_begin = m_cursor_pos;
-
- new_mark_end = m_cursor_pos + 1;
- }
- } else {
- new_mark_begin = 0;
- new_mark_end = 0;
- }
-
- if (Text.size() > (u32)m_cursor_pos)
- m_cursor_pos++;
- m_blink_start_time = porting::getTimeMs();
- break;
- case KEY_UP:
- if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) {
- s32 lineNo = getLineFromPos(m_cursor_pos);
- s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos : (m_mark_begin > m_mark_end ? m_mark_begin : m_mark_end);
- if (lineNo > 0) {
- s32 cp = m_cursor_pos - m_broken_text_positions[lineNo];
- if ((s32)m_broken_text[lineNo - 1].size() < cp)
- m_cursor_pos = m_broken_text_positions[lineNo - 1] + core::max_((u32)1, m_broken_text[lineNo - 1].size()) - 1;
- else
- m_cursor_pos = m_broken_text_positions[lineNo - 1] + cp;
- }
-
- if (event.KeyInput.Shift) {
- new_mark_begin = mb;
- new_mark_end = m_cursor_pos;
- } else {
- new_mark_begin = 0;
- new_mark_end = 0;
- }
- } else {
- return false;
- }
- break;
- case KEY_DOWN:
- if (m_multiline || (m_word_wrap && m_broken_text.size() > 1)) {
- s32 lineNo = getLineFromPos(m_cursor_pos);
- s32 mb = (m_mark_begin == m_mark_end) ? m_cursor_pos : (m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end);
- if (lineNo < (s32)m_broken_text.size() - 1)
- {
- s32 cp = m_cursor_pos - m_broken_text_positions[lineNo];
- if ((s32)m_broken_text[lineNo + 1].size() < cp)
- m_cursor_pos = m_broken_text_positions[lineNo + 1] + core::max_((u32)1, m_broken_text[lineNo + 1].size()) - 1;
- else
- m_cursor_pos = m_broken_text_positions[lineNo + 1] + cp;
- }
-
- if (event.KeyInput.Shift) {
- new_mark_begin = mb;
- new_mark_end = m_cursor_pos;
- } else {
- new_mark_begin = 0;
- new_mark_end = 0;
- }
-
- } else {
- return false;
- }
- break;
-
- case KEY_BACK:
- if (!isEnabled())
- break;
-
- if (Text.size()) {
- core::stringw s;
-
- if (m_mark_begin != m_mark_end) {
- // delete marked text
- const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
- const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
-
- s = Text.subString(0, realmbgn);
- s.append(Text.subString(realmend, Text.size() - realmend));
- Text = s;
-
- m_cursor_pos = realmbgn;
- } else {
- // delete text behind cursor
- if (m_cursor_pos > 0)
- s = Text.subString(0, m_cursor_pos - 1);
- else
- s = L"";
- s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos));
- Text = s;
- --m_cursor_pos;
- }
-
- if (m_cursor_pos < 0)
- m_cursor_pos = 0;
- m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime();
- new_mark_begin = 0;
- new_mark_end = 0;
- text_changed = true;
- }
- break;
- case KEY_DELETE:
- if (!isEnabled())
- break;
-
- if (Text.size() != 0) {
- core::stringw s;
-
- if (m_mark_begin != m_mark_end) {
- // delete marked text
- const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
- const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
-
- s = Text.subString(0, realmbgn);
- s.append(Text.subString(realmend, Text.size() - realmend));
- Text = s;
-
- m_cursor_pos = realmbgn;
- } else {
- // delete text before cursor
- s = Text.subString(0, m_cursor_pos);
- s.append(Text.subString(m_cursor_pos + 1, Text.size() - m_cursor_pos - 1));
- Text = s;
- }
-
- if (m_cursor_pos > (s32)Text.size())
- m_cursor_pos = (s32)Text.size();
-
- m_blink_start_time = porting::getTimeMs(); // os::Timer::getTime();
- new_mark_begin = 0;
- new_mark_end = 0;
- text_changed = true;
- }
- break;
-
- case KEY_ESCAPE:
- case KEY_TAB:
- case KEY_SHIFT:
- case KEY_F1:
- case KEY_F2:
- case KEY_F3:
- case KEY_F4:
- case KEY_F5:
- case KEY_F6:
- case KEY_F7:
- case KEY_F8:
- case KEY_F9:
- case KEY_F10:
- case KEY_F11:
- case KEY_F12:
- case KEY_F13:
- case KEY_F14:
- case KEY_F15:
- case KEY_F16:
- case KEY_F17:
- case KEY_F18:
- case KEY_F19:
- case KEY_F20:
- case KEY_F21:
- case KEY_F22:
- case KEY_F23:
- case KEY_F24:
- // ignore these keys
- return false;
-
- default:
- inputChar(event.KeyInput.Char);
- return true;
- }
-
- // Set new text markers
- setTextMarkers(new_mark_begin, new_mark_end);
-
- // break the text if it has changed
- if (text_changed) {
- breakText();
- calculateScrollPos();
- sendGuiEvent(EGET_EDITBOX_CHANGED);
- }
- else
- {
- calculateScrollPos();
- }
-
- return true;
-}
-
//! draws the element and its children
void GUIEditBoxWithScrollBar::draw()
@@ -839,131 +264,6 @@ void GUIEditBoxWithScrollBar::draw()
}
-//! Sets the new caption of this element.
-void GUIEditBoxWithScrollBar::setText(const wchar_t* text)
-{
- Text = text;
- if (u32(m_cursor_pos) > Text.size())
- m_cursor_pos = Text.size();
- m_hscroll_pos = 0;
- breakText();
-}
-
-
-//! Enables or disables automatic scrolling with cursor position
-//! \param enable: If set to true, the text will move around with the cursor position
-void GUIEditBoxWithScrollBar::setAutoScroll(bool enable)
-{
- m_autoscroll = enable;
-}
-
-
-//! Checks to see if automatic scrolling is enabled
-//! \return true if automatic scrolling is enabled, false if not
-bool GUIEditBoxWithScrollBar::isAutoScrollEnabled() const
-{
- return m_autoscroll;
-}
-
-
-//! Gets the area of the text in the edit box
-//! \return Returns the size in pixels of the text
-core::dimension2du GUIEditBoxWithScrollBar::getTextDimension()
-{
- core::rect<s32> ret;
-
- setTextRect(0);
- ret = m_current_text_rect;
-
- for (u32 i = 1; i < m_broken_text.size(); ++i) {
- setTextRect(i);
- ret.addInternalPoint(m_current_text_rect.UpperLeftCorner);
- ret.addInternalPoint(m_current_text_rect.LowerRightCorner);
- }
-
- return core::dimension2du(ret.getSize());
-}
-
-
-//! Sets the maximum amount of characters which may be entered in the box.
-//! \param max: Maximum amount of characters. If 0, the character amount is
-//! infinity.
-void GUIEditBoxWithScrollBar::setMax(u32 max)
-{
- m_max = max;
-
- if (Text.size() > m_max && m_max != 0)
- Text = Text.subString(0, m_max);
-}
-
-
-//! Returns maximum amount of characters, previously set by setMax();
-u32 GUIEditBoxWithScrollBar::getMax() const
-{
- return m_max;
-}
-
-
-bool GUIEditBoxWithScrollBar::processMouse(const SEvent& event)
-{
- switch (event.MouseInput.Event)
- {
- case irr::EMIE_LMOUSE_LEFT_UP:
- if (Environment->hasFocus(this)) {
- m_cursor_pos = getCursorPos(event.MouseInput.X, event.MouseInput.Y);
- if (m_mouse_marking) {
- setTextMarkers(m_mark_begin, m_cursor_pos);
- }
- m_mouse_marking = false;
- calculateScrollPos();
- return true;
- }
- break;
- case irr::EMIE_MOUSE_MOVED:
- {
- if (m_mouse_marking) {
- m_cursor_pos = getCursorPos(event.MouseInput.X, event.MouseInput.Y);
- setTextMarkers(m_mark_begin, m_cursor_pos);
- calculateScrollPos();
- return true;
- }
- }
- break;
- case EMIE_LMOUSE_PRESSED_DOWN:
-
- if (!Environment->hasFocus(this)) {
- m_blink_start_time = porting::getTimeMs();
- m_mouse_marking = true;
- m_cursor_pos = getCursorPos(event.MouseInput.X, event.MouseInput.Y);
- setTextMarkers(m_cursor_pos, m_cursor_pos);
- calculateScrollPos();
- return true;
- } else {
- if (!AbsoluteClippingRect.isPointInside(
- core::position2d<s32>(event.MouseInput.X, event.MouseInput.Y))) {
- return false;
- } else {
- // move cursor
- m_cursor_pos = getCursorPos(event.MouseInput.X, event.MouseInput.Y);
-
- s32 newMarkBegin = m_mark_begin;
- if (!m_mouse_marking)
- newMarkBegin = m_cursor_pos;
-
- m_mouse_marking = true;
- setTextMarkers(newMarkBegin, m_cursor_pos);
- calculateScrollPos();
- return true;
- }
- }
- default:
- break;
- }
-
- return false;
-}
-
-
s32 GUIEditBoxWithScrollBar::getCursorPos(s32 x, s32 y)
{
IGUIFont* font = getActiveFont();
@@ -1028,7 +328,7 @@ void GUIEditBoxWithScrollBar::breakText()
s32 last_line_start = 0;
s32 size = Text.size();
s32 length = 0;
- s32 el_width = RelativeRect.getWidth() - 6;
+ s32 el_width = RelativeRect.getWidth() - m_scrollbar_width - 10;
wchar_t c;
for (s32 i = 0; i < size; ++i) {
@@ -1181,59 +481,6 @@ void GUIEditBoxWithScrollBar::setTextRect(s32 line)
m_current_text_rect += m_frame_rect.UpperLeftCorner;
}
-
-s32 GUIEditBoxWithScrollBar::getLineFromPos(s32 pos)
-{
- if (!m_word_wrap && !m_multiline)
- return 0;
-
- s32 i = 0;
- while (i < (s32)m_broken_text_positions.size()) {
- if (m_broken_text_positions[i] > pos)
- return i - 1;
- ++i;
- }
- return (s32)m_broken_text_positions.size() - 1;
-}
-
-
-void GUIEditBoxWithScrollBar::inputChar(wchar_t c)
-{
- if (!isEnabled())
- return;
-
- if (c != 0) {
- if (Text.size() < m_max || m_max == 0) {
- core::stringw s;
-
- if (m_mark_begin != m_mark_end) {
- // replace marked text
- const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
- const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
-
- s = Text.subString(0, realmbgn);
- s.append(c);
- s.append(Text.subString(realmend, Text.size() - realmend));
- Text = s;
- m_cursor_pos = realmbgn + 1;
- } else {
- // add new character
- s = Text.subString(0, m_cursor_pos);
- s.append(c);
- s.append(Text.subString(m_cursor_pos, Text.size() - m_cursor_pos));
- Text = s;
- ++m_cursor_pos;
- }
-
- m_blink_start_time = porting::getTimeMs();
- setTextMarkers(0, 0);
- }
- }
- breakText();
- calculateScrollPos();
- sendGuiEvent(EGET_EDITBOX_CHANGED);
-}
-
// calculate autoscroll
void GUIEditBoxWithScrollBar::calculateScrollPos()
{
@@ -1366,30 +613,6 @@ void GUIEditBoxWithScrollBar::calculateFrameRect()
updateVScrollBar();
}
-//! set text markers
-void GUIEditBoxWithScrollBar::setTextMarkers(s32 begin, s32 end)
-{
- if (begin != m_mark_begin || end != m_mark_end) {
- m_mark_begin = begin;
- m_mark_end = end;
- sendGuiEvent(EGET_EDITBOX_MARKING_CHANGED);
- }
-}
-
-//! send some gui event to parent
-void GUIEditBoxWithScrollBar::sendGuiEvent(EGUI_EVENT_TYPE type)
-{
- if (Parent) {
- SEvent e;
- e.EventType = EET_GUI_EVENT;
- e.GUIEvent.Caller = this;
- e.GUIEvent.Element = 0;
- e.GUIEvent.EventType = type;
-
- Parent->OnEvent(e);
- }
-}
-
//! create a vertical scroll bar
void GUIEditBoxWithScrollBar::createVScrollBar()
{
@@ -1399,8 +622,6 @@ void GUIEditBoxWithScrollBar::createVScrollBar()
m_scrollbar_width = skin ? skin->getSize(gui::EGDS_SCROLLBAR_SIZE) : 16;
- RelativeRect.LowerRightCorner.X -= m_scrollbar_width + 4;
-
irr::core::rect<s32> scrollbarrect = m_frame_rect;
scrollbarrect.UpperLeftCorner.X += m_frame_rect.getWidth() - m_scrollbar_width;
m_vscrollbar = new GUIScrollBar(Environment, getParent(), -1,
@@ -1411,61 +632,7 @@ void GUIEditBoxWithScrollBar::createVScrollBar()
m_vscrollbar->setLargeStep(1);
}
-void GUIEditBoxWithScrollBar::updateVScrollBar()
-{
- if (!m_vscrollbar) {
- return;
- }
- // OnScrollBarChanged(...)
- if (m_vscrollbar->getPos() != m_vscroll_pos) {
- s32 deltaScrollY = m_vscrollbar->getPos() - m_vscroll_pos;
- m_current_text_rect.UpperLeftCorner.Y -= deltaScrollY;
- m_current_text_rect.LowerRightCorner.Y -= deltaScrollY;
-
- s32 scrollymax = getTextDimension().Height - m_frame_rect.getHeight();
- if (scrollymax != m_vscrollbar->getMax()) {
- // manage a newline or a deleted line
- m_vscrollbar->setMax(scrollymax);
- m_vscrollbar->setPageSize(s32(getTextDimension().Height));
- calculateScrollPos();
- } else {
- // manage a newline or a deleted line
- m_vscroll_pos = m_vscrollbar->getPos();
- }
- }
-
- // check if a vertical scrollbar is needed ?
- if (getTextDimension().Height > (u32) m_frame_rect.getHeight()) {
- m_frame_rect.LowerRightCorner.X -= m_scrollbar_width;
-
- s32 scrollymax = getTextDimension().Height - m_frame_rect.getHeight();
- if (scrollymax != m_vscrollbar->getMax()) {
- m_vscrollbar->setMax(scrollymax);
- m_vscrollbar->setPageSize(s32(getTextDimension().Height));
- }
-
- if (!m_vscrollbar->isVisible()) {
- m_vscrollbar->setVisible(true);
- }
- } else {
- if (m_vscrollbar->isVisible())
- {
- m_vscrollbar->setVisible(false);
- m_vscroll_pos = 0;
- m_vscrollbar->setPos(0);
- m_vscrollbar->setMax(1);
- m_vscrollbar->setPageSize(s32(getTextDimension().Height));
- }
- }
-
-}
-
-//! set true if this editbox is writable
-void GUIEditBoxWithScrollBar::setWritable(bool writable)
-{
- m_writable = writable;
-}
//! Change the background color
void GUIEditBoxWithScrollBar::setBackgroundColor(const video::SColor &bg_color)
@@ -1477,54 +644,21 @@ void GUIEditBoxWithScrollBar::setBackgroundColor(const video::SColor &bg_color)
//! Writes attributes of the element.
void GUIEditBoxWithScrollBar::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options = 0) const
{
- // IGUIEditBox::serializeAttributes(out,options);
-
out->addBool("Border", m_border);
out->addBool("Background", m_background);
- out->addBool("OverrideColorEnabled", m_override_color_enabled);
- out->addColor("OverrideColor", m_override_color);
// out->addFont("OverrideFont", OverrideFont);
- out->addInt("MaxChars", m_max);
- out->addBool("WordWrap", m_word_wrap);
- out->addBool("MultiLine", m_multiline);
- out->addBool("AutoScroll", m_autoscroll);
- out->addBool("PasswordBox", m_passwordbox);
- core::stringw ch = L" ";
- ch[0] = m_passwordchar;
- out->addString("PasswordChar", ch.c_str());
- out->addEnum("HTextAlign", m_halign, GUIAlignmentNames);
- out->addEnum("VTextAlign", m_valign, GUIAlignmentNames);
- out->addBool("Writable", m_writable);
-
- IGUIEditBox::serializeAttributes(out, options);
+
+ GUIEditBox::serializeAttributes(out, options);
}
//! Reads attributes of the element
void GUIEditBoxWithScrollBar::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options = 0)
{
- IGUIEditBox::deserializeAttributes(in, options);
+ GUIEditBox::deserializeAttributes(in, options);
setDrawBorder(in->getAttributeAsBool("Border"));
setDrawBackground(in->getAttributeAsBool("Background"));
- setOverrideColor(in->getAttributeAsColor("OverrideColor"));
- enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled"));
- setMax(in->getAttributeAsInt("MaxChars"));
- setWordWrap(in->getAttributeAsBool("WordWrap"));
- setMultiLine(in->getAttributeAsBool("MultiLine"));
- setAutoScroll(in->getAttributeAsBool("AutoScroll"));
- core::stringw ch = in->getAttributeAsStringW("PasswordChar");
-
- if (!ch.size())
- setPasswordBox(in->getAttributeAsBool("PasswordBox"));
- else
- setPasswordBox(in->getAttributeAsBool("PasswordBox"), ch[0]);
-
- setTextAlignment((EGUI_ALIGNMENT)in->getAttributeAsEnumeration("HTextAlign", GUIAlignmentNames),
- (EGUI_ALIGNMENT)in->getAttributeAsEnumeration("VTextAlign", GUIAlignmentNames));
-
- // setOverrideFont(in->getAttributeAsFont("OverrideFont"));
- setWritable(in->getAttributeAsBool("Writable"));
}
bool GUIEditBoxWithScrollBar::isDrawBackgroundEnabled() const { return false; }
diff --git a/src/gui/guiEditBoxWithScrollbar.h b/src/gui/guiEditBoxWithScrollbar.h
index 77538e2f7..3f7450dcb 100644
--- a/src/gui/guiEditBoxWithScrollbar.h
+++ b/src/gui/guiEditBoxWithScrollbar.h
@@ -5,15 +5,9 @@
#ifndef GUIEDITBOXWITHSCROLLBAR_HEADER
#define GUIEDITBOXWITHSCROLLBAR_HEADER
-#include "IGUIEditBox.h"
-#include "IOSOperator.h"
-#include "guiScrollBar.h"
-#include <vector>
+#include "guiEditBox.h"
-using namespace irr;
-using namespace irr::gui;
-
-class GUIEditBoxWithScrollBar : public IGUIEditBox
+class GUIEditBoxWithScrollBar : public GUIEditBox
{
public:
@@ -23,102 +17,17 @@ public:
bool writable = true, bool has_vscrollbar = true);
//! destructor
- virtual ~GUIEditBoxWithScrollBar();
-
- //! Sets another skin independent font.
- virtual void setOverrideFont(IGUIFont* font = 0);
-
- //! Gets the override font (if any)
- /** \return The override font (may be 0) */
- virtual IGUIFont* getOverrideFont() const;
-
- //! Get the font which is used right now for drawing
- /** Currently this is the override font when one is set and the
- font of the active skin otherwise */
- virtual IGUIFont* getActiveFont() const;
-
- //! Sets another color for the text.
- virtual void setOverrideColor(video::SColor color);
-
- //! Gets the override color
- virtual video::SColor getOverrideColor() const;
-
- //! Sets if the text should use the overide color or the
- //! color in the gui skin.
- virtual void enableOverrideColor(bool enable);
-
- //! Checks if an override color is enabled
- /** \return true if the override color is enabled, false otherwise */
- virtual bool isOverrideColorEnabled(void) const;
+ virtual ~GUIEditBoxWithScrollBar() {}
//! Sets whether to draw the background
virtual void setDrawBackground(bool draw);
- //! Turns the border on or off
- virtual void setDrawBorder(bool border);
-
- //! Enables or disables word wrap for using the edit box as multiline text editor.
- virtual void setWordWrap(bool enable);
-
- //! Checks if word wrap is enabled
- //! \return true if word wrap is enabled, false otherwise
- virtual bool isWordWrapEnabled() const;
-
- //! Enables or disables newlines.
- /** \param enable: If set to true, the EGET_EDITBOX_ENTER event will not be fired,
- instead a newline character will be inserted. */
- virtual void setMultiLine(bool enable);
-
- //! Checks if multi line editing is enabled
- //! \return true if mult-line is enabled, false otherwise
- virtual bool isMultiLineEnabled() const;
-
- //! Enables or disables automatic scrolling with cursor position
- //! \param enable: If set to true, the text will move around with the cursor position
- virtual void setAutoScroll(bool enable);
-
- //! Checks to see if automatic scrolling is enabled
- //! \return true if automatic scrolling is enabled, false if not
- virtual bool isAutoScrollEnabled() const;
-
- //! Gets the size area of the text in the edit box
- //! \return Returns the size in pixels of the text
- virtual core::dimension2du getTextDimension();
-
- //! Sets text justification
- virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical);
-
- //! called if an event happened.
- virtual bool OnEvent(const SEvent& event);
-
//! draws the element and its children
virtual void draw();
- //! Sets the new caption of this element.
- virtual void setText(const wchar_t* text);
-
- //! Sets the maximum amount of characters which may be entered in the box.
- //! \param max: Maximum amount of characters. If 0, the character amount is
- //! infinity.
- virtual void setMax(u32 max);
-
- //! Returns maximum amount of characters, previously set by setMax();
- virtual u32 getMax() const;
-
- //! Sets whether the edit box is a password box. Setting this to true will
- /** disable MultiLine, WordWrap and the ability to copy with ctrl+c or ctrl+x
- \param passwordBox: true to enable password, false to disable
- \param passwordChar: the character that is displayed instead of letters */
- virtual void setPasswordBox(bool passwordBox, wchar_t passwordChar = L'*');
-
- //! Returns true if the edit box is currently a password box.
- virtual bool isPasswordBox() const;
-
//! Updates the absolute position, splits text if required
virtual void updateAbsolutePosition();
- virtual void setWritable(bool writable);
-
//! Change the background color
virtual void setBackgroundColor(const video::SColor &bg_color);
@@ -137,58 +46,19 @@ public:
protected:
//! Breaks the single text line.
- void breakText();
+ virtual void breakText();
//! sets the area of the given line
- void setTextRect(s32 line);
- //! returns the line number that the cursor is on
- s32 getLineFromPos(s32 pos);
- //! adds a letter to the edit box
- void inputChar(wchar_t c);
+ virtual void setTextRect(s32 line);
//! calculates the current scroll position
void calculateScrollPos();
//! calculated the FrameRect
void calculateFrameRect();
- //! send some gui event to parent
- void sendGuiEvent(EGUI_EVENT_TYPE type);
- //! set text markers
- void setTextMarkers(s32 begin, s32 end);
//! create a Vertical ScrollBar
void createVScrollBar();
- //! update the vertical scrollBar (visibilty & position)
- void updateVScrollBar();
- bool processKey(const SEvent& event);
- bool processMouse(const SEvent& event);
s32 getCursorPos(s32 x, s32 y);
- bool m_mouse_marking;
- bool m_border;
bool m_background;
- bool m_override_color_enabled;
- s32 m_mark_begin;
- s32 m_mark_end;
-
- video::SColor m_override_color;
- gui::IGUIFont *m_override_font, *m_last_break_font;
- IOSOperator* m_operator;
-
- u32 m_blink_start_time;
- s32 m_cursor_pos;
- s32 m_hscroll_pos, m_vscroll_pos; // scroll position in characters
- u32 m_max;
-
- bool m_word_wrap, m_multiline, m_autoscroll, m_passwordbox;
- wchar_t m_passwordchar;
- EGUI_ALIGNMENT m_halign, m_valign;
-
- std::vector<core::stringw> m_broken_text;
- std::vector<s32> m_broken_text_positions;
-
- core::rect<s32> m_current_text_rect, m_frame_rect; // temporary values
-
- u32 m_scrollbar_width;
- GUIScrollBar *m_vscrollbar;
- bool m_writable;
bool m_bg_color_used;
video::SColor m_bg_color;
diff --git a/src/gui/guiEngine.cpp b/src/gui/guiEngine.cpp
index b40707d01..93463ad70 100644
--- a/src/gui/guiEngine.cpp
+++ b/src/gui/guiEngine.cpp
@@ -75,8 +75,6 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id)
if (name.empty())
return NULL;
- m_to_delete.insert(name);
-
#if ENABLE_GLES
video::ITexture *retval = m_driver->findTexture(name.c_str());
if (retval)
@@ -88,6 +86,7 @@ video::ITexture *MenuTextureSource::getTexture(const std::string &name, u32 *id)
image = Align2Npot2(image, m_driver);
retval = m_driver->addTexture(name.c_str(), image);
+ m_to_delete.insert(name);
image->drop();
return retval;
#else
@@ -170,6 +169,7 @@ GUIEngine::GUIEngine(JoystickController *joystick,
m_menumanager,
NULL /* &client */,
m_texture_source,
+ m_sound_manager,
m_formspecgui,
m_buttonhandler,
"",
@@ -297,10 +297,14 @@ void GUIEngine::run()
driver->endScene();
+ IrrlichtDevice *device = RenderingEngine::get_raw_device();
+ u32 frametime_min = 1000 / (device->isWindowFocused()
+ ? g_settings->getFloat("fps_max")
+ : g_settings->getFloat("fps_max_unfocused"));
if (m_clouds_enabled)
- cloudPostProcess();
+ cloudPostProcess(frametime_min, device);
else
- sleep_ms(25);
+ sleep_ms(frametime_min);
m_script->step();
@@ -367,9 +371,8 @@ void GUIEngine::cloudPreProcess()
}
/******************************************************************************/
-void GUIEngine::cloudPostProcess()
+void GUIEngine::cloudPostProcess(u32 frametime_min, IrrlichtDevice *device)
{
- float fps_max = g_settings->getFloat("pause_fps_max");
// Time of frame without fps limit
u32 busytime_u32;
@@ -380,12 +383,10 @@ void GUIEngine::cloudPostProcess()
else
busytime_u32 = 0;
- // FPS limiter
- u32 frametime_min = 1000./fps_max;
-
+ // FPS limit
if (busytime_u32 < frametime_min) {
u32 sleeptime = frametime_min - busytime_u32;
- RenderingEngine::get_raw_device()->sleep(sleeptime);
+ device->sleep(sleeptime);
}
}
@@ -484,8 +485,6 @@ void GUIEngine::drawHeader(video::IVideoDriver *driver)
splashrect += v2s32((screensize.Width/2)-(splashsize.X/2),
((free_space/2)-splashsize.Y/2)+10);
- video::SColor bgcolor(255,50,50,50);
-
draw2DImageFilterScaled(driver, texture, splashrect,
core::rect<s32>(core::position2d<s32>(0,0),
core::dimension2di(texture->getOriginalSize())),
diff --git a/src/gui/guiEngine.h b/src/gui/guiEngine.h
index e55531bbc..eef1ad8aa 100644
--- a/src/gui/guiEngine.h
+++ b/src/gui/guiEngine.h
@@ -23,29 +23,28 @@ with this program; if not, write to the Free Software Foundation, Inc.,
/* Includes */
/******************************************************************************/
#include "irrlichttypes.h"
-#include "modalMenu.h"
#include "guiFormSpecMenu.h"
#include "client/sound.h"
#include "client/tile.h"
#include "util/enriched_string.h"
/******************************************************************************/
-/* Typedefs and macros */
+/* Structs and macros */
/******************************************************************************/
/** texture layer ids */
-typedef enum {
+enum texture_layer {
TEX_LAYER_BACKGROUND = 0,
TEX_LAYER_OVERLAY,
TEX_LAYER_HEADER,
TEX_LAYER_FOOTER,
TEX_LAYER_MAX
-} texture_layer;
+};
-typedef struct {
+struct image_definition {
video::ITexture *texture = nullptr;
bool tile;
unsigned int minsize;
-} image_definition;
+};
/******************************************************************************/
/* forward declarations */
@@ -278,7 +277,7 @@ private:
/** do preprocessing for cloud subsystem */
void cloudPreProcess();
/** do postprocessing for cloud subsystem */
- void cloudPostProcess();
+ void cloudPostProcess(u32 frametime_min, IrrlichtDevice *device);
/** internam data required for drawing clouds */
struct clouddata {
diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp
index 37edf3c4b..5aa6dc9ae 100644
--- a/src/gui/guiFormSpecMenu.cpp
+++ b/src/gui/guiFormSpecMenu.cpp
@@ -19,13 +19,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <cstdlib>
+#include <cmath>
#include <algorithm>
#include <iterator>
#include <limits>
#include <sstream>
#include "guiFormSpecMenu.h"
-#include "guiScrollBar.h"
-#include "guiTable.h"
#include "constants.h"
#include "gamedef.h"
#include "client/keycode.h"
@@ -50,6 +49,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "settings.h"
#include "client/client.h"
#include "client/fontengine.h"
+#include "client/sound.h"
#include "util/hex.h"
#include "util/numeric.h"
#include "util/string.h" // for parseColorString()
@@ -64,15 +64,14 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "guiEditBoxWithScrollbar.h"
#include "guiInventoryList.h"
#include "guiItemImage.h"
-#include "guiScrollBar.h"
#include "guiScrollContainer.h"
-#include "guiTable.h"
#include "intlGUIEditBox.h"
#include "guiHyperText.h"
+#include "guiScene.h"
#define MY_CHECKPOS(a,b) \
if (v_pos.size() != 2) { \
- errorstream<< "Invalid pos for element " << a << "specified: \"" \
+ errorstream<< "Invalid pos for element " << a << " specified: \"" \
<< parts[b] << "\"" << std::endl; \
return; \
}
@@ -80,7 +79,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define MY_CHECKGEOM(a,b) \
if (v_geom.size() != 2) { \
errorstream<< "Invalid geometry for element " << a << \
- "specified: \"" << parts[b] << "\"" << std::endl; \
+ " specified: \"" << parts[b] << "\"" << std::endl; \
return; \
}
/*
@@ -98,30 +97,24 @@ inline u32 clamp_u8(s32 value)
GUIFormSpecMenu::GUIFormSpecMenu(JoystickController *joystick,
gui::IGUIElement *parent, s32 id, IMenuManager *menumgr,
- Client *client, ISimpleTextureSource *tsrc, IFormSource *fsrc, TextDest *tdst,
- const std::string &formspecPrepend,
- bool remap_dbl_click):
- GUIModalMenu(RenderingEngine::get_gui_env(), parent, id, menumgr),
+ Client *client, ISimpleTextureSource *tsrc, ISoundManager *sound_manager,
+ IFormSource *fsrc, TextDest *tdst,
+ const std::string &formspecPrepend, bool remap_dbl_click):
+ GUIModalMenu(RenderingEngine::get_gui_env(), parent, id, menumgr, remap_dbl_click),
m_invmgr(client),
m_tsrc(tsrc),
+ m_sound_manager(sound_manager),
m_client(client),
m_formspec_prepend(formspecPrepend),
m_form_src(fsrc),
m_text_dst(tdst),
- m_joystick(joystick),
- m_remap_dbl_click(remap_dbl_click)
+ m_joystick(joystick)
{
current_keys_pending.key_down = false;
current_keys_pending.key_up = false;
current_keys_pending.key_enter = false;
current_keys_pending.key_escape = false;
- m_doubleclickdetect[0].time = 0;
- m_doubleclickdetect[1].time = 0;
-
- m_doubleclickdetect[0].pos = v2s32(0, 0);
- m_doubleclickdetect[1].pos = v2s32(0, 0);
-
m_tooltip_show_delay = (u32)g_settings->getS32("tooltip_show_delay");
m_tooltip_append_itemname = g_settings->getBool("tooltip_append_itemname");
}
@@ -154,11 +147,12 @@ GUIFormSpecMenu::~GUIFormSpecMenu()
void GUIFormSpecMenu::create(GUIFormSpecMenu *&cur_formspec, Client *client,
JoystickController *joystick, IFormSource *fs_src, TextDest *txt_dest,
- const std::string &formspecPrepend)
+ const std::string &formspecPrepend, ISoundManager *sound_manager)
{
if (cur_formspec == nullptr) {
cur_formspec = new GUIFormSpecMenu(joystick, guiroot, -1, &g_menumgr,
- client, client->getTextureSource(), fs_src, txt_dest, formspecPrepend);
+ client, client->getTextureSource(), sound_manager, fs_src,
+ txt_dest, formspecPrepend);
cur_formspec->doPause = false;
/*
@@ -504,19 +498,39 @@ void GUIFormSpecMenu::parseList(parserData *data, const std::string &element)
3
);
- v2f32 slot_spacing = data->real_coordinates ?
- v2f32(imgsize.X * 1.25f, imgsize.Y * 1.25f) : spacing;
+ auto style = getDefaultStyleForElement("list", spec.fname);
+
+ v2f32 slot_scale = style.getVector2f(StyleSpec::SIZE, v2f32(0, 0));
+ v2f32 slot_size(
+ slot_scale.X <= 0 ? imgsize.X : std::max<f32>(slot_scale.X * imgsize.X, 1),
+ slot_scale.Y <= 0 ? imgsize.Y : std::max<f32>(slot_scale.Y * imgsize.Y, 1)
+ );
+
+ v2f32 slot_spacing = style.getVector2f(StyleSpec::SPACING, v2f32(-1, -1));
+ v2f32 default_spacing = data->real_coordinates ?
+ v2f32(imgsize.X * 0.25f, imgsize.Y * 0.25f) :
+ v2f32(spacing.X - imgsize.X, spacing.Y - imgsize.Y);
+
+ slot_spacing.X = slot_spacing.X < 0 ? default_spacing.X :
+ imgsize.X * slot_spacing.X;
+ slot_spacing.Y = slot_spacing.Y < 0 ? default_spacing.Y :
+ imgsize.Y * slot_spacing.Y;
+
+ slot_spacing += slot_size;
- v2s32 pos = data->real_coordinates ? getRealCoordinateBasePos(v_pos)
- : getElementBasePos(&v_pos);
+ v2s32 pos = data->real_coordinates ? getRealCoordinateBasePos(v_pos) :
+ getElementBasePos(&v_pos);
core::rect<s32> rect = core::rect<s32>(pos.X, pos.Y,
- pos.X + (geom.X - 1) * slot_spacing.X + imgsize.X,
- pos.Y + (geom.Y - 1) * slot_spacing.Y + imgsize.Y);
+ pos.X + (geom.X - 1) * slot_spacing.X + slot_size.X,
+ pos.Y + (geom.Y - 1) * slot_spacing.Y + slot_size.Y);
GUIInventoryList *e = new GUIInventoryList(Environment, data->current_parent,
- spec.fid, rect, m_invmgr, loc, listname, geom, start_i, imgsize,
- slot_spacing, this, data->inventorylist_options, m_font);
+ spec.fid, rect, m_invmgr, loc, listname, geom, start_i,
+ v2s32(slot_size.X, slot_size.Y), slot_spacing, this,
+ data->inventorylist_options, m_font);
+
+ e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false));
m_inventorylists.push_back(e);
m_fields.push_back(spec);
@@ -625,9 +639,12 @@ void GUIFormSpecMenu::parseCheckbox(parserData* data, const std::string &element
data->current_parent, spec.fid, spec.flabel.c_str());
auto style = getDefaultStyleForElement("checkbox", name);
+
+ spec.sound = style.get(StyleSpec::Property::SOUND, "");
+
e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false));
- if (spec.fname == data->focused_fieldname) {
+ if (spec.fname == m_focused_element) {
Environment->setFocus(e);
}
@@ -703,6 +720,10 @@ void GUIFormSpecMenu::parseScrollBar(parserData* data, const std::string &elemen
e->setPageSize(scrollbar_size * (max - min + 1) / data->scrollbar_options.thumb_size);
+ if (spec.fname == m_focused_element) {
+ Environment->setFocus(e);
+ }
+
m_scrollbars.emplace_back(spec,e);
m_fields.push_back(spec);
return;
@@ -907,7 +928,7 @@ void GUIFormSpecMenu::parseAnimatedImage(parserData *data, const std::string &el
core::rect<s32> rect = core::rect<s32>(pos, pos + geom);
- GUIAnimatedImage *e = new GUIAnimatedImage(Environment, this, spec.fid,
+ GUIAnimatedImage *e = new GUIAnimatedImage(Environment, data->current_parent, spec.fid,
rect, texture_name, frame_count, frame_duration, m_tsrc);
if (parts.size() >= 7)
@@ -1027,9 +1048,12 @@ void GUIFormSpecMenu::parseButton(parserData* data, const std::string &element,
data->current_parent, spec.fid, spec.flabel.c_str());
auto style = getStyleForElement(type, name, (type != "button") ? "button" : "");
+
+ spec.sound = style[StyleSpec::STATE_DEFAULT].get(StyleSpec::Property::SOUND, "");
+
e->setStyles(style);
- if (spec.fname == data->focused_fieldname) {
+ if (spec.fname == m_focused_element) {
Environment->setFocus(e);
}
@@ -1218,7 +1242,7 @@ void GUIFormSpecMenu::parseTable(parserData* data, const std::string &element)
GUITable *e = new GUITable(Environment, data->current_parent, spec.fid,
rect, m_tsrc);
- if (spec.fname == data->focused_fieldname) {
+ if (spec.fname == m_focused_element) {
Environment->setFocus(e);
}
@@ -1233,6 +1257,7 @@ void GUIFormSpecMenu::parseTable(parserData* data, const std::string &element)
auto style = getDefaultStyleForElement("table", name);
e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false));
+ e->setOverrideFont(style.getFont());
m_tables.emplace_back(spec, e);
m_fields.push_back(spec);
@@ -1295,7 +1320,7 @@ void GUIFormSpecMenu::parseTextList(parserData* data, const std::string &element
GUITable *e = new GUITable(Environment, data->current_parent, spec.fid,
rect, m_tsrc);
- if (spec.fname == data->focused_fieldname) {
+ if (spec.fname == m_focused_element) {
Environment->setFocus(e);
}
@@ -1310,6 +1335,7 @@ void GUIFormSpecMenu::parseTextList(parserData* data, const std::string &element
auto style = getDefaultStyleForElement("textlist", name);
e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false));
+ e->setOverrideFont(style.getFont());
m_tables.emplace_back(spec, e);
m_fields.push_back(spec);
@@ -1318,19 +1344,20 @@ void GUIFormSpecMenu::parseTextList(parserData* data, const std::string &element
errorstream<< "Invalid textlist element(" << parts.size() << "): '" << element << "'" << std::endl;
}
-
void GUIFormSpecMenu::parseDropDown(parserData* data, const std::string &element)
{
- std::vector<std::string> parts = split(element,';');
+ std::vector<std::string> parts = split(element, ';');
- if ((parts.size() == 5) ||
- ((parts.size() > 5) && (m_formspec_version > FORMSPEC_API_VERSION)))
+ if (parts.size() == 5 || parts.size() == 6 ||
+ (parts.size() > 6 && m_formspec_version > FORMSPEC_API_VERSION))
{
- std::vector<std::string> v_pos = split(parts[0],',');
+ std::vector<std::string> v_pos = split(parts[0], ',');
std::string name = parts[2];
- std::vector<std::string> items = split(parts[3],',');
- std::string str_initial_selection;
- str_initial_selection = parts[4];
+ std::vector<std::string> items = split(parts[3], ',');
+ std::string str_initial_selection = parts[4];
+
+ if (parts.size() >= 6 && is_yes(parts[5]))
+ m_dropdown_index_event[name] = true;
MY_CHECKPOS("dropdown",0);
@@ -1372,7 +1399,7 @@ void GUIFormSpecMenu::parseDropDown(parserData* data, const std::string &element
gui::IGUIComboBox *e = Environment->addComboBox(rect, data->current_parent,
spec.fid);
- if (spec.fname == data->focused_fieldname) {
+ if (spec.fname == m_focused_element) {
Environment->setFocus(e);
}
@@ -1385,6 +1412,9 @@ void GUIFormSpecMenu::parseDropDown(parserData* data, const std::string &element
e->setSelected(stoi(str_initial_selection)-1);
auto style = getDefaultStyleForElement("dropdown", name);
+
+ spec.sound = style.get(StyleSpec::Property::SOUND, "");
+
e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false));
m_fields.push_back(spec);
@@ -1397,8 +1427,8 @@ void GUIFormSpecMenu::parseDropDown(parserData* data, const std::string &element
return;
}
- errorstream << "Invalid dropdown element(" << parts.size() << "): '"
- << element << "'" << std::endl;
+ errorstream << "Invalid dropdown element(" << parts.size() << "): '" << element
+ << "'" << std::endl;
}
void GUIFormSpecMenu::parseFieldCloseOnEnter(parserData *data, const std::string &element)
@@ -1414,8 +1444,8 @@ void GUIFormSpecMenu::parsePwdField(parserData* data, const std::string &element
{
std::vector<std::string> parts = split(element,';');
- if ((parts.size() == 4) ||
- ((parts.size() > 4) && (m_formspec_version > FORMSPEC_API_VERSION)))
+ if (parts.size() == 4 ||
+ (parts.size() > 4 && m_formspec_version > FORMSPEC_API_VERSION))
{
std::vector<std::string> v_pos = split(parts[0],',');
std::vector<std::string> v_geom = split(parts[1],',');
@@ -1459,7 +1489,7 @@ void GUIFormSpecMenu::parsePwdField(parserData* data, const std::string &element
gui::IGUIEditBox *e = Environment->addEditBox(0, rect, true,
data->current_parent, spec.fid);
- if (spec.fname == data->focused_fieldname) {
+ if (spec.fname == m_focused_element) {
Environment->setFocus(e);
}
@@ -1477,6 +1507,7 @@ void GUIFormSpecMenu::parsePwdField(parserData* data, const std::string &element
e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false));
e->setDrawBorder(style.getBool(StyleSpec::BORDER, true));
e->setOverrideColor(style.getColor(StyleSpec::TEXTCOLOR, video::SColor(0xFFFFFFFF)));
+ e->setOverrideFont(style.getFont());
irr::SEvent evt;
evt.EventType = EET_KEY_INPUT_EVENT;
@@ -1536,7 +1567,7 @@ void GUIFormSpecMenu::createTextField(parserData *data, FieldSpec &spec,
auto style = getDefaultStyleForElement(is_multiline ? "textarea" : "field", spec.fname);
if (e) {
- if (is_editable && spec.fname == data->focused_fieldname)
+ if (is_editable && spec.fname == m_focused_element)
Environment->setFocus(e);
if (is_multiline) {
@@ -1560,6 +1591,7 @@ void GUIFormSpecMenu::createTextField(parserData *data, FieldSpec &spec,
if (style.get(StyleSpec::BGCOLOR, "") == "transparent") {
e->setDrawBackground(false);
}
+ e->setOverrideFont(style.getFont());
e->drop();
}
@@ -1743,12 +1775,16 @@ void GUIFormSpecMenu::parseHyperText(parserData *data, const std::string &elemen
FieldSpec spec(
name,
- utf8_to_wide(unescape_string(text)),
+ translate_string(utf8_to_wide(unescape_string(text))),
L"",
258 + m_fields.size()
);
spec.ftype = f_HyperText;
+
+ auto style = getDefaultStyleForElement("hypertext", spec.fname);
+ spec.sound = style.get(StyleSpec::Property::SOUND, "");
+
GUIHyperText *e = new GUIHyperText(spec.flabel.c_str(), Environment,
data->current_parent, spec.fid, rect, m_client, m_tsrc);
e->drop();
@@ -1773,6 +1809,11 @@ void GUIFormSpecMenu::parseLabel(parserData* data, const std::string &element)
std::vector<std::string> lines = split(text, '\n');
+ auto style = getDefaultStyleForElement("label", "");
+ gui::IGUIFont *font = style.getFont();
+ if (!font)
+ font = m_font;
+
for (unsigned int i = 0; i != lines.size(); i++) {
std::wstring wlabel_colors = translate_string(
utf8_to_wide(unescape_string(lines[i])));
@@ -1794,7 +1835,7 @@ void GUIFormSpecMenu::parseLabel(parserData* data, const std::string &element)
rect = core::rect<s32>(
pos.X, pos.Y,
- pos.X + m_font->getDimension(wlabel_plain.c_str()).Width,
+ pos.X + font->getDimension(wlabel_plain.c_str()).Width,
pos.Y + imgsize.Y);
} else {
@@ -1816,7 +1857,7 @@ void GUIFormSpecMenu::parseLabel(parserData* data, const std::string &element)
rect = core::rect<s32>(
pos.X, pos.Y - m_btn_height,
- pos.X + m_font->getDimension(wlabel_plain.c_str()).Width,
+ pos.X + font->getDimension(wlabel_plain.c_str()).Width,
pos.Y + m_btn_height);
}
@@ -1832,9 +1873,9 @@ void GUIFormSpecMenu::parseLabel(parserData* data, const std::string &element)
spec.fid);
e->setTextAlignment(gui::EGUIA_UPPERLEFT, gui::EGUIA_CENTER);
- auto style = getDefaultStyleForElement("label", spec.fname);
e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false));
e->setOverrideColor(style.getColor(StyleSpec::TEXTCOLOR, video::SColor(0xFFFFFFFF)));
+ e->setOverrideFont(font);
m_fields.push_back(spec);
@@ -1862,6 +1903,11 @@ void GUIFormSpecMenu::parseVertLabel(parserData* data, const std::string &elemen
MY_CHECKPOS("vertlabel",1);
+ auto style = getDefaultStyleForElement("vertlabel", "", "label");
+ gui::IGUIFont *font = style.getFont();
+ if (!font)
+ font = m_font;
+
v2s32 pos;
core::rect<s32> rect;
@@ -1875,7 +1921,7 @@ void GUIFormSpecMenu::parseVertLabel(parserData* data, const std::string &elemen
// isn't quite tall enough and cuts off the text.
rect = core::rect<s32>(pos.X, pos.Y,
pos.X + imgsize.X,
- pos.Y + font_line_height(m_font) *
+ pos.Y + font_line_height(font) *
(text.length() + 1));
} else {
@@ -1887,7 +1933,7 @@ void GUIFormSpecMenu::parseVertLabel(parserData* data, const std::string &elemen
rect = core::rect<s32>(
pos.X, pos.Y+((imgsize.Y/2) - m_btn_height),
pos.X+15, pos.Y +
- font_line_height(m_font) *
+ font_line_height(font) *
(text.length() + 1) +
((imgsize.Y/2) - m_btn_height));
}
@@ -1912,9 +1958,9 @@ void GUIFormSpecMenu::parseVertLabel(parserData* data, const std::string &elemen
rect, false, false, data->current_parent, spec.fid);
e->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_CENTER);
- auto style = getDefaultStyleForElement("vertlabel", spec.fname, "label");
e->setNotClipped(style.getBool(StyleSpec::NOCLIP, false));
e->setOverrideColor(style.getColor(StyleSpec::TEXTCOLOR, video::SColor(0xFFFFFFFF)));
+ e->setOverrideFont(font);
m_fields.push_back(spec);
@@ -1985,12 +2031,14 @@ void GUIFormSpecMenu::parseImageButton(parserData* data, const std::string &elem
GUIButtonImage *e = GUIButtonImage::addButton(Environment, rect, m_tsrc,
data->current_parent, spec.fid, spec.flabel.c_str());
- if (spec.fname == data->focused_fieldname) {
+ if (spec.fname == m_focused_element) {
Environment->setFocus(e);
}
auto style = getStyleForElement("image_button", spec.fname);
+ spec.sound = style[StyleSpec::STATE_DEFAULT].get(StyleSpec::Property::SOUND, "");
+
// Override style properties with values specified directly in the element
if (!image_name.empty())
style[StyleSpec::STATE_DEFAULT].set(StyleSpec::FGIMG, image_name);
@@ -2098,11 +2146,10 @@ void GUIFormSpecMenu::parseTabHeader(parserData* data, const std::string &elemen
irr::gui::EGUIA_UPPERLEFT, irr::gui::EGUIA_LOWERRIGHT);
e->setTabHeight(geom.Y);
- if (spec.fname == data->focused_fieldname) {
- Environment->setFocus(e);
- }
-
auto style = getDefaultStyleForElement("tabheader", name);
+
+ spec.sound = style.get(StyleSpec::Property::SOUND, "");
+
e->setNotClipped(style.getBool(StyleSpec::NOCLIP, true));
for (const std::string &button : buttons) {
@@ -2191,9 +2238,12 @@ void GUIFormSpecMenu::parseItemImageButton(parserData* data, const std::string &
item_name, m_client);
auto style = getStyleForElement("item_image_button", spec_btn.fname, "image_button");
+
+ spec_btn.sound = style[StyleSpec::STATE_DEFAULT].get(StyleSpec::Property::SOUND, "");
+
e_btn->setStyles(style);
- if (spec_btn.fname == data->focused_fieldname) {
+ if (spec_btn.fname == m_focused_element) {
Environment->setFocus(e_btn);
}
@@ -2208,16 +2258,16 @@ void GUIFormSpecMenu::parseItemImageButton(parserData* data, const std::string &
void GUIFormSpecMenu::parseBox(parserData* data, const std::string &element)
{
- std::vector<std::string> parts = split(element,';');
+ std::vector<std::string> parts = split(element, ';');
if ((parts.size() == 3) ||
((parts.size() > 3) && (m_formspec_version > FORMSPEC_API_VERSION)))
{
- std::vector<std::string> v_pos = split(parts[0],',');
- std::vector<std::string> v_geom = split(parts[1],',');
+ std::vector<std::string> v_pos = split(parts[0], ',');
+ std::vector<std::string> v_geom = split(parts[1], ',');
- MY_CHECKPOS("box",0);
- MY_CHECKGEOM("box",1);
+ MY_CHECKPOS("box", 0);
+ MY_CHECKGEOM("box", 1);
v2s32 pos;
v2s32 geom;
@@ -2231,36 +2281,43 @@ void GUIFormSpecMenu::parseBox(parserData* data, const std::string &element)
geom.Y = stof(v_geom[1]) * spacing.Y;
}
- video::SColor tmp_color;
-
- if (parseColorString(parts[2], tmp_color, false, 0x8C)) {
- FieldSpec spec(
- "",
- L"",
- L"",
- 258 + m_fields.size(),
- -2
- );
- spec.ftype = f_Box;
+ FieldSpec spec(
+ "",
+ L"",
+ L"",
+ 258 + m_fields.size(),
+ -2
+ );
+ spec.ftype = f_Box;
- core::rect<s32> rect(pos, pos + geom);
+ auto style = getDefaultStyleForElement("box", spec.fname);
- GUIBox *e = new GUIBox(Environment, data->current_parent, spec.fid,
- rect, tmp_color);
+ video::SColor tmp_color;
+ std::array<video::SColor, 4> colors;
+ std::array<video::SColor, 4> bordercolors = {0x0, 0x0, 0x0, 0x0};
+ std::array<s32, 4> borderwidths = {0, 0, 0, 0};
- auto style = getDefaultStyleForElement("box", spec.fname);
- e->setNotClipped(style.getBool(StyleSpec::NOCLIP, m_formspec_version < 3));
+ if (parseColorString(parts[2], tmp_color, true, 0x8C)) {
+ colors = {tmp_color, tmp_color, tmp_color, tmp_color};
+ } else {
+ colors = style.getColorArray(StyleSpec::COLORS, {0x0, 0x0, 0x0, 0x0});
+ bordercolors = style.getColorArray(StyleSpec::BORDERCOLORS,
+ {0x0, 0x0, 0x0, 0x0});
+ borderwidths = style.getIntArray(StyleSpec::BORDERWIDTHS, {0, 0, 0, 0});
+ }
- e->drop();
+ core::rect<s32> rect(pos, pos + geom);
- m_fields.push_back(spec);
+ GUIBox *e = new GUIBox(Environment, data->current_parent, spec.fid, rect,
+ colors, bordercolors, borderwidths);
+ e->setNotClipped(style.getBool(StyleSpec::NOCLIP, m_formspec_version < 3));
+ e->drop();
- } else {
- errorstream<< "Invalid Box element(" << parts.size() << "): '" << element << "' INVALID COLOR" << std::endl;
- }
+ m_fields.push_back(spec);
return;
}
- errorstream<< "Invalid Box element(" << parts.size() << "): '" << element << "'" << std::endl;
+ errorstream << "Invalid Box element(" << parts.size() << "): '" << element
+ << "'" << std::endl;
}
void GUIFormSpecMenu::parseBackgroundColor(parserData* data, const std::string &element)
@@ -2664,6 +2721,118 @@ bool GUIFormSpecMenu::parseStyle(parserData *data, const std::string &element, b
return true;
}
+void GUIFormSpecMenu::parseSetFocus(const std::string &element)
+{
+ std::vector<std::string> parts = split(element, ';');
+
+ if (parts.size() <= 2 ||
+ (parts.size() > 2 && m_formspec_version > FORMSPEC_API_VERSION))
+ {
+ if (m_is_form_regenerated)
+ return; // Never focus on resizing
+
+ bool force_focus = parts.size() >= 2 && is_yes(parts[1]);
+ if (force_focus || m_text_dst->m_formname != m_last_formname)
+ setFocus(parts[0]);
+
+ return;
+ }
+
+ errorstream << "Invalid set_focus element (" << parts.size() << "): '" << element
+ << "'" << std::endl;
+}
+
+void GUIFormSpecMenu::parseModel(parserData *data, const std::string &element)
+{
+ std::vector<std::string> parts = split(element, ';');
+
+ if (parts.size() < 5 || (parts.size() > 9 &&
+ m_formspec_version <= FORMSPEC_API_VERSION)) {
+ errorstream << "Invalid model element (" << parts.size() << "): '" << element
+ << "'" << std::endl;
+ return;
+ }
+
+ // Avoid length checks by resizing
+ if (parts.size() < 9)
+ parts.resize(9);
+
+ std::vector<std::string> v_pos = split(parts[0], ',');
+ std::vector<std::string> v_geom = split(parts[1], ',');
+ std::string name = unescape_string(parts[2]);
+ std::string meshstr = unescape_string(parts[3]);
+ std::vector<std::string> textures = split(parts[4], ',');
+ std::vector<std::string> vec_rot = split(parts[5], ',');
+ bool inf_rotation = is_yes(parts[6]);
+ bool mousectrl = is_yes(parts[7]) || parts[7].empty(); // default true
+ std::vector<std::string> frame_loop = split(parts[8], ',');
+
+ MY_CHECKPOS("model", 0);
+ MY_CHECKGEOM("model", 1);
+
+ v2s32 pos;
+ v2s32 geom;
+
+ if (data->real_coordinates) {
+ pos = getRealCoordinateBasePos(v_pos);
+ geom = getRealCoordinateGeometry(v_geom);
+ } else {
+ pos = getElementBasePos(&v_pos);
+ geom.X = stof(v_geom[0]) * (float)imgsize.X;
+ geom.Y = stof(v_geom[1]) * (float)imgsize.Y;
+ }
+
+ if (!data->explicit_size)
+ warningstream << "invalid use of model without a size[] element" << std::endl;
+
+ scene::IAnimatedMesh *mesh = m_client->getMesh(meshstr);
+
+ if (!mesh) {
+ errorstream << "Invalid model element: Unable to load mesh:"
+ << std::endl << "\t" << meshstr << std::endl;
+ return;
+ }
+
+ FieldSpec spec(
+ name,
+ L"",
+ L"",
+ 258 + m_fields.size()
+ );
+
+ core::rect<s32> rect(pos, pos + geom);
+
+ GUIScene *e = new GUIScene(Environment, RenderingEngine::get_scene_manager(),
+ data->current_parent, rect, spec.fid);
+
+ auto meshnode = e->setMesh(mesh);
+
+ for (u32 i = 0; i < textures.size() && i < meshnode->getMaterialCount(); ++i)
+ e->setTexture(i, m_tsrc->getTexture(unescape_string(textures[i])));
+
+ if (vec_rot.size() >= 2)
+ e->setRotation(v2f(stof(vec_rot[0]), stof(vec_rot[1])));
+
+ e->enableContinuousRotation(inf_rotation);
+ e->enableMouseControl(mousectrl);
+
+ s32 frame_loop_begin = 0;
+ s32 frame_loop_end = 0x7FFFFFFF;
+
+ if (frame_loop.size() == 2) {
+ frame_loop_begin = stoi(frame_loop[0]);
+ frame_loop_end = stoi(frame_loop[1]);
+ }
+
+ e->setFrameLoop(frame_loop_begin, frame_loop_end);
+
+ auto style = getStyleForElement("model", spec.fname);
+ e->setStyles(style);
+ e->drop();
+
+ m_fields.push_back(spec);
+}
+
void GUIFormSpecMenu::parseElement(parserData* data, const std::string &element)
{
//some prechecks
@@ -2855,6 +3024,16 @@ void GUIFormSpecMenu::parseElement(parserData* data, const std::string &element)
return;
}
+ if (type == "set_focus") {
+ parseSetFocus(description);
+ return;
+ }
+
+ if (type == "model") {
+ parseModel(data, description);
+ return;
+ }
+
// Ignore others
infostream << "Unknown DrawSpec: type=" << type << ", data=\"" << description << "\""
<< std::endl;
@@ -2862,36 +3041,38 @@ void GUIFormSpecMenu::parseElement(parserData* data, const std::string &element)
void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
{
- /* useless to regenerate without a screensize */
+ // Useless to regenerate without a screensize
if ((screensize.X <= 0) || (screensize.Y <= 0)) {
return;
}
parserData mydata;
- //preserve tables
- for (auto &m_table : m_tables) {
- std::string tablename = m_table.first.fname;
- GUITable *table = m_table.second;
- mydata.table_dyndata[tablename] = table->getDynamicData();
- }
-
- //set focus
- if (!m_focused_element.empty())
- mydata.focused_fieldname = m_focused_element;
+ // Preserve stuff only on same form, not on a new form.
+ if (m_text_dst->m_formname == m_last_formname) {
+ // Preserve tables/textlists
+ for (auto &m_table : m_tables) {
+ std::string tablename = m_table.first.fname;
+ GUITable *table = m_table.second;
+ mydata.table_dyndata[tablename] = table->getDynamicData();
+ }
- //preserve focus
- gui::IGUIElement *focused_element = Environment->getFocus();
- if (focused_element && focused_element->getParent() == this) {
- s32 focused_id = focused_element->getID();
- if (focused_id > 257) {
- for (const GUIFormSpecMenu::FieldSpec &field : m_fields) {
- if (field.fid == focused_id) {
- mydata.focused_fieldname = field.fname;
- break;
+ // Preserve focus
+ gui::IGUIElement *focused_element = Environment->getFocus();
+ if (focused_element && focused_element->getParent() == this) {
+ s32 focused_id = focused_element->getID();
+ if (focused_id > 257) {
+ for (const GUIFormSpecMenu::FieldSpec &field : m_fields) {
+ if (field.fid == focused_id) {
+ m_focused_element = field.fname;
+ break;
+ }
}
}
}
+ } else {
+ // Don't keep old focus value
+ m_focused_element = "";
}
// Remove children
@@ -2940,6 +3121,8 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
theme_by_name.clear();
theme_by_type.clear();
m_clickthrough_elements.clear();
+ field_close_on_enter.clear();
+ m_dropdown_index_event.clear();
m_bgnonfullscreen = true;
m_bgfullscreen = false;
@@ -3079,42 +3262,42 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
// and default scaling (1.00).
use_imgsize = 0.5555 * screen_dpi * gui_scaling;
} else {
- // In variable-size mode, we prefer to make the
- // inventory image size 1/15 of screen height,
- // multiplied by the gui_scaling config parameter.
- // If the preferred size won't fit the whole
- // form on the screen, either horizontally or
- // vertically, then we scale it down to fit.
- // (The magic numbers in the computation of what
- // fits arise from the scaling factors in the
- // following stanza, including the form border,
- // help text space, and 0.1 inventory slot spare.)
- // However, a minimum size is also set, that
- // the image size can't be less than 0.3 inch
- // multiplied by gui_scaling, even if this means
- // the form doesn't fit the screen.
+ // Variables for the maximum imgsize that can fit in the screen.
+ double fitx_imgsize;
+ double fity_imgsize;
+
+ // Pad the screensize with 5% of the screensize on all sides to ensure
+ // that even the largest formspecs don't touch the screen borders.
+ v2f padded_screensize(
+ mydata.screensize.X * 0.9f,
+ mydata.screensize.Y * 0.9f
+ );
+
+ if (mydata.real_coordinates) {
+ fitx_imgsize = padded_screensize.X / mydata.invsize.X;
+ fity_imgsize = padded_screensize.Y / mydata.invsize.Y;
+ } else {
+ // The maximum imgsize in the old coordinate system also needs to
+ // factor in padding and spacing along with 0.1 inventory slot spare
+ // and help text space, hence the magic numbers.
+ fitx_imgsize = padded_screensize.X /
+ ((5.0 / 4.0) * (0.5 + mydata.invsize.X));
+ fity_imgsize = padded_screensize.Y /
+ ((15.0 / 13.0) * (0.85 + mydata.invsize.Y));
+ }
+
#ifdef __ANDROID__
- // For mobile devices these magic numbers are
- // different and forms should always use the
- // maximum screen space available.
- double prefer_imgsize = mydata.screensize.Y / 10 * gui_scaling;
- double fitx_imgsize = mydata.screensize.X /
- ((12.0 / 8.0) * (0.5 + mydata.invsize.X));
- double fity_imgsize = mydata.screensize.Y /
- ((15.0 / 11.0) * (0.85 + mydata.invsize.Y));
- use_imgsize = MYMIN(prefer_imgsize,
- MYMIN(fitx_imgsize, fity_imgsize));
+ // In Android, the preferred imgsize should be larger to accommodate the
+ // smaller screensize.
+ double prefer_imgsize = padded_screensize.Y / 10 * gui_scaling;
#else
- double prefer_imgsize = mydata.screensize.Y / 15 * gui_scaling;
- double fitx_imgsize = mydata.screensize.X /
- ((5.0 / 4.0) * (0.5 + mydata.invsize.X));
- double fity_imgsize = mydata.screensize.Y /
- ((15.0 / 13.0) * (0.85 * mydata.invsize.Y));
- double screen_dpi = RenderingEngine::getDisplayDensity() * 96;
- double min_imgsize = 0.3 * screen_dpi * gui_scaling;
- use_imgsize = MYMAX(min_imgsize, MYMIN(prefer_imgsize,
- MYMIN(fitx_imgsize, fity_imgsize)));
+ // Desktop computers have more space, so try to fit 15 coordinates.
+ double prefer_imgsize = padded_screensize.Y / 15 * gui_scaling;
#endif
+ // Try to use the preferred imgsize, but if that's bigger than the maximum
+ // size, use the maximum size.
+ use_imgsize = std::min(prefer_imgsize,
+ std::min(fitx_imgsize, fity_imgsize));
}
// Everything else is scaled in proportion to the
@@ -3250,8 +3433,8 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
}
}
- //set initial focus if parser didn't set it
- focused_element = Environment->getFocus();
+ // Set initial focus if parser didn't set it
+ gui::IGUIElement *focused_element = Environment->getFocus();
if (!focused_element
|| !isMyChild(focused_element)
|| focused_element->getType() == gui::EGUIET_TAB_CONTROL)
@@ -3262,6 +3445,13 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize)
// legacy sorting
if (m_formspec_version < 3)
legacySortElements(legacy_sort_start);
+
+ // Formname and regeneration setting
+ if (!m_is_form_regenerated) {
+ // Only set previous form name if we purposefully showed a new formspec
+ m_last_formname = m_text_dst->m_formname;
+ m_is_form_regenerated = true;
+ }
}
void GUIFormSpecMenu::legacySortElements(core::list<IGUIElement *>::Iterator from)
@@ -3336,8 +3526,6 @@ bool GUIFormSpecMenu::getAndroidUIInput()
GUIInventoryList::ItemSpec GUIFormSpecMenu::getItemAtPos(v2s32 p) const
{
- core::rect<s32> imgrect(0, 0, imgsize.X, imgsize.Y);
-
for (const GUIInventoryList *e : m_inventorylists) {
s32 item_index = e->getItemIndexAtPos(p);
if (item_index != -1)
@@ -3379,6 +3567,7 @@ void GUIFormSpecMenu::drawMenu()
const std::string &newform = m_form_src->getForm();
if (newform != m_formspec_string) {
m_formspec_string = newform;
+ m_is_form_regenerated = false;
regenerateGui(m_screensize_old);
}
}
@@ -3435,10 +3624,14 @@ void GUIFormSpecMenu::drawMenu()
e->setVisible(true);
/*
- Call base class
- (This is where all the drawing happens.)
+ This is where all the drawing happens.
*/
- gui::IGUIElement::draw();
+ core::list<IGUIElement*>::Iterator it = Children.begin();
+ for (; it != Children.end(); ++it)
+ if ((*it)->isNotClipped() ||
+ AbsoluteClippingRect.isRectCollided(
+ (*it)->getAbsolutePosition()))
+ (*it)->draw();
for (gui::IGUIElement *e : m_clickthrough_elements)
e->setVisible(false);
@@ -3544,7 +3737,8 @@ void GUIFormSpecMenu::showTooltip(const std::wstring &text,
{
EnrichedString ntext(text);
ntext.setDefaultColor(color);
- ntext.setBackground(bgcolor);
+ if (!ntext.hasBackground())
+ ntext.setBackground(bgcolor);
setStaticText(m_tooltip_element, ntext);
@@ -3662,7 +3856,7 @@ ItemStack GUIFormSpecMenu::verifySelectedItem()
return ItemStack();
}
-void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no)
+void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode)
{
if(m_text_dst)
{
@@ -3727,10 +3921,14 @@ void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no)
}
s32 selected = e->getSelected();
if (selected >= 0) {
- std::vector<std::string> *dropdown_values =
- getDropDownValues(s.fname);
- if (dropdown_values && selected < (s32)dropdown_values->size()) {
- fields[name] = (*dropdown_values)[selected];
+ if (m_dropdown_index_event.find(s.fname) !=
+ m_dropdown_index_event.end()) {
+ fields[name] = std::to_string(selected + 1);
+ } else {
+ std::vector<std::string> *dropdown_values =
+ getDropDownValues(s.fname);
+ if (dropdown_values && selected < (s32)dropdown_values->size())
+ fields[name] = (*dropdown_values)[selected];
}
}
} else if (s.ftype == f_TabHeader) {
@@ -3800,17 +3998,6 @@ void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no)
}
}
-static bool isChild(gui::IGUIElement *tocheck, gui::IGUIElement *parent)
-{
- while (tocheck) {
- if (tocheck == parent) {
- return true;
- }
- tocheck = tocheck->getParent();
- }
- return false;
-}
-
bool GUIFormSpecMenu::preprocessEvent(const SEvent& event)
{
// The IGUITabControl renders visually using the skin's selected
@@ -3871,22 +4058,6 @@ bool GUIFormSpecMenu::preprocessEvent(const SEvent& event)
}
}
- if (event.EventType == EET_MOUSE_INPUT_EVENT) {
- s32 x = event.MouseInput.X;
- s32 y = event.MouseInput.Y;
- gui::IGUIElement *hovered =
- Environment->getRootGUIElement()->getElementFromPoint(
- core::position2d<s32>(x, y));
- if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) {
- m_old_tooltip_id = -1;
- }
- if (!isChild(hovered, this)) {
- if (DoubleClickDetection(event)) {
- return true;
- }
- }
- }
-
if (event.EventType == irr::EET_JOYSTICK_INPUT_EVENT) {
/* TODO add a check like:
if (event.JoystickEvent != joystick_we_listen_for)
@@ -3909,64 +4080,6 @@ bool GUIFormSpecMenu::preprocessEvent(const SEvent& event)
return GUIModalMenu::preprocessEvent(event);
}
-/******************************************************************************/
-bool GUIFormSpecMenu::DoubleClickDetection(const SEvent event)
-{
- /* The following code is for capturing double-clicks of the mouse button
- * and translating the double-click into an EET_KEY_INPUT_EVENT event
- * -- which closes the form -- under some circumstances.
- *
- * There have been many github issues reporting this as a bug even though it
- * was an intended feature. For this reason, remapping the double-click as
- * an ESC must be explicitly set when creating this class via the
- * /p remap_dbl_click parameter of the constructor.
- */
-
- if (!m_remap_dbl_click)
- return false;
-
- if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) {
- m_doubleclickdetect[0].pos = m_doubleclickdetect[1].pos;
- m_doubleclickdetect[0].time = m_doubleclickdetect[1].time;
-
- m_doubleclickdetect[1].pos = m_pointer;
- m_doubleclickdetect[1].time = porting::getTimeMs();
- }
- else if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) {
- u64 delta = porting::getDeltaMs(m_doubleclickdetect[0].time, porting::getTimeMs());
- if (delta > 400) {
- return false;
- }
-
- double squaredistance =
- m_doubleclickdetect[0].pos
- .getDistanceFromSQ(m_doubleclickdetect[1].pos);
-
- if (squaredistance > (30*30)) {
- return false;
- }
-
- SEvent* translated = new SEvent();
- assert(translated != 0);
- //translate doubleclick to escape
- memset(translated, 0, sizeof(SEvent));
- translated->EventType = irr::EET_KEY_INPUT_EVENT;
- translated->KeyInput.Key = KEY_ESCAPE;
- translated->KeyInput.Control = false;
- translated->KeyInput.Shift = false;
- translated->KeyInput.PressedDown = true;
- translated->KeyInput.Char = 0;
- OnEvent(*translated);
-
- // no need to send the key up event as we're already deleted
- // and no one else did notice this event
- delete translated;
- return true;
- }
-
- return false;
-}
-
void GUIFormSpecMenu::tryClose()
{
if (m_allowclose) {
@@ -4429,6 +4542,8 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
for (GUIFormSpecMenu::FieldSpec &s : m_fields) {
if ((s.ftype == f_TabHeader) &&
(s.fid == event.GUIEvent.Caller->getID())) {
+ if (!s.sound.empty() && m_sound_manager)
+ m_sound_manager->playSound(s.sound, false, 1.0f);
s.send = true;
acceptInput();
s.send = false;
@@ -4472,6 +4587,9 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
continue;
if (s.ftype == f_Button || s.ftype == f_CheckBox) {
+ if (!s.sound.empty() && m_sound_manager)
+ m_sound_manager->playSound(s.sound, false, 1.0f);
+
s.send = true;
if (s.is_exit) {
if (m_allowclose) {
@@ -4494,6 +4612,8 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
s2.send = false;
}
}
+ if (!s.sound.empty() && m_sound_manager)
+ m_sound_manager->playSound(s.sound, false, 1.0f);
s.send = true;
acceptInput(quit_mode_no);
@@ -4510,6 +4630,8 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
acceptInput(quit_mode_no);
s.fdefault = L"";
} else if (s.ftype == f_Unknown || s.ftype == f_HyperText) {
+ if (!s.sound.empty() && m_sound_manager)
+ m_sound_manager->playSound(s.sound, false, 1.0f);
s.send = true;
acceptInput();
s.send = false;
diff --git a/src/gui/guiFormSpecMenu.h b/src/gui/guiFormSpecMenu.h
index 28088416d..d658aba7b 100644
--- a/src/gui/guiFormSpecMenu.h
+++ b/src/gui/guiFormSpecMenu.h
@@ -27,6 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "inventorymanager.h"
#include "modalMenu.h"
#include "guiInventoryList.h"
+#include "guiScrollBar.h"
#include "guiTable.h"
#include "network/networkprotocol.h"
#include "client/joystick_controller.h"
@@ -37,11 +38,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class InventoryManager;
class ISimpleTextureSource;
class Client;
-class GUIScrollBar;
-class TexturePool;
class GUIScrollContainer;
+class ISoundManager;
-typedef enum {
+enum FormspecFieldType {
f_Button,
f_Table,
f_TabHeader,
@@ -53,13 +53,13 @@ typedef enum {
f_HyperText,
f_AnimatedImage,
f_Unknown
-} FormspecFieldType;
+};
-typedef enum {
+enum FormspecQuitMode {
quit_mode_no,
quit_mode_accept,
quit_mode_cancel
-} FormspecQuitMode;
+};
struct TextDest
{
@@ -128,6 +128,7 @@ class GUIFormSpecMenu : public GUIModalMenu
int priority;
core::rect<s32> rect;
gui::ECURSOR_ICON fcursor_icon;
+ std::string sound;
};
struct TooltipSpec
@@ -152,6 +153,7 @@ public:
IMenuManager *menumgr,
Client *client,
ISimpleTextureSource *tsrc,
+ ISoundManager *sound_manager,
IFormSource* fs_src,
TextDest* txt_dst,
const std::string &formspecPrepend,
@@ -161,13 +163,14 @@ public:
static void create(GUIFormSpecMenu *&cur_formspec, Client *client,
JoystickController *joystick, IFormSource *fs_src, TextDest *txt_dest,
- const std::string &formspecPrepend);
+ const std::string &formspecPrepend, ISoundManager *sound_manager);
void setFormSpec(const std::string &formspec_string,
const InventoryLocation &current_inventory_location)
{
m_formspec_string = formspec_string;
m_current_inventory_location = current_inventory_location;
+ m_is_form_regenerated = false;
regenerateGui(m_screensize_old);
}
@@ -250,7 +253,7 @@ public:
void updateSelectedItem();
ItemStack verifySelectedItem();
- void acceptInput(FormspecQuitMode quitmode);
+ void acceptInput(FormspecQuitMode quitmode=quit_mode_no);
bool preprocessEvent(const SEvent& event);
bool OnEvent(const SEvent& event);
bool doPause;
@@ -293,16 +296,22 @@ protected:
InventoryManager *m_invmgr;
ISimpleTextureSource *m_tsrc;
+ ISoundManager *m_sound_manager;
Client *m_client;
std::string m_formspec_string;
std::string m_formspec_prepend;
InventoryLocation m_current_inventory_location;
+ // Default true because we can't control regeneration on resizing, but
+ // we can control cases when the formspec is shown intentionally.
+ bool m_is_form_regenerated = true;
+
std::vector<GUIInventoryList *> m_inventorylists;
std::vector<ListRingSpec> m_inventory_rings;
std::vector<gui::IGUIElement *> m_backgrounds;
std::unordered_map<std::string, bool> field_close_on_enter;
+ std::unordered_map<std::string, bool> m_dropdown_index_event;
std::vector<FieldSpec> m_fields;
std::vector<std::pair<FieldSpec, GUITable *>> m_tables;
std::vector<std::pair<FieldSpec, gui::IGUICheckBox *>> m_checkboxes;
@@ -338,16 +347,16 @@ protected:
video::SColor m_default_tooltip_bgcolor;
video::SColor m_default_tooltip_color;
-
private:
IFormSource *m_form_src;
TextDest *m_text_dst;
+ std::string m_last_formname;
u16 m_formspec_version = 1;
std::string m_focused_element = "";
JoystickController *m_joystick;
bool m_show_debug = false;
- typedef struct {
+ struct parserData {
bool explicit_size;
bool real_coordinates;
u8 simple_field_count;
@@ -358,7 +367,6 @@ private:
core::rect<s32> rect;
v2s32 basepos;
v2u32 screensize;
- std::string focused_fieldname;
GUITable::TableOptions table_options;
GUITable::TableColumns table_columns;
gui::IGUIElement *current_parent = nullptr;
@@ -376,16 +384,16 @@ private:
// used to restore table selection/scroll/treeview state
std::unordered_map<std::string, GUITable::DynamicData> table_dyndata;
- } parserData;
+ };
- typedef struct {
+ struct fs_key_pending {
bool key_up;
bool key_down;
bool key_enter;
bool key_escape;
- } fs_key_pendig;
+ };
- fs_key_pendig current_keys_pending;
+ fs_key_pending current_keys_pending;
std::string current_field_enter_pending = "";
std::vector<std::string> m_hovered_item_tooltips;
@@ -438,6 +446,8 @@ private:
bool parseAnchorDirect(parserData *data, const std::string &element);
void parseAnchor(parserData *data, const std::string &element);
bool parseStyle(parserData *data, const std::string &element, bool style_type);
+ void parseSetFocus(const std::string &element);
+ void parseModel(parserData *data, const std::string &element);
void tryClose();
@@ -451,30 +461,8 @@ private:
*/
void legacySortElements(core::list<IGUIElement *>::Iterator from);
- /**
- * check if event is part of a double click
- * @param event event to evaluate
- * @return true/false if a doubleclick was detected
- */
- bool DoubleClickDetection(const SEvent event);
-
- struct clickpos
- {
- v2s32 pos;
- s64 time;
- };
- clickpos m_doubleclickdetect[2];
-
int m_btn_height;
gui::IGUIFont *m_font = nullptr;
-
- /* If true, remap a double-click (or double-tap) action to ESC. This is so
- * that, for example, Android users can double-tap to close a formspec.
- *
- * This value can (currently) only be set by the class constructor
- * and the default value for the setting is true.
- */
- bool m_remap_dbl_click;
};
class FormspecFormSource: public IFormSource
diff --git a/src/gui/guiHyperText.cpp b/src/gui/guiHyperText.cpp
index 88931cdf9..ccfdcb81d 100644
--- a/src/gui/guiHyperText.cpp
+++ b/src/gui/guiHyperText.cpp
@@ -1088,7 +1088,7 @@ bool GUIHyperText::OnEvent(const SEvent &event)
if (event.MouseInput.Event == EMIE_MOUSE_MOVED)
checkHover(event.MouseInput.X, event.MouseInput.Y);
- if (event.MouseInput.Event == EMIE_MOUSE_WHEEL) {
+ if (event.MouseInput.Event == EMIE_MOUSE_WHEEL && m_vscrollbar->isVisible()) {
m_vscrollbar->setPos(m_vscrollbar->getPos() -
event.MouseInput.Wheel * m_vscrollbar->getSmallStep());
m_text_scrollpos.Y = -m_vscrollbar->getPos();
diff --git a/src/gui/guiInventoryList.cpp b/src/gui/guiInventoryList.cpp
index dfdb60448..183d72165 100644
--- a/src/gui/guiInventoryList.cpp
+++ b/src/gui/guiInventoryList.cpp
@@ -104,8 +104,6 @@ void GUIInventoryList::draw()
&& m_invmgr->getInventory(selected_item->inventoryloc) == inv
&& selected_item->listname == m_listname
&& selected_item->i == item_i;
- core::rect<s32> clipped_rect(rect);
- clipped_rect.clipAgainst(AbsoluteClippingRect);
bool hovering = m_hovered_i == item_i;
ItemRotationKind rotation_kind = selected ? IT_ROT_SELECTED :
(hovering ? IT_ROT_HOVERED : IT_ROT_NONE);
diff --git a/src/gui/guiKeyChangeMenu.cpp b/src/gui/guiKeyChangeMenu.cpp
index da0e25c23..4dcb47779 100644
--- a/src/gui/guiKeyChangeMenu.cpp
+++ b/src/gui/guiKeyChangeMenu.cpp
@@ -248,7 +248,7 @@ bool GUIKeyChangeMenu::acceptInput()
{
for (key_setting *k : key_settings) {
std::string default_key;
- g_settings->getDefaultNoEx(k->setting_name, default_key);
+ Settings::getLayer(SL_DEFAULTS)->getNoEx(k->setting_name, default_key);
if (k->key.sym() != default_key)
g_settings->set(k->setting_name, k->key.sym());
@@ -360,7 +360,7 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event)
{
if (!canTakeFocus(event.GUIEvent.Element))
{
- dstream << "GUIMainMenu: Not allowing focus change."
+ infostream << "GUIKeyChangeMenu: Not allowing focus change."
<< std::endl;
// Returning true disables focus change
return true;
diff --git a/src/gui/guiMainMenu.h b/src/gui/guiMainMenu.h
index 43a3b1a33..1dca8bf2d 100644
--- a/src/gui/guiMainMenu.h
+++ b/src/gui/guiMainMenu.h
@@ -20,7 +20,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#pragma once
#include "irrlichttypes_extrabloated.h"
-#include "modalMenu.h"
#include <string>
#include <list>
diff --git a/src/gui/guiPasswordChange.cpp b/src/gui/guiPasswordChange.cpp
index 965a2d6f7..74cd62f5b 100644
--- a/src/gui/guiPasswordChange.cpp
+++ b/src/gui/guiPasswordChange.cpp
@@ -79,7 +79,11 @@ void GUIPasswordChange::regenerateGui(v2u32 screensize)
/*
Calculate new sizes and positions
*/
+#ifdef __ANDROID__
+ const float s = m_gui_scale * porting::getDisplayDensity() / 2;
+#else
const float s = m_gui_scale;
+#endif
DesiredRect = core::rect<s32>(
screensize.X / 2 - 580 * s / 2,
screensize.Y / 2 - 300 * s / 2,
@@ -236,7 +240,7 @@ bool GUIPasswordChange::OnEvent(const SEvent &event)
if (event.GUIEvent.EventType == gui::EGET_ELEMENT_FOCUS_LOST &&
isVisible()) {
if (!canTakeFocus(event.GUIEvent.Element)) {
- dstream << "GUIPasswordChange: Not allowing focus change."
+ infostream << "GUIPasswordChange: Not allowing focus change."
<< std::endl;
// Returning true disables focus change
return true;
@@ -289,6 +293,10 @@ bool GUIPasswordChange::getAndroidUIInput()
if (!hasAndroidUIInput())
return false;
+ // still waiting
+ if (porting::getInputDialogState() == -1)
+ return true;
+
gui::IGUIElement *e = nullptr;
if (m_jni_field_name == "old_password")
e = getElementFromId(ID_oldPassword);
@@ -296,12 +304,13 @@ bool GUIPasswordChange::getAndroidUIInput()
e = getElementFromId(ID_newPassword1);
else if (m_jni_field_name == "new_password_2")
e = getElementFromId(ID_newPassword2);
-
- if (e) {
- std::string text = porting::getInputDialogValue();
- e->setText(utf8_to_wide(text).c_str());
- }
m_jni_field_name.clear();
+
+ if (!e || e->getType() != irr::gui::EGUIET_EDIT_BOX)
+ return false;
+
+ std::string text = porting::getInputDialogValue();
+ e->setText(utf8_to_wide(text).c_str());
return false;
}
#endif
diff --git a/src/gui/guiScene.cpp b/src/gui/guiScene.cpp
new file mode 100644
index 000000000..5f4c50b91
--- /dev/null
+++ b/src/gui/guiScene.cpp
@@ -0,0 +1,266 @@
+/*
+Minetest
+Copyright (C) 2020 Jean-Patrick Guerrero <jeanpatrick.guerrero@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "guiScene.h"
+
+#include <SViewFrustum.h>
+#include <IAnimatedMeshSceneNode.h>
+#include <ILightSceneNode.h>
+#include "porting.h"
+
+GUIScene::GUIScene(gui::IGUIEnvironment *env, scene::ISceneManager *smgr,
+ gui::IGUIElement *parent, core::recti rect, s32 id)
+ : IGUIElement(gui::EGUIET_ELEMENT, env, parent, id, rect)
+{
+ m_driver = env->getVideoDriver();
+ m_smgr = smgr->createNewSceneManager(false);
+
+ m_cam = m_smgr->addCameraSceneNode(0, v3f(0.f, 0.f, -100.f), v3f(0.f));
+ m_cam->setFOV(30.f * core::DEGTORAD);
+
+ scene::ILightSceneNode *light = m_smgr->addLightSceneNode(m_cam);
+ light->setRadius(1000.f);
+
+ m_smgr->getParameters()->setAttribute(scene::ALLOW_ZWRITE_ON_TRANSPARENT, true);
+}
+
+GUIScene::~GUIScene()
+{
+ setMesh(nullptr);
+
+ m_smgr->drop();
+}
+
+scene::IAnimatedMeshSceneNode *GUIScene::setMesh(scene::IAnimatedMesh *mesh)
+{
+ if (m_mesh) {
+ m_mesh->remove();
+ m_mesh = nullptr;
+ }
+
+ if (!mesh)
+ return nullptr;
+
+ m_mesh = m_smgr->addAnimatedMeshSceneNode(mesh);
+ m_mesh->setPosition(-m_mesh->getBoundingBox().getCenter());
+ m_mesh->animateJoints();
+ return m_mesh;
+}
+
+void GUIScene::setTexture(u32 idx, video::ITexture *texture)
+{
+ video::SMaterial &material = m_mesh->getMaterial(idx);
+ material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
+ material.MaterialTypeParam = 0.5f;
+ material.TextureLayer[0].Texture = texture;
+ material.setFlag(video::EMF_LIGHTING, false);
+ material.setFlag(video::EMF_FOG_ENABLE, true);
+ material.setFlag(video::EMF_BILINEAR_FILTER, false);
+ material.setFlag(video::EMF_BACK_FACE_CULLING, false);
+}
+
+void GUIScene::draw()
+{
+ // Control rotation speed based on time
+ u64 new_time = porting::getTimeMs();
+ u64 dtime_ms = 0;
+ if (m_last_time != 0)
+ dtime_ms = porting::getDeltaMs(m_last_time, new_time);
+ m_last_time = new_time;
+
+ core::rect<s32> oldViewPort = m_driver->getViewPort();
+ m_driver->setViewPort(getAbsoluteClippingRect());
+ core::recti borderRect = Environment->getRootGUIElement()->getAbsoluteClippingRect();
+
+ if (m_bgcolor != 0) {
+ Environment->getSkin()->draw3DSunkenPane(
+ this, m_bgcolor, false, true, borderRect, 0);
+ }
+
+ core::dimension2d<s32> size = getAbsoluteClippingRect().getSize();
+ m_smgr->getActiveCamera()->setAspectRatio((f32)size.Width / (f32)size.Height);
+
+ if (!m_target) {
+ updateCamera(m_smgr->addEmptySceneNode());
+ rotateCamera(v3f(0.f));
+ m_cam->bindTargetAndRotation(true);
+ }
+
+ cameraLoop();
+
+ // Continuous rotation
+ if (m_inf_rot)
+ rotateCamera(v3f(0.f, -0.03f * (float)dtime_ms, 0.f));
+
+ m_smgr->drawAll();
+
+ if (m_initial_rotation && m_mesh) {
+ rotateCamera(v3f(m_custom_rot.X, m_custom_rot.Y, 0.f));
+ calcOptimalDistance();
+
+ m_initial_rotation = false;
+ }
+
+ m_driver->setViewPort(oldViewPort);
+}
+
+bool GUIScene::OnEvent(const SEvent &event)
+{
+ if (m_mouse_ctrl && event.EventType == EET_MOUSE_INPUT_EVENT) {
+ if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) {
+ m_last_pos = v2f((f32)event.MouseInput.X, (f32)event.MouseInput.Y);
+ return true;
+ } else if (event.MouseInput.Event == EMIE_MOUSE_MOVED) {
+ if (event.MouseInput.isLeftPressed()) {
+ m_curr_pos = v2f((f32)event.MouseInput.X, (f32)event.MouseInput.Y);
+
+ rotateCamera(v3f(
+ m_last_pos.Y - m_curr_pos.Y,
+ m_curr_pos.X - m_last_pos.X, 0.f));
+
+ m_last_pos = m_curr_pos;
+ return true;
+ }
+ }
+ }
+
+ return gui::IGUIElement::OnEvent(event);
+}
+
+void GUIScene::setStyles(const std::array<StyleSpec, StyleSpec::NUM_STATES> &styles)
+{
+ StyleSpec::State state = StyleSpec::STATE_DEFAULT;
+ StyleSpec style = StyleSpec::getStyleFromStatePropagation(styles, state);
+
+ setNotClipped(style.getBool(StyleSpec::NOCLIP, false));
+ setBackgroundColor(style.getColor(StyleSpec::BGCOLOR, m_bgcolor));
+}
+
+/**
+ * Sets the frame loop range for the mesh
+ */
+void GUIScene::setFrameLoop(s32 begin, s32 end)
+{
+ if (m_mesh->getStartFrame() != begin || m_mesh->getEndFrame() != end)
+ m_mesh->setFrameLoop(begin, end);
+}
+
+/* Camera control functions */
+
+inline void GUIScene::calcOptimalDistance()
+{
+ core::aabbox3df box = m_mesh->getBoundingBox();
+ f32 width = box.MaxEdge.X - box.MinEdge.X;
+ f32 height = box.MaxEdge.Y - box.MinEdge.Y;
+ f32 depth = box.MaxEdge.Z - box.MinEdge.Z;
+ f32 max_width = width > depth ? width : depth;
+
+ const scene::SViewFrustum *f = m_cam->getViewFrustum();
+ f32 cam_far = m_cam->getFarValue();
+ f32 far_width = core::line3df(f->getFarLeftUp(), f->getFarRightUp()).getLength();
+ f32 far_height = core::line3df(f->getFarLeftUp(), f->getFarLeftDown()).getLength();
+
+ core::recti rect = getAbsolutePosition();
+ f32 zoomX = rect.getWidth() / max_width;
+ f32 zoomY = rect.getHeight() / height;
+ f32 dist;
+
+ if (zoomX < zoomY)
+ dist = (max_width / (far_width / cam_far)) + (0.5f * max_width);
+ else
+ dist = (height / (far_height / cam_far)) + (0.5f * max_width);
+
+ m_cam_distance = dist;
+ m_update_cam = true;
+}
+
+void GUIScene::updateCamera(scene::ISceneNode *target)
+{
+ m_target = target;
+ updateTargetPos();
+
+ m_last_target_pos = m_target_pos;
+ updateCameraPos();
+
+ m_update_cam = true;
+}
+
+void GUIScene::updateTargetPos()
+{
+ m_last_target_pos = m_target_pos;
+ m_target->updateAbsolutePosition();
+ m_target_pos = m_target->getAbsolutePosition();
+}
+
+void GUIScene::setCameraRotation(v3f rot)
+{
+ correctBounds(rot);
+
+ core::matrix4 mat;
+ mat.setRotationDegrees(rot);
+
+ m_cam_pos = v3f(0.f, 0.f, m_cam_distance);
+ mat.rotateVect(m_cam_pos);
+
+ m_cam_pos += m_target_pos;
+ m_cam->setPosition(m_cam_pos);
+ m_update_cam = false;
+}
+
+bool GUIScene::correctBounds(v3f &rot)
+{
+ const float ROTATION_MAX_1 = 60.0f;
+ const float ROTATION_MAX_2 = 300.0f;
+
+ // Limit and correct the rotation when needed
+ if (rot.X < 90.f) {
+ if (rot.X > ROTATION_MAX_1) {
+ rot.X = ROTATION_MAX_1;
+ return true;
+ }
+ } else if (rot.X < ROTATION_MAX_2) {
+ rot.X = ROTATION_MAX_2;
+ return true;
+ }
+
+ // Not modified
+ return false;
+}
+
+void GUIScene::cameraLoop()
+{
+ updateCameraPos();
+ updateTargetPos();
+
+ if (m_target_pos != m_last_target_pos)
+ m_update_cam = true;
+
+ if (m_update_cam) {
+ m_cam_pos = m_target_pos + (m_cam_pos - m_target_pos).normalize() * m_cam_distance;
+
+ v3f rot = getCameraRotation();
+ if (correctBounds(rot))
+ setCameraRotation(rot);
+
+ m_cam->setPosition(m_cam_pos);
+ m_cam->setTarget(m_target_pos);
+
+ m_update_cam = false;
+ }
+}
diff --git a/src/gui/guiScene.h b/src/gui/guiScene.h
new file mode 100644
index 000000000..08eb7f350
--- /dev/null
+++ b/src/gui/guiScene.h
@@ -0,0 +1,86 @@
+/*
+Minetest
+Copyright (C) 2020 Jean-Patrick Guerrero <jeanpatrick.guerrero@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#pragma once
+
+#include "irrlichttypes_extrabloated.h"
+#include "ICameraSceneNode.h"
+#include "StyleSpec.h"
+
+using namespace irr;
+
+class GUIScene : public gui::IGUIElement
+{
+public:
+ GUIScene(gui::IGUIEnvironment *env, scene::ISceneManager *smgr,
+ gui::IGUIElement *parent, core::recti rect, s32 id = -1);
+
+ ~GUIScene();
+
+ scene::IAnimatedMeshSceneNode *setMesh(scene::IAnimatedMesh *mesh = nullptr);
+ void setTexture(u32 idx, video::ITexture *texture);
+ void setBackgroundColor(const video::SColor &color) noexcept { m_bgcolor = color; };
+ void setFrameLoop(s32 begin, s32 end);
+ void enableMouseControl(bool enable) noexcept { m_mouse_ctrl = enable; };
+ void setRotation(v2f rot) noexcept { m_custom_rot = rot; };
+ void enableContinuousRotation(bool enable) noexcept { m_inf_rot = enable; };
+ void setStyles(const std::array<StyleSpec, StyleSpec::NUM_STATES> &styles);
+
+ virtual void draw();
+ virtual bool OnEvent(const SEvent &event);
+
+private:
+ void calcOptimalDistance();
+ void updateTargetPos();
+ void updateCamera(scene::ISceneNode *target);
+ void setCameraRotation(v3f rot);
+ /// @return true indicates that the rotation was corrected
+ bool correctBounds(v3f &rot);
+ void cameraLoop();
+
+ void updateCameraPos() { m_cam_pos = m_cam->getPosition(); };
+ v3f getCameraRotation() const { return (m_cam_pos - m_target_pos).getHorizontalAngle(); };
+ void rotateCamera(const v3f &delta) { setCameraRotation(getCameraRotation() + delta); };
+
+ scene::ISceneManager *m_smgr;
+ video::IVideoDriver *m_driver;
+ scene::ICameraSceneNode *m_cam;
+ scene::ISceneNode *m_target = nullptr;
+ scene::IAnimatedMeshSceneNode *m_mesh = nullptr;
+
+ f32 m_cam_distance = 50.f;
+
+ u64 m_last_time = 0;
+
+ v3f m_cam_pos;
+ v3f m_target_pos;
+ v3f m_last_target_pos;
+ // Cursor positions
+ v2f m_curr_pos;
+ v2f m_last_pos;
+ // Initial rotation
+ v2f m_custom_rot;
+
+ bool m_mouse_ctrl = true;
+ bool m_update_cam = false;
+ bool m_inf_rot = false;
+ bool m_initial_rotation = true;
+
+ video::SColor m_bgcolor = 0;
+};
diff --git a/src/gui/guiScrollBar.cpp b/src/gui/guiScrollBar.cpp
index b04ccb9d5..c6a03f3e4 100644
--- a/src/gui/guiScrollBar.cpp
+++ b/src/gui/guiScrollBar.cpp
@@ -21,7 +21,7 @@ GUIScrollBar::GUIScrollBar(IGUIEnvironment *environment, IGUIElement *parent, s3
is_horizontal(horizontal), is_auto_scaling(auto_scale),
dragged_by_slider(false), tray_clicked(false), scroll_pos(0),
draw_center(0), thumb_size(0), min_pos(0), max_pos(100), small_step(10),
- large_step(50), last_change(0), drag_offset(0), page_size(100), border_size(0)
+ large_step(50), drag_offset(0), page_size(100), border_size(0)
{
refreshControls();
setNotClipped(false);
diff --git a/src/gui/guiScrollBar.h b/src/gui/guiScrollBar.h
index 29493bb99..d18f8e875 100644
--- a/src/gui/guiScrollBar.h
+++ b/src/gui/guiScrollBar.h
@@ -68,7 +68,6 @@ private:
s32 max_pos;
s32 small_step;
s32 large_step;
- u32 last_change;
s32 drag_offset;
s32 page_size;
s32 border_size;
diff --git a/src/gui/guiScrollContainer.cpp b/src/gui/guiScrollContainer.cpp
index 88cdc7057..0fe4c41bd 100644
--- a/src/gui/guiScrollContainer.cpp
+++ b/src/gui/guiScrollContainer.cpp
@@ -56,6 +56,18 @@ bool GUIScrollContainer::OnEvent(const SEvent &event)
return IGUIElement::OnEvent(event);
}
+void GUIScrollContainer::draw()
+{
+ if (isVisible()) {
+ core::list<IGUIElement *>::Iterator it = Children.begin();
+ for (; it != Children.end(); ++it)
+ if ((*it)->isNotClipped() ||
+ AbsoluteClippingRect.isRectCollided(
+ (*it)->getAbsolutePosition()))
+ (*it)->draw();
+ }
+}
+
void GUIScrollContainer::updateScrolling()
{
s32 pos = m_scrollbar->getPos();
diff --git a/src/gui/guiScrollContainer.h b/src/gui/guiScrollContainer.h
index a0306291e..9e3ec6e93 100644
--- a/src/gui/guiScrollContainer.h
+++ b/src/gui/guiScrollContainer.h
@@ -32,6 +32,8 @@ public:
virtual bool OnEvent(const SEvent &event) override;
+ virtual void draw() override;
+
inline void onScrollEvent(gui::IGUIElement *caller)
{
if (caller == m_scrollbar)
diff --git a/src/gui/guiSkin.cpp b/src/gui/guiSkin.cpp
index 8892a00b4..e09209bd9 100644
--- a/src/gui/guiSkin.cpp
+++ b/src/gui/guiSkin.cpp
@@ -29,7 +29,7 @@ GUISkin::GUISkin(EGUI_SKIN_TYPE type, video::IVideoDriver* driver)
{
Colors[EGDC_3D_DARK_SHADOW] = video::SColor(101,50,50,50);
Colors[EGDC_3D_SHADOW] = video::SColor(101,130,130,130);
- Colors[EGDC_3D_FACE] = video::SColor(101,210,210,210);
+ Colors[EGDC_3D_FACE] = video::SColor(220,100,100,100);
Colors[EGDC_3D_HIGH_LIGHT] = video::SColor(101,255,255,255);
Colors[EGDC_3D_LIGHT] = video::SColor(101,210,210,210);
Colors[EGDC_ACTIVE_BORDER] = video::SColor(101,16,14,115);
diff --git a/src/gui/guiTable.cpp b/src/gui/guiTable.cpp
index c705e17fb..cab2e19fd 100644
--- a/src/gui/guiTable.cpp
+++ b/src/gui/guiTable.cpp
@@ -56,7 +56,7 @@ GUITable::GUITable(gui::IGUIEnvironment *env,
m_font = skin->getFont();
if (m_font) {
m_font->grab();
- m_rowheight = m_font->getDimension(L"A").Height + 4;
+ m_rowheight = m_font->getDimension(L"Ay").Height + 4;
m_rowheight = MYMAX(m_rowheight, 1);
}
@@ -586,6 +586,31 @@ void GUITable::setSelected(s32 index)
}
}
+void GUITable::setOverrideFont(IGUIFont *font)
+{
+ if (m_font == font)
+ return;
+
+ if (font == nullptr)
+ font = Environment->getSkin()->getFont();
+
+ if (m_font)
+ m_font->drop();
+
+ m_font = font;
+ m_font->grab();
+
+ m_rowheight = m_font->getDimension(L"Ay").Height + 4;
+ m_rowheight = MYMAX(m_rowheight, 1);
+
+ updateScrollBar();
+}
+
+IGUIFont *GUITable::getOverrideFont() const
+{
+ return m_font;
+}
+
GUITable::DynamicData GUITable::getDynamicData() const
{
DynamicData dyndata;
diff --git a/src/gui/guiTable.h b/src/gui/guiTable.h
index 11093ea72..76a0e94d0 100644
--- a/src/gui/guiTable.h
+++ b/src/gui/guiTable.h
@@ -123,6 +123,12 @@ public:
// Autoscroll to make the selected row fully visible
void setSelected(s32 index);
+ //! Sets another skin independent font. If this is set to zero, the button uses the font of the skin.
+ virtual void setOverrideFont(gui::IGUIFont *font = nullptr);
+
+ //! Gets the override font (if any)
+ virtual gui::IGUIFont *getOverrideFont() const;
+
/* Get selection, scroll position and opened (sub)trees */
DynamicData getDynamicData() const;
diff --git a/src/gui/guiVolumeChange.cpp b/src/gui/guiVolumeChange.cpp
index 07b11248c..f17cfa986 100644
--- a/src/gui/guiVolumeChange.cpp
+++ b/src/gui/guiVolumeChange.cpp
@@ -171,7 +171,7 @@ bool GUIVolumeChange::OnEvent(const SEvent& event)
if (event.GUIEvent.EventType == gui::EGET_ELEMENT_FOCUS_LOST
&& isVisible()) {
if (!canTakeFocus(event.GUIEvent.Element)) {
- dstream << "GUIMainMenu: Not allowing focus change."
+ infostream << "GUIVolumeChange: Not allowing focus change."
<< std::endl;
// Returning true disables focus change
return true;
diff --git a/src/gui/intlGUIEditBox.cpp b/src/gui/intlGUIEditBox.cpp
index 10395423c..0f09ea746 100644
--- a/src/gui/intlGUIEditBox.cpp
+++ b/src/gui/intlGUIEditBox.cpp
@@ -59,9 +59,7 @@ namespace gui
intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border,
IGUIEnvironment* environment, IGUIElement* parent, s32 id,
const core::rect<s32>& rectangle, bool writable, bool has_vscrollbar)
- : IGUIEditBox(environment, parent, id, rectangle),
- Border(border), FrameRect(rectangle),
- m_scrollbar_width(0), m_vscrollbar(NULL), m_writable(writable)
+ : GUIEditBox(environment, parent, id, rectangle, border, writable)
{
#ifdef _DEBUG
setDebugName("intlintlGUIEditBox");
@@ -70,10 +68,10 @@ intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border,
Text = text;
if (Environment)
- Operator = Environment->getOSOperator();
+ m_operator = Environment->getOSOperator();
- if (Operator)
- Operator->grab();
+ if (m_operator)
+ m_operator->grab();
// this element can be tabbed to
setTabStop(true);
@@ -82,12 +80,12 @@ intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border,
IGUISkin *skin = 0;
if (Environment)
skin = Environment->getSkin();
- if (Border && skin)
+ if (m_border && skin)
{
- FrameRect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1;
- FrameRect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1;
- FrameRect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1;
- FrameRect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1;
+ m_frame_rect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1;
+ m_frame_rect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1;
+ m_frame_rect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1;
+ m_frame_rect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1;
}
if (skin && has_vscrollbar) {
@@ -104,96 +102,11 @@ intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border,
setWritable(writable);
}
-
-//! destructor
-intlGUIEditBox::~intlGUIEditBox()
-{
- if (OverrideFont)
- OverrideFont->drop();
-
- if (Operator)
- Operator->drop();
-
- if (m_vscrollbar)
- m_vscrollbar->drop();
-}
-
-
-//! Sets another skin independent font.
-void intlGUIEditBox::setOverrideFont(IGUIFont* font)
-{
- if (OverrideFont == font)
- return;
-
- if (OverrideFont)
- OverrideFont->drop();
-
- OverrideFont = font;
-
- if (OverrideFont)
- OverrideFont->grab();
-
- breakText();
-}
-
-IGUIFont * intlGUIEditBox::getOverrideFont() const
-{
- return OverrideFont;
-}
-
-//! Get the font which is used right now for drawing
-IGUIFont* intlGUIEditBox::getActiveFont() const
-{
- if ( OverrideFont )
- return OverrideFont;
- IGUISkin* skin = Environment->getSkin();
- if (skin)
- return skin->getFont();
- return 0;
-}
-
-//! Sets another color for the text.
-void intlGUIEditBox::setOverrideColor(video::SColor color)
-{
- OverrideColor = color;
- OverrideColorEnabled = true;
-}
-
-video::SColor intlGUIEditBox::getOverrideColor() const
-{
- return OverrideColor;
-}
-
-//! Turns the border on or off
-void intlGUIEditBox::setDrawBorder(bool border)
-{
- Border = border;
-}
-
//! Sets whether to draw the background
void intlGUIEditBox::setDrawBackground(bool draw)
{
}
-//! Sets if the text should use the overide color or the color in the gui skin.
-void intlGUIEditBox::enableOverrideColor(bool enable)
-{
- OverrideColorEnabled = enable;
-}
-
-bool intlGUIEditBox::isOverrideColorEnabled() const
-{
- return OverrideColorEnabled;
-}
-
-//! Enables or disables word wrap
-void intlGUIEditBox::setWordWrap(bool enable)
-{
- WordWrap = enable;
- breakText();
-}
-
-
void intlGUIEditBox::updateAbsolutePosition()
{
core::rect<s32> oldAbsoluteRect(AbsoluteRect);
@@ -205,557 +118,6 @@ void intlGUIEditBox::updateAbsolutePosition()
}
-//! Checks if word wrap is enabled
-bool intlGUIEditBox::isWordWrapEnabled() const
-{
- return WordWrap;
-}
-
-
-//! Enables or disables newlines.
-void intlGUIEditBox::setMultiLine(bool enable)
-{
- MultiLine = enable;
-}
-
-
-//! Checks if multi line editing is enabled
-bool intlGUIEditBox::isMultiLineEnabled() const
-{
- return MultiLine;
-}
-
-
-void intlGUIEditBox::setPasswordBox(bool passwordBox, wchar_t passwordChar)
-{
- PasswordBox = passwordBox;
- if (PasswordBox)
- {
- PasswordChar = passwordChar;
- setMultiLine(false);
- setWordWrap(false);
- BrokenText.clear();
- }
-}
-
-
-bool intlGUIEditBox::isPasswordBox() const
-{
- return PasswordBox;
-}
-
-
-//! Sets text justification
-void intlGUIEditBox::setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical)
-{
- HAlign = horizontal;
- VAlign = vertical;
-}
-
-
-//! called if an event happened.
-bool intlGUIEditBox::OnEvent(const SEvent& event)
-{
- if (IsEnabled)
- {
-
- switch(event.EventType)
- {
- case EET_GUI_EVENT:
- if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST)
- {
- if (event.GUIEvent.Caller == this)
- {
- MouseMarking = false;
- setTextMarkers(0,0);
- }
- }
- break;
- case EET_KEY_INPUT_EVENT:
- {
-#if (defined(__linux__) || defined(__FreeBSD__)) || defined(__DragonFly__)
- // ################################################################
- // ValkaTR:
- // This part is the difference from the original intlGUIEditBox
- // It converts UTF-8 character into a UCS-2 (wchar_t)
- wchar_t wc = L'_';
- mbtowc( &wc, (char *) &event.KeyInput.Char, sizeof(event.KeyInput.Char) );
-
- //printf( "char: %lc (%u) \r\n", wc, wc );
-
- SEvent irrevent(event);
- irrevent.KeyInput.Char = wc;
- // ################################################################
-
- if (processKey(irrevent))
- return true;
-#else
- if (processKey(event))
- return true;
-#endif // defined(linux)
-
- break;
- }
- case EET_MOUSE_INPUT_EVENT:
- if (processMouse(event))
- return true;
- break;
- default:
- break;
- }
- }
-
- return IGUIElement::OnEvent(event);
-}
-
-
-bool intlGUIEditBox::processKey(const SEvent& event)
-{
- if (!event.KeyInput.PressedDown)
- return false;
-
- bool textChanged = false;
- s32 newMarkBegin = MarkBegin;
- s32 newMarkEnd = MarkEnd;
-
- // control shortcut handling
-
- if (event.KeyInput.Control)
- {
- // german backlash '\' entered with control + '?'
- if ( event.KeyInput.Char == '\\' )
- {
- inputChar(event.KeyInput.Char);
- return true;
- }
-
- switch(event.KeyInput.Key)
- {
- case KEY_KEY_A:
- // select all
- newMarkBegin = 0;
- newMarkEnd = Text.size();
- break;
- case KEY_KEY_C:
- // copy to clipboard
- if (!PasswordBox && Operator && MarkBegin != MarkEnd)
- {
- const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
- const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
-
- core::stringc s;
- s = Text.subString(realmbgn, realmend - realmbgn).c_str();
- Operator->copyToClipboard(s.c_str());
- }
- break;
- case KEY_KEY_X:
- // cut to the clipboard
- if (!PasswordBox && Operator && MarkBegin != MarkEnd) {
- const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
- const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
-
- // copy
- core::stringc sc;
- sc = Text.subString(realmbgn, realmend - realmbgn).c_str();
- Operator->copyToClipboard(sc.c_str());
-
- if (IsEnabled && m_writable) {
- // delete
- core::stringw s;
- s = Text.subString(0, realmbgn);
- s.append( Text.subString(realmend, Text.size()-realmend) );
- Text = s;
-
- CursorPos = realmbgn;
- newMarkBegin = 0;
- newMarkEnd = 0;
- textChanged = true;
- }
- }
- break;
- case KEY_KEY_V:
- if (!IsEnabled || !m_writable)
- break;
-
- // paste from the clipboard
- if (Operator)
- {
- const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
- const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
-
- // add new character
- const c8* p = Operator->getTextFromClipboard();
- if (p)
- {
- if (MarkBegin == MarkEnd)
- {
- // insert text
- core::stringw s = Text.subString(0, CursorPos);
- s.append(p);
- s.append( Text.subString(CursorPos, Text.size()-CursorPos) );
-
- if (!Max || s.size()<=Max) // thx to Fish FH for fix
- {
- Text = s;
- s = p;
- CursorPos += s.size();
- }
- }
- else
- {
- // replace text
-
- core::stringw s = Text.subString(0, realmbgn);
- s.append(p);
- s.append( Text.subString(realmend, Text.size()-realmend) );
-
- if (!Max || s.size()<=Max) // thx to Fish FH for fix
- {
- Text = s;
- s = p;
- CursorPos = realmbgn + s.size();
- }
- }
- }
-
- newMarkBegin = 0;
- newMarkEnd = 0;
- textChanged = true;
- }
- break;
- case KEY_HOME:
- // move/highlight to start of text
- if (event.KeyInput.Shift)
- {
- newMarkEnd = CursorPos;
- newMarkBegin = 0;
- CursorPos = 0;
- }
- else
- {
- CursorPos = 0;
- newMarkBegin = 0;
- newMarkEnd = 0;
- }
- break;
- case KEY_END:
- // move/highlight to end of text
- if (event.KeyInput.Shift)
- {
- newMarkBegin = CursorPos;
- newMarkEnd = Text.size();
- CursorPos = 0;
- }
- else
- {
- CursorPos = Text.size();
- newMarkBegin = 0;
- newMarkEnd = 0;
- }
- break;
- default:
- return false;
- }
- }
- // default keyboard handling
- else
- switch(event.KeyInput.Key)
- {
- case KEY_END:
- {
- s32 p = Text.size();
- if (WordWrap || MultiLine)
- {
- p = getLineFromPos(CursorPos);
- p = BrokenTextPositions[p] + (s32)BrokenText[p].size();
- if (p > 0 && (Text[p-1] == L'\r' || Text[p-1] == L'\n' ))
- p-=1;
- }
-
- if (event.KeyInput.Shift)
- {
- if (MarkBegin == MarkEnd)
- newMarkBegin = CursorPos;
-
- newMarkEnd = p;
- }
- else
- {
- newMarkBegin = 0;
- newMarkEnd = 0;
- }
- CursorPos = p;
- BlinkStartTime = porting::getTimeMs();
- }
- break;
- case KEY_HOME:
- {
-
- s32 p = 0;
- if (WordWrap || MultiLine)
- {
- p = getLineFromPos(CursorPos);
- p = BrokenTextPositions[p];
- }
-
- if (event.KeyInput.Shift)
- {
- if (MarkBegin == MarkEnd)
- newMarkBegin = CursorPos;
- newMarkEnd = p;
- }
- else
- {
- newMarkBegin = 0;
- newMarkEnd = 0;
- }
- CursorPos = p;
- BlinkStartTime = porting::getTimeMs();
- }
- break;
- case KEY_RETURN:
- if (MultiLine)
- {
- inputChar(L'\n');
- return true;
- }
- else
- {
- sendGuiEvent( EGET_EDITBOX_ENTER );
- }
- break;
- case KEY_LEFT:
-
- if (event.KeyInput.Shift)
- {
- if (CursorPos > 0)
- {
- if (MarkBegin == MarkEnd)
- newMarkBegin = CursorPos;
-
- newMarkEnd = CursorPos-1;
- }
- }
- else
- {
- newMarkBegin = 0;
- newMarkEnd = 0;
- }
-
- if (CursorPos > 0) CursorPos--;
- BlinkStartTime = porting::getTimeMs();
- break;
-
- case KEY_RIGHT:
- if (event.KeyInput.Shift)
- {
- if (Text.size() > (u32)CursorPos)
- {
- if (MarkBegin == MarkEnd)
- newMarkBegin = CursorPos;
-
- newMarkEnd = CursorPos+1;
- }
- }
- else
- {
- newMarkBegin = 0;
- newMarkEnd = 0;
- }
-
- if (Text.size() > (u32)CursorPos) CursorPos++;
- BlinkStartTime = porting::getTimeMs();
- break;
- case KEY_UP:
- if (MultiLine || (WordWrap && BrokenText.size() > 1) )
- {
- s32 lineNo = getLineFromPos(CursorPos);
- s32 mb = (MarkBegin == MarkEnd) ? CursorPos : (MarkBegin > MarkEnd ? MarkBegin : MarkEnd);
- if (lineNo > 0)
- {
- s32 cp = CursorPos - BrokenTextPositions[lineNo];
- if ((s32)BrokenText[lineNo-1].size() < cp)
- CursorPos = BrokenTextPositions[lineNo-1] + (s32)BrokenText[lineNo-1].size()-1;
- else
- CursorPos = BrokenTextPositions[lineNo-1] + cp;
- }
-
- if (event.KeyInput.Shift)
- {
- newMarkBegin = mb;
- newMarkEnd = CursorPos;
- }
- else
- {
- newMarkBegin = 0;
- newMarkEnd = 0;
- }
-
- }
- else
- {
- return false;
- }
- break;
- case KEY_DOWN:
- if (MultiLine || (WordWrap && BrokenText.size() > 1) )
- {
- s32 lineNo = getLineFromPos(CursorPos);
- s32 mb = (MarkBegin == MarkEnd) ? CursorPos : (MarkBegin < MarkEnd ? MarkBegin : MarkEnd);
- if (lineNo < (s32)BrokenText.size()-1)
- {
- s32 cp = CursorPos - BrokenTextPositions[lineNo];
- if ((s32)BrokenText[lineNo+1].size() < cp)
- CursorPos = BrokenTextPositions[lineNo+1] + BrokenText[lineNo+1].size()-1;
- else
- CursorPos = BrokenTextPositions[lineNo+1] + cp;
- }
-
- if (event.KeyInput.Shift)
- {
- newMarkBegin = mb;
- newMarkEnd = CursorPos;
- }
- else
- {
- newMarkBegin = 0;
- newMarkEnd = 0;
- }
-
- }
- else
- {
- return false;
- }
- break;
-
- case KEY_BACK:
- if (!this->IsEnabled || !m_writable)
- break;
-
- if (!Text.empty()) {
- core::stringw s;
-
- if (MarkBegin != MarkEnd)
- {
- // delete marked text
- const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
- const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
-
- s = Text.subString(0, realmbgn);
- s.append( Text.subString(realmend, Text.size()-realmend) );
- Text = s;
-
- CursorPos = realmbgn;
- }
- else
- {
- // delete text behind cursor
- if (CursorPos>0)
- s = Text.subString(0, CursorPos-1);
- else
- s = L"";
- s.append( Text.subString(CursorPos, Text.size()-CursorPos) );
- Text = s;
- --CursorPos;
- }
-
- if (CursorPos < 0)
- CursorPos = 0;
- BlinkStartTime = porting::getTimeMs();
- newMarkBegin = 0;
- newMarkEnd = 0;
- textChanged = true;
- }
- break;
- case KEY_DELETE:
- if (!this->IsEnabled || !m_writable)
- break;
-
- if (!Text.empty()) {
- core::stringw s;
-
- if (MarkBegin != MarkEnd)
- {
- // delete marked text
- const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
- const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
-
- s = Text.subString(0, realmbgn);
- s.append( Text.subString(realmend, Text.size()-realmend) );
- Text = s;
-
- CursorPos = realmbgn;
- }
- else
- {
- // delete text before cursor
- s = Text.subString(0, CursorPos);
- s.append( Text.subString(CursorPos+1, Text.size()-CursorPos-1) );
- Text = s;
- }
-
- if (CursorPos > (s32)Text.size())
- CursorPos = (s32)Text.size();
-
- BlinkStartTime = porting::getTimeMs();
- newMarkBegin = 0;
- newMarkEnd = 0;
- textChanged = true;
- }
- break;
-
- case KEY_ESCAPE:
- case KEY_TAB:
- case KEY_SHIFT:
- case KEY_F1:
- case KEY_F2:
- case KEY_F3:
- case KEY_F4:
- case KEY_F5:
- case KEY_F6:
- case KEY_F7:
- case KEY_F8:
- case KEY_F9:
- case KEY_F10:
- case KEY_F11:
- case KEY_F12:
- case KEY_F13:
- case KEY_F14:
- case KEY_F15:
- case KEY_F16:
- case KEY_F17:
- case KEY_F18:
- case KEY_F19:
- case KEY_F20:
- case KEY_F21:
- case KEY_F22:
- case KEY_F23:
- case KEY_F24:
- // ignore these keys
- return false;
-
- default:
- inputChar(event.KeyInput.Char);
- return true;
- }
-
- // Set new text markers
- setTextMarkers( newMarkBegin, newMarkEnd );
-
- // break the text if it has changed
- if (textChanged)
- {
- breakText();
- sendGuiEvent(EGET_EDITBOX_CHANGED);
- }
-
- calculateScrollPos();
-
- return true;
-}
-
-
//! draws the element and its children
void intlGUIEditBox::draw()
{
@@ -768,31 +130,31 @@ void intlGUIEditBox::draw()
if (!skin)
return;
- FrameRect = AbsoluteRect;
+ m_frame_rect = AbsoluteRect;
// draw the border
- if (Border)
+ if (m_border)
{
if (m_writable) {
skin->draw3DSunkenPane(this, skin->getColor(EGDC_WINDOW),
- false, true, FrameRect, &AbsoluteClippingRect);
+ false, true, m_frame_rect, &AbsoluteClippingRect);
}
- FrameRect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1;
- FrameRect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1;
- FrameRect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1;
- FrameRect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1;
+ m_frame_rect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1;
+ m_frame_rect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1;
+ m_frame_rect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1;
+ m_frame_rect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1;
}
updateVScrollBar();
- core::rect<s32> localClipRect = FrameRect;
+ core::rect<s32> localClipRect = m_frame_rect;
localClipRect.clipAgainst(AbsoluteClippingRect);
// draw the text
- IGUIFont* font = OverrideFont;
- if (!OverrideFont)
+ IGUIFont* font = m_override_font;
+ if (!m_override_font)
font = skin->getFont();
s32 cursorLine = 0;
@@ -800,7 +162,7 @@ void intlGUIEditBox::draw()
if (font)
{
- if (LastBreakFont != font)
+ if (m_last_break_font != font)
{
breakText();
}
@@ -813,23 +175,23 @@ void intlGUIEditBox::draw()
core::stringw s, s2;
// get mark position
- const bool ml = (!PasswordBox && (WordWrap || MultiLine));
- const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
- const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
+ const bool ml = (!m_passwordbox && (m_word_wrap || m_multiline));
+ const s32 realmbgn = m_mark_begin < m_mark_end ? m_mark_begin : m_mark_end;
+ const s32 realmend = m_mark_begin < m_mark_end ? m_mark_end : m_mark_begin;
const s32 hlineStart = ml ? getLineFromPos(realmbgn) : 0;
const s32 hlineCount = ml ? getLineFromPos(realmend) - hlineStart + 1 : 1;
- const s32 lineCount = ml ? BrokenText.size() : 1;
+ const s32 lineCount = ml ? m_broken_text.size() : 1;
// Save the override color information.
// Then, alter it if the edit box is disabled.
- const bool prevOver = OverrideColorEnabled;
- const video::SColor prevColor = OverrideColor;
+ const bool prevOver = m_override_color_enabled;
+ const video::SColor prevColor = m_override_color;
if (!Text.empty()) {
- if (!IsEnabled && !OverrideColorEnabled)
+ if (!IsEnabled && !m_override_color_enabled)
{
- OverrideColorEnabled = true;
- OverrideColor = skin->getColor(EGDC_GRAY_TEXT);
+ m_override_color_enabled = true;
+ m_override_color = skin->getColor(EGDC_GRAY_TEXT);
}
for (s32 i=0; i < lineCount; ++i)
@@ -838,43 +200,43 @@ void intlGUIEditBox::draw()
// clipping test - don't draw anything outside the visible area
core::rect<s32> c = localClipRect;
- c.clipAgainst(CurrentTextRect);
+ c.clipAgainst(m_current_text_rect);
if (!c.isValid())
continue;
// get current line
- if (PasswordBox)
+ if (m_passwordbox)
{
- if (BrokenText.size() != 1)
+ if (m_broken_text.size() != 1)
{
- BrokenText.clear();
- BrokenText.push_back(core::stringw());
+ m_broken_text.clear();
+ m_broken_text.emplace_back();
}
- if (BrokenText[0].size() != Text.size())
+ if (m_broken_text[0].size() != Text.size())
{
- BrokenText[0] = Text;
+ m_broken_text[0] = Text;
for (u32 q = 0; q < Text.size(); ++q)
{
- BrokenText[0] [q] = PasswordChar;
+ m_broken_text[0] [q] = m_passwordchar;
}
}
- txtLine = &BrokenText[0];
+ txtLine = &m_broken_text[0];
startPos = 0;
}
else
{
- txtLine = ml ? &BrokenText[i] : &Text;
- startPos = ml ? BrokenTextPositions[i] : 0;
+ txtLine = ml ? &m_broken_text[i] : &Text;
+ startPos = ml ? m_broken_text_positions[i] : 0;
}
// draw normal text
- font->draw(txtLine->c_str(), CurrentTextRect,
- OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_BUTTON_TEXT),
+ font->draw(txtLine->c_str(), m_current_text_rect,
+ m_override_color_enabled ? m_override_color : skin->getColor(EGDC_BUTTON_TEXT),
false, true, &localClipRect);
// draw mark and marked text
- if (focus && MarkBegin != MarkEnd && i >= hlineStart && i < hlineStart + hlineCount)
+ if (focus && m_mark_begin != m_mark_end && i >= hlineStart && i < hlineStart + hlineCount)
{
s32 mbegin = 0, mend = 0;
@@ -903,47 +265,47 @@ void intlGUIEditBox::draw()
else
mend = font->getDimension(txtLine->c_str()).Width;
- CurrentTextRect.UpperLeftCorner.X += mbegin;
- CurrentTextRect.LowerRightCorner.X = CurrentTextRect.UpperLeftCorner.X + mend - mbegin;
+ m_current_text_rect.UpperLeftCorner.X += mbegin;
+ m_current_text_rect.LowerRightCorner.X = m_current_text_rect.UpperLeftCorner.X + mend - mbegin;
// draw mark
- skin->draw2DRectangle(this, skin->getColor(EGDC_HIGH_LIGHT), CurrentTextRect, &localClipRect);
+ skin->draw2DRectangle(this, skin->getColor(EGDC_HIGH_LIGHT), m_current_text_rect, &localClipRect);
// draw marked text
s = txtLine->subString(lineStartPos, lineEndPos - lineStartPos);
if (!s.empty())
- font->draw(s.c_str(), CurrentTextRect,
- OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_HIGH_LIGHT_TEXT),
+ font->draw(s.c_str(), m_current_text_rect,
+ m_override_color_enabled ? m_override_color : skin->getColor(EGDC_HIGH_LIGHT_TEXT),
false, true, &localClipRect);
}
}
// Return the override color information to its previous settings.
- OverrideColorEnabled = prevOver;
- OverrideColor = prevColor;
+ m_override_color_enabled = prevOver;
+ m_override_color = prevColor;
}
// draw cursor
- if (WordWrap || MultiLine)
+ if (m_word_wrap || m_multiline)
{
- cursorLine = getLineFromPos(CursorPos);
- txtLine = &BrokenText[cursorLine];
- startPos = BrokenTextPositions[cursorLine];
+ cursorLine = getLineFromPos(m_cursor_pos);
+ txtLine = &m_broken_text[cursorLine];
+ startPos = m_broken_text_positions[cursorLine];
}
- s = txtLine->subString(0,CursorPos-startPos);
+ s = txtLine->subString(0,m_cursor_pos-startPos);
charcursorpos = font->getDimension(s.c_str()).Width +
- font->getKerningWidth(L"_", CursorPos-startPos > 0 ? &((*txtLine)[CursorPos-startPos-1]) : 0);
+ font->getKerningWidth(L"_", m_cursor_pos-startPos > 0 ? &((*txtLine)[m_cursor_pos-startPos-1]) : 0);
if (m_writable) {
- if (focus && (porting::getTimeMs() - BlinkStartTime) % 700 < 350) {
+ if (focus && (porting::getTimeMs() - m_blink_start_time) % 700 < 350) {
setTextRect(cursorLine);
- CurrentTextRect.UpperLeftCorner.X += charcursorpos;
+ m_current_text_rect.UpperLeftCorner.X += charcursorpos;
- font->draw(L"_", CurrentTextRect,
- OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_BUTTON_TEXT),
+ font->draw(L"_", m_current_text_rect,
+ m_override_color_enabled ? m_override_color : skin->getColor(EGDC_BUTTON_TEXT),
false, true, &localClipRect);
}
}
@@ -954,154 +316,11 @@ void intlGUIEditBox::draw()
}
-//! Sets the new caption of this element.
-void intlGUIEditBox::setText(const wchar_t* text)
-{
- Text = text;
- if (u32(CursorPos) > Text.size())
- CursorPos = Text.size();
- HScrollPos = 0;
- breakText();
-}
-
-
-//! Enables or disables automatic scrolling with cursor position
-//! \param enable: If set to true, the text will move around with the cursor position
-void intlGUIEditBox::setAutoScroll(bool enable)
-{
- AutoScroll = enable;
-}
-
-
-//! Checks to see if automatic scrolling is enabled
-//! \return true if automatic scrolling is enabled, false if not
-bool intlGUIEditBox::isAutoScrollEnabled() const
-{
- return AutoScroll;
-}
-
-
-//! Gets the area of the text in the edit box
-//! \return Returns the size in pixels of the text
-core::dimension2du intlGUIEditBox::getTextDimension()
-{
- core::rect<s32> ret;
-
- setTextRect(0);
- ret = CurrentTextRect;
-
- for (u32 i=1; i < BrokenText.size(); ++i)
- {
- setTextRect(i);
- ret.addInternalPoint(CurrentTextRect.UpperLeftCorner);
- ret.addInternalPoint(CurrentTextRect.LowerRightCorner);
- }
-
- return core::dimension2du(ret.getSize());
-}
-
-
-//! Sets the maximum amount of characters which may be entered in the box.
-//! \param max: Maximum amount of characters. If 0, the character amount is
-//! infinity.
-void intlGUIEditBox::setMax(u32 max)
-{
- Max = max;
-
- if (Text.size() > Max && Max != 0)
- Text = Text.subString(0, Max);
-}
-
-
-//! Returns maximum amount of characters, previously set by setMax();
-u32 intlGUIEditBox::getMax() const
-{
- return Max;
-}
-
-
-bool intlGUIEditBox::processMouse(const SEvent& event)
-{
- switch(event.MouseInput.Event)
- {
- case irr::EMIE_LMOUSE_LEFT_UP:
- if (Environment->hasFocus(this))
- {
- CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y);
- if (MouseMarking)
- {
- setTextMarkers( MarkBegin, CursorPos );
- }
- MouseMarking = false;
- calculateScrollPos();
- return true;
- }
- break;
- case irr::EMIE_MOUSE_MOVED:
- {
- if (MouseMarking)
- {
- CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y);
- setTextMarkers( MarkBegin, CursorPos );
- calculateScrollPos();
- return true;
- }
- }
- break;
- case EMIE_LMOUSE_PRESSED_DOWN:
- if (!Environment->hasFocus(this))
- {
- BlinkStartTime = porting::getTimeMs();
- MouseMarking = true;
- CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y);
- setTextMarkers(CursorPos, CursorPos );
- calculateScrollPos();
- return true;
- }
- else
- {
- if (!AbsoluteClippingRect.isPointInside(
- core::position2d<s32>(event.MouseInput.X, event.MouseInput.Y))) {
- return false;
- }
-
-
- // move cursor
- CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y);
-
- s32 newMarkBegin = MarkBegin;
- if (!MouseMarking)
- newMarkBegin = CursorPos;
-
- MouseMarking = true;
- setTextMarkers( newMarkBegin, CursorPos);
- calculateScrollPos();
- return true;
- }
- break;
- case EMIE_MOUSE_WHEEL:
- if (m_vscrollbar && m_vscrollbar->isVisible()) {
- s32 pos = m_vscrollbar->getPos();
- s32 step = m_vscrollbar->getSmallStep();
- m_vscrollbar->setPos(pos - event.MouseInput.Wheel * step);
- }
- break;
- default:
- break;
- }
-
- return false;
-}
-
-
s32 intlGUIEditBox::getCursorPos(s32 x, s32 y)
{
- IGUIFont* font = OverrideFont;
- IGUISkin* skin = Environment->getSkin();
- if (!OverrideFont)
- font = skin->getFont();
+ IGUIFont* font = getActiveFont();
- const u32 lineCount = (WordWrap || MultiLine) ? BrokenText.size() : 1;
+ const u32 lineCount = (m_word_wrap || m_multiline) ? m_broken_text.size() : 1;
core::stringw *txtLine = NULL;
s32 startPos = 0;
@@ -1110,29 +329,29 @@ s32 intlGUIEditBox::getCursorPos(s32 x, s32 y)
for (; curr_line_idx < lineCount; ++curr_line_idx) {
setTextRect(curr_line_idx);
- if (curr_line_idx == 0 && y < CurrentTextRect.UpperLeftCorner.Y)
- y = CurrentTextRect.UpperLeftCorner.Y;
- if (curr_line_idx == lineCount - 1 && y > CurrentTextRect.LowerRightCorner.Y)
- y = CurrentTextRect.LowerRightCorner.Y;
+ if (curr_line_idx == 0 && y < m_current_text_rect.UpperLeftCorner.Y)
+ y = m_current_text_rect.UpperLeftCorner.Y;
+ if (curr_line_idx == lineCount - 1 && y > m_current_text_rect.LowerRightCorner.Y)
+ y = m_current_text_rect.LowerRightCorner.Y;
// is it inside this region?
- if (y >= CurrentTextRect.UpperLeftCorner.Y && y <= CurrentTextRect.LowerRightCorner.Y) {
+ if (y >= m_current_text_rect.UpperLeftCorner.Y && y <= m_current_text_rect.LowerRightCorner.Y) {
// we've found the clicked line
- txtLine = (WordWrap || MultiLine) ? &BrokenText[curr_line_idx] : &Text;
- startPos = (WordWrap || MultiLine) ? BrokenTextPositions[curr_line_idx] : 0;
+ txtLine = (m_word_wrap || m_multiline) ? &m_broken_text[curr_line_idx] : &Text;
+ startPos = (m_word_wrap || m_multiline) ? m_broken_text_positions[curr_line_idx] : 0;
break;
}
}
- if (x < CurrentTextRect.UpperLeftCorner.X)
- x = CurrentTextRect.UpperLeftCorner.X;
- else if (x > CurrentTextRect.LowerRightCorner.X)
- x = CurrentTextRect.LowerRightCorner.X;
+ if (x < m_current_text_rect.UpperLeftCorner.X)
+ x = m_current_text_rect.UpperLeftCorner.X;
+ else if (x > m_current_text_rect.LowerRightCorner.X)
+ x = m_current_text_rect.LowerRightCorner.X;
- s32 idx = font->getCharacterFromPos(txtLine->c_str(), x - CurrentTextRect.UpperLeftCorner.X);
+ s32 idx = font->getCharacterFromPos(txtLine->c_str(), x - m_current_text_rect.UpperLeftCorner.X);
// Special handling for last line, if we are on limits, add 1 extra shift because idx
// will be the last char, not null char of the wstring
- if (curr_line_idx == lineCount - 1 && x == CurrentTextRect.LowerRightCorner.X)
+ if (curr_line_idx == lineCount - 1 && x == m_current_text_rect.LowerRightCorner.X)
idx++;
return rangelim(idx + startPos, 0, S32_MAX);
@@ -1144,20 +363,20 @@ void intlGUIEditBox::breakText()
{
IGUISkin* skin = Environment->getSkin();
- if ((!WordWrap && !MultiLine) || !skin)
+ if ((!m_word_wrap && !m_multiline) || !skin)
return;
- BrokenText.clear(); // need to reallocate :/
- BrokenTextPositions.set_used(0);
+ m_broken_text.clear(); // need to reallocate :/
+ m_broken_text_positions.clear();
- IGUIFont* font = OverrideFont;
- if (!OverrideFont)
+ IGUIFont* font = m_override_font;
+ if (!m_override_font)
font = skin->getFont();
if (!font)
return;
- LastBreakFont = font;
+ m_last_break_font = font;
core::stringw line;
core::stringw word;
@@ -1165,7 +384,7 @@ void intlGUIEditBox::breakText()
s32 lastLineStart = 0;
s32 size = Text.size();
s32 length = 0;
- s32 elWidth = RelativeRect.getWidth() - 6;
+ s32 elWidth = RelativeRect.getWidth() - m_scrollbar_width - 10;
wchar_t c;
for (s32 i=0; i<size; ++i)
@@ -1190,7 +409,7 @@ void intlGUIEditBox::breakText()
}
// don't break if we're not a multi-line edit box
- if (!MultiLine)
+ if (!m_multiline)
lineBreak = false;
if (c == L' ' || c == 0 || i == (size-1))
@@ -1201,12 +420,12 @@ void intlGUIEditBox::breakText()
s32 whitelgth = font->getDimension(whitespace.c_str()).Width;
s32 worldlgth = font->getDimension(word.c_str()).Width;
- if (WordWrap && length + worldlgth + whitelgth > elWidth)
+ if (m_word_wrap && length + worldlgth + whitelgth > elWidth)
{
// break to next line
length = worldlgth;
- BrokenText.push_back(line);
- BrokenTextPositions.push_back(lastLineStart);
+ m_broken_text.push_back(line);
+ m_broken_text_positions.push_back(lastLineStart);
lastLineStart = i - (s32)word.size();
line = word;
}
@@ -1229,8 +448,8 @@ void intlGUIEditBox::breakText()
{
line += whitespace;
line += word;
- BrokenText.push_back(line);
- BrokenTextPositions.push_back(lastLineStart);
+ m_broken_text.push_back(line);
+ m_broken_text_positions.push_back(lastLineStart);
lastLineStart = i+1;
line = L"";
word = L"";
@@ -1247,8 +466,8 @@ void intlGUIEditBox::breakText()
line += whitespace;
line += word;
- BrokenText.push_back(line);
- BrokenTextPositions.push_back(lastLineStart);
+ m_broken_text.push_back(line);
+ m_broken_text_positions.push_back(lastLineStart);
}
@@ -1260,16 +479,16 @@ void intlGUIEditBox::setTextRect(s32 line)
if (!skin)
return;
- IGUIFont* font = OverrideFont ? OverrideFont : skin->getFont();
+ IGUIFont* font = m_override_font ? m_override_font : skin->getFont();
if (!font)
return;
// get text dimension
- const u32 lineCount = (WordWrap || MultiLine) ? BrokenText.size() : 1;
- if (WordWrap || MultiLine)
+ const u32 lineCount = (m_word_wrap || m_multiline) ? m_broken_text.size() : 1;
+ if (m_word_wrap || m_multiline)
{
- d = font->getDimension(BrokenText[line].c_str());
+ d = font->getDimension(m_broken_text[line].c_str());
}
else
{
@@ -1279,197 +498,112 @@ void intlGUIEditBox::setTextRect(s32 line)
d.Height += font->getKerningHeight();
// justification
- switch (HAlign)
+ switch (m_halign)
{
case EGUIA_CENTER:
// align to h centre
- CurrentTextRect.UpperLeftCorner.X = (FrameRect.getWidth()/2) - (d.Width/2);
- CurrentTextRect.LowerRightCorner.X = (FrameRect.getWidth()/2) + (d.Width/2);
+ m_current_text_rect.UpperLeftCorner.X = (m_frame_rect.getWidth()/2) - (d.Width/2);
+ m_current_text_rect.LowerRightCorner.X = (m_frame_rect.getWidth()/2) + (d.Width/2);
break;
case EGUIA_LOWERRIGHT:
// align to right edge
- CurrentTextRect.UpperLeftCorner.X = FrameRect.getWidth() - d.Width;
- CurrentTextRect.LowerRightCorner.X = FrameRect.getWidth();
+ m_current_text_rect.UpperLeftCorner.X = m_frame_rect.getWidth() - d.Width;
+ m_current_text_rect.LowerRightCorner.X = m_frame_rect.getWidth();
break;
default:
// align to left edge
- CurrentTextRect.UpperLeftCorner.X = 0;
- CurrentTextRect.LowerRightCorner.X = d.Width;
+ m_current_text_rect.UpperLeftCorner.X = 0;
+ m_current_text_rect.LowerRightCorner.X = d.Width;
}
- switch (VAlign)
+ switch (m_valign)
{
case EGUIA_CENTER:
// align to v centre
- CurrentTextRect.UpperLeftCorner.Y =
- (FrameRect.getHeight()/2) - (lineCount*d.Height)/2 + d.Height*line;
+ m_current_text_rect.UpperLeftCorner.Y =
+ (m_frame_rect.getHeight()/2) - (lineCount*d.Height)/2 + d.Height*line;
break;
case EGUIA_LOWERRIGHT:
// align to bottom edge
- CurrentTextRect.UpperLeftCorner.Y =
- FrameRect.getHeight() - lineCount*d.Height + d.Height*line;
+ m_current_text_rect.UpperLeftCorner.Y =
+ m_frame_rect.getHeight() - lineCount*d.Height + d.Height*line;
break;
default:
// align to top edge
- CurrentTextRect.UpperLeftCorner.Y = d.Height*line;
+ m_current_text_rect.UpperLeftCorner.Y = d.Height*line;
break;
}
- CurrentTextRect.UpperLeftCorner.X -= HScrollPos;
- CurrentTextRect.LowerRightCorner.X -= HScrollPos;
- CurrentTextRect.UpperLeftCorner.Y -= VScrollPos;
- CurrentTextRect.LowerRightCorner.Y = CurrentTextRect.UpperLeftCorner.Y + d.Height;
-
- CurrentTextRect += FrameRect.UpperLeftCorner;
-
-}
-
-
-s32 intlGUIEditBox::getLineFromPos(s32 pos)
-{
- if (!WordWrap && !MultiLine)
- return 0;
-
- s32 i=0;
- while (i < (s32)BrokenTextPositions.size())
- {
- if (BrokenTextPositions[i] > pos)
- return i-1;
- ++i;
- }
- return (s32)BrokenTextPositions.size() - 1;
-}
-
-
-void intlGUIEditBox::inputChar(wchar_t c)
-{
- if (!IsEnabled || !m_writable)
- return;
-
- if (c != 0)
- {
- if (Text.size() < Max || Max == 0)
- {
- core::stringw s;
+ m_current_text_rect.UpperLeftCorner.X -= m_hscroll_pos;
+ m_current_text_rect.LowerRightCorner.X -= m_hscroll_pos;
+ m_current_text_rect.UpperLeftCorner.Y -= m_vscroll_pos;
+ m_current_text_rect.LowerRightCorner.Y = m_current_text_rect.UpperLeftCorner.Y + d.Height;
- if (MarkBegin != MarkEnd)
- {
- // replace marked text
- const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
- const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
-
- s = Text.subString(0, realmbgn);
- s.append(c);
- s.append( Text.subString(realmend, Text.size()-realmend) );
- Text = s;
- CursorPos = realmbgn+1;
- }
- else
- {
- // add new character
- s = Text.subString(0, CursorPos);
- s.append(c);
- s.append( Text.subString(CursorPos, Text.size()-CursorPos) );
- Text = s;
- ++CursorPos;
- }
+ m_current_text_rect += m_frame_rect.UpperLeftCorner;
- BlinkStartTime = porting::getTimeMs();
- setTextMarkers(0, 0);
- }
- }
- breakText();
- sendGuiEvent(EGET_EDITBOX_CHANGED);
- calculateScrollPos();
}
-
void intlGUIEditBox::calculateScrollPos()
{
- if (!AutoScroll)
+ if (!m_autoscroll)
return;
// calculate horizontal scroll position
- s32 cursLine = getLineFromPos(CursorPos);
+ s32 cursLine = getLineFromPos(m_cursor_pos);
setTextRect(cursLine);
// don't do horizontal scrolling when wordwrap is enabled.
- if (!WordWrap)
+ if (!m_word_wrap)
{
// get cursor position
IGUISkin* skin = Environment->getSkin();
if (!skin)
return;
- IGUIFont* font = OverrideFont ? OverrideFont : skin->getFont();
+ IGUIFont* font = m_override_font ? m_override_font : skin->getFont();
if (!font)
return;
- core::stringw *txtLine = MultiLine ? &BrokenText[cursLine] : &Text;
- s32 cPos = MultiLine ? CursorPos - BrokenTextPositions[cursLine] : CursorPos;
+ core::stringw *txtLine = m_multiline ? &m_broken_text[cursLine] : &Text;
+ s32 cPos = m_multiline ? m_cursor_pos - m_broken_text_positions[cursLine] : m_cursor_pos;
- s32 cStart = CurrentTextRect.UpperLeftCorner.X + HScrollPos +
+ s32 cStart = m_current_text_rect.UpperLeftCorner.X + m_hscroll_pos +
font->getDimension(txtLine->subString(0, cPos).c_str()).Width;
s32 cEnd = cStart + font->getDimension(L"_ ").Width;
- if (FrameRect.LowerRightCorner.X < cEnd)
- HScrollPos = cEnd - FrameRect.LowerRightCorner.X;
- else if (FrameRect.UpperLeftCorner.X > cStart)
- HScrollPos = cStart - FrameRect.UpperLeftCorner.X;
+ if (m_frame_rect.LowerRightCorner.X < cEnd)
+ m_hscroll_pos = cEnd - m_frame_rect.LowerRightCorner.X;
+ else if (m_frame_rect.UpperLeftCorner.X > cStart)
+ m_hscroll_pos = cStart - m_frame_rect.UpperLeftCorner.X;
else
- HScrollPos = 0;
+ m_hscroll_pos = 0;
// todo: adjust scrollbar
}
- if (!WordWrap && !MultiLine)
+ if (!m_word_wrap && !m_multiline)
return;
// vertical scroll position
- if (FrameRect.LowerRightCorner.Y < CurrentTextRect.LowerRightCorner.Y)
- VScrollPos += CurrentTextRect.LowerRightCorner.Y - FrameRect.LowerRightCorner.Y; // scrolling downwards
- else if (FrameRect.UpperLeftCorner.Y > CurrentTextRect.UpperLeftCorner.Y)
- VScrollPos += CurrentTextRect.UpperLeftCorner.Y - FrameRect.UpperLeftCorner.Y; // scrolling upwards
+ if (m_frame_rect.LowerRightCorner.Y < m_current_text_rect.LowerRightCorner.Y)
+ m_vscroll_pos += m_current_text_rect.LowerRightCorner.Y - m_frame_rect.LowerRightCorner.Y; // scrolling downwards
+ else if (m_frame_rect.UpperLeftCorner.Y > m_current_text_rect.UpperLeftCorner.Y)
+ m_vscroll_pos += m_current_text_rect.UpperLeftCorner.Y - m_frame_rect.UpperLeftCorner.Y; // scrolling upwards
// todo: adjust scrollbar
if (m_vscrollbar)
- m_vscrollbar->setPos(VScrollPos);
+ m_vscrollbar->setPos(m_vscroll_pos);
}
-//! set text markers
-void intlGUIEditBox::setTextMarkers(s32 begin, s32 end)
-{
- if ( begin != MarkBegin || end != MarkEnd )
- {
- MarkBegin = begin;
- MarkEnd = end;
- sendGuiEvent(EGET_EDITBOX_MARKING_CHANGED);
- }
-}
-
-//! send some gui event to parent
-void intlGUIEditBox::sendGuiEvent(EGUI_EVENT_TYPE type)
-{
- if ( Parent )
- {
- SEvent e;
- e.EventType = EET_GUI_EVENT;
- e.GUIEvent.Caller = this;
- e.GUIEvent.Element = 0;
- e.GUIEvent.EventType = type;
-
- Parent->OnEvent(e);
- }
-}
//! Create a vertical scrollbar
void intlGUIEditBox::createVScrollBar()
{
s32 fontHeight = 1;
- if (OverrideFont) {
- fontHeight = OverrideFont->getDimension(L"").Height;
+ if (m_override_font) {
+ fontHeight = m_override_font->getDimension(L"").Height;
} else {
if (IGUISkin* skin = Environment->getSkin()) {
if (IGUIFont* font = skin->getFont()) {
@@ -1478,10 +612,8 @@ void intlGUIEditBox::createVScrollBar()
}
}
- RelativeRect.LowerRightCorner.X -= m_scrollbar_width + 4;
-
- irr::core::rect<s32> scrollbarrect = FrameRect;
- scrollbarrect.UpperLeftCorner.X += FrameRect.getWidth() - m_scrollbar_width;
+ irr::core::rect<s32> scrollbarrect = m_frame_rect;
+ scrollbarrect.UpperLeftCorner.X += m_frame_rect.getWidth() - m_scrollbar_width;
m_vscrollbar = new GUIScrollBar(Environment, getParent(), -1,
scrollbarrect, false, true);
@@ -1490,110 +622,5 @@ void intlGUIEditBox::createVScrollBar()
m_vscrollbar->setLargeStep(10 * fontHeight);
}
-//! Update the vertical scrollbar (visibilty & scroll position)
-void intlGUIEditBox::updateVScrollBar()
-{
- if (!m_vscrollbar)
- return;
-
- // OnScrollBarChanged(...)
- if (m_vscrollbar->getPos() != VScrollPos) {
- s32 deltaScrollY = m_vscrollbar->getPos() - VScrollPos;
- CurrentTextRect.UpperLeftCorner.Y -= deltaScrollY;
- CurrentTextRect.LowerRightCorner.Y -= deltaScrollY;
-
- s32 scrollymax = getTextDimension().Height - FrameRect.getHeight();
- if (scrollymax != m_vscrollbar->getMax()) {
- // manage a newline or a deleted line
- m_vscrollbar->setMax(scrollymax);
- m_vscrollbar->setPageSize(s32(getTextDimension().Height));
- calculateScrollPos();
- } else {
- // manage a newline or a deleted line
- VScrollPos = m_vscrollbar->getPos();
- }
- }
-
- // check if a vertical scrollbar is needed ?
- if (getTextDimension().Height > (u32) FrameRect.getHeight()) {
- s32 scrollymax = getTextDimension().Height - FrameRect.getHeight();
- if (scrollymax != m_vscrollbar->getMax()) {
- m_vscrollbar->setMax(scrollymax);
- m_vscrollbar->setPageSize(s32(getTextDimension().Height));
- }
-
- if (!m_vscrollbar->isVisible() && MultiLine) {
- AbsoluteRect.LowerRightCorner.X -= m_scrollbar_width;
-
- m_vscrollbar->setVisible(true);
- }
- } else {
- if (m_vscrollbar->isVisible()) {
- AbsoluteRect.LowerRightCorner.X += m_scrollbar_width;
-
- VScrollPos = 0;
- m_vscrollbar->setPos(0);
- m_vscrollbar->setMax(1);
- m_vscrollbar->setPageSize(s32(getTextDimension().Height));
- m_vscrollbar->setVisible(false);
- }
- }
-}
-
-void intlGUIEditBox::setWritable(bool can_write_text)
-{
- m_writable = can_write_text;
-}
-
-//! Writes attributes of the element.
-void intlGUIEditBox::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const
-{
- // IGUIEditBox::serializeAttributes(out,options);
-
- out->addBool ("OverrideColorEnabled",OverrideColorEnabled );
- out->addColor ("OverrideColor", OverrideColor);
- // out->addFont("OverrideFont",OverrideFont);
- out->addInt ("MaxChars", Max);
- out->addBool ("WordWrap", WordWrap);
- out->addBool ("MultiLine", MultiLine);
- out->addBool ("AutoScroll", AutoScroll);
- out->addBool ("PasswordBox", PasswordBox);
- core::stringw ch = L" ";
- ch[0] = PasswordChar;
- out->addString("PasswordChar", ch.c_str());
- out->addEnum ("HTextAlign", HAlign, GUIAlignmentNames);
- out->addEnum ("VTextAlign", VAlign, GUIAlignmentNames);
- out->addBool ("Writable", m_writable);
-
- IGUIEditBox::serializeAttributes(out,options);
-}
-
-
-//! Reads attributes of the element
-void intlGUIEditBox::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0)
-{
- IGUIEditBox::deserializeAttributes(in,options);
-
- setOverrideColor(in->getAttributeAsColor("OverrideColor"));
- enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled"));
- setMax(in->getAttributeAsInt("MaxChars"));
- setWordWrap(in->getAttributeAsBool("WordWrap"));
- setMultiLine(in->getAttributeAsBool("MultiLine"));
- setAutoScroll(in->getAttributeAsBool("AutoScroll"));
- core::stringw ch = in->getAttributeAsStringW("PasswordChar");
-
- if (ch.empty())
- setPasswordBox(in->getAttributeAsBool("PasswordBox"));
- else
- setPasswordBox(in->getAttributeAsBool("PasswordBox"), ch[0]);
-
- setTextAlignment( (EGUI_ALIGNMENT) in->getAttributeAsEnumeration("HTextAlign", GUIAlignmentNames),
- (EGUI_ALIGNMENT) in->getAttributeAsEnumeration("VTextAlign", GUIAlignmentNames));
-
- setWritable(in->getAttributeAsBool("Writable"));
- // setOverrideFont(in->getAttributeAsFont("OverrideFont"));
-}
-
-
} // end namespace gui
} // end namespace irr
diff --git a/src/gui/intlGUIEditBox.h b/src/gui/intlGUIEditBox.h
index 9d643495e..007fe1c93 100644
--- a/src/gui/intlGUIEditBox.h
+++ b/src/gui/intlGUIEditBox.h
@@ -7,16 +7,15 @@
#include "IrrCompileConfig.h"
//#ifdef _IRR_COMPILE_WITH_GUI_
-#include <IGUIEditBox.h>
+#include "guiEditBox.h"
#include "irrArray.h"
#include "IOSOperator.h"
-#include "guiScrollBar.h"
namespace irr
{
namespace gui
{
- class intlGUIEditBox : public IGUIEditBox
+ class intlGUIEditBox : public GUIEditBox
{
public:
@@ -26,113 +25,19 @@ namespace gui
bool writable = true, bool has_vscrollbar = false);
//! destructor
- virtual ~intlGUIEditBox();
-
- //! Sets another skin independent font.
- virtual void setOverrideFont(IGUIFont* font=0);
-
- //! Gets the override font (if any)
- /** \return The override font (may be 0) */
- virtual IGUIFont* getOverrideFont() const;
-
- //! Get the font which is used right now for drawing
- /** Currently this is the override font when one is set and the
- font of the active skin otherwise */
- virtual IGUIFont* getActiveFont() const;
-
- //! Sets another color for the text.
- virtual void setOverrideColor(video::SColor color);
-
- //! Gets the override color
- virtual video::SColor getOverrideColor() const;
-
- //! Sets if the text should use the overide color or the
- //! color in the gui skin.
- virtual void enableOverrideColor(bool enable);
-
- //! Checks if an override color is enabled
- /** \return true if the override color is enabled, false otherwise */
- virtual bool isOverrideColorEnabled(void) const;
+ virtual ~intlGUIEditBox() {}
//! Sets whether to draw the background
virtual void setDrawBackground(bool draw);
virtual bool isDrawBackgroundEnabled() const { return true; }
- //! Turns the border on or off
- virtual void setDrawBorder(bool border);
-
- virtual bool isDrawBorderEnabled() const { return Border; }
-
- //! Enables or disables word wrap for using the edit box as multiline text editor.
- virtual void setWordWrap(bool enable);
-
- //! Checks if word wrap is enabled
- //! \return true if word wrap is enabled, false otherwise
- virtual bool isWordWrapEnabled() const;
-
- //! Enables or disables newlines.
- /** \param enable: If set to true, the EGET_EDITBOX_ENTER event will not be fired,
- instead a newline character will be inserted. */
- virtual void setMultiLine(bool enable);
-
- //! Checks if multi line editing is enabled
- //! \return true if mult-line is enabled, false otherwise
- virtual bool isMultiLineEnabled() const;
-
- //! Enables or disables automatic scrolling with cursor position
- //! \param enable: If set to true, the text will move around with the cursor position
- virtual void setAutoScroll(bool enable);
-
- //! Checks to see if automatic scrolling is enabled
- //! \return true if automatic scrolling is enabled, false if not
- virtual bool isAutoScrollEnabled() const;
-
- //! Gets the size area of the text in the edit box
- //! \return Returns the size in pixels of the text
- virtual core::dimension2du getTextDimension();
-
- //! Sets text justification
- virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical);
-
- //! called if an event happened.
- virtual bool OnEvent(const SEvent& event);
-
//! draws the element and its children
virtual void draw();
- //! Sets the new caption of this element.
- virtual void setText(const wchar_t* text);
-
- //! Sets the maximum amount of characters which may be entered in the box.
- //! \param max: Maximum amount of characters. If 0, the character amount is
- //! infinity.
- virtual void setMax(u32 max);
-
- //! Returns maximum amount of characters, previously set by setMax();
- virtual u32 getMax() const;
-
- //! Sets whether the edit box is a password box. Setting this to true will
- /** disable MultiLine, WordWrap and the ability to copy with ctrl+c or ctrl+x
- \param passwordBox: true to enable password, false to disable
- \param passwordChar: the character that is displayed instead of letters */
- virtual void setPasswordBox(bool passwordBox, wchar_t passwordChar = L'*');
-
- //! Returns true if the edit box is currently a password box.
- virtual bool isPasswordBox() const;
-
//! Updates the absolute position, splits text if required
virtual void updateAbsolutePosition();
- //! set true if this EditBox is writable
- virtual void setWritable(bool can_write_text);
-
- //! Writes attributes of the element.
- virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const;
-
- //! Reads attributes of the element
- virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options);
-
virtual void setCursorChar(const wchar_t cursorChar) {}
virtual wchar_t getCursorChar() const { return L'|'; }
@@ -143,64 +48,17 @@ namespace gui
protected:
//! Breaks the single text line.
- void breakText();
+ virtual void breakText();
//! sets the area of the given line
- void setTextRect(s32 line);
- //! returns the line number that the cursor is on
- s32 getLineFromPos(s32 pos);
- //! adds a letter to the edit box
- void inputChar(wchar_t c);
+ virtual void setTextRect(s32 line);
+
//! calculates the current scroll position
void calculateScrollPos();
- //! send some gui event to parent
- void sendGuiEvent(EGUI_EVENT_TYPE type);
- //! set text markers
- void setTextMarkers(s32 begin, s32 end);
- bool processKey(const SEvent& event);
- bool processMouse(const SEvent& event);
s32 getCursorPos(s32 x, s32 y);
//! Create a vertical scrollbar
void createVScrollBar();
-
- //! Update the vertical scrollbar (visibilty & scroll position)
- void updateVScrollBar();
-
- bool MouseMarking = false;
- bool Border;
- bool OverrideColorEnabled = false;
- s32 MarkBegin = 0;
- s32 MarkEnd = 0;
-
- video::SColor OverrideColor = video::SColor(101,255,255,255);
- gui::IGUIFont *OverrideFont = nullptr;
- gui::IGUIFont *LastBreakFont = nullptr;
- IOSOperator *Operator = nullptr;
-
- u64 BlinkStartTime = 0;
- s32 CursorPos = 0;
- s32 HScrollPos = 0;
- s32 VScrollPos = 0; // scroll position in characters
- u32 Max = 0;
-
- bool WordWrap = false;
- bool MultiLine = false;
- bool AutoScroll = true;
- bool PasswordBox = false;
- wchar_t PasswordChar = L'*';
- EGUI_ALIGNMENT HAlign = EGUIA_UPPERLEFT;
- EGUI_ALIGNMENT VAlign = EGUIA_CENTER;
-
- core::array<core::stringw> BrokenText;
- core::array<s32> BrokenTextPositions;
-
- core::rect<s32> CurrentTextRect = core::rect<s32>(0,0,1,1);
- core::rect<s32> FrameRect; // temporary values
- u32 m_scrollbar_width;
- GUIScrollBar *m_vscrollbar;
- bool m_writable;
-
};
diff --git a/src/gui/modalMenu.cpp b/src/gui/modalMenu.cpp
index a6fe7ebaf..0d3fb55f0 100644
--- a/src/gui/modalMenu.cpp
+++ b/src/gui/modalMenu.cpp
@@ -28,14 +28,16 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "touchscreengui.h"
#endif
-GUIModalMenu::GUIModalMenu(gui::IGUIEnvironment *env, gui::IGUIElement *parent, s32 id,
- IMenuManager *menumgr) :
+// clang-format off
+GUIModalMenu::GUIModalMenu(gui::IGUIEnvironment* env, gui::IGUIElement* parent,
+ s32 id, IMenuManager *menumgr, bool remap_dbl_click) :
IGUIElement(gui::EGUIET_ELEMENT, env, parent, id,
core::rect<s32>(0, 0, 100, 100)),
#ifdef __ANDROID__
m_jni_field_name(""),
#endif
- m_menumgr(menumgr)
+ m_menumgr(menumgr),
+ m_remap_dbl_click(remap_dbl_click)
{
m_gui_scale = g_settings->getFloat("gui_scaling");
#ifdef __ANDROID__
@@ -45,6 +47,12 @@ GUIModalMenu::GUIModalMenu(gui::IGUIEnvironment *env, gui::IGUIElement *parent,
setVisible(true);
Environment->setFocus(this);
m_menumgr->createdMenu(this);
+
+ m_doubleclickdetect[0].time = 0;
+ m_doubleclickdetect[1].time = 0;
+
+ m_doubleclickdetect[0].pos = v2s32(0, 0);
+ m_doubleclickdetect[1].pos = v2s32(0, 0);
}
// clang-format on
@@ -112,6 +120,127 @@ void GUIModalMenu::removeChildren()
}
}
+// clang-format off
+bool GUIModalMenu::DoubleClickDetection(const SEvent &event)
+{
+ /* The following code is for capturing double-clicks of the mouse button
+ * and translating the double-click into an EET_KEY_INPUT_EVENT event
+ * -- which closes the form -- under some circumstances.
+ *
+ * There have been many github issues reporting this as a bug even though it
+ * was an intended feature. For this reason, remapping the double-click as
+ * an ESC must be explicitly set when creating this class via the
+ * /p remap_dbl_click parameter of the constructor.
+ */
+
+ if (!m_remap_dbl_click)
+ return false;
+
+ if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) {
+ m_doubleclickdetect[0].pos = m_doubleclickdetect[1].pos;
+ m_doubleclickdetect[0].time = m_doubleclickdetect[1].time;
+
+ m_doubleclickdetect[1].pos = m_pointer;
+ m_doubleclickdetect[1].time = porting::getTimeMs();
+ } else if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) {
+ u64 delta = porting::getDeltaMs(
+ m_doubleclickdetect[0].time, porting::getTimeMs());
+ if (delta > 400)
+ return false;
+
+ double squaredistance = m_doubleclickdetect[0].pos.
+ getDistanceFromSQ(m_doubleclickdetect[1].pos);
+
+ if (squaredistance > (30 * 30)) {
+ return false;
+ }
+
+ SEvent translated{};
+ // translate doubleclick to escape
+ translated.EventType = EET_KEY_INPUT_EVENT;
+ translated.KeyInput.Key = KEY_ESCAPE;
+ translated.KeyInput.Control = false;
+ translated.KeyInput.Shift = false;
+ translated.KeyInput.PressedDown = true;
+ translated.KeyInput.Char = 0;
+ OnEvent(translated);
+
+ return true;
+ }
+
+ return false;
+}
+// clang-format on
+
+static bool isChild(gui::IGUIElement *tocheck, gui::IGUIElement *parent)
+{
+ while (tocheck) {
+ if (tocheck == parent) {
+ return true;
+ }
+ tocheck = tocheck->getParent();
+ }
+ return false;
+}
+
+#ifdef __ANDROID__
+
+bool GUIModalMenu::simulateMouseEvent(
+ gui::IGUIElement *target, ETOUCH_INPUT_EVENT touch_event)
+{
+ SEvent mouse_event{}; // value-initialized, not unitialized
+ mouse_event.EventType = EET_MOUSE_INPUT_EVENT;
+ mouse_event.MouseInput.X = m_pointer.X;
+ mouse_event.MouseInput.Y = m_pointer.Y;
+ switch (touch_event) {
+ case ETIE_PRESSED_DOWN:
+ mouse_event.MouseInput.Event = EMIE_LMOUSE_PRESSED_DOWN;
+ mouse_event.MouseInput.ButtonStates = EMBSM_LEFT;
+ break;
+ case ETIE_MOVED:
+ mouse_event.MouseInput.Event = EMIE_MOUSE_MOVED;
+ mouse_event.MouseInput.ButtonStates = EMBSM_LEFT;
+ break;
+ case ETIE_LEFT_UP:
+ mouse_event.MouseInput.Event = EMIE_LMOUSE_LEFT_UP;
+ mouse_event.MouseInput.ButtonStates = 0;
+ break;
+ default:
+ return false;
+ }
+ if (preprocessEvent(mouse_event))
+ return true;
+ if (!target)
+ return false;
+ return target->OnEvent(mouse_event);
+}
+
+void GUIModalMenu::enter(gui::IGUIElement *hovered)
+{
+ sanity_check(!m_hovered);
+ m_hovered.grab(hovered);
+ SEvent gui_event{};
+ gui_event.EventType = EET_GUI_EVENT;
+ gui_event.GUIEvent.Caller = m_hovered.get();
+ gui_event.GUIEvent.EventType = EGET_ELEMENT_HOVERED;
+ gui_event.GUIEvent.Element = gui_event.GUIEvent.Caller;
+ m_hovered->OnEvent(gui_event);
+}
+
+void GUIModalMenu::leave()
+{
+ if (!m_hovered)
+ return;
+ SEvent gui_event{};
+ gui_event.EventType = EET_GUI_EVENT;
+ gui_event.GUIEvent.Caller = m_hovered.get();
+ gui_event.GUIEvent.EventType = EGET_ELEMENT_LEFT;
+ m_hovered->OnEvent(gui_event);
+ m_hovered.reset();
+}
+
+#endif
+
bool GUIModalMenu::preprocessEvent(const SEvent &event)
{
#ifdef __ANDROID__
@@ -159,92 +288,66 @@ bool GUIModalMenu::preprocessEvent(const SEvent &event)
}
if (event.EventType == EET_TOUCH_INPUT_EVENT) {
- SEvent translated;
- memset(&translated, 0, sizeof(SEvent));
- translated.EventType = EET_MOUSE_INPUT_EVENT;
- gui::IGUIElement *root = Environment->getRootGUIElement();
-
- if (!root) {
- errorstream << "GUIModalMenu::preprocessEvent"
- << " unable to get root element" << std::endl;
- return false;
- }
- gui::IGUIElement *hovered =
- root->getElementFromPoint(core::position2d<s32>(
- event.TouchInput.X, event.TouchInput.Y));
+ irr_ptr<GUIModalMenu> holder;
+ holder.grab(this); // keep this alive until return (it might be dropped downstream [?])
- translated.MouseInput.X = event.TouchInput.X;
- translated.MouseInput.Y = event.TouchInput.Y;
- translated.MouseInput.Control = false;
-
- if (event.TouchInput.touchedCount == 1) {
- switch (event.TouchInput.Event) {
- case ETIE_PRESSED_DOWN:
+ switch ((int)event.TouchInput.touchedCount) {
+ case 1: {
+ if (event.TouchInput.Event == ETIE_PRESSED_DOWN || event.TouchInput.Event == ETIE_MOVED)
m_pointer = v2s32(event.TouchInput.X, event.TouchInput.Y);
- translated.MouseInput.Event = EMIE_LMOUSE_PRESSED_DOWN;
- translated.MouseInput.ButtonStates = EMBSM_LEFT;
+ if (event.TouchInput.Event == ETIE_PRESSED_DOWN)
m_down_pos = m_pointer;
- break;
- case ETIE_MOVED:
- m_pointer = v2s32(event.TouchInput.X, event.TouchInput.Y);
- translated.MouseInput.Event = EMIE_MOUSE_MOVED;
- translated.MouseInput.ButtonStates = EMBSM_LEFT;
- break;
- case ETIE_LEFT_UP:
- translated.MouseInput.Event = EMIE_LMOUSE_LEFT_UP;
- translated.MouseInput.ButtonStates = 0;
- hovered = root->getElementFromPoint(m_down_pos);
- // we don't have a valid pointer element use last
- // known pointer pos
- translated.MouseInput.X = m_pointer.X;
- translated.MouseInput.Y = m_pointer.Y;
-
- // reset down pos
- m_down_pos = v2s32(0, 0);
- break;
- default:
- break;
+ gui::IGUIElement *hovered = Environment->getRootGUIElement()->getElementFromPoint(core::position2d<s32>(m_pointer));
+ if (event.TouchInput.Event == ETIE_PRESSED_DOWN)
+ Environment->setFocus(hovered);
+ if (m_hovered != hovered) {
+ leave();
+ enter(hovered);
}
- } else if ((event.TouchInput.touchedCount == 2) &&
- (event.TouchInput.Event == ETIE_PRESSED_DOWN)) {
- hovered = root->getElementFromPoint(m_down_pos);
-
- translated.MouseInput.Event = EMIE_RMOUSE_PRESSED_DOWN;
- translated.MouseInput.ButtonStates = EMBSM_LEFT | EMBSM_RIGHT;
- translated.MouseInput.X = m_pointer.X;
- translated.MouseInput.Y = m_pointer.Y;
- if (hovered)
- hovered->OnEvent(translated);
-
- translated.MouseInput.Event = EMIE_RMOUSE_LEFT_UP;
- translated.MouseInput.ButtonStates = EMBSM_LEFT;
-
- if (hovered)
- hovered->OnEvent(translated);
-
- return true;
- } else {
- // ignore unhandled 2 touch events (accidental moving for example)
+ gui::IGUIElement *focused = Environment->getFocus();
+ bool ret = simulateMouseEvent(focused, event.TouchInput.Event);
+ if (!ret && m_hovered != focused)
+ ret = simulateMouseEvent(m_hovered.get(), event.TouchInput.Event);
+ if (event.TouchInput.Event == ETIE_LEFT_UP)
+ leave();
+ return ret;
+ }
+ case 2: {
+ if (event.TouchInput.Event != ETIE_PRESSED_DOWN)
+ return true; // ignore
+ auto focused = Environment->getFocus();
+ if (!focused)
+ return true;
+ SEvent rclick_event{};
+ rclick_event.EventType = EET_MOUSE_INPUT_EVENT;
+ rclick_event.MouseInput.Event = EMIE_RMOUSE_PRESSED_DOWN;
+ rclick_event.MouseInput.ButtonStates = EMBSM_LEFT | EMBSM_RIGHT;
+ rclick_event.MouseInput.X = m_pointer.X;
+ rclick_event.MouseInput.Y = m_pointer.Y;
+ focused->OnEvent(rclick_event);
+ rclick_event.MouseInput.Event = EMIE_RMOUSE_LEFT_UP;
+ rclick_event.MouseInput.ButtonStates = EMBSM_LEFT;
+ focused->OnEvent(rclick_event);
return true;
}
-
- // check if translated event needs to be preprocessed again
- if (preprocessEvent(translated))
+ default: // ignored
return true;
-
- if (hovered) {
- grab();
- bool retval = hovered->OnEvent(translated);
-
- if (event.TouchInput.Event == ETIE_LEFT_UP)
- // reset pointer
- m_pointer = v2s32(0, 0);
-
- drop();
- return retval;
}
}
#endif
+
+ if (event.EventType == EET_MOUSE_INPUT_EVENT) {
+ s32 x = event.MouseInput.X;
+ s32 y = event.MouseInput.Y;
+ gui::IGUIElement *hovered =
+ Environment->getRootGUIElement()->getElementFromPoint(
+ core::position2d<s32>(x, y));
+ if (!isChild(hovered, this)) {
+ if (DoubleClickDetection(event)) {
+ return true;
+ }
+ }
+ }
return false;
}
diff --git a/src/gui/modalMenu.h b/src/gui/modalMenu.h
index 5bd70bb84..ed0da3205 100644
--- a/src/gui/modalMenu.h
+++ b/src/gui/modalMenu.h
@@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#pragma once
#include "irrlichttypes_extrabloated.h"
+#include "irr_ptr.h"
#include "util/string.h"
class GUIModalMenu;
@@ -39,7 +40,7 @@ class GUIModalMenu : public gui::IGUIElement
{
public:
GUIModalMenu(gui::IGUIEnvironment* env, gui::IGUIElement* parent, s32 id,
- IMenuManager *menumgr);
+ IMenuManager *menumgr, bool remap_dbl_click = true);
virtual ~GUIModalMenu();
void allowFocusRemoval(bool allow);
@@ -50,8 +51,8 @@ public:
virtual void regenerateGui(v2u32 screensize) = 0;
virtual void drawMenu() = 0;
- virtual bool preprocessEvent(const SEvent& event);
- virtual bool OnEvent(const SEvent& event) { return false; };
+ virtual bool preprocessEvent(const SEvent &event);
+ virtual bool OnEvent(const SEvent &event) { return false; };
virtual bool pausesGame() { return false; } // Used for pause menu
#ifdef __ANDROID__
virtual bool getAndroidUIInput() { return false; }
@@ -62,6 +63,13 @@ protected:
virtual std::wstring getLabelByID(s32 id) = 0;
virtual std::string getNameByID(s32 id) = 0;
+ /**
+ * check if event is part of a double click
+ * @param event event to evaluate
+ * @return true/false if a doubleclick was detected
+ */
+ bool DoubleClickDetection(const SEvent &event);
+
v2s32 m_pointer;
v2s32 m_old_pointer; // Mouse position after previous mouse event
v2u32 m_screensize_old;
@@ -73,9 +81,32 @@ protected:
#ifdef HAVE_TOUCHSCREENGUI
bool m_touchscreen_visible = true;
#endif
+
private:
+ struct clickpos
+ {
+ v2s32 pos;
+ s64 time;
+ };
+ clickpos m_doubleclickdetect[2];
+
IMenuManager *m_menumgr;
+ /* If true, remap a double-click (or double-tap) action to ESC. This is so
+ * that, for example, Android users can double-tap to close a formspec.
+ *
+ * This value can (currently) only be set by the class constructor
+ * and the default value for the setting is true.
+ */
+ bool m_remap_dbl_click;
// This might be necessary to expose to the implementation if it
// wants to launch other menus
bool m_allow_focus_removal = false;
+
+#ifdef __ANDROID__
+ irr_ptr<gui::IGUIElement> m_hovered;
+
+ bool simulateMouseEvent(gui::IGUIElement *target, ETOUCH_INPUT_EVENT touch_event);
+ void enter(gui::IGUIElement *element);
+ void leave();
+#endif
};
diff --git a/src/gui/touchscreengui.cpp b/src/gui/touchscreengui.cpp
index 0d64aa618..e1a971462 100644
--- a/src/gui/touchscreengui.cpp
+++ b/src/gui/touchscreengui.cpp
@@ -881,8 +881,7 @@ void TouchScreenGUI::translateEvent(const SEvent &event)
s32 dyj = event.TouchInput.Y - m_screensize.Y + button_size * 5.0f / 2.0f;
bool inside_joystick = (dxj * dxj + dyj * dyj <= button_size * button_size * 1.5 * 1.5);
- if (m_joystick_has_really_moved ||
- (!m_joystick_has_really_moved && inside_joystick) ||
+ if (m_joystick_has_really_moved || inside_joystick ||
(!m_fixed_joystick &&
distance_sq > m_touchscreen_threshold * m_touchscreen_threshold)) {
m_joystick_has_really_moved = true;
diff --git a/src/gui/touchscreengui.h b/src/gui/touchscreengui.h
index 761d33207..0349624fa 100644
--- a/src/gui/touchscreengui.h
+++ b/src/gui/touchscreengui.h
@@ -18,6 +18,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#pragma once
+#include "irrlichttypes.h"
#include <IEventReceiver.h>
#include <IGUIButton.h>
#include <IGUIEnvironment.h>
diff --git a/src/httpfetch.cpp b/src/httpfetch.cpp
index 326b5052f..65202ce3e 100644
--- a/src/httpfetch.cpp
+++ b/src/httpfetch.cpp
@@ -294,13 +294,11 @@ HTTPFetchOngoing::HTTPFetchOngoing(const HTTPFetchRequest &request_,
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &oss);
}
- // Set POST (or GET) data
- if (request.post_fields.empty() && request.post_data.empty()) {
- curl_easy_setopt(curl, CURLOPT_HTTPGET, 1);
- } else if (request.multipart) {
+ // Set data from fields or raw_data
+ if (request.multipart) {
curl_httppost *last = NULL;
- for (StringMap::iterator it = request.post_fields.begin();
- it != request.post_fields.end(); ++it) {
+ for (StringMap::iterator it = request.fields.begin();
+ it != request.fields.end(); ++it) {
curl_formadd(&post, &last,
CURLFORM_NAMELENGTH, it->first.size(),
CURLFORM_PTRNAME, it->first.c_str(),
@@ -311,28 +309,42 @@ HTTPFetchOngoing::HTTPFetchOngoing(const HTTPFetchRequest &request_,
curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
// request.post_fields must now *never* be
// modified until CURLOPT_HTTPPOST is cleared
- } else if (request.post_data.empty()) {
- curl_easy_setopt(curl, CURLOPT_POST, 1);
- std::string str;
- for (auto &post_field : request.post_fields) {
- if (!str.empty())
- str += "&";
- str += urlencode(post_field.first);
- str += "=";
- str += urlencode(post_field.second);
- }
- curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE,
- str.size());
- curl_easy_setopt(curl, CURLOPT_COPYPOSTFIELDS,
- str.c_str());
} else {
- curl_easy_setopt(curl, CURLOPT_POST, 1);
- curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE,
- request.post_data.size());
- curl_easy_setopt(curl, CURLOPT_POSTFIELDS,
- request.post_data.c_str());
- // request.post_data must now *never* be
- // modified until CURLOPT_POSTFIELDS is cleared
+ switch (request.method) {
+ case HTTP_GET:
+ curl_easy_setopt(curl, CURLOPT_HTTPGET, 1);
+ break;
+ case HTTP_POST:
+ curl_easy_setopt(curl, CURLOPT_POST, 1);
+ break;
+ case HTTP_PUT:
+ curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
+ break;
+ case HTTP_DELETE:
+ curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
+ break;
+ }
+ if (request.method != HTTP_GET) {
+ if (!request.raw_data.empty()) {
+ curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE,
+ request.raw_data.size());
+ curl_easy_setopt(curl, CURLOPT_POSTFIELDS,
+ request.raw_data.c_str());
+ } else if (!request.fields.empty()) {
+ std::string str;
+ for (auto &field : request.fields) {
+ if (!str.empty())
+ str += "&";
+ str += urlencode(field.first);
+ str += "=";
+ str += urlencode(field.second);
+ }
+ curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE,
+ str.size());
+ curl_easy_setopt(curl, CURLOPT_COPYPOSTFIELDS,
+ str.c_str());
+ }
+ }
}
// Set additional HTTP headers
for (const std::string &extra_header : request.extra_headers) {
diff --git a/src/httpfetch.h b/src/httpfetch.h
index ae8b5afb5..3b9f17f0a 100644
--- a/src/httpfetch.h
+++ b/src/httpfetch.h
@@ -28,6 +28,15 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define HTTPFETCH_DISCARD 0
#define HTTPFETCH_SYNC 1
+// Methods
+enum HttpMethod : u8
+{
+ HTTP_GET,
+ HTTP_POST,
+ HTTP_PUT,
+ HTTP_DELETE,
+};
+
struct HTTPFetchRequest
{
std::string url = "";
@@ -50,12 +59,15 @@ struct HTTPFetchRequest
// application/x-www-form-urlencoded. POST-only.
bool multipart = false;
- // POST fields. Fields are escaped properly.
- // If this is empty a GET request is done instead.
- StringMap post_fields;
+ // The Method to use default = GET
+ // Avaible methods GET, POST, PUT, DELETE
+ HttpMethod method = HTTP_GET;
+
+ // Fields of the request
+ StringMap fields;
- // Raw POST data, overrides post_fields.
- std::string post_data;
+ // Raw data of the request overrides fields
+ std::string raw_data;
// If not empty, should contain entries such as "Accept: text/html"
std::vector<std::string> extra_headers;
diff --git a/src/hud.cpp b/src/hud.cpp
index 3079b5cd8..1791e04df 100644
--- a/src/hud.cpp
+++ b/src/hud.cpp
@@ -28,6 +28,8 @@ const struct EnumString es_HudElementType[] =
{HUD_ELEM_INVENTORY, "inventory"},
{HUD_ELEM_WAYPOINT, "waypoint"},
{HUD_ELEM_IMAGE_WAYPOINT, "image_waypoint"},
+ {HUD_ELEM_COMPASS, "compass"},
+ {HUD_ELEM_MINIMAP, "minimap"},
{0, NULL},
};
@@ -40,6 +42,7 @@ const struct EnumString es_HudElementStat[] =
{HUD_STAT_TEXT, "text"},
{HUD_STAT_NUMBER, "number"},
{HUD_STAT_ITEM, "item"},
+ {HUD_STAT_ITEM, "precision"},
{HUD_STAT_DIR, "direction"},
{HUD_STAT_ALIGN, "alignment"},
{HUD_STAT_OFFSET, "offset"},
diff --git a/src/hud.h b/src/hud.h
index e015baec1..a0613ae98 100644
--- a/src/hud.h
+++ b/src/hud.h
@@ -51,7 +51,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define HUD_HOTBAR_ITEMCOUNT_DEFAULT 8
#define HUD_HOTBAR_ITEMCOUNT_MAX 32
-
#define HOTBAR_IMAGE_SIZE 48
enum HudElementType {
@@ -60,7 +59,9 @@ enum HudElementType {
HUD_ELEM_STATBAR = 2,
HUD_ELEM_INVENTORY = 3,
HUD_ELEM_WAYPOINT = 4,
- HUD_ELEM_IMAGE_WAYPOINT = 5
+ HUD_ELEM_IMAGE_WAYPOINT = 5,
+ HUD_ELEM_COMPASS = 6,
+ HUD_ELEM_MINIMAP = 7
};
enum HudElementStat {
@@ -79,6 +80,13 @@ enum HudElementStat {
HUD_STAT_TEXT2,
};
+enum HudCompassDir {
+ HUD_COMPASS_ROTATE = 0,
+ HUD_COMPASS_ROTATE_REVERSE,
+ HUD_COMPASS_TRANSLATE,
+ HUD_COMPASS_TRANSLATE_REVERSE,
+};
+
struct HudElement {
HudElementType type;
v2f pos;
@@ -100,3 +108,12 @@ extern const EnumString es_HudElementType[];
extern const EnumString es_HudElementStat[];
extern const EnumString es_HudBuiltinElement[];
+// Minimap stuff
+
+enum MinimapType {
+ MINIMAP_TYPE_OFF,
+ MINIMAP_TYPE_SURFACE,
+ MINIMAP_TYPE_RADAR,
+ MINIMAP_TYPE_TEXTURE,
+};
+
diff --git a/src/inventory.cpp b/src/inventory.cpp
index 349ee503d..1ef9b13cd 100644
--- a/src/inventory.cpp
+++ b/src/inventory.cpp
@@ -258,6 +258,20 @@ std::string ItemStack::getDescription(IItemDefManager *itemdef) const
return desc.empty() ? name : desc;
}
+std::string ItemStack::getShortDescription(IItemDefManager *itemdef) const
+{
+ std::string desc = metadata.getString("short_description");
+ if (desc.empty())
+ desc = getDefinition(itemdef).short_description;
+ if (!desc.empty())
+ return desc;
+ // no short_description because of old server version or modified builtin
+ // return first line of description
+ std::stringstream sstr(getDescription(itemdef));
+ std::getline(sstr, desc, '\n');
+ return desc;
+}
+
ItemStack ItemStack::addItem(ItemStack newitem, IItemDefManager *itemdef)
{
@@ -732,17 +746,17 @@ void InventoryList::moveItemSomewhere(u32 i, InventoryList *dest, u32 count)
u32 InventoryList::moveItem(u32 i, InventoryList *dest, u32 dest_i,
u32 count, bool swap_if_needed, bool *did_swap)
{
- if(this == dest && i == dest_i)
+ if (this == dest && i == dest_i)
return count;
// Take item from source list
ItemStack item1;
- if(count == 0)
+ if (count == 0)
item1 = changeItem(i, ItemStack());
else
item1 = takeItem(i, count);
- if(item1.empty())
+ if (item1.empty())
return 0;
// Try to add the item to destination list
@@ -750,8 +764,7 @@ u32 InventoryList::moveItem(u32 i, InventoryList *dest, u32 dest_i,
item1 = dest->addItem(dest_i, item1);
// If something is returned, the item was not fully added
- if(!item1.empty())
- {
+ if (!item1.empty()) {
// If olditem is returned, nothing was added.
bool nothing_added = (item1.count == oldcount);
diff --git a/src/inventory.h b/src/inventory.h
index 67a7859ed..f36bc57cf 100644
--- a/src/inventory.h
+++ b/src/inventory.h
@@ -49,6 +49,7 @@ struct ItemStack
std::string getItemString(bool include_meta = true) const;
// Returns the tooltip
std::string getDescription(IItemDefManager *itemdef) const;
+ std::string getShortDescription(IItemDefManager *itemdef) const;
/*
Quantity methods
diff --git a/src/inventorymanager.cpp b/src/inventorymanager.cpp
index b6f464901..1e81c1dbc 100644
--- a/src/inventorymanager.cpp
+++ b/src/inventorymanager.cpp
@@ -154,6 +154,93 @@ IMoveAction::IMoveAction(std::istream &is, bool somewhere) :
}
}
+void IMoveAction::swapDirections()
+{
+ std::swap(from_inv, to_inv);
+ std::swap(from_list, to_list);
+ std::swap(from_i, to_i);
+}
+
+void IMoveAction::onPutAndOnTake(const ItemStack &src_item, ServerActiveObject *player) const
+{
+ ServerScripting *sa = PLAYER_TO_SA(player);
+ if (to_inv.type == InventoryLocation::DETACHED)
+ sa->detached_inventory_OnPut(*this, src_item, player);
+ else if (to_inv.type == InventoryLocation::NODEMETA)
+ sa->nodemeta_inventory_OnPut(*this, src_item, player);
+ else if (to_inv.type == InventoryLocation::PLAYER)
+ sa->player_inventory_OnPut(*this, src_item, player);
+ else
+ assert(false);
+
+ if (from_inv.type == InventoryLocation::DETACHED)
+ sa->detached_inventory_OnTake(*this, src_item, player);
+ else if (from_inv.type == InventoryLocation::NODEMETA)
+ sa->nodemeta_inventory_OnTake(*this, src_item, player);
+ else if (from_inv.type == InventoryLocation::PLAYER)
+ sa->player_inventory_OnTake(*this, src_item, player);
+ else
+ assert(false);
+}
+
+void IMoveAction::onMove(int count, ServerActiveObject *player) const
+{
+ ServerScripting *sa = PLAYER_TO_SA(player);
+ if (from_inv.type == InventoryLocation::DETACHED)
+ sa->detached_inventory_OnMove(*this, count, player);
+ else if (from_inv.type == InventoryLocation::NODEMETA)
+ sa->nodemeta_inventory_OnMove(*this, count, player);
+ else if (from_inv.type == InventoryLocation::PLAYER)
+ sa->player_inventory_OnMove(*this, count, player);
+ else
+ assert(false);
+}
+
+int IMoveAction::allowPut(const ItemStack &dst_item, ServerActiveObject *player) const
+{
+ ServerScripting *sa = PLAYER_TO_SA(player);
+ int dst_can_put_count = 0xffff;
+ if (to_inv.type == InventoryLocation::DETACHED)
+ dst_can_put_count = sa->detached_inventory_AllowPut(*this, dst_item, player);
+ else if (to_inv.type == InventoryLocation::NODEMETA)
+ dst_can_put_count = sa->nodemeta_inventory_AllowPut(*this, dst_item, player);
+ else if (to_inv.type == InventoryLocation::PLAYER)
+ dst_can_put_count = sa->player_inventory_AllowPut(*this, dst_item, player);
+ else
+ assert(false);
+ return dst_can_put_count;
+}
+
+int IMoveAction::allowTake(const ItemStack &src_item, ServerActiveObject *player) const
+{
+ ServerScripting *sa = PLAYER_TO_SA(player);
+ int src_can_take_count = 0xffff;
+ if (from_inv.type == InventoryLocation::DETACHED)
+ src_can_take_count = sa->detached_inventory_AllowTake(*this, src_item, player);
+ else if (from_inv.type == InventoryLocation::NODEMETA)
+ src_can_take_count = sa->nodemeta_inventory_AllowTake(*this, src_item, player);
+ else if (from_inv.type == InventoryLocation::PLAYER)
+ src_can_take_count = sa->player_inventory_AllowTake(*this, src_item, player);
+ else
+ assert(false);
+ return src_can_take_count;
+}
+
+int IMoveAction::allowMove(int try_take_count, ServerActiveObject *player) const
+{
+ ServerScripting *sa = PLAYER_TO_SA(player);
+ int src_can_take_count = 0xffff;
+ if (from_inv.type == InventoryLocation::DETACHED)
+ src_can_take_count = sa->detached_inventory_AllowMove(*this, try_take_count, player);
+ else if (from_inv.type == InventoryLocation::NODEMETA)
+ src_can_take_count = sa->nodemeta_inventory_AllowMove(*this, try_take_count, player);
+ else if (from_inv.type == InventoryLocation::PLAYER)
+ src_can_take_count = sa->player_inventory_AllowMove(*this, try_take_count, player);
+ else
+ assert(false);
+ return src_can_take_count;
+}
+
void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGameDef *gamedef)
{
Inventory *inv_from = mgr->getInventory(from_inv);
@@ -214,6 +301,7 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame
if (!list_to->getItem(dest_i).empty()) {
to_i = dest_i;
apply(mgr, player, gamedef);
+ assert(move_count <= count);
count -= move_count;
}
}
@@ -251,103 +339,104 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame
Collect information of endpoints
*/
- int try_take_count = count;
- if (try_take_count == 0)
- try_take_count = list_from->getItem(from_i).count;
+ ItemStack src_item = list_from->getItem(from_i);
+ if (count > 0 && count < src_item.count)
+ src_item.count = count;
+ if (src_item.empty())
+ return;
int src_can_take_count = 0xffff;
int dst_can_put_count = 0xffff;
- /* Query detached inventories */
+ // this is needed for swapping items inside one inventory to work
+ ItemStack restitem;
+ bool allow_swap = !list_to->itemFits(to_i, src_item, &restitem)
+ && restitem.count == src_item.count
+ && !caused_by_move_somewhere;
+ move_count = src_item.count - restitem.count;
- // Move occurs in the same detached inventory
- if (from_inv.type == InventoryLocation::DETACHED &&
- from_inv == to_inv) {
- src_can_take_count = PLAYER_TO_SA(player)->detached_inventory_AllowMove(
- *this, try_take_count, player);
- dst_can_put_count = src_can_take_count;
- } else {
- // Destination is detached
- if (to_inv.type == InventoryLocation::DETACHED) {
- ItemStack src_item = list_from->getItem(from_i);
- src_item.count = try_take_count;
- dst_can_put_count = PLAYER_TO_SA(player)->detached_inventory_AllowPut(
- *this, src_item, player);
- }
- // Source is detached
- if (from_inv.type == InventoryLocation::DETACHED) {
- ItemStack src_item = list_from->getItem(from_i);
- src_item.count = try_take_count;
- src_can_take_count = PLAYER_TO_SA(player)->detached_inventory_AllowTake(
- *this, src_item, player);
- }
+ // Shift-click: Cannot fill this stack, proceed with next slot
+ if (caused_by_move_somewhere && move_count == 0) {
+ return;
}
- /* Query node metadata inventories */
-
- // Both endpoints are nodemeta
- // Move occurs in the same nodemeta inventory
- if (from_inv.type == InventoryLocation::NODEMETA &&
- from_inv == to_inv) {
- src_can_take_count = PLAYER_TO_SA(player)->nodemeta_inventory_AllowMove(
- *this, try_take_count, player);
- dst_can_put_count = src_can_take_count;
- } else {
- // Destination is nodemeta
- if (to_inv.type == InventoryLocation::NODEMETA) {
- ItemStack src_item = list_from->getItem(from_i);
- src_item.count = try_take_count;
- dst_can_put_count = PLAYER_TO_SA(player)->nodemeta_inventory_AllowPut(
- *this, src_item, player);
- }
- // Source is nodemeta
- if (from_inv.type == InventoryLocation::NODEMETA) {
- ItemStack src_item = list_from->getItem(from_i);
- src_item.count = try_take_count;
- src_can_take_count = PLAYER_TO_SA(player)->nodemeta_inventory_AllowTake(
- *this, src_item, player);
+ if (allow_swap) {
+ // Swap will affect the entire stack if it can performed.
+ src_item = list_from->getItem(from_i);
+ count = src_item.count;
+ }
+
+ if (from_inv == to_inv) {
+ // Move action within the same inventory
+ src_can_take_count = allowMove(src_item.count, player);
+
+ bool swap_expected = allow_swap;
+ allow_swap = allow_swap
+ && (src_can_take_count == -1 || src_can_take_count >= src_item.count);
+ if (allow_swap) {
+ int try_put_count = list_to->getItem(to_i).count;
+ swapDirections();
+ dst_can_put_count = allowMove(try_put_count, player);
+ allow_swap = allow_swap
+ && (dst_can_put_count == -1 || dst_can_put_count >= try_put_count);
+ swapDirections();
+ } else {
+ dst_can_put_count = src_can_take_count;
}
- }
-
- // Query player inventories
-
- // Move occurs in the same player inventory
- if (from_inv.type == InventoryLocation::PLAYER &&
- from_inv == to_inv) {
- src_can_take_count = PLAYER_TO_SA(player)->player_inventory_AllowMove(
- *this, try_take_count, player);
- dst_can_put_count = src_can_take_count;
+ if (swap_expected != allow_swap)
+ src_can_take_count = dst_can_put_count = 0;
} else {
- // Destination is a player
- if (to_inv.type == InventoryLocation::PLAYER) {
- ItemStack src_item = list_from->getItem(from_i);
- src_item.count = try_take_count;
- dst_can_put_count = PLAYER_TO_SA(player)->player_inventory_AllowPut(
- *this, src_item, player);
- }
- // Source is a player
- if (from_inv.type == InventoryLocation::PLAYER) {
- ItemStack src_item = list_from->getItem(from_i);
- src_item.count = try_take_count;
- src_can_take_count = PLAYER_TO_SA(player)->player_inventory_AllowTake(
- *this, src_item, player);
+ // Take from one inventory, put into another
+ int src_item_count = src_item.count;
+ if (caused_by_move_somewhere)
+ // When moving somewhere: temporarily use the actual movable stack
+ // size to ensure correct callback execution.
+ src_item.count = move_count;
+ dst_can_put_count = allowPut(src_item, player);
+ src_can_take_count = allowTake(src_item, player);
+ if (caused_by_move_somewhere)
+ // Reset source item count
+ src_item.count = src_item_count;
+ bool swap_expected = allow_swap;
+ allow_swap = allow_swap
+ && (src_can_take_count == -1 || src_can_take_count >= src_item.count)
+ && (dst_can_put_count == -1 || dst_can_put_count >= src_item.count);
+ // A swap is expected, which means that we have to
+ // run the "allow" callbacks a second time with swapped inventories
+ if (allow_swap) {
+ ItemStack dst_item = list_to->getItem(to_i);
+ swapDirections();
+
+ int src_can_take = allowPut(dst_item, player);
+ int dst_can_put = allowTake(dst_item, player);
+ allow_swap = allow_swap
+ && (src_can_take == -1 || src_can_take >= dst_item.count)
+ && (dst_can_put == -1 || dst_can_put >= dst_item.count);
+ swapDirections();
}
+ if (swap_expected != allow_swap)
+ src_can_take_count = dst_can_put_count = 0;
}
int old_count = count;
/* Modify count according to collected data */
- count = try_take_count;
+ count = src_item.count;
if (src_can_take_count != -1 && count > src_can_take_count)
count = src_can_take_count;
if (dst_can_put_count != -1 && count > dst_can_put_count)
count = dst_can_put_count;
+
/* Limit according to source item count */
if (count > list_from->getItem(from_i).count)
count = list_from->getItem(from_i).count;
/* If no items will be moved, don't go further */
if (count == 0) {
+ if (caused_by_move_somewhere)
+ // Set move count to zero, as no items have been moved
+ move_count = 0;
+
// Undo client prediction. See 'clientApply'
if (from_inv.type == InventoryLocation::PLAYER)
list_from->setModified();
@@ -364,10 +453,11 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame
<<" list=\""<<to_list<<"\""
<<" i="<<to_i
<<std::endl;
+
return;
}
- ItemStack src_item = list_from->getItem(from_i);
+ src_item = list_from->getItem(from_i);
src_item.count = count;
ItemStack from_stack_was = list_from->getItem(from_i);
ItemStack to_stack_was = list_to->getItem(to_i);
@@ -380,7 +470,10 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame
*/
bool did_swap = false;
move_count = list_from->moveItem(from_i,
- list_to, to_i, count, !caused_by_move_somewhere, &did_swap);
+ list_to, to_i, count, allow_swap, &did_swap);
+ if (caused_by_move_somewhere)
+ count = old_count;
+ assert(allow_swap == did_swap);
// If source is infinite, reset it's stack
if (src_can_take_count == -1) {
@@ -428,8 +521,7 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame
<< std::endl;
// If we are inside the move somewhere loop, we don't need to report
- // anything if nothing happened (perhaps we don't need to report
- // anything for caused_by_move_somewhere == true, but this way its safer)
+ // anything if nothing happened
if (caused_by_move_somewhere && move_count == 0)
return;
@@ -471,69 +563,37 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame
Report move to endpoints
*/
- /* Detached inventories */
-
- // Both endpoints are same detached
- if (from_inv.type == InventoryLocation::DETACHED &&
- from_inv == to_inv) {
- PLAYER_TO_SA(player)->detached_inventory_OnMove(
- *this, count, player);
- } else {
- // Destination is detached
- if (to_inv.type == InventoryLocation::DETACHED) {
- PLAYER_TO_SA(player)->detached_inventory_OnPut(
- *this, src_item, player);
+ // Source = destination => move
+ if (from_inv == to_inv) {
+ onMove(count, player);
+ if (did_swap) {
+ // Item is now placed in source list
+ src_item = list_from->getItem(from_i);
+ swapDirections();
+ onMove(src_item.count, player);
+ swapDirections();
}
- // Source is detached
- if (from_inv.type == InventoryLocation::DETACHED) {
- PLAYER_TO_SA(player)->detached_inventory_OnTake(
- *this, src_item, player);
- }
- }
-
- /* Node metadata inventories */
-
- // Both endpoints are same nodemeta
- if (from_inv.type == InventoryLocation::NODEMETA &&
- from_inv == to_inv) {
- PLAYER_TO_SA(player)->nodemeta_inventory_OnMove(
- *this, count, player);
- } else {
- // Destination is nodemeta
- if (to_inv.type == InventoryLocation::NODEMETA) {
- PLAYER_TO_SA(player)->nodemeta_inventory_OnPut(
- *this, src_item, player);
- }
- // Source is nodemeta
- if (from_inv.type == InventoryLocation::NODEMETA) {
- PLAYER_TO_SA(player)->nodemeta_inventory_OnTake(
- *this, src_item, player);
- }
- }
-
- // Player inventories
-
- // Both endpoints are same player inventory
- if (from_inv.type == InventoryLocation::PLAYER &&
- from_inv == to_inv) {
- PLAYER_TO_SA(player)->player_inventory_OnMove(
- *this, count, player);
+ mgr->setInventoryModified(from_inv);
} else {
- // Destination is player inventory
- if (to_inv.type == InventoryLocation::PLAYER) {
- PLAYER_TO_SA(player)->player_inventory_OnPut(
- *this, src_item, player);
- }
- // Source is player inventory
- if (from_inv.type == InventoryLocation::PLAYER) {
- PLAYER_TO_SA(player)->player_inventory_OnTake(
- *this, src_item, player);
+ int src_item_count = src_item.count;
+ if (caused_by_move_somewhere)
+ // When moving somewhere: temporarily use the actual movable stack
+ // size to ensure correct callback execution.
+ src_item.count = move_count;
+ onPutAndOnTake(src_item, player);
+ if (caused_by_move_somewhere)
+ // Reset source item count
+ src_item.count = src_item_count;
+ if (did_swap) {
+ // Item is now placed in source list
+ src_item = list_from->getItem(from_i);
+ swapDirections();
+ onPutAndOnTake(src_item, player);
+ swapDirections();
}
- }
-
- mgr->setInventoryModified(from_inv);
- if (inv_from != inv_to)
mgr->setInventoryModified(to_inv);
+ mgr->setInventoryModified(from_inv);
+ }
}
void IMoveAction::clientApply(InventoryManager *mgr, IGameDef *gamedef)
diff --git a/src/inventorymanager.h b/src/inventorymanager.h
index 69bf30169..4ad5d3f49 100644
--- a/src/inventorymanager.h
+++ b/src/inventorymanager.h
@@ -183,6 +183,18 @@ struct IMoveAction : public InventoryAction, public MoveAction
void apply(InventoryManager *mgr, ServerActiveObject *player, IGameDef *gamedef);
void clientApply(InventoryManager *mgr, IGameDef *gamedef);
+
+ void swapDirections();
+
+ void onPutAndOnTake(const ItemStack &src_item, ServerActiveObject *player) const;
+
+ void onMove(int count, ServerActiveObject *player) const;
+
+ int allowPut(const ItemStack &dst_item, ServerActiveObject *player) const;
+
+ int allowTake(const ItemStack &src_item, ServerActiveObject *player) const;
+
+ int allowMove(int try_take_count, ServerActiveObject *player) const;
};
struct IDropAction : public InventoryAction, public MoveAction
diff --git a/src/irr_ptr.h b/src/irr_ptr.h
index 5022adb9d..42b409676 100644
--- a/src/irr_ptr.h
+++ b/src/irr_ptr.h
@@ -27,9 +27,14 @@ with this program; if not, write to the Free Software Foundation, Inc.,
* It should only be used for user-managed objects, i.e. those created with
* the @c new operator or @c create* functions, like:
* `irr_ptr<scene::IMeshBuffer> buf{new scene::SMeshBuffer()};`
+ * The reference counting is *not* balanced as new objects have reference
+ * count set to one, and the @c irr_ptr constructor (and @c reset) assumes
+ * ownership of that reference.
*
- * It should *never* be used for engine-managed objects, including
- * those created with @c addTexture and similar methods.
+ * It shouldn’t be used for engine-managed objects, including those created
+ * with @c addTexture and similar methods. Constructing @c irr_ptr directly
+ * from such object is a bug and may lead to a crash. Indirect construction
+ * is possible though; see the @c grab free function for details and use cases.
*/
template <class ReferenceCounted,
class = typename std::enable_if<std::is_base_of<IReferenceCounted,
@@ -38,16 +43,6 @@ class irr_ptr
{
ReferenceCounted *value = nullptr;
- /** Drops stored pointer replacing it with the given one.
- * @note Copy semantics: reference counter *is* increased.
- */
- void grab(ReferenceCounted *object)
- {
- if (object)
- object->grab();
- reset(object);
- }
-
public:
irr_ptr() {}
@@ -71,8 +66,10 @@ public:
reset(b.release());
}
- /** Constructs a shared pointer out of a plain one
+ /** Constructs a shared pointer out of a plain one to control object lifetime.
+ * @param object The object, usually returned by some @c create* function.
* @note Move semantics: reference counter is *not* increased.
+ * @warning Never wrap any @c add* function with this!
*/
explicit irr_ptr(ReferenceCounted *object) noexcept { reset(object); }
@@ -134,4 +131,70 @@ public:
value->drop();
value = object;
}
+
+ /** Drops stored pointer replacing it with the given one.
+ * @note Copy semantics: reference counter *is* increased.
+ */
+ void grab(ReferenceCounted *object) noexcept
+ {
+ if (object)
+ object->grab();
+ reset(object);
+ }
};
+
+// clang-format off
+// ^ dislikes long lines
+
+/** Constructs a shared pointer as a *secondary* reference to an object
+ *
+ * This function is intended to make a temporary reference to an object which
+ * is owned elsewhere so that it is not destroyed too early. To acheive that
+ * it does balanced reference counting, i.e. reference count is increased
+ * in this function and decreased when the returned pointer is destroyed.
+ */
+template <class ReferenceCounted>
+irr_ptr<ReferenceCounted> grab(ReferenceCounted *object) noexcept
+{
+ irr_ptr<ReferenceCounted> ptr;
+ ptr.grab(object);
+ return ptr;
+}
+
+template <typename ReferenceCounted>
+bool operator==(const irr_ptr<ReferenceCounted> &a, const irr_ptr<ReferenceCounted> &b) noexcept
+{
+ return a.get() == b.get();
+}
+
+template <typename ReferenceCounted>
+bool operator==(const irr_ptr<ReferenceCounted> &a, const ReferenceCounted *b) noexcept
+{
+ return a.get() == b;
+}
+
+template <typename ReferenceCounted>
+bool operator==(const ReferenceCounted *a, const irr_ptr<ReferenceCounted> &b) noexcept
+{
+ return a == b.get();
+}
+
+template <typename ReferenceCounted>
+bool operator!=(const irr_ptr<ReferenceCounted> &a, const irr_ptr<ReferenceCounted> &b) noexcept
+{
+ return a.get() != b.get();
+}
+
+template <typename ReferenceCounted>
+bool operator!=(const irr_ptr<ReferenceCounted> &a, const ReferenceCounted *b) noexcept
+{
+ return a.get() != b;
+}
+
+template <typename ReferenceCounted>
+bool operator!=(const ReferenceCounted *a, const irr_ptr<ReferenceCounted> &b) noexcept
+{
+ return a != b.get();
+}
+
+// clang-format on
diff --git a/src/irrlicht_changes/CGUITTFont.h b/src/irrlicht_changes/CGUITTFont.h
index cf64934a2..310f74f67 100644
--- a/src/irrlicht_changes/CGUITTFont.h
+++ b/src/irrlicht_changes/CGUITTFont.h
@@ -356,7 +356,7 @@ namespace gui
load_flags = FT_LOAD_DEFAULT | FT_LOAD_RENDER;
if (!useHinting()) load_flags |= FT_LOAD_NO_HINTING;
if (!useAutoHinting()) load_flags |= FT_LOAD_NO_AUTOHINT;
- if (useMonochrome()) load_flags |= FT_LOAD_MONOCHROME | FT_LOAD_TARGET_MONO | FT_RENDER_MODE_MONO;
+ if (useMonochrome()) load_flags |= FT_LOAD_MONOCHROME | FT_LOAD_TARGET_MONO;
else load_flags |= FT_LOAD_TARGET_NORMAL;
}
u32 getWidthFromCharacter(wchar_t c) const;
diff --git a/src/irrlicht_changes/irrUString.h b/src/irrlicht_changes/irrUString.h
index b628c092c..09172ee6d 100644
--- a/src/irrlicht_changes/irrUString.h
+++ b/src/irrlicht_changes/irrUString.h
@@ -1331,7 +1331,7 @@ public:
{
u32 i;
const uchar16_t* oa = other.c_str();
- for(i=0; array[i] && oa[i] && i < n; ++i)
+ for(i=0; i < n && array[i] && oa[i]; ++i)
if (array[i] != oa[i])
return false;
@@ -1350,7 +1350,7 @@ public:
if (!str)
return false;
u32 i;
- for(i=0; array[i] && str[i] && i < n; ++i)
+ for(i=0; i < n && array[i] && str[i]; ++i)
if (array[i] != str[i])
return false;
diff --git a/src/itemdef.cpp b/src/itemdef.cpp
index 8e0492827..5fb1e4c47 100644
--- a/src/itemdef.cpp
+++ b/src/itemdef.cpp
@@ -62,6 +62,7 @@ ItemDefinition& ItemDefinition::operator=(const ItemDefinition &def)
type = def.type;
name = def.name;
description = def.description;
+ short_description = def.short_description;
inventory_image = def.inventory_image;
inventory_overlay = def.inventory_overlay;
wield_image = def.wield_image;
@@ -102,6 +103,7 @@ void ItemDefinition::reset()
type = ITEM_NONE;
name = "";
description = "";
+ short_description = "";
inventory_image = "";
inventory_overlay = "";
wield_image = "";
@@ -128,10 +130,10 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const
u8 version = 6;
writeU8(os, version);
writeU8(os, type);
- os << serializeString(name);
- os << serializeString(description);
- os << serializeString(inventory_image);
- os << serializeString(wield_image);
+ os << serializeString16(name);
+ os << serializeString16(description);
+ os << serializeString16(inventory_image);
+ os << serializeString16(wield_image);
writeV3F32(os, wield_scale);
writeS16(os, stack_max);
writeU8(os, usable);
@@ -143,25 +145,27 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const
tool_capabilities->serialize(tmp_os, protocol_version);
tool_capabilities_s = tmp_os.str();
}
- os << serializeString(tool_capabilities_s);
+ os << serializeString16(tool_capabilities_s);
writeU16(os, groups.size());
for (const auto &group : groups) {
- os << serializeString(group.first);
+ os << serializeString16(group.first);
writeS16(os, group.second);
}
- os << serializeString(node_placement_prediction);
+ os << serializeString16(node_placement_prediction);
// Version from ContentFeatures::serialize to keep in sync
sound_place.serialize(os, CONTENTFEATURES_VERSION);
sound_place_failed.serialize(os, CONTENTFEATURES_VERSION);
writeF32(os, range);
- os << serializeString(palette_image);
+ os << serializeString16(palette_image);
writeARGB8(os, color);
- os << serializeString(inventory_overlay);
- os << serializeString(wield_overlay);
+ os << serializeString16(inventory_overlay);
+ os << serializeString16(wield_overlay);
+
+ os << serializeString16(short_description);
}
void ItemDefinition::deSerialize(std::istream &is)
@@ -175,16 +179,16 @@ void ItemDefinition::deSerialize(std::istream &is)
throw SerializationError("unsupported ItemDefinition version");
type = (enum ItemType)readU8(is);
- name = deSerializeString(is);
- description = deSerializeString(is);
- inventory_image = deSerializeString(is);
- wield_image = deSerializeString(is);
+ name = deSerializeString16(is);
+ description = deSerializeString16(is);
+ inventory_image = deSerializeString16(is);
+ wield_image = deSerializeString16(is);
wield_scale = readV3F32(is);
stack_max = readS16(is);
usable = readU8(is);
liquids_pointable = readU8(is);
- std::string tool_capabilities_s = deSerializeString(is);
+ std::string tool_capabilities_s = deSerializeString16(is);
if (!tool_capabilities_s.empty()) {
std::istringstream tmp_is(tool_capabilities_s, std::ios::binary);
tool_capabilities = new ToolCapabilities;
@@ -194,27 +198,28 @@ void ItemDefinition::deSerialize(std::istream &is)
groups.clear();
u32 groups_size = readU16(is);
for(u32 i=0; i<groups_size; i++){
- std::string name = deSerializeString(is);
+ std::string name = deSerializeString16(is);
int value = readS16(is);
groups[name] = value;
}
- node_placement_prediction = deSerializeString(is);
+ node_placement_prediction = deSerializeString16(is);
// Version from ContentFeatures::serialize to keep in sync
sound_place.deSerialize(is, CONTENTFEATURES_VERSION);
sound_place_failed.deSerialize(is, CONTENTFEATURES_VERSION);
range = readF32(is);
- palette_image = deSerializeString(is);
+ palette_image = deSerializeString16(is);
color = readARGB8(is);
- inventory_overlay = deSerializeString(is);
- wield_overlay = deSerializeString(is);
+ inventory_overlay = deSerializeString16(is);
+ wield_overlay = deSerializeString16(is);
// If you add anything here, insert it primarily inside the try-catch
// block to not need to increase the version.
- //try {
- //} catch(SerializationError &e) {};
+ try {
+ short_description = deSerializeString16(is);
+ } catch(SerializationError &e) {};
}
@@ -521,14 +526,14 @@ public:
// Serialize ItemDefinition and write wrapped in a string
std::ostringstream tmp_os(std::ios::binary);
def->serialize(tmp_os, protocol_version);
- os << serializeString(tmp_os.str());
+ os << serializeString16(tmp_os.str());
}
writeU16(os, m_aliases.size());
for (const auto &it : m_aliases) {
- os << serializeString(it.first);
- os << serializeString(it.second);
+ os << serializeString16(it.first);
+ os << serializeString16(it.second);
}
}
void deSerialize(std::istream &is)
@@ -543,7 +548,7 @@ public:
for(u16 i=0; i<count; i++)
{
// Deserialize a string and grab an ItemDefinition from it
- std::istringstream tmp_is(deSerializeString(is), std::ios::binary);
+ std::istringstream tmp_is(deSerializeString16(is), std::ios::binary);
ItemDefinition def;
def.deSerialize(tmp_is);
// Register
@@ -552,8 +557,8 @@ public:
u16 num_aliases = readU16(is);
for(u16 i=0; i<num_aliases; i++)
{
- std::string name = deSerializeString(is);
- std::string convert_to = deSerializeString(is);
+ std::string name = deSerializeString16(is);
+ std::string convert_to = deSerializeString16(is);
registerAlias(name, convert_to);
}
}
diff --git a/src/itemdef.h b/src/itemdef.h
index f47e6cbe7..ebf0d3527 100644
--- a/src/itemdef.h
+++ b/src/itemdef.h
@@ -56,6 +56,7 @@ struct ItemDefinition
ItemType type;
std::string name; // "" = hand
std::string description; // Shown in tooltip.
+ std::string short_description;
/*
Visual properties
diff --git a/src/itemstackmetadata.cpp b/src/itemstackmetadata.cpp
index 4aa1a0903..7a26fbb0e 100644
--- a/src/itemstackmetadata.cpp
+++ b/src/itemstackmetadata.cpp
@@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "itemstackmetadata.h"
#include "util/serialize.h"
#include "util/strfnd.h"
+#include <algorithm>
#define DESERIALIZE_START '\x01'
#define DESERIALIZE_KV_DELIM '\x02'
@@ -37,10 +38,22 @@ void ItemStackMetadata::clear()
updateToolCapabilities();
}
+static void sanitize_string(std::string &str)
+{
+ str.erase(std::remove(str.begin(), str.end(), DESERIALIZE_START), str.end());
+ str.erase(std::remove(str.begin(), str.end(), DESERIALIZE_KV_DELIM), str.end());
+ str.erase(std::remove(str.begin(), str.end(), DESERIALIZE_PAIR_DELIM), str.end());
+}
+
bool ItemStackMetadata::setString(const std::string &name, const std::string &var)
{
- bool result = Metadata::setString(name, var);
- if (name == TOOLCAP_KEY)
+ std::string clean_name = name;
+ std::string clean_var = var;
+ sanitize_string(clean_name);
+ sanitize_string(clean_var);
+
+ bool result = Metadata::setString(clean_name, clean_var);
+ if (clean_name == TOOLCAP_KEY)
updateToolCapabilities();
return result;
}
diff --git a/src/light.cpp b/src/light.cpp
index 8196fedff..d5389b450 100644
--- a/src/light.cpp
+++ b/src/light.cpp
@@ -18,6 +18,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
*/
#include "light.h"
+#include <algorithm>
#include <cmath>
#include "util/numeric.h"
#include "settings.h"
@@ -81,9 +82,11 @@ void set_light_table(float gamma)
// Strictly speaking, rangelim is not necessary here—if the implementation
// is conforming. But we don’t want problems in any case.
light_LUT[i] = rangelim((s32)(255.0f * brightness), 0, 255);
+
// Ensure light brightens with each level
- if (i > 1 && light_LUT[i] <= light_LUT[i - 1])
- light_LUT[i] = light_LUT[i - 1] + 1;
+ if (i > 0 && light_LUT[i] <= light_LUT[i - 1]) {
+ light_LUT[i] = std::min((u8)254, light_LUT[i - 1]) + 1;
+ }
}
}
diff --git a/src/log.cpp b/src/log.cpp
index 54442c39b..3c61414e9 100644
--- a/src/log.cpp
+++ b/src/log.cpp
@@ -97,16 +97,7 @@ LogBuffer verbose_buf(g_logger, LL_VERBOSE);
std::ostream *dout_con_ptr = &null_stream;
std::ostream *derr_con_ptr = &verbosestream;
-// Server
-std::ostream *dout_server_ptr = &infostream;
-std::ostream *derr_server_ptr = &errorstream;
-
-#ifndef SERVER
-// Client
-std::ostream *dout_client_ptr = &infostream;
-std::ostream *derr_client_ptr = &errorstream;
-#endif
-
+// Common streams
std::ostream rawstream(&raw_buf);
std::ostream dstream(&none_buf);
std::ostream errorstream(&error_buf);
diff --git a/src/log.h b/src/log.h
index 856d3479b..6ed6b1fb7 100644
--- a/src/log.h
+++ b/src/log.h
@@ -192,14 +192,8 @@ extern std::ostream null_stream;
extern std::ostream *dout_con_ptr;
extern std::ostream *derr_con_ptr;
-extern std::ostream *dout_server_ptr;
extern std::ostream *derr_server_ptr;
-#ifndef SERVER
-extern std::ostream *dout_client_ptr;
-extern std::ostream *derr_client_ptr;
-#endif
-
extern Logger g_logger;
// Writes directly to all LL_NONE log outputs for g_logger with no prefix.
@@ -222,8 +216,4 @@ extern std::ostream dstream;
#define dout_con (*dout_con_ptr)
#define derr_con (*derr_con_ptr)
-#define dout_server (*dout_server_ptr)
-#ifndef SERVER
- #define dout_client (*dout_client_ptr)
-#endif
diff --git a/src/main.cpp b/src/main.cpp
index b3b17c2d1..39b441d2c 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -47,11 +47,19 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "gui/guiEngine.h"
#include "gui/mainmenumanager.h"
#endif
-
#ifdef HAVE_TOUCHSCREENGUI
#include "gui/touchscreengui.h"
#endif
+// for version information only
+extern "C" {
+#if USE_LUAJIT
+ #include <luajit.h>
+#else
+ #include <lua.h>
+#endif
+}
+
#if !defined(SERVER) && \
(IRRLICHT_VERSION_MAJOR == 1) && \
(IRRLICHT_VERSION_MINOR == 8) && \
@@ -197,7 +205,7 @@ int main(int argc, char *argv[])
}
#endif
- GameParams game_params;
+ GameStartData game_params;
#ifdef SERVER
porting::attachOrCreateConsole();
game_params.is_dedicated_server = true;
@@ -351,6 +359,11 @@ static void print_version()
#ifndef SERVER
std::cout << "Using Irrlicht " IRRLICHT_SDK_VERSION << std::endl;
#endif
+#if USE_LUAJIT
+ std::cout << "Using " << LUAJIT_VERSION << std::endl;
+#else
+ std::cout << "Using " << LUA_RELEASE << std::endl;
+#endif
std::cout << g_build_info << std::endl;
}
@@ -474,12 +487,15 @@ static bool create_userdata_path()
static bool init_common(const Settings &cmd_args, int argc, char *argv[])
{
startup_message();
- set_default_settings(g_settings);
+ set_default_settings();
// Initialize sockets
sockets_init();
atexit(sockets_cleanup);
+ // Initialize g_settings
+ Settings::createLayer(SL_GLOBAL);
+
if (!read_config_file(cmd_args))
return false;
@@ -604,10 +620,14 @@ static bool game_configure(GameParams *game_params, const Settings &cmd_args)
static void game_configure_port(GameParams *game_params, const Settings &cmd_args)
{
- if (cmd_args.exists("port"))
+ if (cmd_args.exists("port")) {
game_params->socket_port = cmd_args.getU16("port");
- else
- game_params->socket_port = g_settings->getU16("port");
+ } else {
+ if (game_params->is_dedicated_server)
+ game_params->socket_port = g_settings->getU16("port");
+ else
+ game_params->socket_port = g_settings->getU16("remote_port");
+ }
if (game_params->socket_port == 0)
game_params->socket_port = DEFAULT_SERVER_PORT;
diff --git a/src/map.cpp b/src/map.cpp
index b9ab7c066..7c59edbaa 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -62,8 +62,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
Map
*/
-Map::Map(std::ostream &dout, IGameDef *gamedef):
- m_dout(dout),
+Map::Map(IGameDef *gamedef):
m_gamedef(gamedef),
m_nodedef(gamedef->ndef())
{
@@ -531,23 +530,6 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> &modified_blocks,
u32 liquid_loop_max = g_settings->getS32("liquid_loop_max");
u32 loop_max = liquid_loop_max;
-#if 0
-
- /* If liquid_loop_max is not keeping up with the queue size increase
- * loop_max up to a maximum of liquid_loop_max * dedicated_server_step.
- */
- if (m_transforming_liquid.size() > loop_max * 2) {
- // "Burst" mode
- float server_step = g_settings->getFloat("dedicated_server_step");
- if (m_transforming_liquid_loop_count_multiplier - 1.0 < server_step)
- m_transforming_liquid_loop_count_multiplier *= 1.0 + server_step / 10;
- } else {
- m_transforming_liquid_loop_count_multiplier = 1.0;
- }
-
- loop_max *= m_transforming_liquid_loop_count_multiplier;
-#endif
-
while (m_transforming_liquid.size() != 0)
{
// This should be done here so that it is done when continue is used
@@ -1201,8 +1183,8 @@ bool Map::isBlockOccluded(MapBlock *block, v3s16 cam_pos_nodes)
*/
ServerMap::ServerMap(const std::string &savedir, IGameDef *gamedef,
EmergeManager *emerge, MetricsBackend *mb):
- Map(dout_server, gamedef),
- settings_mgr(g_settings, savedir + DIR_DELIM + "map_meta.txt"),
+ Map(gamedef),
+ settings_mgr(savedir + DIR_DELIM + "map_meta.txt"),
m_emerge(emerge)
{
verbosestream<<FUNCTION_NAME<<std::endl;
@@ -1236,6 +1218,8 @@ ServerMap::ServerMap(const std::string &savedir, IGameDef *gamedef,
m_save_time_counter = mb->addCounter("minetest_core_map_save_time", "Map save time (in nanoseconds)");
+ m_map_compression_level = rangelim(g_settings->getS16("map_compression_level_disk"), -1, 9);
+
try {
// If directory exists, check contents and load if possible
if (fs::PathExists(m_savedir)) {
@@ -1301,18 +1285,6 @@ ServerMap::~ServerMap()
*/
delete dbase;
delete dbase_ro;
-
-#if 0
- /*
- Free all MapChunks
- */
- core::map<v2s16, MapChunk*>::Iterator i = m_chunks.getIterator();
- for(; i.atEnd() == false; i++)
- {
- MapChunk *chunk = i.getNode()->getValue();
- delete chunk;
- }
-#endif
}
MapgenParams *ServerMap::getMapgenParams()
@@ -1327,11 +1299,6 @@ u64 ServerMap::getSeed()
return getMapgenParams()->seed;
}
-s16 ServerMap::getWaterLevel()
-{
- return getMapgenParams()->water_level;
-}
-
bool ServerMap::blockpos_over_mapgen_limit(v3s16 p)
{
const s16 mapgen_limit_bp = rangelim(
@@ -1351,6 +1318,9 @@ bool ServerMap::initBlockMake(v3s16 blockpos, BlockMakeData *data)
v3s16 bpmin = EmergeManager::getContainingChunk(blockpos, csize);
v3s16 bpmax = bpmin + v3s16(1, 1, 1) * (csize - 1);
+ if (!m_chunks_in_progress.insert(bpmin).second)
+ return false;
+
bool enable_mapgen_debug_info = m_emerge->enable_mapgen_debug_info;
EMERGE_DBG_OUT("initBlockMake(): " PP(bpmin) " - " PP(bpmax));
@@ -1366,7 +1336,6 @@ bool ServerMap::initBlockMake(v3s16 blockpos, BlockMakeData *data)
data->seed = getSeed();
data->blockpos_min = bpmin;
data->blockpos_max = bpmax;
- data->blockpos_requested = blockpos;
data->nodedef = m_nodedef;
/*
@@ -1404,25 +1373,6 @@ bool ServerMap::initBlockMake(v3s16 blockpos, BlockMakeData *data)
data->vmanip = new MMVManip(this);
data->vmanip->initialEmerge(full_bpmin, full_bpmax);
- // Note: we may need this again at some point.
-#if 0
- // Ensure none of the blocks to be generated were marked as
- // containing CONTENT_IGNORE
- for (s16 z = blockpos_min.Z; z <= blockpos_max.Z; z++) {
- for (s16 y = blockpos_min.Y; y <= blockpos_max.Y; y++) {
- for (s16 x = blockpos_min.X; x <= blockpos_max.X; x++) {
- core::map<v3s16, u8>::Node *n;
- n = data->vmanip->m_loaded_blocks.find(v3s16(x, y, z));
- if (n == NULL)
- continue;
- u8 flags = n->getValue();
- flags &= ~VMANIP_BLOCK_CONTAINS_CIGNORE;
- n->setValue(flags);
- }
- }
- }
-#endif
-
// Data is ready now.
return true;
}
@@ -1433,8 +1383,6 @@ void ServerMap::finishBlockMake(BlockMakeData *data,
v3s16 bpmin = data->blockpos_min;
v3s16 bpmax = data->blockpos_max;
- v3s16 extra_borders(1, 1, 1);
-
bool enable_mapgen_debug_info = m_emerge->enable_mapgen_debug_info;
EMERGE_DBG_OUT("finishBlockMake(): " PP(bpmin) " - " PP(bpmax));
@@ -1488,6 +1436,7 @@ void ServerMap::finishBlockMake(BlockMakeData *data,
NOTE: Will be saved later.
*/
//save(MOD_STATE_WRITE_AT_UNLOAD);
+ m_chunks_in_progress.erase(bpmin);
}
MapSector *ServerMap::createSector(v2s16 p2d)
@@ -1526,116 +1475,6 @@ MapSector *ServerMap::createSector(v2s16 p2d)
return sector;
}
-#if 0
-/*
- This is a quick-hand function for calling makeBlock().
-*/
-MapBlock * ServerMap::generateBlock(
- v3s16 p,
- std::map<v3s16, MapBlock*> &modified_blocks
-)
-{
- bool enable_mapgen_debug_info = g_settings->getBool("enable_mapgen_debug_info");
-
- TimeTaker timer("generateBlock");
-
- //MapBlock *block = original_dummy;
-
- v2s16 p2d(p.X, p.Z);
- v2s16 p2d_nodes = p2d * MAP_BLOCKSIZE;
-
- /*
- Do not generate over-limit
- */
- if(blockpos_over_limit(p))
- {
- infostream<<FUNCTION_NAME<<": Block position over limit"<<std::endl;
- throw InvalidPositionException("generateBlock(): pos. over limit");
- }
-
- /*
- Create block make data
- */
- BlockMakeData data;
- initBlockMake(&data, p);
-
- /*
- Generate block
- */
- {
- TimeTaker t("mapgen::make_block()");
- mapgen->makeChunk(&data);
- //mapgen::make_block(&data);
-
- if(enable_mapgen_debug_info == false)
- t.stop(true); // Hide output
- }
-
- /*
- Blit data back on map, update lighting, add mobs and whatever this does
- */
- finishBlockMake(&data, modified_blocks);
-
- /*
- Get central block
- */
- MapBlock *block = getBlockNoCreateNoEx(p);
-
-#if 0
- /*
- Check result
- */
- if(block)
- {
- bool erroneus_content = false;
- for(s16 z0=0; z0<MAP_BLOCKSIZE; z0++)
- for(s16 y0=0; y0<MAP_BLOCKSIZE; y0++)
- for(s16 x0=0; x0<MAP_BLOCKSIZE; x0++)
- {
- v3s16 p(x0,y0,z0);
- MapNode n = block->getNode(p);
- if(n.getContent() == CONTENT_IGNORE)
- {
- infostream<<"CONTENT_IGNORE at "
- <<"("<<p.X<<","<<p.Y<<","<<p.Z<<")"
- <<std::endl;
- erroneus_content = true;
- assert(0);
- }
- }
- if(erroneus_content)
- {
- assert(0);
- }
- }
-#endif
-
-#if 0
- /*
- Generate a completely empty block
- */
- if(block)
- {
- for(s16 z0=0; z0<MAP_BLOCKSIZE; z0++)
- for(s16 x0=0; x0<MAP_BLOCKSIZE; x0++)
- {
- for(s16 y0=0; y0<MAP_BLOCKSIZE; y0++)
- {
- MapNode n;
- n.setContent(CONTENT_AIR);
- block->setNode(v3s16(x0,y0,z0), n);
- }
- }
- }
-#endif
-
- if(enable_mapgen_debug_info == false)
- timer.stop(true); // Hide output
-
- return block;
-}
-#endif
-
MapBlock * ServerMap::createBlock(v3s16 p)
{
/*
@@ -1732,59 +1571,6 @@ void ServerMap::updateVManip(v3s16 pos)
vm->m_is_dirty = true;
}
-s16 ServerMap::findGroundLevel(v2s16 p2d)
-{
-#if 0
- /*
- Uh, just do something random...
- */
- // Find existing map from top to down
- s16 max=63;
- s16 min=-64;
- v3s16 p(p2d.X, max, p2d.Y);
- for(; p.Y>min; p.Y--)
- {
- MapNode n = getNodeNoEx(p);
- if(n.getContent() != CONTENT_IGNORE)
- break;
- }
- if(p.Y == min)
- goto plan_b;
- // If this node is not air, go to plan b
- if(getNodeNoEx(p).getContent() != CONTENT_AIR)
- goto plan_b;
- // Search existing walkable and return it
- for(; p.Y>min; p.Y--)
- {
- MapNode n = getNodeNoEx(p);
- if(content_walkable(n.d) && n.getContent() != CONTENT_IGNORE)
- return p.Y;
- }
-
- // Move to plan b
-plan_b:
-#endif
-
- /*
- Determine from map generator noise functions
- */
-
- s16 level = m_emerge->getGroundLevelAtPoint(p2d);
- return level;
-
- //double level = base_rock_level_2d(m_seed, p2d) + AVERAGE_MUD_AMOUNT;
- //return (s16)level;
-}
-
-void ServerMap::createDirs(const std::string &path)
-{
- if (!fs::CreateAllDirs(path)) {
- m_dout<<"ServerMap: Failed to create directory "
- <<"\""<<path<<"\""<<std::endl;
- throw BaseException("ServerMap failed to create directory");
- }
-}
-
void ServerMap::save(ModifiedState save_level)
{
if (!m_map_saving_enabled) {
@@ -1919,10 +1705,10 @@ void ServerMap::endSave()
bool ServerMap::saveBlock(MapBlock *block)
{
- return saveBlock(block, dbase);
+ return saveBlock(block, dbase, m_map_compression_level);
}
-bool ServerMap::saveBlock(MapBlock *block, MapDatabase *db)
+bool ServerMap::saveBlock(MapBlock *block, MapDatabase *db, int compression_level)
{
v3s16 p3d = block->getPos();
@@ -1942,7 +1728,7 @@ bool ServerMap::saveBlock(MapBlock *block, MapDatabase *db)
*/
std::ostringstream o(std::ios_base::binary);
o.write((char*) &version, 1);
- block->serialize(o, version, true);
+ block->serialize(o, version, true, compression_level);
bool ret = db->saveBlock(p3d, o.str());
if (ret) {
diff --git a/src/map.h b/src/map.h
index 4d9847063..e68795c4a 100644
--- a/src/map.h
+++ b/src/map.h
@@ -123,7 +123,7 @@ class Map /*: public NodeContainer*/
{
public:
- Map(std::ostream &dout, IGameDef *gamedef);
+ Map(IGameDef *gamedef);
virtual ~Map();
DISABLE_CLASS_COPY(Map);
@@ -149,8 +149,6 @@ public:
MapSector * getSectorNoGenerateNoLock(v2s16 p2d);
// Same as the above (there exists no lock anymore)
MapSector * getSectorNoGenerate(v2s16 p2d);
- // Gets an existing sector or creates an empty one
- //MapSector * getSectorCreate(v2s16 p2d);
/*
This is overloaded by ClientMap and ServerMap to allow
@@ -269,11 +267,6 @@ public:
void removeNodeTimer(v3s16 p);
/*
- Misc.
- */
- std::map<v2s16, MapSector*> *getSectorsPtr(){return &m_sectors;}
-
- /*
Variables
*/
@@ -283,8 +276,6 @@ public:
protected:
friend class LuaVoxelManip;
- std::ostream &m_dout; // A bit deprecated, could be removed
-
IGameDef *m_gamedef;
std::set<MapEventReceiver*> m_event_receivers;
@@ -374,15 +365,6 @@ public:
*/
MapBlock *getBlockOrEmerge(v3s16 p3d);
- // Helper for placing objects on ground level
- s16 findGroundLevel(v2s16 p2d);
-
- /*
- Misc. helper functions for fiddling with directory and file
- names when saving
- */
- void createDirs(const std::string &path);
-
/*
Database functions
*/
@@ -399,7 +381,7 @@ public:
MapgenParams *getMapgenParams();
bool saveBlock(MapBlock *block);
- static bool saveBlock(MapBlock *block, MapDatabase *db);
+ static bool saveBlock(MapBlock *block, MapDatabase *db, int compression_level = -1);
MapBlock* loadBlock(v3s16 p);
// Database version
void loadBlock(std::string *blob, v3s16 p3d, MapSector *sector, bool save_after_load=false);
@@ -414,7 +396,6 @@ public:
bool isSavingEnabled(){ return m_map_saving_enabled; }
u64 getSeed();
- s16 getWaterLevel();
/*!
* Fixes lighting in one map block.
@@ -435,13 +416,9 @@ private:
std::string m_savedir;
bool m_map_saving_enabled;
-#if 0
- // Chunk size in MapSectors
- // If 0, chunks are disabled.
- s16 m_chunksize;
- // Chunks
- core::map<v2s16, MapChunk*> m_chunks;
-#endif
+ int m_map_compression_level;
+
+ std::set<v3s16> m_chunks_in_progress;
/*
Metadata is re-written on disk only if this is true.
diff --git a/src/map_settings_manager.cpp b/src/map_settings_manager.cpp
index 4f070e910..99e3cb0e6 100644
--- a/src/map_settings_manager.cpp
+++ b/src/map_settings_manager.cpp
@@ -25,13 +25,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "map_settings_manager.h"
-MapSettingsManager::MapSettingsManager(Settings *user_settings,
- const std::string &map_meta_path):
- m_map_meta_path(map_meta_path),
- m_map_settings(new Settings()),
- m_user_settings(user_settings)
+MapSettingsManager::MapSettingsManager(const std::string &map_meta_path):
+ m_map_meta_path(map_meta_path)
{
- assert(m_user_settings != NULL);
+ m_map_settings = Settings::createLayer(SL_MAP, "[end_of_params]");
+ Mapgen::setDefaultSettings(Settings::getLayer(SL_DEFAULTS));
}
@@ -45,22 +43,23 @@ MapSettingsManager::~MapSettingsManager()
bool MapSettingsManager::getMapSetting(
const std::string &name, std::string *value_out)
{
+ // Get from map_meta.txt, then try from all other sources
if (m_map_settings->getNoEx(name, *value_out))
return true;
// Compatibility kludge
- if (m_user_settings == g_settings && name == "seed")
- return m_user_settings->getNoEx("fixed_map_seed", *value_out);
+ if (name == "seed")
+ return Settings::getLayer(SL_GLOBAL)->getNoEx("fixed_map_seed", *value_out);
- return m_user_settings->getNoEx(name, *value_out);
+ return false;
}
bool MapSettingsManager::getMapSettingNoiseParams(
const std::string &name, NoiseParams *value_out)
{
- return m_map_settings->getNoiseParams(name, *value_out) ||
- m_user_settings->getNoiseParams(name, *value_out);
+ // TODO: Rename to "getNoiseParams"
+ return m_map_settings->getNoiseParams(name, *value_out);
}
@@ -73,7 +72,7 @@ bool MapSettingsManager::setMapSetting(
if (override_meta)
m_map_settings->set(name, value);
else
- m_map_settings->setDefault(name, value);
+ Settings::getLayer(SL_GLOBAL)->set(name, value);
return true;
}
@@ -85,7 +84,11 @@ bool MapSettingsManager::setMapSettingNoiseParams(
if (mapgen_params)
return false;
- m_map_settings->setNoiseParams(name, *value, !override_meta);
+ if (override_meta)
+ m_map_settings->setNoiseParams(name, *value);
+ else
+ Settings::getLayer(SL_GLOBAL)->setNoiseParams(name, *value);
+
return true;
}
@@ -100,8 +103,8 @@ bool MapSettingsManager::loadMapMeta()
return false;
}
- if (!m_map_settings->parseConfigLines(is, "[end_of_params]")) {
- errorstream << "loadMapMeta: [end_of_params] not found!" << std::endl;
+ if (!m_map_settings->parseConfigLines(is)) {
+ errorstream << "loadMapMeta: Format error. '[end_of_params]' missing?" << std::endl;
return false;
}
@@ -112,28 +115,23 @@ bool MapSettingsManager::loadMapMeta()
bool MapSettingsManager::saveMapMeta()
{
// If mapgen params haven't been created yet; abort
- if (!mapgen_params)
+ if (!mapgen_params) {
+ infostream << "saveMapMeta: mapgen_params not present! "
+ << "Server startup was probably interrupted." << std::endl;
return false;
+ }
+ // Paths set up by subgames.cpp, but not in unittests
if (!fs::CreateAllDirs(fs::RemoveLastPathComponent(m_map_meta_path))) {
errorstream << "saveMapMeta: could not create dirs to "
<< m_map_meta_path;
return false;
}
- std::ostringstream oss(std::ios_base::binary);
- Settings conf;
-
- mapgen_params->MapgenParams::writeParams(&conf);
- mapgen_params->writeParams(&conf);
- conf.writeLines(oss);
+ mapgen_params->MapgenParams::writeParams(m_map_settings);
+ mapgen_params->writeParams(m_map_settings);
- // NOTE: If there are ever types of map settings other than
- // those relating to map generation, save them here
-
- oss << "[end_of_params]\n";
-
- if (!fs::safeWriteToFile(m_map_meta_path, oss.str())) {
+ if (!m_map_settings->updateConfigFile(m_map_meta_path.c_str())) {
errorstream << "saveMapMeta: could not write "
<< m_map_meta_path << std::endl;
return false;
@@ -148,23 +146,21 @@ MapgenParams *MapSettingsManager::makeMapgenParams()
if (mapgen_params)
return mapgen_params;
- assert(m_user_settings != NULL);
assert(m_map_settings != NULL);
// At this point, we have (in order of precedence):
- // 1). m_mapgen_settings->m_settings containing map_meta.txt settings or
+ // 1). SL_MAP containing map_meta.txt settings or
// explicit overrides from scripts
- // 2). m_mapgen_settings->m_defaults containing script-set mgparams without
- // overrides
- // 3). g_settings->m_settings containing all user-specified config file
+ // 2). SL_GLOBAL containing all user-specified config file
// settings
- // 4). g_settings->m_defaults containing any low-priority settings from
+ // 3). SL_DEFAULTS containing any low-priority settings from
// scripts, e.g. mods using Lua as an enhanced config file)
// Now, get the mapgen type so we can create the appropriate MapgenParams
std::string mg_name;
MapgenType mgtype = getMapSetting("mg_name", &mg_name) ?
Mapgen::getMapgenType(mg_name) : MAPGEN_DEFAULT;
+
if (mgtype == MAPGEN_INVALID) {
errorstream << "EmergeManager: mapgen '" << mg_name <<
"' not valid; falling back to " <<
@@ -179,20 +175,8 @@ MapgenParams *MapSettingsManager::makeMapgenParams()
params->mgtype = mgtype;
- // Load the mapgen param defaults
- /* FIXME: Why is it done like this? MapgenParams should just
- * set the defaults in its constructor instead. */
- {
- Settings default_settings;
- Mapgen::setDefaultSettings(&default_settings);
- params->MapgenParams::readParams(&default_settings);
- params->readParams(&default_settings);
- }
-
// Load the rest of the mapgen params from our active settings
- params->MapgenParams::readParams(m_user_settings);
params->MapgenParams::readParams(m_map_settings);
- params->readParams(m_user_settings);
params->readParams(m_map_settings);
// Hold onto our params
diff --git a/src/map_settings_manager.h b/src/map_settings_manager.h
index 5baa38455..9258d3032 100644
--- a/src/map_settings_manager.h
+++ b/src/map_settings_manager.h
@@ -44,8 +44,7 @@ struct MapgenParams;
*/
class MapSettingsManager {
public:
- MapSettingsManager(Settings *user_settings,
- const std::string &map_meta_path);
+ MapSettingsManager(const std::string &map_meta_path);
~MapSettingsManager();
// Finalized map generation parameters
@@ -71,6 +70,6 @@ public:
private:
std::string m_map_meta_path;
+ // TODO: Rename to "m_settings"
Settings *m_map_settings;
- Settings *m_user_settings;
};
diff --git a/src/mapblock.cpp b/src/mapblock.cpp
index 5b755b7a6..0ca71e643 100644
--- a/src/mapblock.cpp
+++ b/src/mapblock.cpp
@@ -355,7 +355,7 @@ static void correctBlockNodeIds(const NameIdMapping *nimap, MapNode *nodes,
}
}
-void MapBlock::serialize(std::ostream &os, u8 version, bool disk)
+void MapBlock::serialize(std::ostream &os, u8 version, bool disk, int compression_level)
{
if(!ser_ver_supported(version))
throw VersionMismatchException("ERROR: MapBlock format not supported");
@@ -394,7 +394,7 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk)
writeU8(os, content_width);
writeU8(os, params_width);
MapNode::serializeBulk(os, version, tmp_nodes, nodecount,
- content_width, params_width, true);
+ content_width, params_width, compression_level);
delete[] tmp_nodes;
}
else
@@ -404,7 +404,7 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk)
writeU8(os, content_width);
writeU8(os, params_width);
MapNode::serializeBulk(os, version, data, nodecount,
- content_width, params_width, true);
+ content_width, params_width, compression_level);
}
/*
@@ -412,7 +412,7 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk)
*/
std::ostringstream oss(std::ios_base::binary);
m_node_metadata.serialize(oss, version, disk);
- compressZlib(oss.str(), os);
+ compressZlib(oss.str(), os, compression_level);
/*
Data that goes to disk, but not the network
@@ -485,7 +485,7 @@ void MapBlock::deSerialize(std::istream &is, u8 version, bool disk)
if(params_width != 2)
throw SerializationError("MapBlock::deSerialize(): invalid params_width");
MapNode::deSerializeBulk(is, version, data, nodecount,
- content_width, params_width, true);
+ content_width, params_width);
/*
NodeMetadata
@@ -533,7 +533,7 @@ void MapBlock::deSerialize(std::istream &is, u8 version, bool disk)
// Timestamp
TRACESTREAM(<<"MapBlock::deSerialize "<<PP(getPos())
<<": Timestamp"<<std::endl);
- setTimestamp(readU32(is));
+ setTimestampNoChangedFlag(readU32(is));
m_disk_timestamp = m_timestamp;
// Dynamically re-set ids based on node names
@@ -668,13 +668,13 @@ void MapBlock::deSerialize_pre22(std::istream &is, u8 version, bool disk)
// Ignore errors
try {
if (version <= 15) {
- std::string data = deSerializeString(is);
+ std::string data = deSerializeString16(is);
std::istringstream iss(data, std::ios_base::binary);
content_nodemeta_deserialize_legacy(iss,
&m_node_metadata, &m_node_timers,
m_gamedef->idef());
} else {
- //std::string data = deSerializeLongString(is);
+ //std::string data = deSerializeString32(is);
std::ostringstream oss(std::ios_base::binary);
decompressZlib(is, oss);
std::istringstream iss(oss.str(), std::ios_base::binary);
@@ -716,10 +716,10 @@ void MapBlock::deSerialize_pre22(std::istream &is, u8 version, bool disk)
// Timestamp
if (version >= 17) {
- setTimestamp(readU32(is));
+ setTimestampNoChangedFlag(readU32(is));
m_disk_timestamp = m_timestamp;
} else {
- setTimestamp(BLOCK_TIMESTAMP_UNDEFINED);
+ setTimestampNoChangedFlag(BLOCK_TIMESTAMP_UNDEFINED);
}
// Dynamically re-set ids based on node names
diff --git a/src/mapblock.h b/src/mapblock.h
index 6b5015cab..7b82301e9 100644
--- a/src/mapblock.h
+++ b/src/mapblock.h
@@ -340,15 +340,6 @@ public:
// is not valid on this MapBlock.
bool isValidPositionParent(v3s16 p);
MapNode getNodeParent(v3s16 p, bool *is_valid_position = NULL);
- void setNodeParent(v3s16 p, MapNode & n);
-
- inline void drawbox(s16 x0, s16 y0, s16 z0, s16 w, s16 h, s16 d, MapNode node)
- {
- for (u16 z = 0; z < d; z++)
- for (u16 y = 0; y < h; y++)
- for (u16 x = 0; x < w; x++)
- setNode(x0 + x, y0 + y, z0 + z, node);
- }
// Copies data to VoxelManipulator to getPosRelative()
void copyTo(VoxelManipulator &dst);
@@ -482,7 +473,7 @@ public:
// These don't write or read version by itself
// Set disk to true for on-disk format, false for over-the-network format
// Precondition: version >= SER_FMT_VER_LOWEST_WRITE
- void serialize(std::ostream &os, u8 version, bool disk);
+ void serialize(std::ostream &os, u8 version, bool disk, int compression_level);
// If disk == true: In addition to doing other things, will add
// unknown blocks from id-name mapping to wndef
void deSerialize(std::istream &is, u8 version, bool disk);
diff --git a/src/mapgen/mapgen.cpp b/src/mapgen/mapgen.cpp
index f57529082..e0dfd2d71 100644
--- a/src/mapgen/mapgen.cpp
+++ b/src/mapgen/mapgen.cpp
@@ -58,6 +58,7 @@ FlagDesc flagdesc_mapgen[] = {
{"light", MG_LIGHT},
{"decorations", MG_DECORATIONS},
{"biomes", MG_BIOMES},
+ {"ores", MG_ORES},
{NULL, 0}
};
@@ -217,7 +218,7 @@ void Mapgen::getMapgenNames(std::vector<const char *> *mgnames, bool include_hid
void Mapgen::setDefaultSettings(Settings *settings)
{
settings->setDefault("mg_flags", flagdesc_mapgen,
- MG_CAVES | MG_DUNGEONS | MG_LIGHT | MG_DECORATIONS | MG_BIOMES);
+ MG_CAVES | MG_DUNGEONS | MG_LIGHT | MG_DECORATIONS | MG_BIOMES | MG_ORES);
for (int i = 0; i < (int)MAPGEN_INVALID; ++i) {
MapgenParams *params = createMapgenParams((MapgenType)i);
@@ -243,26 +244,6 @@ u32 Mapgen::getBlockSeed2(v3s16 p, s32 seed)
}
-// Returns Y one under area minimum if not found
-s16 Mapgen::findGroundLevelFull(v2s16 p2d)
-{
- const v3s16 &em = vm->m_area.getExtent();
- s16 y_nodes_max = vm->m_area.MaxEdge.Y;
- s16 y_nodes_min = vm->m_area.MinEdge.Y;
- u32 i = vm->m_area.index(p2d.X, y_nodes_max, p2d.Y);
- s16 y;
-
- for (y = y_nodes_max; y >= y_nodes_min; y--) {
- MapNode &n = vm->m_data[i];
- if (ndef->get(n).walkable)
- break;
-
- VoxelArea::add_y(em, i, -1);
- }
- return (y >= y_nodes_min) ? y : y_nodes_min - 1;
-}
-
-
// Returns -MAX_MAP_GENERATION_LIMIT if not found
s16 Mapgen::findGroundLevel(v2s16 p2d, s16 ymin, s16 ymax)
{
@@ -983,19 +964,6 @@ GenerateNotifier::GenerateNotifier(u32 notify_on,
}
-void GenerateNotifier::setNotifyOn(u32 notify_on)
-{
- m_notify_on = notify_on;
-}
-
-
-void GenerateNotifier::setNotifyOnDecoIds(
- const std::set<u32> *notify_on_deco_ids)
-{
- m_notify_on_deco_ids = notify_on_deco_ids;
-}
-
-
bool GenerateNotifier::addEvent(GenNotifyType type, v3s16 pos, u32 id)
{
if (!(m_notify_on & (1 << type)))
diff --git a/src/mapgen/mapgen.h b/src/mapgen/mapgen.h
index a92b3b0d0..61db4f3b9 100644
--- a/src/mapgen/mapgen.h
+++ b/src/mapgen/mapgen.h
@@ -30,13 +30,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define MAPGEN_DEFAULT_NAME "v7"
/////////////////// Mapgen flags
-#define MG_TREES 0x01 // Obsolete. Moved into mgv6 flags
#define MG_CAVES 0x02
#define MG_DUNGEONS 0x04
-#define MG_FLAT 0x08 // Obsolete. Moved into mgv6 flags
#define MG_LIGHT 0x10
#define MG_DECORATIONS 0x20
#define MG_BIOMES 0x40
+#define MG_ORES 0x80
typedef u16 biome_t; // copy from mg_biome.h to avoid an unnecessary include
@@ -87,19 +86,17 @@ struct GenNotifyEvent {
class GenerateNotifier {
public:
+ // Use only for temporary Mapgen objects with no map generation!
GenerateNotifier() = default;
GenerateNotifier(u32 notify_on, const std::set<u32> *notify_on_deco_ids);
- void setNotifyOn(u32 notify_on);
- void setNotifyOnDecoIds(const std::set<u32> *notify_on_deco_ids);
-
bool addEvent(GenNotifyType type, v3s16 pos, u32 id=0);
void getEvents(std::map<std::string, std::vector<v3s16> > &event_map);
void clearEvents();
private:
u32 m_notify_on = 0;
- const std::set<u32> *m_notify_on_deco_ids;
+ const std::set<u32> *m_notify_on_deco_ids = nullptr;
std::list<GenNotifyEvent> m_notify_events;
};
@@ -185,7 +182,6 @@ public:
static u32 getBlockSeed(v3s16 p, s32 seed);
static u32 getBlockSeed2(v3s16 p, s32 seed);
- s16 findGroundLevelFull(v2s16 p2d);
s16 findGroundLevel(v2s16 p2d, s16 ymin, s16 ymax);
s16 findLiquidSurface(v2s16 p2d, s16 ymin, s16 ymax);
void updateHeightmap(v3s16 nmin, v3s16 nmax);
diff --git a/src/mapgen/mapgen_carpathian.cpp b/src/mapgen/mapgen_carpathian.cpp
index feb9b428c..b3a0bd270 100644
--- a/src/mapgen/mapgen_carpathian.cpp
+++ b/src/mapgen/mapgen_carpathian.cpp
@@ -260,12 +260,6 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data)
// Pre-conditions
assert(data->vmanip);
assert(data->nodedef);
- assert(data->blockpos_requested.X >= data->blockpos_min.X &&
- data->blockpos_requested.Y >= data->blockpos_min.Y &&
- data->blockpos_requested.Z >= data->blockpos_min.Z);
- assert(data->blockpos_requested.X <= data->blockpos_max.X &&
- data->blockpos_requested.Y <= data->blockpos_max.Y &&
- data->blockpos_requested.Z <= data->blockpos_max.Z);
this->generating = true;
this->vm = data->vmanip;
@@ -315,7 +309,8 @@ void MapgenCarpathian::makeChunk(BlockMakeData *data)
}
// Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+ if (flags & MG_ORES)
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
// Generate dungeons
if (flags & MG_DUNGEONS)
diff --git a/src/mapgen/mapgen_flat.cpp b/src/mapgen/mapgen_flat.cpp
index 369777ad2..342455029 100644
--- a/src/mapgen/mapgen_flat.cpp
+++ b/src/mapgen/mapgen_flat.cpp
@@ -1,7 +1,7 @@
/*
Minetest
-Copyright (C) 2015-2018 paramat
-Copyright (C) 2015-2018 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
+Copyright (C) 2015-2020 paramat
+Copyright (C) 2015-2016 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
@@ -39,8 +39,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
FlagDesc flagdesc_mapgen_flat[] = {
- {"lakes", MGFLAT_LAKES},
- {"hills", MGFLAT_HILLS},
+ {"lakes", MGFLAT_LAKES},
+ {"hills", MGFLAT_HILLS},
+ {"caverns", MGFLAT_CAVERNS},
{NULL, 0}
};
@@ -52,17 +53,21 @@ MapgenFlat::MapgenFlat(MapgenFlatParams *params, EmergeParams *emerge)
{
spflags = params->spflags;
ground_level = params->ground_level;
- large_cave_depth = params->large_cave_depth;
+ lake_threshold = params->lake_threshold;
+ lake_steepness = params->lake_steepness;
+ hill_threshold = params->hill_threshold;
+ hill_steepness = params->hill_steepness;
+
+ cave_width = params->cave_width;
small_cave_num_min = params->small_cave_num_min;
small_cave_num_max = params->small_cave_num_max;
large_cave_num_min = params->large_cave_num_min;
large_cave_num_max = params->large_cave_num_max;
+ large_cave_depth = params->large_cave_depth;
large_cave_flooded = params->large_cave_flooded;
- cave_width = params->cave_width;
- lake_threshold = params->lake_threshold;
- lake_steepness = params->lake_steepness;
- hill_threshold = params->hill_threshold;
- hill_steepness = params->hill_steepness;
+ cavern_limit = params->cavern_limit;
+ cavern_taper = params->cavern_taper;
+ cavern_threshold = params->cavern_threshold;
dungeon_ymin = params->dungeon_ymin;
dungeon_ymax = params->dungeon_ymax;
@@ -71,9 +76,11 @@ MapgenFlat::MapgenFlat(MapgenFlatParams *params, EmergeParams *emerge)
if ((spflags & MGFLAT_LAKES) || (spflags & MGFLAT_HILLS))
noise_terrain = new Noise(&params->np_terrain, seed, csize.X, csize.Z);
+
// 3D noise
MapgenBasic::np_cave1 = params->np_cave1;
MapgenBasic::np_cave2 = params->np_cave2;
+ MapgenBasic::np_cavern = params->np_cavern;
MapgenBasic::np_dungeons = params->np_dungeons;
}
@@ -88,11 +95,12 @@ MapgenFlat::~MapgenFlat()
MapgenFlatParams::MapgenFlatParams():
- np_terrain (0, 1, v3f(600, 600, 600), 7244, 5, 0.6, 2.0),
- np_filler_depth (0, 1.2, v3f(150, 150, 150), 261, 3, 0.7, 2.0),
- np_cave1 (0, 12, v3f(61, 61, 61), 52534, 3, 0.5, 2.0),
- np_cave2 (0, 12, v3f(67, 67, 67), 10325, 3, 0.5, 2.0),
- np_dungeons (0.9, 0.5, v3f(500, 500, 500), 0, 2, 0.8, 2.0)
+ np_terrain (0, 1, v3f(600, 600, 600), 7244, 5, 0.6, 2.0),
+ np_filler_depth (0, 1.2, v3f(150, 150, 150), 261, 3, 0.7, 2.0),
+ np_cavern (0.0, 1.0, v3f(384, 128, 384), 723, 5, 0.63, 2.0),
+ np_cave1 (0, 12, v3f(61, 61, 61), 52534, 3, 0.5, 2.0),
+ np_cave2 (0, 12, v3f(67, 67, 67), 10325, 3, 0.5, 2.0),
+ np_dungeons (0.9, 0.5, v3f(500, 500, 500), 0, 2, 0.8, 2.0)
{
}
@@ -112,11 +120,15 @@ void MapgenFlatParams::readParams(const Settings *settings)
settings->getFloatNoEx("mgflat_lake_steepness", lake_steepness);
settings->getFloatNoEx("mgflat_hill_threshold", hill_threshold);
settings->getFloatNoEx("mgflat_hill_steepness", hill_steepness);
+ settings->getS16NoEx("mgflat_cavern_limit", cavern_limit);
+ settings->getS16NoEx("mgflat_cavern_taper", cavern_taper);
+ settings->getFloatNoEx("mgflat_cavern_threshold", cavern_threshold);
settings->getS16NoEx("mgflat_dungeon_ymin", dungeon_ymin);
settings->getS16NoEx("mgflat_dungeon_ymax", dungeon_ymax);
settings->getNoiseParams("mgflat_np_terrain", np_terrain);
settings->getNoiseParams("mgflat_np_filler_depth", np_filler_depth);
+ settings->getNoiseParams("mgflat_np_cavern", np_cavern);
settings->getNoiseParams("mgflat_np_cave1", np_cave1);
settings->getNoiseParams("mgflat_np_cave2", np_cave2);
settings->getNoiseParams("mgflat_np_dungeons", np_dungeons);
@@ -138,11 +150,15 @@ void MapgenFlatParams::writeParams(Settings *settings) const
settings->setFloat("mgflat_lake_steepness", lake_steepness);
settings->setFloat("mgflat_hill_threshold", hill_threshold);
settings->setFloat("mgflat_hill_steepness", hill_steepness);
+ settings->setS16("mgflat_cavern_limit", cavern_limit);
+ settings->setS16("mgflat_cavern_taper", cavern_taper);
+ settings->setFloat("mgflat_cavern_threshold", cavern_threshold);
settings->setS16("mgflat_dungeon_ymin", dungeon_ymin);
settings->setS16("mgflat_dungeon_ymax", dungeon_ymax);
settings->setNoiseParams("mgflat_np_terrain", np_terrain);
settings->setNoiseParams("mgflat_np_filler_depth", np_filler_depth);
+ settings->setNoiseParams("mgflat_np_cavern", np_cavern);
settings->setNoiseParams("mgflat_np_cave1", np_cave1);
settings->setNoiseParams("mgflat_np_cave2", np_cave2);
settings->setNoiseParams("mgflat_np_dungeons", np_dungeons);
@@ -193,12 +209,6 @@ void MapgenFlat::makeChunk(BlockMakeData *data)
// Pre-conditions
assert(data->vmanip);
assert(data->nodedef);
- assert(data->blockpos_requested.X >= data->blockpos_min.X &&
- data->blockpos_requested.Y >= data->blockpos_min.Y &&
- data->blockpos_requested.Z >= data->blockpos_min.Z);
- assert(data->blockpos_requested.X <= data->blockpos_max.X &&
- data->blockpos_requested.Y <= data->blockpos_max.Y &&
- data->blockpos_requested.Z <= data->blockpos_max.Z);
this->generating = true;
this->vm = data->vmanip;
@@ -226,15 +236,30 @@ void MapgenFlat::makeChunk(BlockMakeData *data)
generateBiomes();
}
+ // Generate tunnels, caverns and large randomwalk caves
if (flags & MG_CAVES) {
- // Generate tunnels
+ // Generate tunnels first as caverns confuse them
generateCavesNoiseIntersection(stone_surface_max_y);
+
+ // Generate caverns
+ bool near_cavern = false;
+ if (spflags & MGFLAT_CAVERNS)
+ near_cavern = generateCavernsNoise(stone_surface_max_y);
+
// Generate large randomwalk caves
- generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
+ if (near_cavern)
+ // Disable large randomwalk caves in this mapchunk by setting
+ // 'large cave depth' to world base. Avoids excessive liquid in
+ // large caverns and floating blobs of overgenerated liquid.
+ generateCavesRandomWalk(stone_surface_max_y,
+ -MAX_MAP_GENERATION_LIMIT);
+ else
+ generateCavesRandomWalk(stone_surface_max_y, large_cave_depth);
}
// Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+ if (flags & MG_ORES)
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
if (flags & MG_DUNGEONS)
generateDungeons(stone_surface_max_y);
diff --git a/src/mapgen/mapgen_flat.h b/src/mapgen/mapgen_flat.h
index 4902a802c..4b46aff27 100644
--- a/src/mapgen/mapgen_flat.h
+++ b/src/mapgen/mapgen_flat.h
@@ -1,7 +1,7 @@
/*
Minetest
-Copyright (C) 2015-2018 paramat
-Copyright (C) 2015-2018 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
+Copyright (C) 2015-2020 paramat
+Copyright (C) 2015-2016 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
@@ -25,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
/////// Mapgen Flat flags
#define MGFLAT_LAKES 0x01
#define MGFLAT_HILLS 0x02
+#define MGFLAT_CAVERNS 0x04
class BiomeManager;
@@ -33,22 +34,27 @@ extern FlagDesc flagdesc_mapgen_flat[];
struct MapgenFlatParams : public MapgenParams
{
s16 ground_level = 8;
- s16 large_cave_depth = -33;
+ float lake_threshold = -0.45f;
+ float lake_steepness = 48.0f;
+ float hill_threshold = 0.45f;
+ float hill_steepness = 64.0f;
+
+ float cave_width = 0.09f;
u16 small_cave_num_min = 0;
u16 small_cave_num_max = 0;
u16 large_cave_num_min = 0;
u16 large_cave_num_max = 2;
+ s16 large_cave_depth = -33;
float large_cave_flooded = 0.5f;
- float cave_width = 0.09f;
- float lake_threshold = -0.45f;
- float lake_steepness = 48.0f;
- float hill_threshold = 0.45f;
- float hill_steepness = 64.0f;
+ s16 cavern_limit = -256;
+ s16 cavern_taper = 256;
+ float cavern_threshold = 0.7f;
s16 dungeon_ymin = -31000;
s16 dungeon_ymax = 31000;
NoiseParams np_terrain;
NoiseParams np_filler_depth;
+ NoiseParams np_cavern;
NoiseParams np_cave1;
NoiseParams np_cave2;
NoiseParams np_dungeons;
diff --git a/src/mapgen/mapgen_fractal.cpp b/src/mapgen/mapgen_fractal.cpp
index cb55bc288..fabb1b2b1 100644
--- a/src/mapgen/mapgen_fractal.cpp
+++ b/src/mapgen/mapgen_fractal.cpp
@@ -209,12 +209,6 @@ void MapgenFractal::makeChunk(BlockMakeData *data)
// Pre-conditions
assert(data->vmanip);
assert(data->nodedef);
- assert(data->blockpos_requested.X >= data->blockpos_min.X &&
- data->blockpos_requested.Y >= data->blockpos_min.Y &&
- data->blockpos_requested.Z >= data->blockpos_min.Z);
- assert(data->blockpos_requested.X <= data->blockpos_max.X &&
- data->blockpos_requested.Y <= data->blockpos_max.Y &&
- data->blockpos_requested.Z <= data->blockpos_max.Z);
//TimeTaker t("makeChunk");
@@ -250,7 +244,8 @@ void MapgenFractal::makeChunk(BlockMakeData *data)
}
// Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+ if (flags & MG_ORES)
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
// Generate dungeons
if (flags & MG_DUNGEONS)
diff --git a/src/mapgen/mapgen_singlenode.cpp b/src/mapgen/mapgen_singlenode.cpp
index cade9e7a8..5382423fa 100644
--- a/src/mapgen/mapgen_singlenode.cpp
+++ b/src/mapgen/mapgen_singlenode.cpp
@@ -50,12 +50,6 @@ void MapgenSinglenode::makeChunk(BlockMakeData *data)
// Pre-conditions
assert(data->vmanip);
assert(data->nodedef);
- assert(data->blockpos_requested.X >= data->blockpos_min.X &&
- data->blockpos_requested.Y >= data->blockpos_min.Y &&
- data->blockpos_requested.Z >= data->blockpos_min.Z);
- assert(data->blockpos_requested.X <= data->blockpos_max.X &&
- data->blockpos_requested.Y <= data->blockpos_max.Y &&
- data->blockpos_requested.Z <= data->blockpos_max.Z);
this->generating = true;
this->vm = data->vmanip;
diff --git a/src/mapgen/mapgen_v5.cpp b/src/mapgen/mapgen_v5.cpp
index 124667e5d..87e54755f 100644
--- a/src/mapgen/mapgen_v5.cpp
+++ b/src/mapgen/mapgen_v5.cpp
@@ -201,12 +201,6 @@ void MapgenV5::makeChunk(BlockMakeData *data)
// Pre-conditions
assert(data->vmanip);
assert(data->nodedef);
- assert(data->blockpos_requested.X >= data->blockpos_min.X &&
- data->blockpos_requested.Y >= data->blockpos_min.Y &&
- data->blockpos_requested.Z >= data->blockpos_min.Z);
- assert(data->blockpos_requested.X <= data->blockpos_max.X &&
- data->blockpos_requested.Y <= data->blockpos_max.Y &&
- data->blockpos_requested.Z <= data->blockpos_max.Z);
this->generating = true;
this->vm = data->vmanip;
@@ -257,7 +251,8 @@ void MapgenV5::makeChunk(BlockMakeData *data)
}
// Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+ if (flags & MG_ORES)
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
// Generate dungeons and desert temples
if (flags & MG_DUNGEONS)
diff --git a/src/mapgen/mapgen_v6.cpp b/src/mapgen/mapgen_v6.cpp
index e9692246c..bce9cee81 100644
--- a/src/mapgen/mapgen_v6.cpp
+++ b/src/mapgen/mapgen_v6.cpp
@@ -341,12 +341,6 @@ float MapgenV6::baseTerrainLevelFromMap(int index)
}
-s16 MapgenV6::find_ground_level_from_noise(u64 seed, v2s16 p2d, s16 precision)
-{
- return baseTerrainLevelFromNoise(p2d) + MGV6_AVERAGE_MUD_AMOUNT;
-}
-
-
int MapgenV6::getGroundLevelAtPoint(v2s16 p)
{
return baseTerrainLevelFromNoise(p) + MGV6_AVERAGE_MUD_AMOUNT;
@@ -518,12 +512,6 @@ void MapgenV6::makeChunk(BlockMakeData *data)
// Pre-conditions
assert(data->vmanip);
assert(data->nodedef);
- assert(data->blockpos_requested.X >= data->blockpos_min.X &&
- data->blockpos_requested.Y >= data->blockpos_min.Y &&
- data->blockpos_requested.Z >= data->blockpos_min.Z);
- assert(data->blockpos_requested.X <= data->blockpos_max.X &&
- data->blockpos_requested.Y <= data->blockpos_max.Y &&
- data->blockpos_requested.Z <= data->blockpos_max.Z);
this->generating = true;
this->vm = data->vmanip;
@@ -652,7 +640,8 @@ void MapgenV6::makeChunk(BlockMakeData *data)
m_emerge->decomgr->placeAllDecos(this, blockseed, node_min, node_max);
// Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+ if (flags & MG_ORES)
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
// Calculate lighting
if (flags & MG_LIGHT)
@@ -803,7 +792,7 @@ void MapgenV6::flowMud(s16 &mudflow_minpos, s16 &mudflow_maxpos)
v3s16(0, 0, -1), // Front
v3s16(-1, 0, 0), // Left
};
-
+
// Iterate twice
for (s16 k = 0; k < 2; k++) {
for (s16 z = mudflow_minpos; z <= mudflow_maxpos; z++)
@@ -1066,7 +1055,6 @@ void MapgenV6::growGrass() // Add surface nodes
MapNode n_dirt_with_grass(c_dirt_with_grass);
MapNode n_dirt_with_snow(c_dirt_with_snow);
MapNode n_snowblock(c_snowblock);
- MapNode n_snow(c_snow);
const v3s16 &em = vm->m_area.getExtent();
u32 index = 0;
diff --git a/src/mapgen/mapgen_v6.h b/src/mapgen/mapgen_v6.h
index ff565edec..a6e6da8c6 100644
--- a/src/mapgen/mapgen_v6.h
+++ b/src/mapgen/mapgen_v6.h
@@ -150,7 +150,6 @@ public:
s16 find_stone_level(v2s16 p2d);
bool block_is_underground(u64 seed, v3s16 blockpos);
- s16 find_ground_level_from_noise(u64 seed, v2s16 p2d, s16 precision);
float getHumidity(v2s16 p);
float getTreeAmount(v2s16 p);
diff --git a/src/mapgen/mapgen_v7.cpp b/src/mapgen/mapgen_v7.cpp
index e93dc9140..91f004518 100644
--- a/src/mapgen/mapgen_v7.cpp
+++ b/src/mapgen/mapgen_v7.cpp
@@ -297,7 +297,7 @@ int MapgenV7::getSpawnLevelAtPoint(v2s16 p)
int iters = 256;
while (iters > 0 && y <= max_spawn_y) {
if (!getMountainTerrainAtPoint(p.X, y + 1, p.Y)) {
- if (y <= water_level || y > max_spawn_y)
+ if (y <= water_level)
return MAX_MAP_GENERATION_LIMIT; // Unsuitable spawn point
// y + 1 due to biome 'dust'
@@ -317,12 +317,6 @@ void MapgenV7::makeChunk(BlockMakeData *data)
// Pre-conditions
assert(data->vmanip);
assert(data->nodedef);
- assert(data->blockpos_requested.X >= data->blockpos_min.X &&
- data->blockpos_requested.Y >= data->blockpos_min.Y &&
- data->blockpos_requested.Z >= data->blockpos_min.Z);
- assert(data->blockpos_requested.X <= data->blockpos_max.X &&
- data->blockpos_requested.Y <= data->blockpos_max.Y &&
- data->blockpos_requested.Z <= data->blockpos_max.Z);
//TimeTaker t("makeChunk");
@@ -342,10 +336,6 @@ void MapgenV7::makeChunk(BlockMakeData *data)
// Generate base and mountain terrain
s16 stone_surface_max_y = generateTerrain();
- // Generate rivers
- if (spflags & MGV7_RIDGES)
- generateRidgeTerrain();
-
// Create heightmap
updateHeightmap(node_min, node_max);
@@ -377,7 +367,8 @@ void MapgenV7::makeChunk(BlockMakeData *data)
}
// Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+ if (flags & MG_ORES)
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
// Generate dungeons
if (flags & MG_DUNGEONS)
@@ -466,6 +457,23 @@ bool MapgenV7::getMountainTerrainFromMap(int idx_xyz, int idx_xz, s16 y)
}
+bool MapgenV7::getRiverChannelFromMap(int idx_xyz, int idx_xz, s16 y)
+{
+ // Maximum width of river channel. Creates the vertical canyon walls
+ float width = 0.2f;
+ float absuwatern = std::fabs(noise_ridge_uwater->result[idx_xz]) * 2.0f;
+ if (absuwatern > width)
+ return false;
+
+ float altitude = y - water_level;
+ float height_mod = (altitude + 17.0f) / 2.5f;
+ float width_mod = width - absuwatern;
+ float nridge = noise_ridge->result[idx_xyz] * std::fmax(altitude, 0.0f) / 7.0f;
+
+ return nridge + width_mod * height_mod >= 0.6f;
+}
+
+
bool MapgenV7::getFloatlandTerrainFromMap(int idx_xyz, float float_offset)
{
return noise_floatland->result[idx_xyz] + floatland_density - float_offset >= 0.0f;
@@ -520,6 +528,15 @@ int MapgenV7::generateTerrain()
}
}
+ // 'Generate rivers in this mapchunk' bool for
+ // simplification of condition checks in y-loop.
+ bool gen_rivers = (spflags & MGV7_RIDGES) && node_max.Y >= water_level - 16 &&
+ !gen_floatlands;
+ if (gen_rivers) {
+ noise_ridge->perlinMap3D(node_min.X, node_min.Y - 1, node_min.Z);
+ noise_ridge_uwater->perlinMap2D(node_min.X, node_min.Z);
+ }
+
//// Place nodes
const v3s16 &em = vm->m_area.getExtent();
s16 stone_surface_max_y = -MAX_MAP_GENERATION_LIMIT;
@@ -543,10 +560,13 @@ int MapgenV7::generateTerrain()
if (vm->m_data[vi].getContent() != CONTENT_IGNORE)
continue;
- if (y <= surface_y) {
+ bool is_river_channel = gen_rivers &&
+ getRiverChannelFromMap(index3d, index2d, y);
+ if (y <= surface_y && !is_river_channel) {
vm->m_data[vi] = n_stone; // Base terrain
} else if ((spflags & MGV7_MOUNTAINS) &&
- getMountainTerrainFromMap(index3d, index2d, y)) {
+ getMountainTerrainFromMap(index3d, index2d, y) &&
+ !is_river_channel) {
vm->m_data[vi] = n_stone; // Mountain terrain
if (y > stone_surface_max_y)
stone_surface_max_y = y;
@@ -568,45 +588,3 @@ int MapgenV7::generateTerrain()
return stone_surface_max_y;
}
-
-
-void MapgenV7::generateRidgeTerrain()
-{
- if (node_max.Y < water_level - 16 ||
- (node_max.Y >= floatland_ymin && node_min.Y <= floatland_ymax))
- return;
-
- noise_ridge->perlinMap3D(node_min.X, node_min.Y - 1, node_min.Z);
- noise_ridge_uwater->perlinMap2D(node_min.X, node_min.Z);
-
- MapNode n_water(c_water_source);
- MapNode n_air(CONTENT_AIR);
- u32 index3d = 0;
- float width = 0.2f;
-
- for (s16 z = node_min.Z; z <= node_max.Z; z++)
- for (s16 y = node_min.Y - 1; y <= node_max.Y + 1; y++) {
- u32 vi = vm->m_area.index(node_min.X, y, z);
- for (s16 x = node_min.X; x <= node_max.X; x++, index3d++, vi++) {
- u32 index2d = (z - node_min.Z) * csize.X + (x - node_min.X);
- float uwatern = noise_ridge_uwater->result[index2d] * 2.0f;
- if (std::fabs(uwatern) > width)
- continue;
- // Optimises, but also avoids removing nodes placed by mods in
- // 'on-generated', when generating outside mapchunk.
- content_t c = vm->m_data[vi].getContent();
- if (c != c_stone)
- continue;
-
- float altitude = y - water_level;
- float height_mod = (altitude + 17.0f) / 2.5f;
- float width_mod = width - std::fabs(uwatern);
- float nridge = noise_ridge->result[index3d] *
- std::fmax(altitude, 0.0f) / 7.0f;
- if (nridge + width_mod * height_mod < 0.6f)
- continue;
-
- vm->m_data[vi] = (y > water_level) ? n_air : n_water;
- }
- }
-}
diff --git a/src/mapgen/mapgen_v7.h b/src/mapgen/mapgen_v7.h
index 4020cd935..5db10a304 100644
--- a/src/mapgen/mapgen_v7.h
+++ b/src/mapgen/mapgen_v7.h
@@ -94,10 +94,10 @@ public:
float baseTerrainLevelFromMap(int index);
bool getMountainTerrainAtPoint(s16 x, s16 y, s16 z);
bool getMountainTerrainFromMap(int idx_xyz, int idx_xz, s16 y);
+ bool getRiverChannelFromMap(int idx_xyz, int idx_xz, s16 y);
bool getFloatlandTerrainFromMap(int idx_xyz, float float_offset);
int generateTerrain();
- void generateRidgeTerrain();
private:
s16 mount_zero_level;
diff --git a/src/mapgen/mapgen_valleys.cpp b/src/mapgen/mapgen_valleys.cpp
index efcc8ee85..c4234857e 100644
--- a/src/mapgen/mapgen_valleys.cpp
+++ b/src/mapgen/mapgen_valleys.cpp
@@ -210,12 +210,6 @@ void MapgenValleys::makeChunk(BlockMakeData *data)
// Pre-conditions
assert(data->vmanip);
assert(data->nodedef);
- assert(data->blockpos_requested.X >= data->blockpos_min.X &&
- data->blockpos_requested.Y >= data->blockpos_min.Y &&
- data->blockpos_requested.Z >= data->blockpos_min.Z);
- assert(data->blockpos_requested.X <= data->blockpos_max.X &&
- data->blockpos_requested.Y <= data->blockpos_max.Y &&
- data->blockpos_requested.Z <= data->blockpos_max.Z);
//TimeTaker t("makeChunk");
@@ -268,7 +262,8 @@ void MapgenValleys::makeChunk(BlockMakeData *data)
}
// Generate the registered ores
- m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
+ if (flags & MG_ORES)
+ m_emerge->oremgr->placeAllOres(this, blockseed, node_min, node_max);
// Dungeon creation
if (flags & MG_DUNGEONS)
diff --git a/src/mapgen/mg_ore.cpp b/src/mapgen/mg_ore.cpp
index b50ed6a32..5814f433a 100644
--- a/src/mapgen/mg_ore.cpp
+++ b/src/mapgen/mg_ore.cpp
@@ -498,7 +498,11 @@ void OreVein::generate(MMVManip *vm, int mapseed, u32 blockseed,
}
// randval ranges from -1..1
- float randval = (float)pr.next() / (pr.RANDOM_RANGE / 2) - 1.f;
+ /*
+ Note: can generate values slightly larger than 1
+ but this can't be changed as mapgen must be deterministic accross versions.
+ */
+ float randval = (float)pr.next() / float(pr.RANDOM_RANGE / 2) - 1.f;
float noiseval = contour(noise->result[index]);
float noiseval2 = contour(noise2->result[index]);
if (noiseval * noiseval2 + randval * random_factor < nthresh)
diff --git a/src/mapgen/mg_ore.h b/src/mapgen/mg_ore.h
index 76420fab4..a58fa9bfe 100644
--- a/src/mapgen/mg_ore.h
+++ b/src/mapgen/mg_ore.h
@@ -52,7 +52,7 @@ extern FlagDesc flagdesc_ore[];
class Ore : public ObjDef, public NodeResolver {
public:
- static const bool NEEDS_NOISE = false;
+ const bool needs_noise;
content_t c_ore; // the node to place
std::vector<content_t> c_wherein; // the nodes to be placed in
@@ -68,7 +68,7 @@ public:
Noise *noise = nullptr;
std::unordered_set<biome_t> biomes;
- Ore() = default;;
+ explicit Ore(bool needs_noise): needs_noise(needs_noise) {}
virtual ~Ore();
virtual void resolveNodeNames();
@@ -83,17 +83,17 @@ protected:
class OreScatter : public Ore {
public:
- static const bool NEEDS_NOISE = false;
+ OreScatter() : Ore(false) {}
ObjDef *clone() const;
- virtual void generate(MMVManip *vm, int mapseed, u32 blockseed,
- v3s16 nmin, v3s16 nmax, biome_t *biomemap);
+ void generate(MMVManip *vm, int mapseed, u32 blockseed,
+ v3s16 nmin, v3s16 nmax, biome_t *biomemap) override;
};
class OreSheet : public Ore {
public:
- static const bool NEEDS_NOISE = true;
+ OreSheet() : Ore(true) {}
ObjDef *clone() const;
@@ -101,14 +101,12 @@ public:
u16 column_height_max;
float column_midpoint_factor;
- virtual void generate(MMVManip *vm, int mapseed, u32 blockseed,
- v3s16 nmin, v3s16 nmax, biome_t *biomemap);
+ void generate(MMVManip *vm, int mapseed, u32 blockseed,
+ v3s16 nmin, v3s16 nmax, biome_t *biomemap) override;
};
class OrePuff : public Ore {
public:
- static const bool NEEDS_NOISE = true;
-
ObjDef *clone() const;
NoiseParams np_puff_top;
@@ -116,55 +114,50 @@ public:
Noise *noise_puff_top = nullptr;
Noise *noise_puff_bottom = nullptr;
- OrePuff() = default;
+ OrePuff() : Ore(true) {}
virtual ~OrePuff();
- virtual void generate(MMVManip *vm, int mapseed, u32 blockseed,
- v3s16 nmin, v3s16 nmax, biome_t *biomemap);
+ void generate(MMVManip *vm, int mapseed, u32 blockseed,
+ v3s16 nmin, v3s16 nmax, biome_t *biomemap) override;
};
class OreBlob : public Ore {
public:
- static const bool NEEDS_NOISE = true;
-
ObjDef *clone() const;
- virtual void generate(MMVManip *vm, int mapseed, u32 blockseed,
- v3s16 nmin, v3s16 nmax, biome_t *biomemap);
+ OreBlob() : Ore(true) {}
+ void generate(MMVManip *vm, int mapseed, u32 blockseed,
+ v3s16 nmin, v3s16 nmax, biome_t *biomemap) override;
};
class OreVein : public Ore {
public:
- static const bool NEEDS_NOISE = true;
-
ObjDef *clone() const;
float random_factor;
Noise *noise2 = nullptr;
int sizey_prev = 0;
- OreVein() = default;
+ OreVein() : Ore(true) {}
virtual ~OreVein();
- virtual void generate(MMVManip *vm, int mapseed, u32 blockseed,
- v3s16 nmin, v3s16 nmax, biome_t *biomemap);
+ void generate(MMVManip *vm, int mapseed, u32 blockseed,
+ v3s16 nmin, v3s16 nmax, biome_t *biomemap) override;
};
class OreStratum : public Ore {
public:
- static const bool NEEDS_NOISE = false;
-
ObjDef *clone() const;
NoiseParams np_stratum_thickness;
Noise *noise_stratum_thickness = nullptr;
u16 stratum_thickness;
- OreStratum() = default;
+ OreStratum() : Ore(false) {}
virtual ~OreStratum();
- virtual void generate(MMVManip *vm, int mapseed, u32 blockseed,
- v3s16 nmin, v3s16 nmax, biome_t *biomemap);
+ void generate(MMVManip *vm, int mapseed, u32 blockseed,
+ v3s16 nmin, v3s16 nmax, biome_t *biomemap) override;
};
class OreManager : public ObjDefManager {
diff --git a/src/mapgen/mg_schematic.cpp b/src/mapgen/mg_schematic.cpp
index ba102d997..e70e97e48 100644
--- a/src/mapgen/mg_schematic.cpp
+++ b/src/mapgen/mg_schematic.cpp
@@ -314,7 +314,7 @@ bool Schematic::deserializeFromMts(std::istream *is,
//// Read node names
u16 nidmapcount = readU16(ss);
for (int i = 0; i != nidmapcount; i++) {
- std::string name = deSerializeString(ss);
+ std::string name = deSerializeString16(ss);
// Instances of "ignore" from v1 are converted to air (and instances
// are fixed to have MTSCHEM_PROB_NEVER later on).
@@ -334,7 +334,7 @@ bool Schematic::deserializeFromMts(std::istream *is,
schemdata = new MapNode[nodecount];
MapNode::deSerializeBulk(ss, SER_FMT_VER_HIGHEST_READ, schemdata,
- nodecount, 2, 2, true);
+ nodecount, 2, 2);
// Fix probability values for nodes that were ignore; removed in v2
if (version < 2) {
@@ -372,11 +372,11 @@ bool Schematic::serializeToMts(std::ostream *os,
writeU16(ss, names.size()); // name count
for (size_t i = 0; i != names.size(); i++)
- ss << serializeString(names[i]); // node names
+ ss << serializeString16(names[i]); // node names
// compressed bulk node data
MapNode::serializeBulk(ss, SER_FMT_VER_HIGHEST_WRITE,
- schemdata, size.X * size.Y * size.Z, 2, 2, true);
+ schemdata, size.X * size.Y * size.Z, 2, 2, -1);
return true;
}
diff --git a/src/mapgen/treegen.cpp b/src/mapgen/treegen.cpp
index e7e30c880..ec7771439 100644
--- a/src/mapgen/treegen.cpp
+++ b/src/mapgen/treegen.cpp
@@ -406,7 +406,8 @@ treegen::error make_ltree(MMVManip &vmanip, v3s16 p0,
v3f(position.X, position.Y, position.Z - 1),
tree_definition
);
- } if (!stack_orientation.empty()) {
+ }
+ if (!stack_orientation.empty()) {
s16 size = 1;
for (x = -size; x <= size; x++)
for (y = -size; y <= size; y++)
@@ -527,19 +528,6 @@ treegen::error make_ltree(MMVManip &vmanip, v3s16 p0,
}
-void tree_node_placement(MMVManip &vmanip, v3f p0, MapNode node)
-{
- v3s16 p1 = v3s16(myround(p0.X), myround(p0.Y), myround(p0.Z));
- if (!vmanip.m_area.contains(p1))
- return;
- u32 vi = vmanip.m_area.index(p1);
- if (vmanip.m_data[vi].getContent() != CONTENT_AIR
- && vmanip.m_data[vi].getContent() != CONTENT_IGNORE)
- return;
- vmanip.m_data[vmanip.m_area.index(p1)] = node;
-}
-
-
void tree_trunk_placement(MMVManip &vmanip, v3f p0, TreeDef &tree_definition)
{
v3s16 p1 = v3s16(myround(p0.X), myround(p0.Y), myround(p0.Z));
diff --git a/src/mapgen/treegen.h b/src/mapgen/treegen.h
index 447baabb3..59a418824 100644
--- a/src/mapgen/treegen.h
+++ b/src/mapgen/treegen.h
@@ -76,8 +76,6 @@ namespace treegen {
const NodeDefManager *ndef, const TreeDef &tree_definition);
// L-System tree gen helper functions
- void tree_node_placement(MMVManip &vmanip, v3f p0,
- MapNode node);
void tree_trunk_placement(MMVManip &vmanip, v3f p0,
TreeDef &tree_definition);
void tree_leaves_placement(MMVManip &vmanip, v3f p0,
diff --git a/src/mapnode.cpp b/src/mapnode.cpp
index dcf1f6d6e..0551f3b6f 100644
--- a/src/mapnode.cpp
+++ b/src/mapnode.cpp
@@ -706,7 +706,7 @@ void MapNode::deSerialize(u8 *source, u8 version)
}
void MapNode::serializeBulk(std::ostream &os, int version,
const MapNode *nodes, u32 nodecount,
- u8 content_width, u8 params_width, bool compressed)
+ u8 content_width, u8 params_width, int compression_level)
{
if (!ser_ver_supported(version))
throw VersionMismatchException("ERROR: MapNode format not supported");
@@ -737,10 +737,7 @@ void MapNode::serializeBulk(std::ostream &os, int version,
Compress data to output stream
*/
- if (compressed)
- compressZlib(databuf, databuf_size, os);
- else
- os.write((const char*) &databuf[0], databuf_size);
+ compressZlib(databuf, databuf_size, os, compression_level);
delete [] databuf;
}
@@ -748,7 +745,7 @@ void MapNode::serializeBulk(std::ostream &os, int version,
// Deserialize bulk node data
void MapNode::deSerializeBulk(std::istream &is, int version,
MapNode *nodes, u32 nodecount,
- u8 content_width, u8 params_width, bool compressed)
+ u8 content_width, u8 params_width)
{
if(!ser_ver_supported(version))
throw VersionMismatchException("ERROR: MapNode format not supported");
@@ -760,24 +757,13 @@ void MapNode::deSerializeBulk(std::istream &is, int version,
// Uncompress or read data
u32 len = nodecount * (content_width + params_width);
- SharedBuffer<u8> databuf(len);
- if(compressed)
- {
- std::ostringstream os(std::ios_base::binary);
- decompressZlib(is, os);
- std::string s = os.str();
- if(s.size() != len)
- throw SerializationError("deSerializeBulkNodes: "
- "decompress resulted in invalid size");
- memcpy(&databuf[0], s.c_str(), len);
- }
- else
- {
- is.read((char*) &databuf[0], len);
- if(is.eof() || is.fail())
- throw SerializationError("deSerializeBulkNodes: "
- "failed to read bulk node data");
- }
+ std::ostringstream os(std::ios_base::binary);
+ decompressZlib(is, os);
+ std::string s = os.str();
+ if(s.size() != len)
+ throw SerializationError("deSerializeBulkNodes: "
+ "decompress resulted in invalid size");
+ const u8 *databuf = reinterpret_cast<const u8*>(s.c_str());
// Deserialize content
if(content_width == 1)
diff --git a/src/mapnode.h b/src/mapnode.h
index 32ac1b4f6..a9ae63ba3 100644
--- a/src/mapnode.h
+++ b/src/mapnode.h
@@ -292,10 +292,10 @@ struct MapNode
// compressed = true to zlib-compress output
static void serializeBulk(std::ostream &os, int version,
const MapNode *nodes, u32 nodecount,
- u8 content_width, u8 params_width, bool compressed);
+ u8 content_width, u8 params_width, int compression_level);
static void deSerializeBulk(std::istream &is, int version,
MapNode *nodes, u32 nodecount,
- u8 content_width, u8 params_width, bool compressed);
+ u8 content_width, u8 params_width);
private:
// Deprecated serialization methods
diff --git a/src/mapsector.h b/src/mapsector.h
index dede364f6..ffd4cdd1d 100644
--- a/src/mapsector.h
+++ b/src/mapsector.h
@@ -62,6 +62,7 @@ public:
bool empty() const { return m_blocks.empty(); }
+ int size() const { return m_blocks.size(); }
protected:
// The pile of MapBlocks
diff --git a/src/event.h b/src/mtevent.h
index 149f7eecd..149f7eecd 100644
--- a/src/event.h
+++ b/src/mtevent.h
diff --git a/src/nameidmapping.cpp b/src/nameidmapping.cpp
index bd5bb1fc8..05cfae069 100644
--- a/src/nameidmapping.cpp
+++ b/src/nameidmapping.cpp
@@ -27,7 +27,7 @@ void NameIdMapping::serialize(std::ostream &os) const
writeU16(os, m_id_to_name.size());
for (const auto &i : m_id_to_name) {
writeU16(os, i.first);
- os << serializeString(i.second);
+ os << serializeString16(i.second);
}
}
@@ -41,7 +41,7 @@ void NameIdMapping::deSerialize(std::istream &is)
m_name_to_id.clear();
for (u32 i = 0; i < count; i++) {
u16 id = readU16(is);
- std::string name = deSerializeString(is);
+ std::string name = deSerializeString16(is);
m_id_to_name[id] = name;
m_name_to_id[name] = id;
}
diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt
index c6995ab22..d2e2f52e9 100644
--- a/src/network/CMakeLists.txt
+++ b/src/network/CMakeLists.txt
@@ -16,8 +16,3 @@ if (BUILD_CLIENT)
PARENT_SCOPE
)
endif()
-
-# Haiku networking support
-if(HAIKU)
- set(PLATFORM_LIBS -lnetwork ${PLATFORM_LIBS})
-endif()
diff --git a/src/network/clientopcodes.cpp b/src/network/clientopcodes.cpp
index f812a08a1..55cfdd4dc 100644
--- a/src/network/clientopcodes.cpp
+++ b/src/network/clientopcodes.cpp
@@ -122,6 +122,7 @@ const ToClientCommandHandler toClientCommandTable[TOCLIENT_NUM_MSG_TYPES] =
null_command_handler,
{ "TOCLIENT_SRP_BYTES_S_B", TOCLIENT_STATE_NOT_CONNECTED, &Client::handleCommand_SrpBytesSandB }, // 0x60
{ "TOCLIENT_FORMSPEC_PREPEND", TOCLIENT_STATE_CONNECTED, &Client::handleCommand_FormspecPrepend }, // 0x61,
+ { "TOCLIENT_MINIMAP_MODES", TOCLIENT_STATE_CONNECTED, &Client::handleCommand_MinimapModes }, // 0x62,
};
const static ServerCommandFactory null_command_factory = { "TOSERVER_NULL", 0, false };
diff --git a/src/network/clientpackethandler.cpp b/src/network/clientpackethandler.cpp
index 5934eaf8c..65db02300 100644
--- a/src/network/clientpackethandler.cpp
+++ b/src/network/clientpackethandler.cpp
@@ -208,6 +208,9 @@ void Client::handleCommand_AccessDenied(NetworkPacket* pkt)
m_access_denied_reconnect = reconnect & 1;
} else if (denyCode == SERVER_ACCESSDENIED_CUSTOM_STRING) {
*pkt >> m_access_denied_reason;
+ } else if (denyCode == SERVER_ACCESSDENIED_TOO_MANY_USERS) {
+ m_access_denied_reason = accessDeniedStrings[denyCode];
+ m_access_denied_reconnect = true;
} else if (denyCode < SERVER_ACCESSDENIED_MAX) {
m_access_denied_reason = accessDeniedStrings[denyCode];
} else {
@@ -494,7 +497,7 @@ void Client::handleCommand_ActiveObjectMessages(NetworkPacket* pkt)
if (!is.good())
break;
- std::string message = deSerializeString(is);
+ std::string message = deSerializeString16(is);
// Pass on to the environment
m_env.processActiveObjectMessage(id, message);
@@ -991,7 +994,7 @@ void Client::handleCommand_AddParticleSpawner(NetworkPacket* pkt)
p.minsize = readF32(is);
p.maxsize = readF32(is);
p.collisiondetection = readU8(is);
- p.texture = deSerializeLongString(is);
+ p.texture = deSerializeString32(is);
server_id = readU32(is);
@@ -1161,15 +1164,24 @@ void Client::handleCommand_HudSetFlags(NetworkPacket* pkt)
m_minimap_disabled_by_server = !(player->hud_flags & HUD_FLAG_MINIMAP_VISIBLE);
bool m_minimap_radar_disabled_by_server = !(player->hud_flags & HUD_FLAG_MINIMAP_RADAR_VISIBLE);
+ // Not so satisying code to keep compatibility with old fixed mode system
+ // -->
+
// Hide minimap if it has been disabled by the server
if (m_minimap && m_minimap_disabled_by_server && was_minimap_visible)
// defers a minimap update, therefore only call it if really
// needed, by checking that minimap was visible before
- m_minimap->setMinimapMode(MINIMAP_MODE_OFF);
-
- // Switch to surface mode if radar disabled by server
- if (m_minimap && m_minimap_radar_disabled_by_server && was_minimap_radar_visible)
- m_minimap->setMinimapMode(MINIMAP_MODE_SURFACEx1);
+ m_minimap->setModeIndex(0);
+
+ // If radar has been disabled, try to find a non radar mode or fall back to 0
+ if (m_minimap && m_minimap_radar_disabled_by_server
+ && was_minimap_radar_visible) {
+ while (m_minimap->getModeIndex() > 0 &&
+ m_minimap->getModeDef().type == MINIMAP_TYPE_RADAR)
+ m_minimap->nextMode();
+ }
+ // <--
+ // End of 'not so satifying code'
}
void Client::handleCommand_HudSetParam(NetworkPacket* pkt)
@@ -1204,11 +1216,11 @@ void Client::handleCommand_HudSetSky(NetworkPacket* pkt)
SkyboxParams skybox;
skybox.bgcolor = video::SColor(readARGB8(is));
- skybox.type = std::string(deSerializeString(is));
+ skybox.type = std::string(deSerializeString16(is));
u16 count = readU16(is);
for (size_t i = 0; i < count; i++)
- skybox.textures.emplace_back(deSerializeString(is));
+ skybox.textures.emplace_back(deSerializeString16(is));
skybox.clouds = true;
try {
@@ -1608,3 +1620,30 @@ void Client::handleCommand_ModChannelSignal(NetworkPacket *pkt)
if (valid_signal)
m_script->on_modchannel_signal(channel, signal);
}
+
+void Client::handleCommand_MinimapModes(NetworkPacket *pkt)
+{
+ u16 count; // modes
+ u16 mode; // wanted current mode index after change
+
+ *pkt >> count >> mode;
+
+ if (m_minimap)
+ m_minimap->clearModes();
+
+ for (size_t index = 0; index < count; index++) {
+ u16 type;
+ std::string label;
+ u16 size;
+ std::string texture;
+ u16 scale;
+
+ *pkt >> type >> label >> size >> texture >> scale;
+
+ if (m_minimap)
+ m_minimap->addMode(MinimapType(type), size, label, texture, scale);
+ }
+
+ if (m_minimap)
+ m_minimap->setModeIndex(mode);
+}
diff --git a/src/network/connection.cpp b/src/network/connection.cpp
index 3692e45a9..0ba8c36b2 100644
--- a/src/network/connection.cpp
+++ b/src/network/connection.cpp
@@ -1269,7 +1269,8 @@ bool Connection::deletePeer(session_t peer_id, bool timeout)
return false;
peer = m_peers[peer_id];
m_peers.erase(peer_id);
- m_peer_ids.remove(peer_id);
+ auto it = std::find(m_peer_ids.begin(), m_peer_ids.end(), peer_id);
+ m_peer_ids.erase(it);
}
Address peer_address;
@@ -1565,7 +1566,7 @@ void Connection::sendAck(session_t peer_id, u8 channelnum, u16 seqnum)
UDPPeer* Connection::createServerPeer(Address& address)
{
- if (getPeerNoEx(PEER_ID_SERVER) != 0)
+ if (ConnectedToServer())
{
throw ConnectionException("Already connected to a server");
}
diff --git a/src/network/connection.h b/src/network/connection.h
index 47b0805ce..24cd4fe4a 100644
--- a/src/network/connection.h
+++ b/src/network/connection.h
@@ -30,7 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "networkprotocol.h"
#include <iostream>
#include <fstream>
-#include <list>
+#include <vector>
#include <map>
class NetworkPacket;
@@ -795,7 +795,7 @@ protected:
void PrintInfo(std::ostream &out);
- std::list<session_t> getPeerIDs()
+ std::vector<session_t> getPeerIDs()
{
MutexAutoLock peerlock(m_peers_mutex);
return m_peer_ids;
@@ -809,6 +809,11 @@ protected:
void putEvent(ConnectionEvent &e);
void TriggerSend();
+
+ bool ConnectedToServer()
+ {
+ return getPeerNoEx(PEER_ID_SERVER) != nullptr;
+ }
private:
MutexedQueue<ConnectionEvent> m_event_queue;
@@ -816,7 +821,7 @@ private:
u32 m_protocol_id;
std::map<session_t, Peer *> m_peers;
- std::list<session_t> m_peer_ids;
+ std::vector<session_t> m_peer_ids;
std::mutex m_peers_mutex;
std::unique_ptr<ConnectionSendThread> m_sendThread;
diff --git a/src/network/connectionthreads.cpp b/src/network/connectionthreads.cpp
index 9a6617a1c..7b62bc792 100644
--- a/src/network/connectionthreads.cpp
+++ b/src/network/connectionthreads.cpp
@@ -144,7 +144,7 @@ void ConnectionSendThread::Trigger()
bool ConnectionSendThread::packetsQueued()
{
- std::list<session_t> peerIds = m_connection->getPeerIDs();
+ std::vector<session_t> peerIds = m_connection->getPeerIDs();
if (!m_outgoing_queue.empty() && !peerIds.empty())
return true;
@@ -171,8 +171,8 @@ bool ConnectionSendThread::packetsQueued()
void ConnectionSendThread::runTimeouts(float dtime)
{
- std::list<session_t> timeouted_peers;
- std::list<session_t> peerIds = m_connection->getPeerIDs();
+ std::vector<session_t> timeouted_peers;
+ std::vector<session_t> peerIds = m_connection->getPeerIDs();
for (session_t &peerId : peerIds) {
PeerHelper peer = m_connection->getPeerNoEx(peerId);
@@ -548,7 +548,7 @@ void ConnectionSendThread::disconnect()
// Send to all
- std::list<session_t> peerids = m_connection->getPeerIDs();
+ std::vector<session_t> peerids = m_connection->getPeerIDs();
for (session_t peerid : peerids) {
sendAsPacket(peerid, 0, data, false);
@@ -620,7 +620,7 @@ void ConnectionSendThread::sendReliable(ConnectionCommand &c)
void ConnectionSendThread::sendToAll(u8 channelnum, const SharedBuffer<u8> &data)
{
- std::list<session_t> peerids = m_connection->getPeerIDs();
+ std::vector<session_t> peerids = m_connection->getPeerIDs();
for (session_t peerid : peerids) {
send(peerid, channelnum, data);
@@ -629,7 +629,7 @@ void ConnectionSendThread::sendToAll(u8 channelnum, const SharedBuffer<u8> &data
void ConnectionSendThread::sendToAllReliable(ConnectionCommand &c)
{
- std::list<session_t> peerids = m_connection->getPeerIDs();
+ std::vector<session_t> peerids = m_connection->getPeerIDs();
for (session_t peerid : peerids) {
PeerHelper peer = m_connection->getPeerNoEx(peerid);
@@ -643,8 +643,8 @@ void ConnectionSendThread::sendToAllReliable(ConnectionCommand &c)
void ConnectionSendThread::sendPackets(float dtime)
{
- std::list<session_t> peerIds = m_connection->getPeerIDs();
- std::list<session_t> pendingDisconnect;
+ std::vector<session_t> peerIds = m_connection->getPeerIDs();
+ std::vector<session_t> pendingDisconnect;
std::map<session_t, bool> pending_unreliable;
const unsigned int peer_packet_quota = m_iteration_packets_avaialble
@@ -843,13 +843,11 @@ void *ConnectionReceiveThread::run()
if (debug_print_timer > 20.0) {
debug_print_timer -= 20.0;
- std::list<session_t> peerids = m_connection->getPeerIDs();
+ std::vector<session_t> peerids = m_connection->getPeerIDs();
- for (std::list<session_t>::iterator i = peerids.begin();
- i != peerids.end();
- i++)
+ for (auto id : peerids)
{
- PeerHelper peer = m_connection->getPeerNoEx(*i);
+ PeerHelper peer = m_connection->getPeerNoEx(id);
if (!peer)
continue;
@@ -958,8 +956,11 @@ void ConnectionReceiveThread::receive(SharedBuffer<u8> &packetdata,
// command was sent reliably.
}
- /* The peer was not found in our lists. Add it. */
if (peer_id == PEER_ID_INEXISTENT) {
+ /* Ignore it if we are a client */
+ if (m_connection->ConnectedToServer())
+ return;
+ /* The peer was not found in our lists. Add it. */
peer_id = m_connection->createPeer(sender, MTP_MINETEST_RELIABLE_UDP, 0);
}
@@ -1039,7 +1040,7 @@ void ConnectionReceiveThread::receive(SharedBuffer<u8> &packetdata,
bool ConnectionReceiveThread::getFromBuffers(session_t &peer_id, SharedBuffer<u8> &dst)
{
- std::list<session_t> peerids = m_connection->getPeerIDs();
+ std::vector<session_t> peerids = m_connection->getPeerIDs();
for (session_t peerid : peerids) {
PeerHelper peer = m_connection->getPeerNoEx(peerid);
diff --git a/src/network/networkexceptions.h b/src/network/networkexceptions.h
index f4913928c..58a3bb490 100644
--- a/src/network/networkexceptions.h
+++ b/src/network/networkexceptions.h
@@ -56,12 +56,6 @@ public:
InvalidIncomingDataException(const char *s) : BaseException(s) {}
};
-class InvalidOutgoingDataException : public BaseException
-{
-public:
- InvalidOutgoingDataException(const char *s) : BaseException(s) {}
-};
-
class NoIncomingDataException : public BaseException
{
public:
@@ -103,4 +97,4 @@ class SendFailedException : public BaseException
{
public:
SendFailedException(const std::string &s) : BaseException(s) {}
-}; \ No newline at end of file
+};
diff --git a/src/network/networkpacket.cpp b/src/network/networkpacket.cpp
index 4d531b611..a71e26572 100644
--- a/src/network/networkpacket.cpp
+++ b/src/network/networkpacket.cpp
@@ -50,7 +50,7 @@ void NetworkPacket::checkReadOffset(u32 from_offset, u32 field_size)
}
}
-void NetworkPacket::putRawPacket(u8 *data, u32 datasize, session_t peer_id)
+void NetworkPacket::putRawPacket(const u8 *data, u32 datasize, session_t peer_id)
{
// If a m_command is already set, we are rewriting on same packet
// This is not permitted
@@ -145,6 +145,8 @@ void NetworkPacket::putLongString(const std::string &src)
putRawString(src.c_str(), msgsize);
}
+static constexpr bool NEED_SURROGATE_CODING = sizeof(wchar_t) > 2;
+
NetworkPacket& NetworkPacket::operator>>(std::wstring& dst)
{
checkReadOffset(m_read_offset, 2);
@@ -160,9 +162,16 @@ NetworkPacket& NetworkPacket::operator>>(std::wstring& dst)
checkReadOffset(m_read_offset, strLen * 2);
dst.reserve(strLen);
- for(u16 i=0; i<strLen; i++) {
- wchar_t c16 = readU16(&m_data[m_read_offset]);
- dst.append(&c16, 1);
+ for (u16 i = 0; i < strLen; i++) {
+ wchar_t c = readU16(&m_data[m_read_offset]);
+ if (NEED_SURROGATE_CODING && c >= 0xD800 && c < 0xDC00 && i+1 < strLen) {
+ i++;
+ m_read_offset += sizeof(u16);
+
+ wchar_t c2 = readU16(&m_data[m_read_offset]);
+ c = 0x10000 + ( ((c & 0x3ff) << 10) | (c2 & 0x3ff) );
+ }
+ dst.push_back(c);
m_read_offset += sizeof(u16);
}
@@ -175,15 +184,37 @@ NetworkPacket& NetworkPacket::operator<<(const std::wstring &src)
throw PacketError("String too long");
}
- u16 msgsize = src.size();
+ if (!NEED_SURROGATE_CODING || src.size() == 0) {
+ *this << static_cast<u16>(src.size());
+ for (u16 i = 0; i < src.size(); i++)
+ *this << static_cast<u16>(src[i]);
- *this << msgsize;
+ return *this;
+ }
- // Write string
- for (u16 i=0; i<msgsize; i++) {
- *this << (u16) src[i];
+ // write dummy value, to be overwritten later
+ const u32 len_offset = m_read_offset;
+ u32 written = 0;
+ *this << static_cast<u16>(0xfff0);
+
+ for (u16 i = 0; i < src.size(); i++) {
+ wchar_t c = src[i];
+ if (c > 0xffff) {
+ // Encode high code-points as surrogate pairs
+ u32 n = c - 0x10000;
+ *this << static_cast<u16>(0xD800 | (n >> 10))
+ << static_cast<u16>(0xDC00 | (n & 0x3ff));
+ written += 2;
+ } else {
+ *this << static_cast<u16>(c);
+ written++;
+ }
}
+ if (written > WIDE_STRING_MAX_LEN)
+ throw PacketError("String too long");
+ writeU16(&m_data[len_offset], written);
+
return *this;
}
@@ -223,13 +254,6 @@ NetworkPacket& NetworkPacket::operator>>(char& dst)
return *this;
}
-char NetworkPacket::getChar(u32 offset)
-{
- checkReadOffset(offset, 1);
-
- return readU8(&m_data[offset]);
-}
-
NetworkPacket& NetworkPacket::operator<<(char src)
{
checkDataSize(1);
diff --git a/src/network/networkpacket.h b/src/network/networkpacket.h
index fc8617651..c7ff03b8e 100644
--- a/src/network/networkpacket.h
+++ b/src/network/networkpacket.h
@@ -34,7 +34,7 @@ public:
~NetworkPacket();
- void putRawPacket(u8 *data, u32 datasize, session_t peer_id);
+ void putRawPacket(const u8 *data, u32 datasize, session_t peer_id);
void clear();
// Getters
@@ -64,7 +64,6 @@ public:
std::string readLongString();
- char getChar(u32 offset);
NetworkPacket &operator>>(char &dst);
NetworkPacket &operator<<(char src);
diff --git a/src/network/networkprotocol.h b/src/network/networkprotocol.h
index fd683eac9..838bf0b2c 100644
--- a/src/network/networkprotocol.h
+++ b/src/network/networkprotocol.h
@@ -204,6 +204,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
PROTOCOL VERSION 39:
Updated set_sky packet
Adds new sun, moon and stars packets
+ Minimap modes
*/
#define LATEST_PROTOCOL_VERSION 39
@@ -225,21 +226,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define PASSWORD_SIZE 28 // Maximum password length. Allows for
// base64-encoded SHA-1 (27+\0).
-/*
- Changes by FORMSPEC_API_VERSION:
-
- FORMSPEC VERSION 1:
- (too much)
- FORMSPEC VERSION 2:
- Forced real coordinates
- background9[]: 9-slice scaling parameters
- FORMSPEC VERSION 3:
- Formspec elements are drawn in the order of definition
- bgcolor[]: use 3 parameters (bgcolor, formspec (now an enum), fbgcolor)
- box[] and image[] elements enable clipping by default
- new element: scroll_container[]
-*/
-#define FORMSPEC_API_VERSION 3
+// See also: Formspec Version History in doc/lua_api.txt
+#define FORMSPEC_API_VERSION 4
#define TEXTURENAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.-"
@@ -762,7 +750,18 @@ enum ToClientCommand
u8[len] formspec
*/
- TOCLIENT_NUM_MSG_TYPES = 0x62,
+ TOCLIENT_MINIMAP_MODES = 0x62,
+ /*
+ u16 count // modes
+ u16 mode // wanted current mode index after change
+ for each mode
+ u16 type
+ std::string label
+ u16 size
+ std::string extra
+ */
+
+ TOCLIENT_NUM_MSG_TYPES = 0x63,
};
enum ToServerCommand
@@ -1032,7 +1031,7 @@ const static std::string accessDeniedStrings[SERVER_ACCESSDENIED_MAX] = {
"This server has experienced an internal error. You will now be disconnected."
};
-enum PlayerListModifer: u8
+enum PlayerListModifer : u8
{
PLAYER_LIST_INIT,
PLAYER_LIST_ADD,
diff --git a/src/network/serveropcodes.cpp b/src/network/serveropcodes.cpp
index 2fc3197c2..aea5d7174 100644
--- a/src/network/serveropcodes.cpp
+++ b/src/network/serveropcodes.cpp
@@ -221,4 +221,5 @@ const ClientCommandFactory clientCommandFactoryTable[TOCLIENT_NUM_MSG_TYPES] =
null_command_factory, // 0x5f
{ "TOSERVER_SRP_BYTES_S_B", 0, true }, // 0x60
{ "TOCLIENT_FORMSPEC_PREPEND", 0, true }, // 0x61
+ { "TOCLIENT_MINIMAP_MODES", 0, true }, // 0x62
};
diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp
index b3008bb50..ddc6f4e47 100644
--- a/src/network/serverpackethandler.cpp
+++ b/src/network/serverpackethandler.cpp
@@ -56,12 +56,12 @@ void Server::handleCommand_Init(NetworkPacket* pkt)
session_t peer_id = pkt->getPeerId();
RemoteClient *client = getClient(peer_id, CS_Created);
+ Address addr;
std::string addr_s;
try {
- Address address = getPeerAddress(peer_id);
- addr_s = address.serializeString();
- }
- catch (con::PeerNotFoundException &e) {
+ addr = m_con->GetPeerAddress(peer_id);
+ addr_s = addr.serializeString();
+ } catch (con::PeerNotFoundException &e) {
/*
* no peer for this packet found
* most common reason is peer timeout, e.g. peer didn't
@@ -73,13 +73,14 @@ void Server::handleCommand_Init(NetworkPacket* pkt)
return;
}
- // If net_proto_version is set, this client has already been handled
if (client->getState() > CS_Created) {
verbosestream << "Server: Ignoring multiple TOSERVER_INITs from " <<
addr_s << " (peer_id=" << peer_id << ")" << std::endl;
return;
}
+ client->setCachedAddress(addr);
+
verbosestream << "Server: Got TOSERVER_INIT from " << addr_s <<
" (peer_id=" << peer_id << ")" << std::endl;
@@ -316,7 +317,7 @@ void Server::handleCommand_Init2(NetworkPacket* pkt)
// Send active objects
{
PlayerSAO *sao = getPlayerSAO(peer_id);
- if (client && sao)
+ if (sao)
SendActiveObjectRemoveAdd(client, sao);
}
@@ -437,18 +438,20 @@ void Server::handleCommand_GotBlocks(NetworkPacket* pkt)
u8 count;
*pkt >> count;
- RemoteClient *client = getClient(pkt->getPeerId());
-
if ((s16)pkt->getSize() < 1 + (int)count * 6) {
throw con::InvalidIncomingDataException
("GOTBLOCKS length is too short");
}
+ m_clients.lock();
+ RemoteClient *client = m_clients.lockedGetClientNoEx(pkt->getPeerId());
+
for (u16 i = 0; i < count; i++) {
v3s16 p;
*pkt >> p;
client->GotBlock(p);
}
+ m_clients.unlock();
}
void Server::process_PlayerPos(RemotePlayer *player, PlayerSAO *playersao,
@@ -485,23 +488,28 @@ void Server::process_PlayerPos(RemotePlayer *player, PlayerSAO *playersao,
pitch = modulo360f(pitch);
yaw = wrapDegrees_0_360(yaw);
- playersao->setBasePosition(position);
- player->setSpeed(speed);
+ if (!playersao->isAttached()) {
+ // Only update player positions when moving freely
+ // to not interfere with attachment handling
+ playersao->setBasePosition(position);
+ player->setSpeed(speed);
+ }
playersao->setLookPitch(pitch);
playersao->setPlayerYaw(yaw);
playersao->setFov(fov);
playersao->setWantedRange(wanted_range);
+
player->keyPressed = keyPressed;
- player->control.up = (keyPressed & 1);
- player->control.down = (keyPressed & 2);
- player->control.left = (keyPressed & 4);
- player->control.right = (keyPressed & 8);
- player->control.jump = (keyPressed & 16);
- player->control.aux1 = (keyPressed & 32);
- player->control.sneak = (keyPressed & 64);
- player->control.LMB = (keyPressed & 128);
- player->control.RMB = (keyPressed & 256);
- player->control.zoom = (keyPressed & 512);
+ player->control.up = (keyPressed & (0x1 << 0));
+ player->control.down = (keyPressed & (0x1 << 1));
+ player->control.left = (keyPressed & (0x1 << 2));
+ player->control.right = (keyPressed & (0x1 << 3));
+ player->control.jump = (keyPressed & (0x1 << 4));
+ player->control.aux1 = (keyPressed & (0x1 << 5));
+ player->control.sneak = (keyPressed & (0x1 << 6));
+ player->control.dig = (keyPressed & (0x1 << 7));
+ player->control.place = (keyPressed & (0x1 << 8));
+ player->control.zoom = (keyPressed & (0x1 << 9));
if (playersao->checkMovementCheat()) {
// Call callbacks
@@ -599,7 +607,7 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt)
<< std::endl;
std::istringstream is(datastring, std::ios_base::binary);
// Create an action
- InventoryAction *a = InventoryAction::deSerialize(is);
+ std::unique_ptr<InventoryAction> a(InventoryAction::deSerialize(is));
if (!a) {
infostream << "TOSERVER_INVENTORY_ACTION: "
<< "InventoryAction::deSerialize() returned NULL"
@@ -616,11 +624,30 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt)
where the client made a bad prediction.
*/
+ const bool player_has_interact = checkPriv(player->getName(), "interact");
+
+ auto check_inv_access = [player, player_has_interact] (
+ const InventoryLocation &loc) -> bool {
+ if (loc.type == InventoryLocation::CURRENT_PLAYER)
+ return false; // Only used internally on the client, never sent
+ if (loc.type == InventoryLocation::PLAYER) {
+ // Allow access to own inventory in all cases
+ return loc.name == player->getName();
+ }
+
+ if (!player_has_interact) {
+ infostream << "Cannot modify foreign inventory: "
+ << "No interact privilege" << std::endl;
+ return false;
+ }
+ return true;
+ };
+
/*
Handle restrictions and special cases of the move action
*/
if (a->getType() == IAction::Move) {
- IMoveAction *ma = (IMoveAction*)a;
+ IMoveAction *ma = (IMoveAction*)a.get();
ma->from_inv.applyCurrentPlayer(player->getName());
ma->to_inv.applyCurrentPlayer(player->getName());
@@ -629,15 +656,11 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt)
if (ma->from_inv != ma->to_inv)
m_inventory_mgr->setInventoryModified(ma->to_inv);
- bool from_inv_is_current_player =
- (ma->from_inv.type == InventoryLocation::PLAYER) &&
- (ma->from_inv.name == player->getName());
-
- bool to_inv_is_current_player =
- (ma->to_inv.type == InventoryLocation::PLAYER) &&
- (ma->to_inv.name == player->getName());
+ if (!check_inv_access(ma->from_inv) ||
+ !check_inv_access(ma->to_inv))
+ return;
- InventoryLocation *remote = from_inv_is_current_player ?
+ InventoryLocation *remote = ma->from_inv.type == InventoryLocation::PLAYER ?
&ma->to_inv : &ma->from_inv;
// Check for out-of-range interaction
@@ -657,7 +680,6 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt)
<< (ma->from_inv.dump()) << ":" << ma->from_list
<< " to " << (ma->to_inv.dump()) << ":" << ma->to_list
<< " because src is " << ma->from_list << std::endl;
- delete a;
return;
}
@@ -669,18 +691,6 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt)
<< (ma->from_inv.dump()) << ":" << ma->from_list
<< " to " << (ma->to_inv.dump()) << ":" << ma->to_list
<< " because dst is " << ma->to_list << std::endl;
- delete a;
- return;
- }
-
- // Disallow moving items in elsewhere than player's inventory
- // if not allowed to interact
- if (!checkPriv(player->getName(), "interact") &&
- (!from_inv_is_current_player ||
- !to_inv_is_current_player)) {
- infostream << "Cannot move outside of player's inventory: "
- << "No interact privilege" << std::endl;
- delete a;
return;
}
}
@@ -688,7 +698,7 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt)
Handle restrictions and special cases of the drop action
*/
else if (a->getType() == IAction::Drop) {
- IDropAction *da = (IDropAction*)a;
+ IDropAction *da = (IDropAction*)a.get();
da->from_inv.applyCurrentPlayer(player->getName());
@@ -701,22 +711,18 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt)
infostream << "Ignoring IDropAction from "
<< (da->from_inv.dump()) << ":" << da->from_list
<< " because src is " << da->from_list << std::endl;
- delete a;
return;
}
// Disallow dropping items if not allowed to interact
- if (!checkPriv(player->getName(), "interact")) {
- delete a;
+ if (!player_has_interact || !check_inv_access(da->from_inv))
return;
- }
// Disallow dropping items if dead
if (playersao->isDead()) {
infostream << "Ignoring IDropAction from "
<< (da->from_inv.dump()) << ":" << da->from_list
<< " because player is dead." << std::endl;
- delete a;
return;
}
}
@@ -724,48 +730,34 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt)
Handle restrictions and special cases of the craft action
*/
else if (a->getType() == IAction::Craft) {
- ICraftAction *ca = (ICraftAction*)a;
+ ICraftAction *ca = (ICraftAction*)a.get();
ca->craft_inv.applyCurrentPlayer(player->getName());
m_inventory_mgr->setInventoryModified(ca->craft_inv);
- //bool craft_inv_is_current_player =
- // (ca->craft_inv.type == InventoryLocation::PLAYER) &&
- // (ca->craft_inv.name == player->getName());
-
// Disallow crafting if not allowed to interact
- if (!checkPriv(player->getName(), "interact")) {
+ if (!player_has_interact) {
infostream << "Cannot craft: "
<< "No interact privilege" << std::endl;
- delete a;
return;
}
+
+ if (!check_inv_access(ca->craft_inv))
+ return;
+ } else {
+ // Unknown action. Ignored.
+ return;
}
// Do the action
a->apply(m_inventory_mgr.get(), playersao, this);
- // Eat the action
- delete a;
}
void Server::handleCommand_ChatMessage(NetworkPacket* pkt)
{
- /*
- u16 command
- u16 length
- wstring message
- */
- u16 len;
- *pkt >> len;
-
std::wstring message;
- for (u16 i = 0; i < len; i++) {
- u16 tmp_wchar;
- *pkt >> tmp_wchar;
-
- message += (wchar_t)tmp_wchar;
- }
+ *pkt >> message;
session_t peer_id = pkt->getPeerId();
RemotePlayer *player = m_env->getPlayer(peer_id);
@@ -777,15 +769,13 @@ void Server::handleCommand_ChatMessage(NetworkPacket* pkt)
return;
}
- // Get player name of this client
std::string name = player->getName();
- std::wstring wname = narrow_to_wide(name);
- std::wstring answer_to_sender = handleChat(name, wname, message, true, player);
+ std::wstring answer_to_sender = handleChat(name, message, true, player);
if (!answer_to_sender.empty()) {
// Send the answer to sender
- SendChatMessage(peer_id, ChatMessage(CHATMESSAGE_TYPE_NORMAL,
- answer_to_sender, wname));
+ SendChatMessage(peer_id, ChatMessage(CHATMESSAGE_TYPE_SYSTEM,
+ answer_to_sender));
}
}
@@ -862,6 +852,15 @@ void Server::handleCommand_PlayerItem(NetworkPacket* pkt)
*pkt >> item;
+ if (item >= player->getHotbarItemcount()) {
+ actionstream << "Player: " << player->getName()
+ << " tried to access item=" << item
+ << " out of hotbar_itemcount="
+ << player->getHotbarItemcount()
+ << "; ignoring." << std::endl;
+ return;
+ }
+
playersao->getPlayer()->setWieldIndex(item);
}
@@ -977,11 +976,17 @@ void Server::handleCommand_Interact(NetworkPacket *pkt)
v3f player_pos = playersao->getLastGoodPosition();
// Update wielded item
- playersao->getPlayer()->setWieldIndex(item_i);
- // Get pointed to node (undefined if not POINTEDTYPE_NODE)
- v3s16 p_under = pointed.node_undersurface;
- v3s16 p_above = pointed.node_abovesurface;
+ if (item_i >= player->getHotbarItemcount()) {
+ actionstream << "Player: " << player->getName()
+ << " tried to access item=" << item_i
+ << " out of hotbar_itemcount="
+ << player->getHotbarItemcount()
+ << "; ignoring." << std::endl;
+ return;
+ }
+
+ playersao->getPlayer()->setWieldIndex(item_i);
// Get pointed to object (NULL if not POINTEDTYPE_OBJECT)
ServerActiveObject *pointed_object = NULL;
@@ -995,17 +1000,6 @@ void Server::handleCommand_Interact(NetworkPacket *pkt)
}
- v3f pointed_pos_under = player_pos;
- v3f pointed_pos_above = player_pos;
- if (pointed.type == POINTEDTHING_NODE) {
- pointed_pos_under = intToFloat(p_under, BS);
- pointed_pos_above = intToFloat(p_above, BS);
- }
- else if (pointed.type == POINTEDTHING_OBJECT) {
- pointed_pos_under = pointed_object->getBasePosition();
- pointed_pos_above = pointed_pos_under;
- }
-
/*
Make sure the player is allowed to do it
*/
@@ -1013,16 +1007,19 @@ void Server::handleCommand_Interact(NetworkPacket *pkt)
actionstream << player->getName() << " attempted to interact with " <<
pointed.dump() << " without 'interact' privilege" << std::endl;
+ if (pointed.type != POINTEDTHING_NODE)
+ return;
+
// Re-send block to revert change on client-side
RemoteClient *client = getClient(peer_id);
// Digging completed -> under
if (action == INTERACT_DIGGING_COMPLETED) {
- v3s16 blockpos = getNodeBlockPos(floatToInt(pointed_pos_under, BS));
+ v3s16 blockpos = getNodeBlockPos(pointed.node_undersurface);
client->SetBlockNotSent(blockpos);
}
// Placement -> above
else if (action == INTERACT_PLACE) {
- v3s16 blockpos = getNodeBlockPos(floatToInt(pointed_pos_above, BS));
+ v3s16 blockpos = getNodeBlockPos(pointed.node_abovesurface);
client->SetBlockNotSent(blockpos);
}
return;
@@ -1030,7 +1027,6 @@ void Server::handleCommand_Interact(NetworkPacket *pkt)
/*
Check that target is reasonably close
- (only when digging or placing things)
*/
static thread_local const bool enable_anticheat =
!g_settings->getBool("disable_anticheat");
@@ -1038,13 +1034,21 @@ void Server::handleCommand_Interact(NetworkPacket *pkt)
if ((action == INTERACT_START_DIGGING || action == INTERACT_DIGGING_COMPLETED ||
action == INTERACT_PLACE || action == INTERACT_USE) &&
enable_anticheat && !isSingleplayer()) {
- float d = playersao->getEyePosition().getDistanceFrom(pointed_pos_under);
+ v3f target_pos = player_pos;
+ if (pointed.type == POINTEDTHING_NODE) {
+ target_pos = intToFloat(pointed.node_undersurface, BS);
+ } else if (pointed.type == POINTEDTHING_OBJECT) {
+ target_pos = pointed_object->getBasePosition();
+ }
+ float d = playersao->getEyePosition().getDistanceFrom(target_pos);
if (!checkInteractDistance(player, d, pointed.dump())) {
- // Re-send block to revert change on client-side
- RemoteClient *client = getClient(peer_id);
- v3s16 blockpos = getNodeBlockPos(floatToInt(pointed_pos_under, BS));
- client->SetBlockNotSent(blockpos);
+ if (pointed.type == POINTEDTHING_NODE) {
+ // Re-send block to revert change on client-side
+ RemoteClient *client = getClient(peer_id);
+ v3s16 blockpos = getNodeBlockPos(pointed.node_undersurface);
+ client->SetBlockNotSent(blockpos);
+ }
return;
}
}
@@ -1055,20 +1059,20 @@ void Server::handleCommand_Interact(NetworkPacket *pkt)
RollbackScopeActor rollback_scope(m_rollback,
std::string("player:")+player->getName());
- /*
- 0: start digging or punch object
- */
- if (action == INTERACT_START_DIGGING) {
+ switch (action) {
+ // Start digging or punch object
+ case INTERACT_START_DIGGING: {
if (pointed.type == POINTEDTHING_NODE) {
MapNode n(CONTENT_IGNORE);
bool pos_ok;
+ v3s16 p_under = pointed.node_undersurface;
n = m_env->getMap().getNode(p_under, &pos_ok);
if (!pos_ok) {
infostream << "Server: Not punching: Node not found. "
"Adding block to emerge queue." << std::endl;
- m_emerge->enqueueBlockEmerge(peer_id, getNodeBlockPos(p_above),
- false);
+ m_emerge->enqueueBlockEmerge(peer_id,
+ getNodeBlockPos(pointed.node_abovesurface), false);
}
if (n.getContent() != CONTENT_IGNORE)
@@ -1076,159 +1080,155 @@ void Server::handleCommand_Interact(NetworkPacket *pkt)
// Cheat prevention
playersao->noCheatDigStart(p_under);
+
+ return;
}
- else if (pointed.type == POINTEDTHING_OBJECT) {
- // Skip if object can't be interacted with anymore
- if (pointed_object->isGone())
- return;
- ItemStack selected_item, hand_item;
- ItemStack tool_item = playersao->getWieldedItem(&selected_item, &hand_item);
- ToolCapabilities toolcap =
- tool_item.getToolCapabilities(m_itemdef);
- v3f dir = (pointed_object->getBasePosition() -
- (playersao->getBasePosition() + playersao->getEyeOffset())
- ).normalize();
- float time_from_last_punch =
- playersao->resetTimeFromLastPunch();
-
- u16 src_original_hp = pointed_object->getHP();
- u16 dst_origin_hp = playersao->getHP();
-
- u16 wear = pointed_object->punch(dir, &toolcap, playersao,
- time_from_last_punch);
-
- // Callback may have changed item, so get it again
- playersao->getWieldedItem(&selected_item);
- bool changed = selected_item.addWear(wear, m_itemdef);
- if (changed)
- playersao->setWieldedItem(selected_item);
-
- // If the object is a player and its HP changed
- if (src_original_hp != pointed_object->getHP() &&
- pointed_object->getType() == ACTIVEOBJECT_TYPE_PLAYER) {
- SendPlayerHPOrDie((PlayerSAO *)pointed_object,
- PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, playersao));
- }
+ // Skip if the object can't be interacted with anymore
+ if (pointed.type != POINTEDTHING_OBJECT || pointed_object->isGone())
+ return;
- // If the puncher is a player and its HP changed
- if (dst_origin_hp != playersao->getHP())
- SendPlayerHPOrDie(playersao,
- PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, pointed_object));
+ ItemStack selected_item, hand_item;
+ ItemStack tool_item = playersao->getWieldedItem(&selected_item, &hand_item);
+ ToolCapabilities toolcap =
+ tool_item.getToolCapabilities(m_itemdef);
+ v3f dir = (pointed_object->getBasePosition() -
+ (playersao->getBasePosition() + playersao->getEyeOffset())
+ ).normalize();
+ float time_from_last_punch =
+ playersao->resetTimeFromLastPunch();
+
+ u16 src_original_hp = pointed_object->getHP();
+ u16 dst_origin_hp = playersao->getHP();
+
+ u16 wear = pointed_object->punch(dir, &toolcap, playersao,
+ time_from_last_punch);
+
+ // Callback may have changed item, so get it again
+ playersao->getWieldedItem(&selected_item);
+ bool changed = selected_item.addWear(wear, m_itemdef);
+ if (changed)
+ playersao->setWieldedItem(selected_item);
+
+ // If the object is a player and its HP changed
+ if (src_original_hp != pointed_object->getHP() &&
+ pointed_object->getType() == ACTIVEOBJECT_TYPE_PLAYER) {
+ SendPlayerHPOrDie((PlayerSAO *)pointed_object,
+ PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, playersao));
}
+ // If the puncher is a player and its HP changed
+ if (dst_origin_hp != playersao->getHP())
+ SendPlayerHPOrDie(playersao,
+ PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, pointed_object));
+
+ return;
} // action == INTERACT_START_DIGGING
- /*
- 1: stop digging
- */
- else if (action == INTERACT_STOP_DIGGING) {
- } // action == INTERACT_STOP_DIGGING
+ case INTERACT_STOP_DIGGING:
+ // Nothing to do
+ return;
- /*
- 2: Digging completed
- */
- else if (action == INTERACT_DIGGING_COMPLETED) {
+ case INTERACT_DIGGING_COMPLETED: {
// Only digging of nodes
- if (pointed.type == POINTEDTHING_NODE) {
- bool pos_ok;
- MapNode n = m_env->getMap().getNode(p_under, &pos_ok);
- if (!pos_ok) {
- infostream << "Server: Not finishing digging: Node not found. "
- "Adding block to emerge queue." << std::endl;
- m_emerge->enqueueBlockEmerge(peer_id, getNodeBlockPos(p_above),
- false);
- }
-
- /* Cheat prevention */
- bool is_valid_dig = true;
- if (enable_anticheat && !isSingleplayer()) {
- v3s16 nocheat_p = playersao->getNoCheatDigPos();
- float nocheat_t = playersao->getNoCheatDigTime();
- playersao->noCheatDigEnd();
- // If player didn't start digging this, ignore dig
- if (nocheat_p != p_under) {
- infostream << "Server: " << player->getName()
- << " started digging "
- << PP(nocheat_p) << " and completed digging "
- << PP(p_under) << "; not digging." << std::endl;
- is_valid_dig = false;
- // Call callbacks
- m_script->on_cheat(playersao, "finished_unknown_dig");
- }
+ if (pointed.type != POINTEDTHING_NODE)
+ return;
+ bool pos_ok;
+ v3s16 p_under = pointed.node_undersurface;
+ MapNode n = m_env->getMap().getNode(p_under, &pos_ok);
+ if (!pos_ok) {
+ infostream << "Server: Not finishing digging: Node not found. "
+ "Adding block to emerge queue." << std::endl;
+ m_emerge->enqueueBlockEmerge(peer_id,
+ getNodeBlockPos(pointed.node_abovesurface), false);
+ }
- // Get player's wielded item
- // See also: Game::handleDigging
- ItemStack selected_item, hand_item;
- playersao->getPlayer()->getWieldedItem(&selected_item, &hand_item);
-
- // Get diggability and expected digging time
- DigParams params = getDigParams(m_nodedef->get(n).groups,
- &selected_item.getToolCapabilities(m_itemdef));
- // If can't dig, try hand
- if (!params.diggable) {
- params = getDigParams(m_nodedef->get(n).groups,
- &hand_item.getToolCapabilities(m_itemdef));
- }
- // If can't dig, ignore dig
- if (!params.diggable) {
- infostream << "Server: " << player->getName()
- << " completed digging " << PP(p_under)
- << ", which is not diggable with tool; not digging."
- << std::endl;
- is_valid_dig = false;
- // Call callbacks
- m_script->on_cheat(playersao, "dug_unbreakable");
- }
- // Check digging time
- // If already invalidated, we don't have to
- if (!is_valid_dig) {
- // Well not our problem then
- }
- // Clean and long dig
- else if (params.time > 2.0 && nocheat_t * 1.2 > params.time) {
- // All is good, but grab time from pool; don't care if
- // it's actually available
- playersao->getDigPool().grab(params.time);
- }
- // Short or laggy dig
- // Try getting the time from pool
- else if (playersao->getDigPool().grab(params.time)) {
- // All is good
- }
- // Dig not possible
- else {
- infostream << "Server: " << player->getName()
- << " completed digging " << PP(p_under)
- << "too fast; not digging." << std::endl;
- is_valid_dig = false;
- // Call callbacks
- m_script->on_cheat(playersao, "dug_too_fast");
- }
+ /* Cheat prevention */
+ bool is_valid_dig = true;
+ if (enable_anticheat && !isSingleplayer()) {
+ v3s16 nocheat_p = playersao->getNoCheatDigPos();
+ float nocheat_t = playersao->getNoCheatDigTime();
+ playersao->noCheatDigEnd();
+ // If player didn't start digging this, ignore dig
+ if (nocheat_p != p_under) {
+ infostream << "Server: " << player->getName()
+ << " started digging "
+ << PP(nocheat_p) << " and completed digging "
+ << PP(p_under) << "; not digging." << std::endl;
+ is_valid_dig = false;
+ // Call callbacks
+ m_script->on_cheat(playersao, "finished_unknown_dig");
}
- /* Actually dig node */
-
- if (is_valid_dig && n.getContent() != CONTENT_IGNORE)
- m_script->node_on_dig(p_under, n, playersao);
-
- v3s16 blockpos = getNodeBlockPos(floatToInt(pointed_pos_under, BS));
- RemoteClient *client = getClient(peer_id);
- // Send unusual result (that is, node not being removed)
- if (m_env->getMap().getNode(p_under).getContent() != CONTENT_AIR) {
- // Re-send block to revert change on client-side
- client->SetBlockNotSent(blockpos);
+ // Get player's wielded item
+ // See also: Game::handleDigging
+ ItemStack selected_item, hand_item;
+ playersao->getPlayer()->getWieldedItem(&selected_item, &hand_item);
+
+ // Get diggability and expected digging time
+ DigParams params = getDigParams(m_nodedef->get(n).groups,
+ &selected_item.getToolCapabilities(m_itemdef));
+ // If can't dig, try hand
+ if (!params.diggable) {
+ params = getDigParams(m_nodedef->get(n).groups,
+ &hand_item.getToolCapabilities(m_itemdef));
+ }
+ // If can't dig, ignore dig
+ if (!params.diggable) {
+ infostream << "Server: " << player->getName()
+ << " completed digging " << PP(p_under)
+ << ", which is not diggable with tool; not digging."
+ << std::endl;
+ is_valid_dig = false;
+ // Call callbacks
+ m_script->on_cheat(playersao, "dug_unbreakable");
+ }
+ // Check digging time
+ // If already invalidated, we don't have to
+ if (!is_valid_dig) {
+ // Well not our problem then
+ }
+ // Clean and long dig
+ else if (params.time > 2.0 && nocheat_t * 1.2 > params.time) {
+ // All is good, but grab time from pool; don't care if
+ // it's actually available
+ playersao->getDigPool().grab(params.time);
}
+ // Short or laggy dig
+ // Try getting the time from pool
+ else if (playersao->getDigPool().grab(params.time)) {
+ // All is good
+ }
+ // Dig not possible
else {
- client->ResendBlockIfOnWire(blockpos);
+ infostream << "Server: " << player->getName()
+ << " completed digging " << PP(p_under)
+ << "too fast; not digging." << std::endl;
+ is_valid_dig = false;
+ // Call callbacks
+ m_script->on_cheat(playersao, "dug_too_fast");
}
}
+
+ /* Actually dig node */
+
+ if (is_valid_dig && n.getContent() != CONTENT_IGNORE)
+ m_script->node_on_dig(p_under, n, playersao);
+
+ v3s16 blockpos = getNodeBlockPos(p_under);
+ RemoteClient *client = getClient(peer_id);
+ // Send unusual result (that is, node not being removed)
+ if (m_env->getMap().getNode(p_under).getContent() != CONTENT_AIR)
+ // Re-send block to revert change on client-side
+ client->SetBlockNotSent(blockpos);
+ else
+ client->ResendBlockIfOnWire(blockpos);
+
+ return;
} // action == INTERACT_DIGGING_COMPLETED
- /*
- 3: place block or right-click object
- */
- else if (action == INTERACT_PLACE) {
+ // Place block or right-click object
+ case INTERACT_PLACE: {
ItemStack selected_item;
playersao->getWieldedItem(&selected_item, nullptr);
@@ -1257,59 +1257,54 @@ void Server::handleCommand_Interact(NetworkPacket *pkt)
}
pointed_object->rightClick(playersao);
- } else if (m_script->item_OnPlace(
- selected_item, playersao, pointed)) {
+ } else if (m_script->item_OnPlace(selected_item, playersao, pointed)) {
// Placement was handled in lua
// Apply returned ItemStack
- if (playersao->setWieldedItem(selected_item)) {
+ if (playersao->setWieldedItem(selected_item))
SendInventory(playersao, true);
- }
}
+ if (pointed.type != POINTEDTHING_NODE)
+ return;
+
// If item has node placement prediction, always send the
// blocks to make sure the client knows what exactly happened
RemoteClient *client = getClient(peer_id);
- v3s16 blockpos = getNodeBlockPos(floatToInt(pointed_pos_above, BS));
- v3s16 blockpos2 = getNodeBlockPos(floatToInt(pointed_pos_under, BS));
- if (!selected_item.getDefinition(m_itemdef).node_placement_prediction.empty()) {
+ v3s16 blockpos = getNodeBlockPos(pointed.node_abovesurface);
+ v3s16 blockpos2 = getNodeBlockPos(pointed.node_undersurface);
+ if (!selected_item.getDefinition(m_itemdef
+ ).node_placement_prediction.empty()) {
client->SetBlockNotSent(blockpos);
- if (blockpos2 != blockpos) {
+ if (blockpos2 != blockpos)
client->SetBlockNotSent(blockpos2);
- }
- }
- else {
+ } else {
client->ResendBlockIfOnWire(blockpos);
- if (blockpos2 != blockpos) {
+ if (blockpos2 != blockpos)
client->ResendBlockIfOnWire(blockpos2);
- }
}
+
+ return;
} // action == INTERACT_PLACE
- /*
- 4: use
- */
- else if (action == INTERACT_USE) {
+ case INTERACT_USE: {
ItemStack selected_item;
playersao->getWieldedItem(&selected_item, nullptr);
actionstream << player->getName() << " uses " << selected_item.name
<< ", pointing at " << pointed.dump() << std::endl;
- if (m_script->item_OnUse(
- selected_item, playersao, pointed)) {
+ if (m_script->item_OnUse(selected_item, playersao, pointed)) {
// Apply returned ItemStack
- if (playersao->setWieldedItem(selected_item)) {
+ if (playersao->setWieldedItem(selected_item))
SendInventory(playersao, true);
- }
}
- } // action == INTERACT_USE
+ return;
+ }
- /*
- 5: rightclick air
- */
- else if (action == INTERACT_ACTIVATE) {
+ // Rightclick air
+ case INTERACT_ACTIVATE: {
ItemStack selected_item;
playersao->getWieldedItem(&selected_item, nullptr);
@@ -1318,21 +1313,17 @@ void Server::handleCommand_Interact(NetworkPacket *pkt)
pointed.type = POINTEDTHING_NOTHING; // can only ever be NOTHING
- if (m_script->item_OnSecondaryUse(
- selected_item, playersao, pointed)) {
- if (playersao->setWieldedItem(selected_item)) {
+ if (m_script->item_OnSecondaryUse(selected_item, playersao, pointed)) {
+ if (playersao->setWieldedItem(selected_item))
SendInventory(playersao, true);
- }
}
- } // action == INTERACT_ACTIVATE
+ return;
+ }
+
+ default:
+ warningstream << "Server: Invalid action " << action << std::endl;
- /*
- Catch invalid actions
- */
- else {
- warningstream << "Server: Invalid action "
- << action << std::endl;
}
}
@@ -1658,19 +1649,18 @@ void Server::handleCommand_SrpBytesM(NetworkPacket* pkt)
bool wantSudo = (cstate == CS_Active);
- verbosestream << "Server: Received TOCLIENT_SRP_BYTES_M." << std::endl;
+ verbosestream << "Server: Received TOSERVER_SRP_BYTES_M." << std::endl;
if (!((cstate == CS_HelloSent) || (cstate == CS_Active))) {
- actionstream << "Server: got SRP _M packet in wrong state "
- << cstate << " from " << addr_s
- << ". Ignoring." << std::endl;
+ warningstream << "Server: got SRP_M packet in wrong state "
+ << cstate << " from " << addr_s << ". Ignoring." << std::endl;
return;
}
if (client->chosen_mech != AUTH_MECHANISM_SRP &&
client->chosen_mech != AUTH_MECHANISM_LEGACY_PASSWORD) {
- actionstream << "Server: got SRP _M packet, while auth"
- << "is going on with mech " << client->chosen_mech << " from "
+ warningstream << "Server: got SRP_M packet, while auth "
+ "is going on with mech " << client->chosen_mech << " from "
<< addr_s << " (wantSudo=" << wantSudo << "). Denying." << std::endl;
if (wantSudo) {
DenySudoAccess(peer_id);
@@ -1718,7 +1708,7 @@ void Server::handleCommand_SrpBytesM(NetworkPacket* pkt)
std::string checkpwd; // not used, but needed for passing something
if (!m_script->getAuth(playername, &checkpwd, NULL)) {
- actionstream << "Server: " << playername <<
+ errorstream << "Server: " << playername <<
" cannot be authenticated (auth handler does not work?)" <<
std::endl;
DenyAccess(peer_id, SERVER_ACCESSDENIED_SERVER_FAIL);
diff --git a/src/nodedef.cpp b/src/nodedef.cpp
index a84338752..57d4c008f 100644
--- a/src/nodedef.cpp
+++ b/src/nodedef.cpp
@@ -207,7 +207,7 @@ void TileDef::serialize(std::ostream &os, u16 protocol_version) const
u8 version = 6;
writeU8(os, version);
- os << serializeString(name);
+ os << serializeString16(name);
animation.serialize(os, version);
bool has_scale = scale > 0;
u16 flags = 0;
@@ -241,7 +241,7 @@ void TileDef::deSerialize(std::istream &is, u8 contentfeatures_version,
int version = readU8(is);
if (version < 6)
throw SerializationError("unsupported TileDef version");
- name = deSerializeString(is);
+ name = deSerializeString16(is);
animation.deSerialize(is, version);
u16 flags = readU16(is);
backface_culling = flags & TILE_FLAG_BACKFACE_CULLING;
@@ -266,9 +266,6 @@ void TextureSettings::readSettings()
{
connected_glass = g_settings->getBool("connected_glass");
opaque_water = g_settings->getBool("opaque_water");
- bool enable_shaders = g_settings->getBool("enable_shaders");
- bool enable_bumpmapping = g_settings->getBool("enable_bumpmapping");
- bool enable_parallax_occlusion = g_settings->getBool("enable_parallax_occlusion");
bool smooth_lighting = g_settings->getBool("smooth_lighting");
enable_mesh_cache = g_settings->getBool("enable_mesh_cache");
enable_minimap = g_settings->getBool("enable_minimap");
@@ -281,8 +278,6 @@ void TextureSettings::readSettings()
if (smooth_lighting)
enable_mesh_cache = false;
- use_normal_texture = enable_shaders &&
- (enable_bumpmapping || enable_parallax_occlusion);
if (leaves_style_str == "fancy") {
leaves_style = LEAVES_FANCY;
} else if (leaves_style_str == "simple") {
@@ -317,6 +312,18 @@ ContentFeatures::ContentFeatures()
reset();
}
+ContentFeatures::~ContentFeatures()
+{
+#ifndef SERVER
+ for (u16 j = 0; j < 6; j++) {
+ delete tiles[j].layers[0].frames;
+ delete tiles[j].layers[1].frames;
+ }
+ for (u16 j = 0; j < CF_SPECIAL_COUNT; j++)
+ delete special_tiles[j].layers[0].frames;
+#endif
+}
+
void ContentFeatures::reset()
{
/*
@@ -353,7 +360,7 @@ void ContentFeatures::reset()
i = TileDef();
for (auto &j : tiledef_special)
j = TileDef();
- alpha = 255;
+ alpha = ALPHAMODE_OPAQUE;
post_effect_color = video::SColor(0, 0, 0, 0);
param_type = CPT_NONE;
param_type_2 = CPT2_NONE;
@@ -398,16 +405,41 @@ void ContentFeatures::reset()
node_dig_prediction = "air";
}
+void ContentFeatures::setAlphaFromLegacy(u8 legacy_alpha)
+{
+ // No special handling for nodebox/mesh here as it doesn't make sense to
+ // throw warnings when the server is too old to support the "correct" way
+ switch (drawtype) {
+ case NDT_NORMAL:
+ alpha = legacy_alpha == 255 ? ALPHAMODE_OPAQUE : ALPHAMODE_CLIP;
+ break;
+ case NDT_LIQUID:
+ case NDT_FLOWINGLIQUID:
+ alpha = legacy_alpha == 255 ? ALPHAMODE_OPAQUE : ALPHAMODE_BLEND;
+ break;
+ default:
+ alpha = legacy_alpha == 255 ? ALPHAMODE_CLIP : ALPHAMODE_BLEND;
+ break;
+ }
+}
+
+u8 ContentFeatures::getAlphaForLegacy() const
+{
+ // This is so simple only because 255 and 0 mean wildly different things
+ // depending on drawtype...
+ return alpha == ALPHAMODE_OPAQUE ? 255 : 0;
+}
+
void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const
{
const u8 version = CONTENTFEATURES_VERSION;
writeU8(os, version);
// general
- os << serializeString(name);
+ os << serializeString16(name);
writeU16(os, groups.size());
for (const auto &group : groups) {
- os << serializeString(group.first);
+ os << serializeString16(group.first);
writeS16(os, group.second);
}
writeU8(os, param_type);
@@ -415,7 +447,7 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const
// visual
writeU8(os, drawtype);
- os << serializeString(mesh);
+ os << serializeString16(mesh);
writeF32(os, visual_scale);
writeU8(os, 6);
for (const TileDef &td : tiledef)
@@ -426,11 +458,11 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const
for (const TileDef &td : tiledef_special) {
td.serialize(os, protocol_version);
}
- writeU8(os, alpha);
+ writeU8(os, getAlphaForLegacy());
writeU8(os, color.getRed());
writeU8(os, color.getGreen());
writeU8(os, color.getBlue());
- os << serializeString(palette_name);
+ os << serializeString16(palette_name);
writeU8(os, waving);
writeU8(os, connect_sides);
writeU16(os, connects_to_ids.size());
@@ -458,8 +490,8 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const
// liquid
writeU8(os, liquid_type);
- os << serializeString(liquid_alternative_flowing);
- os << serializeString(liquid_alternative_source);
+ os << serializeString16(liquid_alternative_flowing);
+ os << serializeString16(liquid_alternative_source);
writeU8(os, liquid_viscosity);
writeU8(os, liquid_renewable);
writeU8(os, liquid_range);
@@ -480,23 +512,9 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const
writeU8(os, legacy_facedir_simple);
writeU8(os, legacy_wallmounted);
- os << serializeString(node_dig_prediction);
+ os << serializeString16(node_dig_prediction);
writeU8(os, leveled_max);
-}
-
-void ContentFeatures::correctAlpha(TileDef *tiles, int length)
-{
- // alpha == 0 means that the node is using texture alpha
- if (alpha == 0 || alpha == 255)
- return;
-
- for (int i = 0; i < length; i++) {
- if (tiles[i].name.empty())
- continue;
- std::stringstream s;
- s << tiles[i].name << "^[noalpha^[opacity:" << ((int)alpha);
- tiles[i].name = s.str();
- }
+ writeU8(os, alpha);
}
void ContentFeatures::deSerialize(std::istream &is)
@@ -507,11 +525,11 @@ void ContentFeatures::deSerialize(std::istream &is)
throw SerializationError("unsupported ContentFeatures version");
// general
- name = deSerializeString(is);
+ name = deSerializeString16(is);
groups.clear();
u32 groups_size = readU16(is);
for (u32 i = 0; i < groups_size; i++) {
- std::string name = deSerializeString(is);
+ std::string name = deSerializeString16(is);
int value = readS16(is);
groups[name] = value;
}
@@ -520,7 +538,7 @@ void ContentFeatures::deSerialize(std::istream &is)
// visual
drawtype = (enum NodeDrawType) readU8(is);
- mesh = deSerializeString(is);
+ mesh = deSerializeString16(is);
visual_scale = readF32(is);
if (readU8(is) != 6)
throw SerializationError("unsupported tile count");
@@ -532,11 +550,11 @@ void ContentFeatures::deSerialize(std::istream &is)
throw SerializationError("unsupported CF_SPECIAL_COUNT");
for (TileDef &td : tiledef_special)
td.deSerialize(is, version, drawtype);
- alpha = readU8(is);
+ setAlphaFromLegacy(readU8(is));
color.setRed(readU8(is));
color.setGreen(readU8(is));
color.setBlue(readU8(is));
- palette_name = deSerializeString(is);
+ palette_name = deSerializeString16(is);
waving = readU8(is);
connect_sides = readU8(is);
u16 connects_to_size = readU16(is);
@@ -566,8 +584,8 @@ void ContentFeatures::deSerialize(std::istream &is)
// liquid
liquid_type = (enum LiquidType) readU8(is);
- liquid_alternative_flowing = deSerializeString(is);
- liquid_alternative_source = deSerializeString(is);
+ liquid_alternative_flowing = deSerializeString16(is);
+ liquid_alternative_source = deSerializeString16(is);
liquid_viscosity = readU8(is);
liquid_renewable = readU8(is);
liquid_range = readU8(is);
@@ -589,11 +607,17 @@ void ContentFeatures::deSerialize(std::istream &is)
legacy_wallmounted = readU8(is);
try {
- node_dig_prediction = deSerializeString(is);
- u8 tmp_leveled_max = readU8(is);
+ node_dig_prediction = deSerializeString16(is);
+
+ u8 tmp = readU8(is);
if (is.eof()) /* readU8 doesn't throw exceptions so we have to do this */
throw SerializationError("");
- leveled_max = tmp_leveled_max;
+ leveled_max = tmp;
+
+ tmp = readU8(is);
+ if (is.eof())
+ throw SerializationError("");
+ alpha = static_cast<enum AlphaMode>(tmp);
} catch(SerializationError &e) {};
}
@@ -610,7 +634,7 @@ static void fillTileAttribs(ITextureSource *tsrc, TileLayer *layer,
bool has_scale = tiledef.scale > 0;
bool use_autoscale = tsettings.autoscale_mode == AUTOSCALE_FORCE ||
(tsettings.autoscale_mode == AUTOSCALE_ENABLE && !has_scale);
- if (use_autoscale && layer->texture) {
+ if (use_autoscale) {
auto texture_size = layer->texture->getOriginalSize();
float base_size = tsettings.node_texture_size;
float size = std::fmin(texture_size.Width, texture_size.Height);
@@ -623,10 +647,6 @@ static void fillTileAttribs(ITextureSource *tsrc, TileLayer *layer,
if (!tile.world_aligned)
layer->scale = 1;
- // Normal texture and shader flags texture
- if (tsettings.use_normal_texture) {
- layer->normal_texture = tsrc->getNormalTexture(tiledef.name);
- }
layer->flags_texture = tsrc->getShaderFlagsTexture(layer->normal_texture ? true : false);
// Material flags
@@ -662,7 +682,7 @@ static void fillTileAttribs(ITextureSource *tsrc, TileLayer *layer,
} else {
std::ostringstream os(std::ios::binary);
if (!layer->frames) {
- layer->frames = std::make_shared<std::vector<FrameSpec>>();
+ layer->frames = new std::vector<FrameSpec>();
}
layer->frames->resize(frame_count);
@@ -683,9 +703,56 @@ static void fillTileAttribs(ITextureSource *tsrc, TileLayer *layer,
}
}
}
-#endif
-#ifndef SERVER
+bool ContentFeatures::textureAlphaCheck(ITextureSource *tsrc, const TileDef *tiles, int length)
+{
+ video::IVideoDriver *driver = RenderingEngine::get_video_driver();
+ static thread_local bool long_warning_printed = false;
+ std::set<std::string> seen;
+
+ for (int i = 0; i < length; i++) {
+ if (seen.find(tiles[i].name) != seen.end())
+ continue;
+ seen.insert(tiles[i].name);
+
+ // Load the texture and see if there's any transparent pixels
+ video::ITexture *texture = tsrc->getTexture(tiles[i].name);
+ video::IImage *image = driver->createImage(texture,
+ core::position2d<s32>(0, 0), texture->getOriginalSize());
+ if (!image)
+ continue;
+ core::dimension2d<u32> dim = image->getDimension();
+ bool ok = true;
+ for (u16 x = 0; x < dim.Width; x++) {
+ for (u16 y = 0; y < dim.Height; y++) {
+ if (image->getPixel(x, y).getAlpha() < 255) {
+ ok = false;
+ goto break_loop;
+ }
+ }
+ }
+
+break_loop:
+ image->drop();
+ if (ok)
+ continue;
+ warningstream << "Texture \"" << tiles[i].name << "\" of "
+ << name << " has transparency, assuming "
+ "use_texture_alpha = \"clip\"." << std::endl;
+ if (!long_warning_printed) {
+ warningstream << " This warning can be a false-positive if "
+ "unused pixels in the texture are transparent. However if "
+ "it is meant to be transparent, you *MUST* update the "
+ "nodedef and set use_texture_alpha = \"clip\"! This "
+ "compatibility code will be removed in a few releases."
+ << std::endl;
+ long_warning_printed = true;
+ }
+ return true;
+ }
+ return false;
+}
+
bool isWorldAligned(AlignStyle style, WorldAlignMode mode, NodeDrawType drawtype)
{
if (style == ALIGN_STYLE_WORLD)
@@ -726,31 +793,33 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc
bool is_liquid = false;
- u8 material_type = (alpha == 255) ?
- TILE_MATERIAL_BASIC : TILE_MATERIAL_ALPHA;
+ if (alpha == ALPHAMODE_LEGACY_COMPAT) {
+ // Before working with the alpha mode, resolve any legacy kludges
+ alpha = textureAlphaCheck(tsrc, tdef, 6) ? ALPHAMODE_CLIP : ALPHAMODE_OPAQUE;
+ }
+
+ MaterialType material_type = alpha == ALPHAMODE_OPAQUE ?
+ TILE_MATERIAL_OPAQUE : (alpha == ALPHAMODE_CLIP ? TILE_MATERIAL_BASIC :
+ TILE_MATERIAL_ALPHA);
switch (drawtype) {
default:
case NDT_NORMAL:
- material_type = (alpha == 255) ?
- TILE_MATERIAL_OPAQUE : TILE_MATERIAL_ALPHA;
solidness = 2;
break;
case NDT_AIRLIKE:
solidness = 0;
break;
case NDT_LIQUID:
- assert(liquid_type == LIQUID_SOURCE);
if (tsettings.opaque_water)
- alpha = 255;
+ alpha = ALPHAMODE_OPAQUE;
solidness = 1;
is_liquid = true;
break;
case NDT_FLOWINGLIQUID:
- assert(liquid_type == LIQUID_FLOWING);
solidness = 0;
if (tsettings.opaque_water)
- alpha = 255;
+ alpha = ALPHAMODE_OPAQUE;
is_liquid = true;
break;
case NDT_GLASSLIKE:
@@ -803,12 +872,15 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc
case NDT_MESH:
case NDT_NODEBOX:
solidness = 0;
- if (waving == 1)
+ if (waving == 1) {
material_type = TILE_MATERIAL_WAVING_PLANTS;
- else if (waving == 2)
+ } else if (waving == 2) {
material_type = TILE_MATERIAL_WAVING_LEAVES;
- else if (waving == 3)
- material_type = TILE_MATERIAL_WAVING_LIQUID_BASIC;
+ } else if (waving == 3) {
+ material_type = alpha == ALPHAMODE_OPAQUE ?
+ TILE_MATERIAL_WAVING_LIQUID_OPAQUE : (alpha == ALPHAMODE_CLIP ?
+ TILE_MATERIAL_WAVING_LIQUID_BASIC : TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT);
+ }
break;
case NDT_TORCHLIKE:
case NDT_SIGNLIKE:
@@ -822,23 +894,19 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc
}
if (is_liquid) {
- // Vertex alpha is no longer supported, correct if necessary.
- correctAlpha(tdef, 6);
- correctAlpha(tdef_overlay, 6);
- correctAlpha(tdef_spec, CF_SPECIAL_COUNT);
-
if (waving == 3) {
- material_type = (alpha == 255) ? TILE_MATERIAL_WAVING_LIQUID_OPAQUE :
- TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT;
+ material_type = alpha == ALPHAMODE_OPAQUE ?
+ TILE_MATERIAL_WAVING_LIQUID_OPAQUE : (alpha == ALPHAMODE_CLIP ?
+ TILE_MATERIAL_WAVING_LIQUID_BASIC : TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT);
} else {
- material_type = (alpha == 255) ? TILE_MATERIAL_LIQUID_OPAQUE :
+ material_type = alpha == ALPHAMODE_OPAQUE ? TILE_MATERIAL_LIQUID_OPAQUE :
TILE_MATERIAL_LIQUID_TRANSPARENT;
}
}
u32 tile_shader = shdsrc->getShader("nodes_shader", material_type, drawtype);
- u8 overlay_material = material_type;
+ MaterialType overlay_material = material_type;
if (overlay_material == TILE_MATERIAL_OPAQUE)
overlay_material = TILE_MATERIAL_BASIC;
else if (overlay_material == TILE_MATERIAL_LIQUID_OPAQUE)
@@ -859,7 +927,7 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc
tdef[j].backface_culling, tsettings);
}
- u8 special_material = material_type;
+ MaterialType special_material = material_type;
if (drawtype == NDT_PLANTLIKE_ROOTED) {
if (waving == 1)
special_material = TILE_MATERIAL_WAVING_PLANTS;
@@ -1325,6 +1393,7 @@ void NodeDefManager::applyTextureOverrides(const std::vector<TextureOverride> &o
ContentFeatures &nodedef = m_content_features[id];
+ // Override tiles
if (texture_override.hasTarget(OverrideTarget::TOP))
nodedef.tiledef[0].name = texture_override.texture;
@@ -1342,6 +1411,26 @@ void NodeDefManager::applyTextureOverrides(const std::vector<TextureOverride> &o
if (texture_override.hasTarget(OverrideTarget::FRONT))
nodedef.tiledef[5].name = texture_override.texture;
+
+
+ // Override special tiles, if applicable
+ if (texture_override.hasTarget(OverrideTarget::SPECIAL_1))
+ nodedef.tiledef_special[0].name = texture_override.texture;
+
+ if (texture_override.hasTarget(OverrideTarget::SPECIAL_2))
+ nodedef.tiledef_special[1].name = texture_override.texture;
+
+ if (texture_override.hasTarget(OverrideTarget::SPECIAL_3))
+ nodedef.tiledef_special[2].name = texture_override.texture;
+
+ if (texture_override.hasTarget(OverrideTarget::SPECIAL_4))
+ nodedef.tiledef_special[3].name = texture_override.texture;
+
+ if (texture_override.hasTarget(OverrideTarget::SPECIAL_5))
+ nodedef.tiledef_special[4].name = texture_override.texture;
+
+ if (texture_override.hasTarget(OverrideTarget::SPECIAL_6))
+ nodedef.tiledef_special[5].name = texture_override.texture;
}
}
@@ -1388,7 +1477,7 @@ void NodeDefManager::serialize(std::ostream &os, u16 protocol_version) const
// strict version incompatibilities
std::ostringstream wrapper_os(std::ios::binary);
f->serialize(wrapper_os, protocol_version);
- os2<<serializeString(wrapper_os.str());
+ os2<<serializeString16(wrapper_os.str());
// must not overflow
u16 next = count + 1;
@@ -1396,7 +1485,7 @@ void NodeDefManager::serialize(std::ostream &os, u16 protocol_version) const
count++;
}
writeU16(os, count);
- os << serializeLongString(os2.str());
+ os << serializeString32(os2.str());
}
@@ -1407,13 +1496,13 @@ void NodeDefManager::deSerialize(std::istream &is)
if (version != 1)
throw SerializationError("unsupported NodeDefinitionManager version");
u16 count = readU16(is);
- std::istringstream is2(deSerializeLongString(is), std::ios::binary);
+ std::istringstream is2(deSerializeString32(is), std::ios::binary);
ContentFeatures f;
for (u16 n = 0; n < count; n++) {
u16 i = readU16(is2);
// Read it from the string wrapper
- std::string wrapper = deSerializeString(is2);
+ std::string wrapper = deSerializeString16(is2);
std::istringstream wrapper_is(wrapper, std::ios::binary);
f.deSerialize(wrapper_is);
@@ -1521,7 +1610,7 @@ static void removeDupes(std::vector<content_t> &list)
void NodeDefManager::resolveCrossrefs()
{
for (ContentFeatures &f : m_content_features) {
- if (f.liquid_type != LIQUID_NONE) {
+ if (f.liquid_type != LIQUID_NONE || f.drawtype == NDT_LIQUID || f.drawtype == NDT_FLOWINGLIQUID) {
f.liquid_alternative_flowing_id = getId(f.liquid_alternative_flowing);
f.liquid_alternative_source_id = getId(f.liquid_alternative_source);
continue;
diff --git a/src/nodedef.h b/src/nodedef.h
index 0992001e1..6fc20518d 100644
--- a/src/nodedef.h
+++ b/src/nodedef.h
@@ -158,7 +158,6 @@ public:
int node_texture_size;
bool opaque_water;
bool connected_glass;
- bool use_normal_texture;
bool enable_mesh_cache;
bool enable_minimap;
@@ -232,6 +231,14 @@ enum AlignStyle : u8 {
ALIGN_STYLE_USER_DEFINED,
};
+enum AlphaMode : u8 {
+ ALPHAMODE_BLEND,
+ ALPHAMODE_CLIP,
+ ALPHAMODE_OPAQUE,
+ ALPHAMODE_LEGACY_COMPAT, /* means either opaque or clip */
+};
+
+
/*
Stand-alone definition of a TileSpec (basically a server-side TileSpec)
*/
@@ -261,6 +268,11 @@ struct TileDef
NodeDrawType drawtype);
};
+// Defines the number of special tiles per nodedef
+//
+// NOTE: When changing this value, the enum entries of OverrideTarget and
+// parser in TextureOverrideSource must be updated so that all special
+// tiles can be overridden.
#define CF_SPECIAL_COUNT 6
struct ContentFeatures
@@ -311,9 +323,7 @@ struct ContentFeatures
// These will be drawn over the base tiles.
TileDef tiledef_overlay[6];
TileDef tiledef_special[CF_SPECIAL_COUNT]; // eg. flowing liquid
- // If 255, the node is opaque.
- // Otherwise it uses texture alpha.
- u8 alpha;
+ AlphaMode alpha;
// The color of the node.
video::SColor color;
std::string palette_name;
@@ -409,22 +419,48 @@ struct ContentFeatures
*/
ContentFeatures();
- ~ContentFeatures() = default;
+ ~ContentFeatures();
void reset();
void serialize(std::ostream &os, u16 protocol_version) const;
void deSerialize(std::istream &is);
- /*!
- * Since vertex alpha is no longer supported, this method
- * adds opacity directly to the texture pixels.
- *
- * \param tiles array of the tile definitions.
- * \param length length of tiles
- */
- void correctAlpha(TileDef *tiles, int length);
/*
Some handy methods
*/
+ void setDefaultAlphaMode()
+ {
+ switch (drawtype) {
+ case NDT_NORMAL:
+ case NDT_LIQUID:
+ case NDT_FLOWINGLIQUID:
+ alpha = ALPHAMODE_OPAQUE;
+ break;
+ case NDT_NODEBOX:
+ case NDT_MESH:
+ alpha = ALPHAMODE_LEGACY_COMPAT; // this should eventually be OPAQUE
+ break;
+ default:
+ alpha = ALPHAMODE_CLIP;
+ break;
+ }
+ }
+
+ bool needsBackfaceCulling() const
+ {
+ switch (drawtype) {
+ case NDT_TORCHLIKE:
+ case NDT_SIGNLIKE:
+ case NDT_FIRELIKE:
+ case NDT_RAILLIKE:
+ case NDT_PLANTLIKE:
+ case NDT_PLANTLIKE_ROOTED:
+ case NDT_MESH:
+ return false;
+ default:
+ return true;
+ }
+ }
+
bool isLiquid() const{
return (liquid_type != LIQUID_NONE);
}
@@ -442,6 +478,21 @@ struct ContentFeatures
void updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc,
scene::IMeshManipulator *meshmanip, Client *client, const TextureSettings &tsettings);
#endif
+
+private:
+#ifndef SERVER
+ /*
+ * Checks if any tile texture has any transparent pixels.
+ * Prints a warning and returns true if that is the case, false otherwise.
+ * This is supposed to be used for use_texture_alpha backwards compatibility.
+ */
+ bool textureAlphaCheck(ITextureSource *tsrc, const TileDef *tiles,
+ int length);
+#endif
+
+ void setAlphaFromLegacy(u8 legacy_alpha);
+
+ u8 getAlphaForLegacy() const;
};
/*!
diff --git a/src/nodemetadata.cpp b/src/nodemetadata.cpp
index b84ffc8cb..6447c8785 100644
--- a/src/nodemetadata.cpp
+++ b/src/nodemetadata.cpp
@@ -49,8 +49,8 @@ void NodeMetadata::serialize(std::ostream &os, u8 version, bool disk) const
if (!disk && priv)
continue;
- os << serializeString(sv.first);
- os << serializeLongString(sv.second);
+ os << serializeString16(sv.first);
+ os << serializeString32(sv.second);
if (version >= 2)
writeU8(os, (priv) ? 1 : 0);
}
@@ -63,8 +63,8 @@ void NodeMetadata::deSerialize(std::istream &is, u8 version)
clear();
int num_vars = readU32(is);
for(int i=0; i<num_vars; i++){
- std::string name = deSerializeString(is);
- std::string var = deSerializeLongString(is);
+ std::string name = deSerializeString16(is);
+ std::string var = deSerializeString32(is);
m_stringvars[name] = var;
if (version >= 2) {
if (readU8(is) == 1)
diff --git a/src/noise.cpp b/src/noise.cpp
index 5a1d989cb..e16564b05 100644
--- a/src/noise.cpp
+++ b/src/noise.cpp
@@ -424,7 +424,7 @@ float NoisePerlin3D(NoiseParams *np, float x, float y, float z, s32 seed)
Noise::Noise(NoiseParams *np_, s32 seed, u32 sx, u32 sy, u32 sz)
{
- memcpy(&np, np_, sizeof(np));
+ np = *np_;
this->seed = seed;
this->sx = sx;
this->sy = sy;
diff --git a/src/noise.h b/src/noise.h
index 7b5e83251..613879890 100644
--- a/src/noise.h
+++ b/src/noise.h
@@ -29,6 +29,13 @@
#include "exceptions.h"
#include "util/string.h"
+#if defined(RANDOM_MIN)
+#undef RANDOM_MIN
+#endif
+#if defined(RANDOM_MAX)
+#undef RANDOM_MAX
+#endif
+
extern FlagDesc flagdesc_noiseparams[];
// Note: this class is not polymorphic so that its high level of
diff --git a/src/object_properties.cpp b/src/object_properties.cpp
index 8d51bcbfa..2eebc27d6 100644
--- a/src/object_properties.cpp
+++ b/src/object_properties.cpp
@@ -24,6 +24,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "util/basic_macros.h"
#include <sstream>
+static const video::SColor NULL_BGCOLOR{0, 1, 1, 1};
+
ObjectProperties::ObjectProperties()
{
textures.emplace_back("unknown_object.png");
@@ -62,6 +64,13 @@ std::string ObjectProperties::dump()
os << ", nametag=" << nametag;
os << ", nametag_color=" << "\"" << nametag_color.getAlpha() << "," << nametag_color.getRed()
<< "," << nametag_color.getGreen() << "," << nametag_color.getBlue() << "\" ";
+
+ if (nametag_bgcolor)
+ os << ", nametag_bgcolor=" << "\"" << nametag_color.getAlpha() << "," << nametag_color.getRed()
+ << "," << nametag_color.getGreen() << "," << nametag_color.getBlue() << "\" ";
+ else
+ os << ", nametag_bgcolor=null ";
+
os << ", selectionbox=" << PP(selectionbox.MinEdge) << "," << PP(selectionbox.MaxEdge);
os << ", pointable=" << pointable;
os << ", static_save=" << static_save;
@@ -70,6 +79,7 @@ std::string ObjectProperties::dump()
os << ", use_texture_alpha=" << use_texture_alpha;
os << ", damage_texture_modifier=" << damage_texture_modifier;
os << ", shaded=" << shaded;
+ os << ", show_on_minimap=" << show_on_minimap;
return os.str();
}
@@ -84,11 +94,11 @@ void ObjectProperties::serialize(std::ostream &os) const
writeV3F32(os, selectionbox.MinEdge);
writeV3F32(os, selectionbox.MaxEdge);
writeU8(os, pointable);
- os << serializeString(visual);
+ os << serializeString16(visual);
writeV3F32(os, visual_size);
writeU16(os, textures.size());
for (const std::string &texture : textures) {
- os << serializeString(texture);
+ os << serializeString16(texture);
}
writeV2S16(os, spritediv);
writeV2S16(os, initial_sprite_basepos);
@@ -96,7 +106,7 @@ void ObjectProperties::serialize(std::ostream &os) const
writeU8(os, makes_footstep_sound);
writeF32(os, automatic_rotate);
// Added in protocol version 14
- os << serializeString(mesh);
+ os << serializeString16(mesh);
writeU16(os, colors.size());
for (video::SColor color : colors) {
writeARGB8(os, color);
@@ -106,18 +116,26 @@ void ObjectProperties::serialize(std::ostream &os) const
writeU8(os, automatic_face_movement_dir);
writeF32(os, automatic_face_movement_dir_offset);
writeU8(os, backface_culling);
- os << serializeString(nametag);
+ os << serializeString16(nametag);
writeARGB8(os, nametag_color);
writeF32(os, automatic_face_movement_max_rotation_per_sec);
- os << serializeString(infotext);
- os << serializeString(wield_item);
+ os << serializeString16(infotext);
+ os << serializeString16(wield_item);
writeS8(os, glow);
writeU16(os, breath_max);
writeF32(os, eye_height);
writeF32(os, zoom_fov);
writeU8(os, use_texture_alpha);
- os << serializeString(damage_texture_modifier);
+ os << serializeString16(damage_texture_modifier);
writeU8(os, shaded);
+ writeU8(os, show_on_minimap);
+
+ if (!nametag_bgcolor)
+ writeARGB8(os, NULL_BGCOLOR);
+ else if (nametag_bgcolor.value().getAlpha() == 0)
+ writeARGB8(os, video::SColor(0, 0, 0, 0));
+ else
+ writeARGB8(os, nametag_bgcolor.value());
// Add stuff only at the bottom.
// Never remove anything, because we don't want new versions of this
@@ -137,19 +155,19 @@ void ObjectProperties::deSerialize(std::istream &is)
selectionbox.MinEdge = readV3F32(is);
selectionbox.MaxEdge = readV3F32(is);
pointable = readU8(is);
- visual = deSerializeString(is);
+ visual = deSerializeString16(is);
visual_size = readV3F32(is);
textures.clear();
u32 texture_count = readU16(is);
for (u32 i = 0; i < texture_count; i++){
- textures.push_back(deSerializeString(is));
+ textures.push_back(deSerializeString16(is));
}
spritediv = readV2S16(is);
initial_sprite_basepos = readV2S16(is);
is_visible = readU8(is);
makes_footstep_sound = readU8(is);
automatic_rotate = readF32(is);
- mesh = deSerializeString(is);
+ mesh = deSerializeString16(is);
colors.clear();
u32 color_count = readU16(is);
for (u32 i = 0; i < color_count; i++){
@@ -160,21 +178,31 @@ void ObjectProperties::deSerialize(std::istream &is)
automatic_face_movement_dir = readU8(is);
automatic_face_movement_dir_offset = readF32(is);
backface_culling = readU8(is);
- nametag = deSerializeString(is);
+ nametag = deSerializeString16(is);
nametag_color = readARGB8(is);
automatic_face_movement_max_rotation_per_sec = readF32(is);
- infotext = deSerializeString(is);
- wield_item = deSerializeString(is);
+ infotext = deSerializeString16(is);
+ wield_item = deSerializeString16(is);
glow = readS8(is);
breath_max = readU16(is);
eye_height = readF32(is);
zoom_fov = readF32(is);
use_texture_alpha = readU8(is);
try {
- damage_texture_modifier = deSerializeString(is);
+ damage_texture_modifier = deSerializeString16(is);
u8 tmp = readU8(is);
if (is.eof())
- throw SerializationError("");
+ return;
shaded = tmp;
+ tmp = readU8(is);
+ if (is.eof())
+ return;
+ show_on_minimap = tmp;
+
+ auto bgcolor = readARGB8(is);
+ if (bgcolor != NULL_BGCOLOR)
+ nametag_bgcolor = bgcolor;
+ else
+ nametag_bgcolor = nullopt;
} catch (SerializationError &e) {}
}
diff --git a/src/object_properties.h b/src/object_properties.h
index f010c1daf..db28eebfd 100644
--- a/src/object_properties.h
+++ b/src/object_properties.h
@@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <iostream>
#include <map>
#include <vector>
+#include "util/Optional.h"
struct ObjectProperties
{
@@ -53,6 +54,7 @@ struct ObjectProperties
s8 glow = 0;
std::string nametag = "";
video::SColor nametag_color = video::SColor(255, 255, 255, 255);
+ Optional<video::SColor> nametag_bgcolor = nullopt;
f32 automatic_face_movement_max_rotation_per_sec = -1.0f;
std::string infotext;
//! For dropped items, this contains item information.
@@ -62,6 +64,7 @@ struct ObjectProperties
float zoom_fov = 0.0f;
bool use_texture_alpha = false;
bool shaded = true;
+ bool show_on_minimap = false;
ObjectProperties();
std::string dump();
diff --git a/src/particles.cpp b/src/particles.cpp
index fd81238dc..14c987958 100644
--- a/src/particles.cpp
+++ b/src/particles.cpp
@@ -28,7 +28,7 @@ void ParticleParameters::serialize(std::ostream &os, u16 protocol_ver) const
writeF32(os, expirationtime);
writeF32(os, size);
writeU8(os, collisiondetection);
- os << serializeLongString(texture);
+ os << serializeString32(texture);
writeU8(os, vertical);
writeU8(os, collision_removal);
animation.serialize(os, 6); /* NOT the protocol ver */
@@ -47,7 +47,7 @@ void ParticleParameters::deSerialize(std::istream &is, u16 protocol_ver)
expirationtime = readF32(is);
size = readF32(is);
collisiondetection = readU8(is);
- texture = deSerializeLongString(is);
+ texture = deSerializeString32(is);
vertical = readU8(is);
collision_removal = readU8(is);
animation.deSerialize(is, 6); /* NOT the protocol ver */
diff --git a/src/pathfinder.cpp b/src/pathfinder.cpp
index 3f0b98c10..1cb84997a 100644
--- a/src/pathfinder.cpp
+++ b/src/pathfinder.cpp
@@ -157,9 +157,8 @@ public:
ArrayGridNodeContainer(Pathfinder *pathf, v3s16 dimensions);
virtual PathGridnode &access(v3s16 p);
-private:
- v3s16 m_dimensions;
+private:
int m_x_stride;
int m_y_stride;
std::vector<PathGridnode> m_nodes_array;
@@ -306,8 +305,6 @@ private:
int m_max_index_y = 0; /**< max index of search area in y direction */
int m_max_index_z = 0; /**< max index of search area in z direction */
-
- int m_searchdistance = 0; /**< max distance to search in each direction */
int m_maxdrop = 0; /**< maximum number of blocks a path may drop */
int m_maxjump = 0; /**< maximum number of blocks a path may jump */
int m_min_target_distance = 0; /**< current smalest path to target */
@@ -619,7 +616,6 @@ std::vector<v3s16> Pathfinder::getPath(v3s16 source,
std::vector<v3s16> retval;
//initialization
- m_searchdistance = searchdistance;
m_maxjump = max_jump;
m_maxdrop = max_drop;
m_start = source;
diff --git a/src/player.h b/src/player.h
index 3bc7762fa..ec068a8b1 100644
--- a/src/player.h
+++ b/src/player.h
@@ -57,8 +57,8 @@ struct PlayerControl
bool a_aux1,
bool a_sneak,
bool a_zoom,
- bool a_LMB,
- bool a_RMB,
+ bool a_dig,
+ bool a_place,
float a_pitch,
float a_yaw,
float a_sidew_move_joystick_axis,
@@ -73,8 +73,8 @@ struct PlayerControl
aux1 = a_aux1;
sneak = a_sneak;
zoom = a_zoom;
- LMB = a_LMB;
- RMB = a_RMB;
+ dig = a_dig;
+ place = a_place;
pitch = a_pitch;
yaw = a_yaw;
sidew_move_joystick_axis = a_sidew_move_joystick_axis;
@@ -88,8 +88,8 @@ struct PlayerControl
bool aux1 = false;
bool sneak = false;
bool zoom = false;
- bool LMB = false;
- bool RMB = false;
+ bool dig = false;
+ bool place = false;
float pitch = 0.0f;
float yaw = 0.0f;
float sidew_move_joystick_axis = 0.0f;
diff --git a/src/porting.cpp b/src/porting.cpp
index d902d3737..4c87bddee 100644
--- a/src/porting.cpp
+++ b/src/porting.cpp
@@ -25,7 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "porting.h"
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(__OpenBSD__)
#include <sys/types.h>
#include <sys/sysctl.h>
extern char **environ;
@@ -56,6 +56,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <crt_externs.h>
#endif
+#if defined(__HAIKU__)
+ #include <FindDirectory.h>
+#endif
+
#include "config.h"
#include "debug.h"
#include "filesys.h"
@@ -321,6 +325,12 @@ bool getCurrentExecPath(char *buf, size_t len)
return true;
}
+#elif defined(__HAIKU__)
+
+bool getCurrentExecPath(char *buf, size_t len)
+{
+ return find_path(B_APP_IMAGE_SYMBOL, B_FIND_PATH_IMAGE_PATH, NULL, buf, len) == B_OK;
+}
//// Solaris
#elif defined(__sun) || defined(sun)
@@ -709,29 +719,48 @@ int mt_snprintf(char *buf, const size_t buf_size, const char *fmt, ...)
return c;
}
-bool openURL(const std::string &url)
+static bool open_uri(const std::string &uri)
{
- if ((url.substr(0, 7) != "http://" && url.substr(0, 8) != "https://") ||
- url.find_first_of("\r\n") != std::string::npos) {
- errorstream << "Invalid url: " << url << std::endl;
+ if (uri.find_first_of("\r\n") != std::string::npos) {
+ errorstream << "Unable to open URI as it is invalid, contains new line: " << uri << std::endl;
return false;
}
#if defined(_WIN32)
- return (intptr_t)ShellExecuteA(NULL, NULL, url.c_str(), NULL, NULL, SW_SHOWNORMAL) > 32;
+ return (intptr_t)ShellExecuteA(NULL, NULL, uri.c_str(), NULL, NULL, SW_SHOWNORMAL) > 32;
#elif defined(__ANDROID__)
- openURLAndroid(url);
+ openURIAndroid(uri);
return true;
#elif defined(__APPLE__)
- const char *argv[] = {"open", url.c_str(), NULL};
+ const char *argv[] = {"open", uri.c_str(), NULL};
return posix_spawnp(NULL, "open", NULL, NULL, (char**)argv,
(*_NSGetEnviron())) == 0;
#else
- const char *argv[] = {"xdg-open", url.c_str(), NULL};
+ const char *argv[] = {"xdg-open", uri.c_str(), NULL};
return posix_spawnp(NULL, "xdg-open", NULL, NULL, (char**)argv, environ) == 0;
#endif
}
+bool open_url(const std::string &url)
+{
+ if (url.substr(0, 7) != "http://" && url.substr(0, 8) != "https://") {
+ errorstream << "Unable to open browser as URL is missing schema: " << url << std::endl;
+ return false;
+ }
+
+ return open_uri(url);
+}
+
+bool open_directory(const std::string &path)
+{
+ if (!fs::IsDir(path)) {
+ errorstream << "Unable to open directory as it does not exist: " << path << std::endl;
+ return false;
+ }
+
+ return open_uri(path);
+}
+
// Load performance counter frequency only once at startup
#ifdef _WIN32
diff --git a/src/porting.h b/src/porting.h
index f50f0a950..e4ebe36fd 100644
--- a/src/porting.h
+++ b/src/porting.h
@@ -309,6 +309,8 @@ inline const char *getPlatformName()
#else
"SunOS"
#endif
+#elif defined(__HAIKU__)
+ "Haiku"
#elif defined(__CYGWIN__)
"Cygwin"
#elif defined(__unix__) || defined(__unix)
@@ -330,7 +332,25 @@ void attachOrCreateConsole();
int mt_snprintf(char *buf, const size_t buf_size, const char *fmt, ...);
-bool openURL(const std::string &url);
+/**
+ * Opens URL in default web browser
+ *
+ * Must begin with http:// or https://, and not contain any new lines
+ *
+ * @param url The URL
+ * @return true on success, false on failure
+ */
+bool open_url(const std::string &url);
+
+/**
+ * Opens a directory in the default file manager
+ *
+ * The directory must exist.
+ *
+ * @param path Path to directory
+ * @return true on success, false on failure
+ */
+bool open_directory(const std::string &path);
} // namespace porting
diff --git a/src/porting_android.cpp b/src/porting_android.cpp
index 41b521ec2..f5870c174 100644
--- a/src/porting_android.cpp
+++ b/src/porting_android.cpp
@@ -213,13 +213,13 @@ void showInputDialog(const std::string &acceptButton, const std::string &hint,
jacceptButton, jhint, jcurrent, jeditType);
}
-void openURLAndroid(const std::string &url)
+void openURIAndroid(const std::string &url)
{
- jmethodID url_open = jnienv->GetMethodID(nativeActivity, "openURL",
+ jmethodID url_open = jnienv->GetMethodID(nativeActivity, "openURI",
"(Ljava/lang/String;)V");
FATAL_ERROR_IF(url_open == nullptr,
- "porting::openURLAndroid unable to find java openURL method");
+ "porting::openURIAndroid unable to find java openURI method");
jstring jurl = jnienv->NewStringUTF(url.c_str());
jnienv->CallVoidMethod(app_global->activity->clazz, url_open, jurl);
diff --git a/src/porting_android.h b/src/porting_android.h
index 6eb054041..239815922 100644
--- a/src/porting_android.h
+++ b/src/porting_android.h
@@ -58,7 +58,7 @@ void initializePathsAndroid();
void showInputDialog(const std::string &acceptButton,
const std::string &hint, const std::string &current, int editType);
-void openURLAndroid(const std::string &url);
+void openURIAndroid(const std::string &url);
/**
* WORKAROUND for not working callbacks from java -> c++
diff --git a/src/profiler.cpp b/src/profiler.cpp
index be8be591e..d05b7abfe 100644
--- a/src/profiler.cpp
+++ b/src/profiler.cpp
@@ -38,7 +38,7 @@ ScopeProfiler::~ScopeProfiler()
return;
float duration_ms = m_timer->stop(true);
- float duration = duration_ms / 1000.0;
+ float duration = duration_ms;
if (m_profiler) {
switch (m_type) {
case SPT_ADD:
diff --git a/src/remoteplayer.cpp b/src/remoteplayer.cpp
index bef60c792..925ad001b 100644
--- a/src/remoteplayer.cpp
+++ b/src/remoteplayer.cpp
@@ -83,122 +83,6 @@ RemotePlayer::RemotePlayer(const char *name, IItemDefManager *idef):
m_star_params = sky_defaults.getStarDefaults();
}
-void RemotePlayer::serializeExtraAttributes(std::string &output)
-{
- assert(m_sao);
- Json::Value json_root;
-
- const StringMap &attrs = m_sao->getMeta().getStrings();
- for (const auto &attr : attrs) {
- json_root[attr.first] = attr.second;
- }
-
- output = fastWriteJson(json_root);
-}
-
-
-void RemotePlayer::deSerialize(std::istream &is, const std::string &playername,
- PlayerSAO *sao)
-{
- Settings args;
-
- if (!args.parseConfigLines(is, "PlayerArgsEnd")) {
- throw SerializationError("PlayerArgsEnd of player " + playername + " not found!");
- }
-
- m_dirty = true;
- //args.getS32("version"); // Version field value not used
- const std::string &name = args.get("name");
- strlcpy(m_name, name.c_str(), PLAYERNAME_SIZE);
-
- if (sao) {
- try {
- sao->setHPRaw(args.getU16("hp"));
- } catch(SettingNotFoundException &e) {
- sao->setHPRaw(PLAYER_MAX_HP_DEFAULT);
- }
-
- try {
- sao->setBasePosition(args.getV3F("position"));
- } catch (SettingNotFoundException &e) {}
-
- try {
- sao->setLookPitch(args.getFloat("pitch"));
- } catch (SettingNotFoundException &e) {}
- try {
- sao->setPlayerYaw(args.getFloat("yaw"));
- } catch (SettingNotFoundException &e) {}
-
- try {
- sao->setBreath(args.getU16("breath"), false);
- } catch (SettingNotFoundException &e) {}
-
- try {
- const std::string &extended_attributes = args.get("extended_attributes");
- std::istringstream iss(extended_attributes);
- Json::CharReaderBuilder builder;
- builder.settings_["collectComments"] = false;
- std::string errs;
-
- Json::Value attr_root;
- Json::parseFromStream(builder, iss, &attr_root, &errs);
-
- const Json::Value::Members attr_list = attr_root.getMemberNames();
- for (const auto &it : attr_list) {
- Json::Value attr_value = attr_root[it];
- sao->getMeta().setString(it, attr_value.asString());
- }
- sao->getMeta().setModified(false);
- } catch (SettingNotFoundException &e) {}
- }
-
- try {
- inventory.deSerialize(is);
- } catch (SerializationError &e) {
- errorstream << "Failed to deserialize player inventory. player_name="
- << name << " " << e.what() << std::endl;
- }
-
- if (!inventory.getList("craftpreview") && inventory.getList("craftresult")) {
- // Convert players without craftpreview
- inventory.addList("craftpreview", 1);
-
- bool craftresult_is_preview = true;
- if(args.exists("craftresult_is_preview"))
- craftresult_is_preview = args.getBool("craftresult_is_preview");
- if(craftresult_is_preview)
- {
- // Clear craftresult
- inventory.getList("craftresult")->changeItem(0, ItemStack());
- }
- }
-}
-
-void RemotePlayer::serialize(std::ostream &os)
-{
- // Utilize a Settings object for storing values
- Settings args;
- args.setS32("version", 1);
- args.set("name", m_name);
-
- // This should not happen
- assert(m_sao);
- args.setU16("hp", m_sao->getHP());
- args.setV3F("position", m_sao->getBasePosition());
- args.setFloat("pitch", m_sao->getLookPitch());
- args.setFloat("yaw", m_sao->getRotation().Y);
- args.setU16("breath", m_sao->getBreath());
-
- std::string extended_attrs;
- serializeExtraAttributes(extended_attrs);
- args.set("extended_attributes", extended_attrs);
-
- args.writeLines(os);
-
- os<<"PlayerArgsEnd\n";
-
- inventory.serialize(os);
-}
const RemotePlayerChatResult RemotePlayer::canSendChatMessage()
{
diff --git a/src/remoteplayer.h b/src/remoteplayer.h
index e4209c54f..8d086fc5a 100644
--- a/src/remoteplayer.h
+++ b/src/remoteplayer.h
@@ -44,8 +44,6 @@ public:
RemotePlayer(const char *name, IItemDefManager *idef);
virtual ~RemotePlayer() = default;
- void deSerialize(std::istream &is, const std::string &playername, PlayerSAO *sao);
-
PlayerSAO *getPlayerSAO() { return m_sao; }
void setPlayerSAO(PlayerSAO *sao) { m_sao = sao; }
@@ -142,14 +140,6 @@ public:
void onSuccessfulSave();
private:
- /*
- serialize() writes a bunch of text that can contain
- any characters except a '\0', and such an ending that
- deSerialize stops reading exactly at the right point.
- */
- void serialize(std::ostream &os);
- void serializeExtraAttributes(std::string &output);
-
PlayerSAO *m_sao = nullptr;
bool m_dirty = false;
diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp
index 3dfd7ce61..6995f6b61 100644
--- a/src/script/common/c_content.cpp
+++ b/src/script/common/c_content.cpp
@@ -56,6 +56,7 @@ void read_item_definition(lua_State* L, int index,
es_ItemType, ITEM_NONE);
getstringfield(L, index, "name", def.name);
getstringfield(L, index, "description", def.description);
+ getstringfield(L, index, "short_description", def.short_description);
getstringfield(L, index, "inventory_image", def.inventory_image);
getstringfield(L, index, "inventory_overlay", def.inventory_overlay);
getstringfield(L, index, "wield_image", def.wield_image);
@@ -82,9 +83,6 @@ void read_item_definition(lua_State* L, int index,
getboolfield(L, index, "liquids_pointable", def.liquids_pointable);
- warn_if_field_exists(L, index, "tool_digging_properties",
- "Obsolete; use tool_capabilities");
-
lua_getfield(L, index, "tool_capabilities");
if(lua_istable(L, -1)){
def.tool_capabilities = new ToolCapabilities(
@@ -142,6 +140,10 @@ void push_item_definition_full(lua_State *L, const ItemDefinition &i)
lua_setfield(L, -2, "name");
lua_pushstring(L, i.description.c_str());
lua_setfield(L, -2, "description");
+ if (!i.short_description.empty()) {
+ lua_pushstring(L, i.short_description.c_str());
+ lua_setfield(L, -2, "short_description");
+ }
lua_pushstring(L, type.c_str());
lua_setfield(L, -2, "type");
lua_pushstring(L, i.inventory_image.c_str());
@@ -310,6 +312,17 @@ void read_object_properties(lua_State *L, int index,
prop->nametag_color = color;
}
lua_pop(L, 1);
+ lua_getfield(L, -1, "nametag_bgcolor");
+ if (!lua_isnil(L, -1)) {
+ if (lua_toboolean(L, -1)) {
+ video::SColor color;
+ if (read_color(L, -1, &color))
+ prop->nametag_bgcolor = color;
+ } else {
+ prop->nametag_bgcolor = nullopt;
+ }
+ }
+ lua_pop(L, 1);
lua_getfield(L, -1, "automatic_face_movement_max_rotation_per_sec");
if (lua_isnumber(L, -1)) {
@@ -328,6 +341,7 @@ void read_object_properties(lua_State *L, int index,
getfloatfield(L, -1, "zoom_fov", prop->zoom_fov);
getboolfield(L, -1, "use_texture_alpha", prop->use_texture_alpha);
getboolfield(L, -1, "shaded", prop->shaded);
+ getboolfield(L, -1, "show_on_minimap", prop->show_on_minimap);
getstringfield(L, -1, "damage_texture_modifier", prop->damage_texture_modifier);
}
@@ -400,6 +414,13 @@ void push_object_properties(lua_State *L, ObjectProperties *prop)
lua_setfield(L, -2, "nametag");
push_ARGB8(L, prop->nametag_color);
lua_setfield(L, -2, "nametag_color");
+ if (prop->nametag_bgcolor) {
+ push_ARGB8(L, prop->nametag_bgcolor.value());
+ lua_setfield(L, -2, "nametag_bgcolor");
+ } else {
+ lua_pushboolean(L, false);
+ lua_setfield(L, -2, "nametag_bgcolor");
+ }
lua_pushnumber(L, prop->automatic_face_movement_max_rotation_per_sec);
lua_setfield(L, -2, "automatic_face_movement_max_rotation_per_sec");
lua_pushlstring(L, prop->infotext.c_str(), prop->infotext.size());
@@ -416,6 +437,8 @@ void push_object_properties(lua_State *L, ObjectProperties *prop)
lua_setfield(L, -2, "shaded");
lua_pushlstring(L, prop->damage_texture_modifier.c_str(), prop->damage_texture_modifier.size());
lua_setfield(L, -2, "damage_texture_modifier");
+ lua_pushboolean(L, prop->show_on_minimap);
+ lua_setfield(L, -2, "show_on_minimap");
}
/******************************************************************************/
@@ -488,13 +511,11 @@ TileDef read_tiledef(lua_State *L, int index, u8 drawtype)
}
/******************************************************************************/
-ContentFeatures read_content_features(lua_State *L, int index)
+void read_content_features(lua_State *L, ContentFeatures &f, int index)
{
if(index < 0)
index = lua_gettop(L) + 1 + index;
- ContentFeatures f;
-
/* Cache existence of some callbacks */
lua_getfield(L, index, "on_construct");
if(!lua_isnil(L, -1)) f.has_on_construct = true;
@@ -617,22 +638,39 @@ ContentFeatures read_content_features(lua_State *L, int index)
}
lua_pop(L, 1);
- f.alpha = getintfield_default(L, index, "alpha", 255);
+ /* alpha & use_texture_alpha */
+ // This is a bit complicated due to compatibility
+
+ f.setDefaultAlphaMode();
+
+ warn_if_field_exists(L, index, "alpha",
+ "Obsolete, only limited compatibility provided; "
+ "replaced by \"use_texture_alpha\"");
+ if (getintfield_default(L, index, "alpha", 255) != 255)
+ f.alpha = ALPHAMODE_BLEND;
+
+ lua_getfield(L, index, "use_texture_alpha");
+ if (lua_isboolean(L, -1)) {
+ warn_if_field_exists(L, index, "use_texture_alpha",
+ "Boolean values are deprecated; use the new choices");
+ if (lua_toboolean(L, -1))
+ f.alpha = (f.drawtype == NDT_NORMAL) ? ALPHAMODE_CLIP : ALPHAMODE_BLEND;
+ } else if (check_field_or_nil(L, -1, LUA_TSTRING, "use_texture_alpha")) {
+ int result = f.alpha;
+ string_to_enum(ScriptApiNode::es_TextureAlphaMode, result,
+ std::string(lua_tostring(L, -1)));
+ f.alpha = static_cast<enum AlphaMode>(result);
+ }
+ lua_pop(L, 1);
- bool usealpha = getboolfield_default(L, index,
- "use_texture_alpha", false);
- if (usealpha)
- f.alpha = 0;
+ /* Other stuff */
- // Read node color.
lua_getfield(L, index, "color");
read_color(L, -1, &f.color);
lua_pop(L, 1);
getstringfield(L, index, "palette", f.palette_name);
- /* Other stuff */
-
lua_getfield(L, index, "post_effect_color");
read_color(L, -1, &f.post_effect_color);
lua_pop(L, 1);
@@ -649,20 +687,6 @@ ContentFeatures read_content_features(lua_State *L, int index)
warningstream << "Node " << f.name.c_str()
<< " has a palette, but not a suitable paramtype2." << std::endl;
- // Warn about some obsolete fields
- warn_if_field_exists(L, index, "wall_mounted",
- "Obsolete; use paramtype2 = 'wallmounted'");
- warn_if_field_exists(L, index, "light_propagates",
- "Obsolete; determined from paramtype");
- warn_if_field_exists(L, index, "dug_item",
- "Obsolete; use 'drop' field");
- warn_if_field_exists(L, index, "extra_dug_item",
- "Obsolete; use 'drop' field");
- warn_if_field_exists(L, index, "extra_dug_item_rarity",
- "Obsolete; use 'drop' field");
- warn_if_field_exists(L, index, "metadata_name",
- "Obsolete; use on_add and metadata callbacks");
-
// True for all ground-like things like stone and mud, false for eg. trees
getboolfield(L, index, "is_ground_content", f.is_ground_content);
f.light_propagates = (f.param_type == CPT_LIGHT);
@@ -797,7 +821,6 @@ ContentFeatures read_content_features(lua_State *L, int index)
getstringfield(L, index, "node_dig_prediction",
f.node_dig_prediction);
- return f;
}
void push_content_features(lua_State *L, const ContentFeatures &c)
@@ -1959,9 +1982,10 @@ void push_hud_element(lua_State *L, HudElement *elem)
HudElementStat read_hud_change(lua_State *L, HudElement *elem, void **value)
{
HudElementStat stat = HUD_STAT_NUMBER;
+ std::string statstr;
if (lua_isstring(L, 3)) {
int statint;
- std::string statstr = lua_tostring(L, 3);
+ statstr = lua_tostring(L, 3);
stat = string_to_enum(es_HudElementStat, statint, statstr) ?
(HudElementStat)statint : stat;
}
@@ -1989,6 +2013,8 @@ HudElementStat read_hud_change(lua_State *L, HudElement *elem, void **value)
break;
case HUD_STAT_ITEM:
elem->item = luaL_checknumber(L, 4);
+ if (elem->type == HUD_ELEM_WAYPOINT && statstr == "precision")
+ elem->item++;
*value = &elem->item;
break;
case HUD_STAT_DIR:
diff --git a/src/script/common/c_content.h b/src/script/common/c_content.h
index 8f32e58eb..29d576355 100644
--- a/src/script/common/c_content.h
+++ b/src/script/common/c_content.h
@@ -67,7 +67,8 @@ struct collisionMoveResult;
extern struct EnumString es_TileAnimationType[];
-ContentFeatures read_content_features (lua_State *L, int index);
+void read_content_features (lua_State *L, ContentFeatures &f,
+ int index);
void push_content_features (lua_State *L,
const ContentFeatures &c);
diff --git a/src/script/common/c_converter.cpp b/src/script/common/c_converter.cpp
index eb6ab5331..c00401b58 100644
--- a/src/script/common/c_converter.cpp
+++ b/src/script/common/c_converter.cpp
@@ -679,48 +679,3 @@ size_t write_array_slice_float(
return elem_index - 1;
}
-
-
-size_t write_array_slice_u16(
- lua_State *L,
- int table_index,
- u16 *data,
- v3u16 data_size,
- v3u16 slice_offset,
- v3u16 slice_size)
-{
- v3u16 pmin, pmax(data_size);
-
- if (slice_offset.X > 0) {
- slice_offset.X--;
- pmin.X = slice_offset.X;
- pmax.X = MYMIN(slice_offset.X + slice_size.X, data_size.X);
- }
-
- if (slice_offset.Y > 0) {
- slice_offset.Y--;
- pmin.Y = slice_offset.Y;
- pmax.Y = MYMIN(slice_offset.Y + slice_size.Y, data_size.Y);
- }
-
- if (slice_offset.Z > 0) {
- slice_offset.Z--;
- pmin.Z = slice_offset.Z;
- pmax.Z = MYMIN(slice_offset.Z + slice_size.Z, data_size.Z);
- }
-
- const u32 ystride = data_size.X;
- const u32 zstride = data_size.X * data_size.Y;
-
- u32 elem_index = 1;
- for (u32 z = pmin.Z; z != pmax.Z; z++)
- for (u32 y = pmin.Y; y != pmax.Y; y++)
- for (u32 x = pmin.X; x != pmax.X; x++) {
- u32 i = z * zstride + y * ystride + x;
- lua_pushinteger(L, data[i]);
- lua_rawseti(L, table_index, elem_index);
- elem_index++;
- }
-
- return elem_index - 1;
-}
diff --git a/src/script/common/c_converter.h b/src/script/common/c_converter.h
index a4a7079fd..6ad6f3212 100644
--- a/src/script/common/c_converter.h
+++ b/src/script/common/c_converter.h
@@ -136,5 +136,3 @@ void warn_if_field_exists(lua_State *L, int table,
size_t write_array_slice_float(lua_State *L, int table_index, float *data,
v3u16 data_size, v3u16 slice_offset, v3u16 slice_size);
-size_t write_array_slice_u16(lua_State *L, int table_index, u16 *data,
- v3u16 data_size, v3u16 slice_offset, v3u16 slice_size);
diff --git a/src/script/common/c_internal.cpp b/src/script/common/c_internal.cpp
index 6df1f8b7b..ad5f836c5 100644
--- a/src/script/common/c_internal.cpp
+++ b/src/script/common/c_internal.cpp
@@ -155,24 +155,28 @@ static void script_log(lua_State *L, const std::string &message,
infostream << script_get_backtrace(L) << std::endl;
}
-void log_deprecated(lua_State *L, const std::string &message, int stack_depth)
+DeprecatedHandlingMode get_deprecated_handling_mode()
{
static thread_local bool configured = false;
- static thread_local bool do_log = false;
- static thread_local bool do_error = false;
+ static thread_local DeprecatedHandlingMode ret = DeprecatedHandlingMode::Ignore;
// Only read settings on first call
if (!configured) {
std::string value = g_settings->get("deprecated_lua_api_handling");
if (value == "log") {
- do_log = true;
+ ret = DeprecatedHandlingMode::Log;
} else if (value == "error") {
- do_log = true;
- do_error = true;
+ ret = DeprecatedHandlingMode::Error;
}
configured = true;
}
- if (do_log)
- script_log(L, message, warningstream, do_error, stack_depth);
+ return ret;
+}
+
+void log_deprecated(lua_State *L, const std::string &message, int stack_depth)
+{
+ DeprecatedHandlingMode mode = get_deprecated_handling_mode();
+ if (mode != DeprecatedHandlingMode::Ignore)
+ script_log(L, message, warningstream, mode == DeprecatedHandlingMode::Error, stack_depth);
}
diff --git a/src/script/common/c_internal.h b/src/script/common/c_internal.h
index 442546332..452c2dd5e 100644
--- a/src/script/common/c_internal.h
+++ b/src/script/common/c_internal.h
@@ -114,5 +114,25 @@ void script_error(lua_State *L, int pcall_result, const char *mod, const char *f
void script_run_callbacks_f(lua_State *L, int nargs,
RunCallbacksMode mode, const char *fxn);
+enum class DeprecatedHandlingMode {
+ Ignore,
+ Log,
+ Error
+};
+
+/**
+ * Reads `deprecated_lua_api_handling` in settings, returns cached value.
+ *
+ * @return DeprecatedHandlingMode
+ */
+DeprecatedHandlingMode get_deprecated_handling_mode();
+
+/**
+ * Handles a deprecation warning based on user settings
+ *
+ * @param L Lua State
+ * @param message The deprecation method
+ * @param stack_depth How far on the stack to the first user function (ie: not builtin or core)
+ */
void log_deprecated(lua_State *L, const std::string &message,
int stack_depth=1);
diff --git a/src/script/common/helper.cpp b/src/script/common/helper.cpp
index f53a2b7e8..fbf24e1b7 100644
--- a/src/script/common/helper.cpp
+++ b/src/script/common/helper.cpp
@@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <cmath>
#include <sstream>
#include <irr_v2d.h>
+#include <irr_v3d.h>
#include "c_types.h"
#include "c_internal.h"
@@ -49,25 +50,26 @@ bool LuaHelper::isNaN(lua_State *L, int idx)
/*
* Read template functions
*/
-template <> bool LuaHelper::readParam(lua_State *L, int index)
+template <>
+bool LuaHelper::readParam(lua_State *L, int index)
{
return lua_toboolean(L, index) != 0;
}
-template <> bool LuaHelper::readParam(lua_State *L, int index, const bool &default_value)
+template <>
+s16 LuaHelper::readParam(lua_State *L, int index)
{
- if (lua_isnil(L, index))
- return default_value;
-
- return lua_toboolean(L, index) != 0;
+ return lua_tonumber(L, index);
}
-template <> s16 LuaHelper::readParam(lua_State *L, int index)
+template <>
+int LuaHelper::readParam(lua_State *L, int index)
{
- return lua_tonumber(L, index);
+ return luaL_checkint(L, index);
}
-template <> float LuaHelper::readParam(lua_State *L, int index)
+template <>
+float LuaHelper::readParam(lua_State *L, int index)
{
if (isNaN(L, index))
throw LuaError("NaN value is not allowed.");
@@ -75,7 +77,8 @@ template <> float LuaHelper::readParam(lua_State *L, int index)
return (float)luaL_checknumber(L, index);
}
-template <> v2s16 LuaHelper::readParam(lua_State *L, int index)
+template <>
+v2s16 LuaHelper::readParam(lua_State *L, int index)
{
v2s16 p;
CHECK_POS_TAB(index);
@@ -90,7 +93,8 @@ template <> v2s16 LuaHelper::readParam(lua_State *L, int index)
return p;
}
-template <> v2f LuaHelper::readParam(lua_State *L, int index)
+template <>
+v2f LuaHelper::readParam(lua_State *L, int index)
{
v2f p;
CHECK_POS_TAB(index);
@@ -105,24 +109,32 @@ template <> v2f LuaHelper::readParam(lua_State *L, int index)
return p;
}
-template <> std::string LuaHelper::readParam(lua_State *L, int index)
+template <>
+v3f LuaHelper::readParam(lua_State *L, int index)
{
- size_t length;
- std::string result;
- const char *str = luaL_checklstring(L, index, &length);
- result.assign(str, length);
- return result;
+ v3f p;
+ CHECK_POS_TAB(index);
+ lua_getfield(L, index, "x");
+ CHECK_POS_COORD("x");
+ p.X = readParam<float>(L, -1);
+ lua_pop(L, 1);
+ lua_getfield(L, index, "y");
+ CHECK_POS_COORD("y");
+ p.Y = readParam<float>(L, -1);
+ lua_pop(L, 1);
+ lua_getfield(L, index, "z");
+ CHECK_POS_COORD("z");
+ p.Z = readParam<float>(L, -1);
+ lua_pop(L, 1);
+ return p;
}
template <>
-std::string LuaHelper::readParam(
- lua_State *L, int index, const std::string &default_value)
+std::string LuaHelper::readParam(lua_State *L, int index)
{
+ size_t length;
std::string result;
- const char *str = lua_tostring(L, index);
- if (str)
- result.append(str);
- else
- result = default_value;
+ const char *str = luaL_checklstring(L, index, &length);
+ result.assign(str, length);
return result;
}
diff --git a/src/script/common/helper.h b/src/script/common/helper.h
index d639d6e16..6491e73cf 100644
--- a/src/script/common/helper.h
+++ b/src/script/common/helper.h
@@ -38,7 +38,8 @@ protected:
* @param index Lua Index to read
* @return read value from Lua
*/
- template <typename T> static T readParam(lua_State *L, int index);
+ template <typename T>
+ static T readParam(lua_State *L, int index);
/**
* Read a value using a template type T from Lua State L and index
@@ -50,5 +51,8 @@ protected:
* @return read value from Lua or default value if nil
*/
template <typename T>
- static T readParam(lua_State *L, int index, const T &default_value);
+ static inline T readParam(lua_State *L, int index, const T &default_value)
+ {
+ return lua_isnoneornil(L, index) ? default_value : readParam<T>(L, index);
+ }
};
diff --git a/src/script/cpp_api/s_async.cpp b/src/script/cpp_api/s_async.cpp
index 5f1f9297e..0619b32c0 100644
--- a/src/script/cpp_api/s_async.cpp
+++ b/src/script/cpp_api/s_async.cpp
@@ -158,35 +158,6 @@ void AsyncEngine::step(lua_State *L)
}
/******************************************************************************/
-void AsyncEngine::pushFinishedJobs(lua_State* L) {
- // Result Table
- MutexAutoLock l(resultQueueMutex);
-
- unsigned int index = 1;
- lua_createtable(L, resultQueue.size(), 0);
- int top = lua_gettop(L);
-
- while (!resultQueue.empty()) {
- LuaJobInfo jobDone = resultQueue.front();
- resultQueue.pop_front();
-
- lua_createtable(L, 0, 2); // Pre-allocate space for two map fields
- int top_lvl2 = lua_gettop(L);
-
- lua_pushstring(L, "jobid");
- lua_pushnumber(L, jobDone.id);
- lua_settable(L, top_lvl2);
-
- lua_pushstring(L, "retval");
- lua_pushlstring(L, jobDone.serializedResult.data(),
- jobDone.serializedResult.size());
- lua_settable(L, top_lvl2);
-
- lua_rawseti(L, top, index++);
- }
-}
-
-/******************************************************************************/
void AsyncEngine::prepareEnvironment(lua_State* L, int top)
{
for (StateInitializer &stateInitializer : stateInitializers) {
diff --git a/src/script/cpp_api/s_async.h b/src/script/cpp_api/s_async.h
index b1f4bf45f..99a4f891c 100644
--- a/src/script/cpp_api/s_async.h
+++ b/src/script/cpp_api/s_async.h
@@ -98,12 +98,6 @@ public:
*/
void step(lua_State *L);
- /**
- * Push a list of finished jobs onto the stack
- * @param L The Lua stack
- */
- void pushFinishedJobs(lua_State *L);
-
protected:
/**
* Get a Job from queue to be processed
diff --git a/src/script/cpp_api/s_entity.cpp b/src/script/cpp_api/s_entity.cpp
index ea9320051..746f7013e 100644
--- a/src/script/cpp_api/s_entity.cpp
+++ b/src/script/cpp_api/s_entity.cpp
@@ -103,6 +103,32 @@ void ScriptApiEntity::luaentity_Activate(u16 id,
lua_pop(L, 2); // Pop object and error handler
}
+void ScriptApiEntity::luaentity_Deactivate(u16 id)
+{
+ SCRIPTAPI_PRECHECKHEADER
+
+ verbosestream << "scriptapi_luaentity_deactivate: id=" << id << std::endl;
+
+ int error_handler = PUSH_ERROR_HANDLER(L);
+
+ // Get the entity
+ luaentity_get(L, id);
+ int object = lua_gettop(L);
+
+ // Get on_deactivate
+ lua_getfield(L, -1, "on_deactivate");
+ if (!lua_isnil(L, -1)) {
+ luaL_checktype(L, -1, LUA_TFUNCTION);
+ lua_pushvalue(L, object);
+
+ setOriginFromTable(object);
+ PCALL_RES(lua_pcall(L, 1, 0, error_handler));
+ } else {
+ lua_pop(L, 1);
+ }
+ lua_pop(L, 2); // Pop object and error handler
+}
+
void ScriptApiEntity::luaentity_Remove(u16 id)
{
SCRIPTAPI_PRECHECKHEADER
diff --git a/src/script/cpp_api/s_entity.h b/src/script/cpp_api/s_entity.h
index b5f7a6586..b52f6e447 100644
--- a/src/script/cpp_api/s_entity.h
+++ b/src/script/cpp_api/s_entity.h
@@ -33,6 +33,7 @@ public:
bool luaentity_Add(u16 id, const char *name);
void luaentity_Activate(u16 id,
const std::string &staticdata, u32 dtime_s);
+ void luaentity_Deactivate(u16 id);
void luaentity_Remove(u16 id);
std::string luaentity_GetStaticdata(u16 id);
void luaentity_GetProperties(u16 id,
diff --git a/src/script/cpp_api/s_node.cpp b/src/script/cpp_api/s_node.cpp
index e0f9bcd78..f23fbfbde 100644
--- a/src/script/cpp_api/s_node.cpp
+++ b/src/script/cpp_api/s_node.cpp
@@ -93,6 +93,14 @@ struct EnumString ScriptApiNode::es_NodeBoxType[] =
{0, NULL},
};
+struct EnumString ScriptApiNode::es_TextureAlphaMode[] =
+ {
+ {ALPHAMODE_OPAQUE, "opaque"},
+ {ALPHAMODE_CLIP, "clip"},
+ {ALPHAMODE_BLEND, "blend"},
+ {0, NULL},
+ };
+
bool ScriptApiNode::node_on_punch(v3s16 p, MapNode node,
ServerActiveObject *puncher, const PointedThing &pointed)
{
@@ -133,9 +141,14 @@ bool ScriptApiNode::node_on_dig(v3s16 p, MapNode node,
push_v3s16(L, p);
pushnode(L, node, ndef);
objectrefGetOrCreate(L, digger);
- PCALL_RES(lua_pcall(L, 3, 0, error_handler));
- lua_pop(L, 1); // Pop error handler
- return true;
+ PCALL_RES(lua_pcall(L, 3, 1, error_handler));
+
+ // nil is treated as true for backwards compat
+ bool result = lua_isnil(L, -1) || lua_toboolean(L, -1);
+
+ lua_pop(L, 2); // Pop error handler and result
+
+ return result;
}
void ScriptApiNode::node_on_construct(v3s16 p, MapNode node)
diff --git a/src/script/cpp_api/s_node.h b/src/script/cpp_api/s_node.h
index 81b44f0f0..3f771c838 100644
--- a/src/script/cpp_api/s_node.h
+++ b/src/script/cpp_api/s_node.h
@@ -54,4 +54,5 @@ public:
static struct EnumString es_ContentParamType2[];
static struct EnumString es_LiquidType[];
static struct EnumString es_NodeBoxType[];
+ static struct EnumString es_TextureAlphaMode[];
};
diff --git a/src/script/cpp_api/s_player.cpp b/src/script/cpp_api/s_player.cpp
index 712120c61..d3e6138dc 100644
--- a/src/script/cpp_api/s_player.cpp
+++ b/src/script/cpp_api/s_player.cpp
@@ -77,6 +77,19 @@ bool ScriptApiPlayer::on_punchplayer(ServerActiveObject *player,
return readParam<bool>(L, -1);
}
+void ScriptApiPlayer::on_rightclickplayer(ServerActiveObject *player,
+ ServerActiveObject *clicker)
+{
+ SCRIPTAPI_PRECHECKHEADER
+ // Get core.registered_on_rightclickplayers
+ lua_getglobal(L, "core");
+ lua_getfield(L, -1, "registered_on_rightclickplayers");
+ // Call callbacks
+ objectrefGetOrCreate(L, player);
+ objectrefGetOrCreate(L, clicker);
+ runCallbacks(2, RUN_CALLBACKS_MODE_FIRST);
+}
+
s32 ScriptApiPlayer::on_player_hpchange(ServerActiveObject *player,
s32 hp_change, const PlayerHPChangeReason &reason)
{
diff --git a/src/script/cpp_api/s_player.h b/src/script/cpp_api/s_player.h
index a337f975b..c0f141862 100644
--- a/src/script/cpp_api/s_player.h
+++ b/src/script/cpp_api/s_player.h
@@ -47,6 +47,7 @@ public:
bool on_punchplayer(ServerActiveObject *player, ServerActiveObject *hitter,
float time_from_last_punch, const ToolCapabilities *toolcap,
v3f dir, s16 damage);
+ void on_rightclickplayer(ServerActiveObject *player, ServerActiveObject *clicker);
s32 on_player_hpchange(ServerActiveObject *player, s32 hp_change,
const PlayerHPChangeReason &reason);
void on_playerReceiveFields(ServerActiveObject *player,
diff --git a/src/script/cpp_api/s_security.cpp b/src/script/cpp_api/s_security.cpp
index 2afa3a191..63058d7c3 100644
--- a/src/script/cpp_api/s_security.cpp
+++ b/src/script/cpp_api/s_security.cpp
@@ -398,10 +398,9 @@ bool ScriptApiSecurity::safeLoadFile(lua_State *L, const char *path, const char
lua_pushfstring(L, "%s: %s", path, strerror(errno));
return false;
}
- chunk_name = new char[strlen(display_name) + 2];
- chunk_name[0] = '@';
- chunk_name[1] = '\0';
- strcat(chunk_name, display_name);
+ size_t len = strlen(display_name) + 2;
+ chunk_name = new char[len];
+ snprintf(chunk_name, len, "@%s", display_name);
}
size_t start = 0;
@@ -629,7 +628,11 @@ int ScriptApiSecurity::sl_g_loadfile(lua_State *L)
{
#ifndef SERVER
lua_rawgeti(L, LUA_REGISTRYINDEX, CUSTOM_RIDX_SCRIPTAPI);
+#if INDIRECT_SCRIPTAPI_RIDX
+ ScriptApiBase *script = (ScriptApiBase *) *(void**)(lua_touserdata(L, -1));
+#else
ScriptApiBase *script = (ScriptApiBase *) lua_touserdata(L, -1);
+#endif
lua_pop(L, 1);
// Client implementation
diff --git a/src/script/lua_api/l_base.cpp b/src/script/lua_api/l_base.cpp
index 2bee09436..f842671b8 100644
--- a/src/script/lua_api/l_base.cpp
+++ b/src/script/lua_api/l_base.cpp
@@ -100,32 +100,21 @@ bool ModApiBase::registerFunction(lua_State *L, const char *name,
return true;
}
-std::unordered_map<std::string, luaL_Reg> ModApiBase::m_deprecated_wrappers;
-bool ModApiBase::m_error_deprecated_calls = false;
-
-int ModApiBase::l_deprecated_function(lua_State *L)
+int ModApiBase::l_deprecated_function(lua_State *L, const char *good, const char *bad, lua_CFunction func)
{
thread_local std::vector<u64> deprecated_logged;
+ DeprecatedHandlingMode dep_mode = get_deprecated_handling_mode();
+ if (dep_mode == DeprecatedHandlingMode::Ignore)
+ return func(L);
+
u64 start_time = porting::getTimeUs();
lua_Debug ar;
- // Get function name for lookup
- FATAL_ERROR_IF(!lua_getstack(L, 0, &ar), "lua_getstack() failed");
- FATAL_ERROR_IF(!lua_getinfo(L, "n", &ar), "lua_getinfo() failed");
-
- // Combine name with line and script backtrace
+ // Get caller name with line and script backtrace
FATAL_ERROR_IF(!lua_getstack(L, 1, &ar), "lua_getstack() failed");
FATAL_ERROR_IF(!lua_getinfo(L, "Sl", &ar), "lua_getinfo() failed");
- // Get parent class to get the wrappers map
- luaL_checktype(L, 1, LUA_TUSERDATA);
- void *ud = lua_touserdata(L, 1);
- ModApiBase *o = *(ModApiBase**)ud;
-
- // New function and new function name
- auto it = o->m_deprecated_wrappers.find(ar.name);
-
// Get backtrace and hash it to reduce the warning flood
std::string backtrace = ar.short_src;
backtrace.append(":").append(std::to_string(ar.currentline));
@@ -135,45 +124,16 @@ int ModApiBase::l_deprecated_function(lua_State *L)
== deprecated_logged.end()) {
deprecated_logged.emplace_back(hash);
- warningstream << "Call to deprecated function '" << ar.name << "', please use '"
- << it->second.name << "' at " << backtrace << std::endl;
+ warningstream << "Call to deprecated function '" << bad << "', please use '"
+ << good << "' at " << backtrace << std::endl;
- if (m_error_deprecated_calls)
+ if (dep_mode == DeprecatedHandlingMode::Error)
script_error(L, LUA_ERRRUN, NULL, NULL);
}
u64 end_time = porting::getTimeUs();
g_profiler->avg("l_deprecated_function", end_time - start_time);
- return it->second.func(L);
+ return func(L);
}
-void ModApiBase::markAliasDeprecated(luaL_Reg *reg)
-{
- std::string value = g_settings->get("deprecated_lua_api_handling");
- m_error_deprecated_calls = value == "error";
-
- if (!m_error_deprecated_calls && value != "log")
- return;
-
- const char *last_name = nullptr;
- lua_CFunction last_func = nullptr;
-
- // ! Null termination !
- while (reg->func) {
- if (last_func == reg->func) {
- // Duplicate found
- luaL_Reg original_reg;
- // Do not inline struct. Breaks MSVC or is error-prone
- original_reg.name = last_name;
- original_reg.func = reg->func;
- m_deprecated_wrappers.emplace(
- std::pair<std::string, luaL_Reg>(reg->name, original_reg));
- reg->func = l_deprecated_function;
- }
-
- last_func = reg->func;
- last_name = reg->name;
- ++reg;
- }
-}
diff --git a/src/script/lua_api/l_base.h b/src/script/lua_api/l_base.h
index 65fce8481..aa5905d26 100644
--- a/src/script/lua_api/l_base.h
+++ b/src/script/lua_api/l_base.h
@@ -41,7 +41,6 @@ class Environment;
class ServerInventoryManager;
class ModApiBase : protected LuaHelper {
-
public:
static ScriptApiBase* getScriptApiBase(lua_State *L);
static Server* getServer(lua_State *L);
@@ -75,10 +74,18 @@ public:
lua_CFunction func,
int top);
- static int l_deprecated_function(lua_State *L);
- static void markAliasDeprecated(luaL_Reg *reg);
-private:
- // <old_name> = { <new_name>, <new_function> }
- static std::unordered_map<std::string, luaL_Reg> m_deprecated_wrappers;
- static bool m_error_deprecated_calls;
+ /**
+ * A wrapper for deprecated functions.
+ *
+ * When called, handles the deprecation according to user settings and then calls `func`.
+ *
+ * @throws Lua Error if required by the user settings.
+ *
+ * @param L Lua state
+ * @param good Name of good function/method
+ * @param bad Name of deprecated function/method
+ * @param func Actual implementation of function
+ * @return value from `func`
+ */
+ static int l_deprecated_function(lua_State *L, const char *good, const char *bad, lua_CFunction func);
};
diff --git a/src/script/lua_api/l_camera.cpp b/src/script/lua_api/l_camera.cpp
index bfa60be67..40251154c 100644
--- a/src/script/lua_api/l_camera.cpp
+++ b/src/script/lua_api/l_camera.cpp
@@ -63,7 +63,8 @@ int LuaCamera::l_set_camera_mode(lua_State *L)
return 0;
camera->setCameraMode((CameraMode)((int)lua_tonumber(L, 2)));
- playercao->setVisible(camera->getCameraMode() > CAMERA_MODE_FIRST);
+ // Make the player visible depending on camera mode.
+ playercao->updateMeshCulling();
playercao->setChildrenVisible(camera->getCameraMode() > CAMERA_MODE_FIRST);
return 0;
}
diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp
index 89ec9dc7e..c75fc8dc7 100644
--- a/src/script/lua_api/l_env.cpp
+++ b/src/script/lua_api/l_env.cpp
@@ -407,6 +407,46 @@ int ModApiEnvMod::l_get_node_light(lua_State *L)
return 1;
}
+
+// get_natural_light(pos, timeofday)
+// pos = {x=num, y=num, z=num}
+// timeofday: nil = current time, 0 = night, 0.5 = day
+int ModApiEnvMod::l_get_natural_light(lua_State *L)
+{
+ GET_ENV_PTR;
+
+ v3s16 pos = read_v3s16(L, 1);
+
+ bool is_position_ok;
+ MapNode n = env->getMap().getNode(pos, &is_position_ok);
+ if (!is_position_ok)
+ return 0;
+
+ // If the daylight is 0, nothing needs to be calculated
+ u8 daylight = n.param1 & 0x0f;
+ if (daylight == 0) {
+ lua_pushinteger(L, 0);
+ return 1;
+ }
+
+ u32 time_of_day;
+ if (lua_isnumber(L, 2)) {
+ time_of_day = 24000.0 * lua_tonumber(L, 2);
+ time_of_day %= 24000;
+ } else {
+ time_of_day = env->getTimeOfDay();
+ }
+ u32 dnr = time_to_daynight_ratio(time_of_day, true);
+
+ // If it's the same as the artificial light, the sunlight needs to be
+ // searched for because the value may not emanate from the sun
+ if (daylight == n.param1 >> 4)
+ daylight = env->findSunlight(pos);
+
+ lua_pushinteger(L, dnr * daylight / 1000);
+ return 1;
+}
+
// place_node(pos, node)
// pos = {x=num, y=num, z=num}
int ModApiEnvMod::l_place_node(lua_State *L)
@@ -703,6 +743,31 @@ int ModApiEnvMod::l_get_objects_inside_radius(lua_State *L)
return 1;
}
+// get_objects_in_area(pos, minp, maxp)
+int ModApiEnvMod::l_get_objects_in_area(lua_State *L)
+{
+ GET_ENV_PTR;
+ ScriptApiBase *script = getScriptApiBase(L);
+
+ v3f minp = read_v3f(L, 1) * BS;
+ v3f maxp = read_v3f(L, 2) * BS;
+ aabb3f box(minp, maxp);
+ box.repair();
+ std::vector<ServerActiveObject *> objs;
+
+ auto include_obj_cb = [](ServerActiveObject *obj){ return !obj->isGone(); };
+ env->getObjectsInArea(objs, box, include_obj_cb);
+
+ int i = 0;
+ lua_createtable(L, objs.size(), 0);
+ for (const auto obj : objs) {
+ // Insert object reference into table
+ script->objectrefGetOrCreate(L, obj);
+ lua_rawseti(L, -2, ++i);
+ }
+ return 1;
+}
+
// set_timeofday(val)
// val = 0...1
int ModApiEnvMod::l_set_timeofday(lua_State *L)
@@ -711,8 +776,9 @@ int ModApiEnvMod::l_set_timeofday(lua_State *L)
// Do it
float timeofday_f = readParam<float>(L, 1);
- sanity_check(timeofday_f >= 0.0 && timeofday_f <= 1.0);
- int timeofday_mh = (int)(timeofday_f * 24000.0);
+ luaL_argcheck(L, timeofday_f >= 0.0f && timeofday_f <= 1.0f, 1,
+ "value must be between 0 and 1");
+ int timeofday_mh = (int)(timeofday_f * 24000.0f);
// This should be set directly in the environment but currently
// such changes aren't immediately sent to the clients, so call
// the server instead.
@@ -752,29 +818,36 @@ int ModApiEnvMod::l_get_gametime(lua_State *L)
return 1;
}
-
-// find_node_near(pos, radius, nodenames, search_center) -> pos or nil
-// nodenames: eg. {"ignore", "group:tree"} or "default:dirt"
-int ModApiEnvMod::l_find_node_near(lua_State *L)
+void ModApiEnvMod::collectNodeIds(lua_State *L, int idx, const NodeDefManager *ndef,
+ std::vector<content_t> &filter)
{
- GET_PLAIN_ENV_PTR;
-
- const NodeDefManager *ndef = env->getGameDef()->ndef();
- v3s16 pos = read_v3s16(L, 1);
- int radius = luaL_checkinteger(L, 2);
- std::vector<content_t> filter;
- if (lua_istable(L, 3)) {
+ if (lua_istable(L, idx)) {
lua_pushnil(L);
- while (lua_next(L, 3) != 0) {
+ while (lua_next(L, idx) != 0) {
// key at index -2 and value at index -1
luaL_checktype(L, -1, LUA_TSTRING);
ndef->getIds(readParam<std::string>(L, -1), filter);
// removes value, keeps key for next iteration
lua_pop(L, 1);
}
- } else if (lua_isstring(L, 3)) {
+ } else if (lua_isstring(L, idx)) {
ndef->getIds(readParam<std::string>(L, 3), filter);
}
+}
+
+// find_node_near(pos, radius, nodenames, [search_center]) -> pos or nil
+// nodenames: eg. {"ignore", "group:tree"} or "default:dirt"
+int ModApiEnvMod::l_find_node_near(lua_State *L)
+{
+ GET_PLAIN_ENV_PTR;
+
+ const NodeDefManager *ndef = env->getGameDef()->ndef();
+ Map &map = env->getMap();
+
+ v3s16 pos = read_v3s16(L, 1);
+ int radius = luaL_checkinteger(L, 2);
+ std::vector<content_t> filter;
+ collectNodeIds(L, 3, ndef, filter);
int start_radius = (lua_isboolean(L, 4) && readParam<bool>(L, 4)) ? 0 : 1;
@@ -785,10 +858,10 @@ int ModApiEnvMod::l_find_node_near(lua_State *L)
#endif
for (int d = start_radius; d <= radius; d++) {
- std::vector<v3s16> list = FacePositionCache::getFacePositions(d);
+ const std::vector<v3s16> &list = FacePositionCache::getFacePositions(d);
for (const v3s16 &i : list) {
v3s16 p = pos + i;
- content_t c = env->getMap().getNode(p).getContent();
+ content_t c = map.getNode(p).getContent();
if (CONTAINS(filter, c)) {
push_v3s16(L, p);
return 1;
@@ -798,8 +871,7 @@ int ModApiEnvMod::l_find_node_near(lua_State *L)
return 0;
}
-// find_nodes_in_area(minp, maxp, nodenames) -> list of positions
-// nodenames: eg. {"ignore", "group:tree"} or "default:dirt"
+// find_nodes_in_area(minp, maxp, nodenames, [grouped])
int ModApiEnvMod::l_find_nodes_in_area(lua_State *L)
{
GET_PLAIN_ENV_PTR;
@@ -809,6 +881,7 @@ int ModApiEnvMod::l_find_nodes_in_area(lua_State *L)
sortBoxVerticies(minp, maxp);
const NodeDefManager *ndef = env->getGameDef()->ndef();
+ Map &map = env->getMap();
#ifndef SERVER
if (Client *client = getClient(L)) {
@@ -826,45 +899,79 @@ int ModApiEnvMod::l_find_nodes_in_area(lua_State *L)
}
std::vector<content_t> filter;
- if (lua_istable(L, 3)) {
- lua_pushnil(L);
- while (lua_next(L, 3) != 0) {
- // key at index -2 and value at index -1
- luaL_checktype(L, -1, LUA_TSTRING);
- ndef->getIds(readParam<std::string>(L, -1), filter);
- // removes value, keeps key for next iteration
- lua_pop(L, 1);
+ collectNodeIds(L, 3, ndef, filter);
+
+ bool grouped = lua_isboolean(L, 4) && readParam<bool>(L, 4);
+
+ if (grouped) {
+ // create the table we will be returning
+ lua_createtable(L, 0, filter.size());
+ int base = lua_gettop(L);
+
+ // create one table for each filter
+ std::vector<u32> idx;
+ idx.resize(filter.size());
+ for (u32 i = 0; i < filter.size(); i++)
+ lua_newtable(L);
+
+ v3s16 p;
+ for (p.X = minp.X; p.X <= maxp.X; p.X++)
+ for (p.Y = minp.Y; p.Y <= maxp.Y; p.Y++)
+ for (p.Z = minp.Z; p.Z <= maxp.Z; p.Z++) {
+ content_t c = map.getNode(p).getContent();
+
+ auto it = std::find(filter.begin(), filter.end(), c);
+ if (it != filter.end()) {
+ // Calculate index of the table and append the position
+ u32 filt_index = it - filter.begin();
+ push_v3s16(L, p);
+ lua_rawseti(L, base + 1 + filt_index, ++idx[filt_index]);
+ }
}
- } else if (lua_isstring(L, 3)) {
- ndef->getIds(readParam<std::string>(L, 3), filter);
- }
- std::vector<u32> individual_count;
- individual_count.resize(filter.size());
+ // last filter table is at top of stack
+ u32 i = filter.size() - 1;
+ do {
+ if (idx[i] == 0) {
+ // No such node found -> drop the empty table
+ lua_pop(L, 1);
+ } else {
+ // This node was found -> put table into the return table
+ lua_setfield(L, base, ndef->get(filter[i]).name.c_str());
+ }
+ } while (i-- != 0);
- lua_newtable(L);
- u64 i = 0;
- for (s16 x = minp.X; x <= maxp.X; x++)
- for (s16 y = minp.Y; y <= maxp.Y; y++)
- for (s16 z = minp.Z; z <= maxp.Z; z++) {
- v3s16 p(x, y, z);
- content_t c = env->getMap().getNode(p).getContent();
-
- std::vector<content_t>::iterator it = std::find(filter.begin(), filter.end(), c);
- if (it != filter.end()) {
- push_v3s16(L, p);
- lua_rawseti(L, -2, ++i);
+ assert(lua_gettop(L) == base);
+ return 1;
+ } else {
+ std::vector<u32> individual_count;
+ individual_count.resize(filter.size());
+
+ lua_newtable(L);
+ u32 i = 0;
+ v3s16 p;
+ for (p.X = minp.X; p.X <= maxp.X; p.X++)
+ for (p.Y = minp.Y; p.Y <= maxp.Y; p.Y++)
+ for (p.Z = minp.Z; p.Z <= maxp.Z; p.Z++) {
+ content_t c = env->getMap().getNode(p).getContent();
- u32 filt_index = it - filter.begin();
- individual_count[filt_index]++;
+ auto it = std::find(filter.begin(), filter.end(), c);
+ if (it != filter.end()) {
+ push_v3s16(L, p);
+ lua_rawseti(L, -2, ++i);
+
+ u32 filt_index = it - filter.begin();
+ individual_count[filt_index]++;
+ }
}
+
+ lua_createtable(L, 0, filter.size());
+ for (u32 i = 0; i < filter.size(); i++) {
+ lua_pushinteger(L, individual_count[i]);
+ lua_setfield(L, -2, ndef->get(filter[i]).name.c_str());
+ }
+ return 2;
}
- lua_newtable(L);
- for (u32 i = 0; i < filter.size(); i++) {
- lua_pushnumber(L, individual_count[i]);
- lua_setfield(L, -2, ndef->get(filter[i]).name.c_str());
- }
- return 2;
}
// find_nodes_in_area_under_air(minp, maxp, nodenames) -> list of positions
@@ -885,6 +992,7 @@ int ModApiEnvMod::l_find_nodes_in_area_under_air(lua_State *L)
sortBoxVerticies(minp, maxp);
const NodeDefManager *ndef = env->getGameDef()->ndef();
+ Map &map = env->getMap();
#ifndef SERVER
if (Client *client = getClient(L)) {
@@ -902,33 +1010,21 @@ int ModApiEnvMod::l_find_nodes_in_area_under_air(lua_State *L)
}
std::vector<content_t> filter;
-
- if (lua_istable(L, 3)) {
- lua_pushnil(L);
- while (lua_next(L, 3) != 0) {
- // key at index -2 and value at index -1
- luaL_checktype(L, -1, LUA_TSTRING);
- ndef->getIds(readParam<std::string>(L, -1), filter);
- // removes value, keeps key for next iteration
- lua_pop(L, 1);
- }
- } else if (lua_isstring(L, 3)) {
- ndef->getIds(readParam<std::string>(L, 3), filter);
- }
+ collectNodeIds(L, 3, ndef, filter);
lua_newtable(L);
- u64 i = 0;
- for (s16 x = minp.X; x <= maxp.X; x++)
- for (s16 z = minp.Z; z <= maxp.Z; z++) {
- s16 y = minp.Y;
- v3s16 p(x, y, z);
- content_t c = env->getMap().getNode(p).getContent();
- for (; y <= maxp.Y; y++) {
- v3s16 psurf(x, y + 1, z);
- content_t csurf = env->getMap().getNode(psurf).getContent();
+ u32 i = 0;
+ v3s16 p;
+ for (p.X = minp.X; p.X <= maxp.X; p.X++)
+ for (p.Z = minp.Z; p.Z <= maxp.Z; p.Z++) {
+ p.Y = minp.Y;
+ content_t c = map.getNode(p).getContent();
+ for (; p.Y <= maxp.Y; p.Y++) {
+ v3s16 psurf(p.X, p.Y + 1, p.Z);
+ content_t csurf = map.getNode(psurf).getContent();
if (c != CONTENT_AIR && csurf == CONTENT_AIR &&
CONTAINS(filter, c)) {
- push_v3s16(L, v3s16(x, y, z));
+ push_v3s16(L, p);
lua_rawseti(L, -2, ++i);
}
c = csurf;
@@ -1310,9 +1406,9 @@ int ModApiEnvMod::l_get_translated_string(lua_State * L)
GET_ENV_PTR;
std::string lang_code = luaL_checkstring(L, 1);
std::string string = luaL_checkstring(L, 2);
- getServer(L)->loadTranslationLanguage(lang_code);
- string = wide_to_utf8(translate_string(utf8_to_wide(string),
- &(*g_server_translations)[lang_code]));
+
+ auto *translations = getServer(L)->getTranslationLanguage(lang_code);
+ string = wide_to_utf8(translate_string(utf8_to_wide(string), translations));
lua_pushstring(L, string.c_str());
return 1;
}
@@ -1328,6 +1424,7 @@ void ModApiEnvMod::Initialize(lua_State *L, int top)
API_FCT(get_node);
API_FCT(get_node_or_nil);
API_FCT(get_node_light);
+ API_FCT(get_natural_light);
API_FCT(place_node);
API_FCT(dig_node);
API_FCT(punch_node);
@@ -1341,6 +1438,7 @@ void ModApiEnvMod::Initialize(lua_State *L, int top)
API_FCT(get_node_timer);
API_FCT(get_connected_players);
API_FCT(get_player_by_name);
+ API_FCT(get_objects_in_area);
API_FCT(get_objects_inside_radius);
API_FCT(set_timeofday);
API_FCT(get_timeofday);
diff --git a/src/script/lua_api/l_env.h b/src/script/lua_api/l_env.h
index 9050b4306..42c2d64f8 100644
--- a/src/script/lua_api/l_env.h
+++ b/src/script/lua_api/l_env.h
@@ -56,6 +56,11 @@ private:
// timeofday: nil = current time, 0 = night, 0.5 = day
static int l_get_node_light(lua_State *L);
+ // get_natural_light(pos, timeofday)
+ // pos = {x=num, y=num, z=num}
+ // timeofday: nil = current time, 0 = night, 0.5 = day
+ static int l_get_natural_light(lua_State *L);
+
// place_node(pos, node)
// pos = {x=num, y=num, z=num}
static int l_place_node(lua_State *L);
@@ -109,6 +114,9 @@ private:
// get_objects_inside_radius(pos, radius)
static int l_get_objects_inside_radius(lua_State *L);
+
+ // get_objects_in_area(pos, minp, maxp)
+ static int l_get_objects_in_area(lua_State *L);
// set_timeofday(val)
// val = 0...1
@@ -190,6 +198,11 @@ private:
// Get a string translated server side
static int l_get_translated_string(lua_State * L);
+ /* Helpers */
+
+ static void collectNodeIds(lua_State *L, int idx,
+ const NodeDefManager *ndef, std::vector<content_t> &filter);
+
public:
static void Initialize(lua_State *L, int top);
static void InitializeClient(lua_State *L, int top);
diff --git a/src/script/lua_api/l_http.cpp b/src/script/lua_api/l_http.cpp
index ec43bf174..5ea3b3f99 100644
--- a/src/script/lua_api/l_http.cpp
+++ b/src/script/lua_api/l_http.cpp
@@ -49,17 +49,40 @@ void ModApiHttp::read_http_fetch_request(lua_State *L, HTTPFetchRequest &req)
req.multipart = getboolfield_default(L, 1, "multipart", false);
req.timeout = getintfield_default(L, 1, "timeout", 3) * 1000;
- // post_data: if table, post form data, otherwise raw data
+ lua_getfield(L, 1, "method");
+ if (lua_isstring(L, -1)) {
+ std::string mth = getstringfield_default(L, 1, "method", "");
+ if (mth == "GET")
+ req.method = HTTP_GET;
+ else if (mth == "POST")
+ req.method = HTTP_POST;
+ else if (mth == "PUT")
+ req.method = HTTP_PUT;
+ else if (mth == "DELETE")
+ req.method = HTTP_DELETE;
+ }
+ lua_pop(L, 1);
+
+ // post_data: if table, post form data, otherwise raw data DEPRECATED use data and method instead
lua_getfield(L, 1, "post_data");
+ if (lua_isnil(L, 2)) {
+ lua_pop(L, 1);
+ lua_getfield(L, 1, "data");
+ }
+ else {
+ req.method = HTTP_POST;
+ }
+
if (lua_istable(L, 2)) {
lua_pushnil(L);
while (lua_next(L, 2) != 0) {
- req.post_fields[readParam<std::string>(L, -2)] = readParam<std::string>(L, -1);
+ req.fields[readParam<std::string>(L, -2)] = readParam<std::string>(L, -1);
lua_pop(L, 1);
}
} else if (lua_isstring(L, 2)) {
- req.post_data = readParam<std::string>(L, 2);
+ req.raw_data = readParam<std::string>(L, 2);
}
+
lua_pop(L, 1);
lua_getfield(L, 1, "extra_headers");
diff --git a/src/script/lua_api/l_http.h b/src/script/lua_api/l_http.h
index de6e51b37..c3a2a5276 100644
--- a/src/script/lua_api/l_http.h
+++ b/src/script/lua_api/l_http.h
@@ -32,10 +32,10 @@ private:
static void read_http_fetch_request(lua_State *L, HTTPFetchRequest &req);
static void push_http_fetch_result(lua_State *L, HTTPFetchResult &res, bool completed = true);
- // http_fetch_sync({url=, timeout=, post_data=})
+ // http_fetch_sync({url=, timeout=, data=})
static int l_http_fetch_sync(lua_State *L);
- // http_fetch_async({url=, timeout=, post_data=})
+ // http_fetch_async({url=, timeout=, data=})
static int l_http_fetch_async(lua_State *L);
// http_fetch_async_get(handle)
diff --git a/src/script/lua_api/l_internal.h b/src/script/lua_api/l_internal.h
index a86eeaf79..672e535ca 100644
--- a/src/script/lua_api/l_internal.h
+++ b/src/script/lua_api/l_internal.h
@@ -29,7 +29,16 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "common/c_internal.h"
#define luamethod(class, name) {#name, class::l_##name}
-#define luamethod_aliased(class, name, alias) {#name, class::l_##name}, {#alias, class::l_##name}
+
+#define luamethod_dep(class, good, bad) \
+ {#bad, [](lua_State *L) -> int { \
+ return l_deprecated_function(L, #good, #bad, &class::l_##good); \
+ }}
+
+#define luamethod_aliased(class, good, bad) \
+ luamethod(class, good), \
+ luamethod_dep(class, good, bad)
+
#define API_FCT(name) registerFunction(L, #name, l_##name, top)
// For future use
diff --git a/src/script/lua_api/l_inventory.cpp b/src/script/lua_api/l_inventory.cpp
index e41b5cb41..434d0a76c 100644
--- a/src/script/lua_api/l_inventory.cpp
+++ b/src/script/lua_api/l_inventory.cpp
@@ -280,6 +280,7 @@ int InvRef::l_set_lists(lua_State *L)
Server *server = getServer(L);
lua_pushnil(L);
+ luaL_checktype(L, 2, LUA_TTABLE);
while (lua_next(L, 2)) {
const char *listname = lua_tostring(L, -2);
read_inventory_list(L, -1, tempInv, listname, server);
diff --git a/src/script/lua_api/l_item.cpp b/src/script/lua_api/l_item.cpp
index d67cab76f..9e0da4034 100644
--- a/src/script/lua_api/l_item.cpp
+++ b/src/script/lua_api/l_item.cpp
@@ -193,6 +193,16 @@ int LuaItemStack::l_get_description(lua_State *L)
return 1;
}
+// get_short_description(self)
+int LuaItemStack::l_get_short_description(lua_State *L)
+{
+ NO_MAP_LOCK_REQUIRED;
+ LuaItemStack *o = checkobject(L, 1);
+ std::string desc = o->m_stack.getShortDescription(getGameDef(L)->idef());
+ lua_pushstring(L, desc.c_str());
+ return 1;
+}
+
// clear(self) -> true
int LuaItemStack::l_clear(lua_State *L)
{
@@ -493,6 +503,7 @@ const luaL_Reg LuaItemStack::methods[] = {
luamethod(LuaItemStack, get_metadata),
luamethod(LuaItemStack, set_metadata),
luamethod(LuaItemStack, get_description),
+ luamethod(LuaItemStack, get_short_description),
luamethod(LuaItemStack, clear),
luamethod(LuaItemStack, replace),
luamethod(LuaItemStack, to_string),
@@ -559,7 +570,8 @@ int ModApiItemMod::l_register_item_raw(lua_State *L)
// Read the node definition (content features) and register it
if (def.type == ITEM_NODE) {
- ContentFeatures f = read_content_features(L, table);
+ ContentFeatures f;
+ read_content_features(L, f, table);
// when a mod reregisters ignore, only texture changes and such should
// be done
if (f.name == "ignore")
diff --git a/src/script/lua_api/l_item.h b/src/script/lua_api/l_item.h
index 98744c071..16878c101 100644
--- a/src/script/lua_api/l_item.h
+++ b/src/script/lua_api/l_item.h
@@ -72,6 +72,9 @@ private:
// get_description(self)
static int l_get_description(lua_State *L);
+ // get_short_description(self)
+ static int l_get_short_description(lua_State *L);
+
// clear(self) -> true
static int l_clear(lua_State *L);
diff --git a/src/script/lua_api/l_localplayer.cpp b/src/script/lua_api/l_localplayer.cpp
index 851ede535..33fa27c8b 100644
--- a/src/script/lua_api/l_localplayer.cpp
+++ b/src/script/lua_api/l_localplayer.cpp
@@ -231,8 +231,8 @@ int LuaLocalPlayer::l_get_control(lua_State *L)
set("aux1", c.aux1);
set("sneak", c.sneak);
set("zoom", c.zoom);
- set("LMB", c.LMB);
- set("RMB", c.RMB);
+ set("dig", c.dig);
+ set("place", c.place);
return 1;
}
diff --git a/src/script/lua_api/l_mainmenu.cpp b/src/script/lua_api/l_mainmenu.cpp
index f32c477c2..ba7f708a4 100644
--- a/src/script/lua_api/l_mainmenu.cpp
+++ b/src/script/lua_api/l_mainmenu.cpp
@@ -29,7 +29,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "porting.h"
#include "filesys.h"
#include "convert_json.h"
-#include "content/packages.h"
#include "content/content.h"
#include "content/subgames.h"
#include "serverlist.h"
@@ -276,207 +275,6 @@ int ModApiMainMenu::l_get_worlds(lua_State *L)
}
/******************************************************************************/
-int ModApiMainMenu::l_get_favorites(lua_State *L)
-{
- std::string listtype = "local";
-
- if (!lua_isnone(L, 1)) {
- listtype = luaL_checkstring(L, 1);
- }
-
- std::vector<ServerListSpec> servers;
-
- if(listtype == "online") {
- servers = ServerList::getOnline();
- } else {
- servers = ServerList::getLocal();
- }
-
- lua_newtable(L);
- int top = lua_gettop(L);
- unsigned int index = 1;
-
- for (const Json::Value &server : servers) {
-
- lua_pushnumber(L, index);
-
- lua_newtable(L);
- int top_lvl2 = lua_gettop(L);
-
- if (!server["clients"].asString().empty()) {
- std::string clients_raw = server["clients"].asString();
- char* endptr = 0;
- int numbervalue = strtol(clients_raw.c_str(), &endptr,10);
-
- if ((!clients_raw.empty()) && (*endptr == 0)) {
- lua_pushstring(L, "clients");
- lua_pushnumber(L, numbervalue);
- lua_settable(L, top_lvl2);
- }
- }
-
- if (!server["clients_max"].asString().empty()) {
-
- std::string clients_max_raw = server["clients_max"].asString();
- char* endptr = 0;
- int numbervalue = strtol(clients_max_raw.c_str(), &endptr,10);
-
- if ((!clients_max_raw.empty()) && (*endptr == 0)) {
- lua_pushstring(L, "clients_max");
- lua_pushnumber(L, numbervalue);
- lua_settable(L, top_lvl2);
- }
- }
-
- if (!server["version"].asString().empty()) {
- lua_pushstring(L, "version");
- std::string topush = server["version"].asString();
- lua_pushstring(L, topush.c_str());
- lua_settable(L, top_lvl2);
- }
-
- if (!server["proto_min"].asString().empty()) {
- lua_pushstring(L, "proto_min");
- lua_pushinteger(L, server["proto_min"].asInt());
- lua_settable(L, top_lvl2);
- }
-
- if (!server["proto_max"].asString().empty()) {
- lua_pushstring(L, "proto_max");
- lua_pushinteger(L, server["proto_max"].asInt());
- lua_settable(L, top_lvl2);
- }
-
- if (!server["password"].asString().empty()) {
- lua_pushstring(L, "password");
- lua_pushboolean(L, server["password"].asBool());
- lua_settable(L, top_lvl2);
- }
-
- if (!server["creative"].asString().empty()) {
- lua_pushstring(L, "creative");
- lua_pushboolean(L, server["creative"].asBool());
- lua_settable(L, top_lvl2);
- }
-
- if (!server["damage"].asString().empty()) {
- lua_pushstring(L, "damage");
- lua_pushboolean(L, server["damage"].asBool());
- lua_settable(L, top_lvl2);
- }
-
- if (!server["pvp"].asString().empty()) {
- lua_pushstring(L, "pvp");
- lua_pushboolean(L, server["pvp"].asBool());
- lua_settable(L, top_lvl2);
- }
-
- if (!server["description"].asString().empty()) {
- lua_pushstring(L, "description");
- std::string topush = server["description"].asString();
- lua_pushstring(L, topush.c_str());
- lua_settable(L, top_lvl2);
- }
-
- if (!server["name"].asString().empty()) {
- lua_pushstring(L, "name");
- std::string topush = server["name"].asString();
- lua_pushstring(L, topush.c_str());
- lua_settable(L, top_lvl2);
- }
-
- if (!server["address"].asString().empty()) {
- lua_pushstring(L, "address");
- std::string topush = server["address"].asString();
- lua_pushstring(L, topush.c_str());
- lua_settable(L, top_lvl2);
- }
-
- if (!server["port"].asString().empty()) {
- lua_pushstring(L, "port");
- std::string topush = server["port"].asString();
- lua_pushstring(L, topush.c_str());
- lua_settable(L, top_lvl2);
- }
-
- if (server.isMember("ping")) {
- float ping = server["ping"].asFloat();
- lua_pushstring(L, "ping");
- lua_pushnumber(L, ping);
- lua_settable(L, top_lvl2);
- }
-
- if (server["clients_list"].isArray()) {
- unsigned int index_lvl2 = 1;
- lua_pushstring(L, "clients_list");
- lua_newtable(L);
- int top_lvl3 = lua_gettop(L);
- for (const Json::Value &client : server["clients_list"]) {
- lua_pushnumber(L, index_lvl2);
- std::string topush = client.asString();
- lua_pushstring(L, topush.c_str());
- lua_settable(L, top_lvl3);
- index_lvl2++;
- }
- lua_settable(L, top_lvl2);
- }
-
- if (server["mods"].isArray()) {
- unsigned int index_lvl2 = 1;
- lua_pushstring(L, "mods");
- lua_newtable(L);
- int top_lvl3 = lua_gettop(L);
- for (const Json::Value &mod : server["mods"]) {
-
- lua_pushnumber(L, index_lvl2);
- std::string topush = mod.asString();
- lua_pushstring(L, topush.c_str());
- lua_settable(L, top_lvl3);
- index_lvl2++;
- }
- lua_settable(L, top_lvl2);
- }
-
- lua_settable(L, top);
- index++;
- }
- return 1;
-}
-
-/******************************************************************************/
-int ModApiMainMenu::l_delete_favorite(lua_State *L)
-{
- std::vector<ServerListSpec> servers;
-
- std::string listtype = "local";
-
- if (!lua_isnone(L,2)) {
- listtype = luaL_checkstring(L,2);
- }
-
- if ((listtype != "local") &&
- (listtype != "online"))
- return 0;
-
-
- if(listtype == "online") {
- servers = ServerList::getOnline();
- } else {
- servers = ServerList::getLocal();
- }
-
- int fav_idx = luaL_checkinteger(L,1) -1;
-
- if ((fav_idx >= 0) &&
- (fav_idx < (int) servers.size())) {
-
- ServerList::deleteEntry(servers[fav_idx]);
- }
-
- return 0;
-}
-
-/******************************************************************************/
int ModApiMainMenu::l_get_games(lua_State *L)
{
std::vector<SubgameSpec> games = getAvailableGames();
@@ -618,7 +416,7 @@ int ModApiMainMenu::l_create_world(lua_State *L)
std::string path = porting::path_user + DIR_DELIM
"worlds" + DIR_DELIM
- + name;
+ + sanitizeDirName(name, "world_");
std::vector<SubgameSpec> games = getAvailableGames();
@@ -626,10 +424,11 @@ int ModApiMainMenu::l_create_world(lua_State *L)
(gameidx < (int) games.size())) {
// Create world if it doesn't exist
- if (!loadGameConfAndInitWorld(path, games[gameidx])) {
- lua_pushstring(L, "Failed to initialize world");
- } else {
+ try {
+ loadGameConfAndInitWorld(path, name, games[gameidx], true);
lua_pushnil(L);
+ } catch (const BaseException &e) {
+ lua_pushstring(L, (std::string("Failed to initialize world: ") + e.what()).c_str());
}
} else {
lua_pushstring(L, "Invalid game index");
@@ -687,6 +486,14 @@ int ModApiMainMenu::l_get_mapgen_names(lua_State *L)
/******************************************************************************/
+int ModApiMainMenu::l_get_user_path(lua_State *L)
+{
+ std::string path = fs::RemoveRelativePathComponents(porting::path_user);
+ lua_pushstring(L, path.c_str());
+ return 1;
+}
+
+/******************************************************************************/
int ModApiMainMenu::l_get_modpath(lua_State *L)
{
std::string modpath = fs::RemoveRelativePathComponents(
@@ -722,6 +529,7 @@ int ModApiMainMenu::l_get_texturepath(lua_State *L)
return 1;
}
+/******************************************************************************/
int ModApiMainMenu::l_get_texturepath_share(lua_State *L)
{
std::string gamepath = fs::RemoveRelativePathComponents(
@@ -730,6 +538,7 @@ int ModApiMainMenu::l_get_texturepath_share(lua_State *L)
return 1;
}
+/******************************************************************************/
int ModApiMainMenu::l_get_cache_path(lua_State *L)
{
lua_pushstring(L, fs::RemoveRelativePathComponents(porting::path_cache).c_str());
@@ -737,6 +546,13 @@ int ModApiMainMenu::l_get_cache_path(lua_State *L)
}
/******************************************************************************/
+int ModApiMainMenu::l_get_temp_path(lua_State *L)
+{
+ lua_pushstring(L, fs::TempPath().c_str());
+ return 1;
+}
+
+/******************************************************************************/
int ModApiMainMenu::l_create_dir(lua_State *L) {
const char *path = luaL_checkstring(L, 1);
@@ -796,6 +612,15 @@ int ModApiMainMenu::l_copy_dir(lua_State *L)
}
/******************************************************************************/
+int ModApiMainMenu::l_is_dir(lua_State *L)
+{
+ const char *path = luaL_checkstring(L, 1);
+
+ lua_pushboolean(L, fs::IsDir(path));
+ return 1;
+}
+
+/******************************************************************************/
int ModApiMainMenu::l_extract_zip(lua_State *L)
{
const char *zipfile = luaL_checkstring(L, 1);
@@ -1067,7 +892,15 @@ int ModApiMainMenu::l_get_max_supp_proto(lua_State *L)
int ModApiMainMenu::l_open_url(lua_State *L)
{
std::string url = luaL_checkstring(L, 1);
- lua_pushboolean(L, porting::openURL(url));
+ lua_pushboolean(L, porting::open_url(url));
+ return 1;
+}
+
+/******************************************************************************/
+int ModApiMainMenu::l_open_dir(lua_State *L)
+{
+ std::string path = luaL_checkstring(L, 1);
+ lua_pushboolean(L, porting::open_directory(path));
return 1;
}
@@ -1105,23 +938,24 @@ void ModApiMainMenu::Initialize(lua_State *L, int top)
API_FCT(get_content_info);
API_FCT(start);
API_FCT(close);
- API_FCT(get_favorites);
API_FCT(show_keys_menu);
API_FCT(create_world);
API_FCT(delete_world);
- API_FCT(delete_favorite);
API_FCT(set_background);
API_FCT(set_topleft_text);
API_FCT(get_mapgen_names);
+ API_FCT(get_user_path);
API_FCT(get_modpath);
API_FCT(get_clientmodpath);
API_FCT(get_gamepath);
API_FCT(get_texturepath);
API_FCT(get_texturepath_share);
API_FCT(get_cache_path);
+ API_FCT(get_temp_path);
API_FCT(create_dir);
API_FCT(delete_dir);
API_FCT(copy_dir);
+ API_FCT(is_dir);
API_FCT(extract_zip);
API_FCT(may_modify_path);
API_FCT(get_mainmenu_path);
@@ -1134,6 +968,7 @@ void ModApiMainMenu::Initialize(lua_State *L, int top)
API_FCT(get_min_supp_proto);
API_FCT(get_max_supp_proto);
API_FCT(open_url);
+ API_FCT(open_dir);
API_FCT(do_async_callback);
}
@@ -1142,19 +977,23 @@ void ModApiMainMenu::InitializeAsync(lua_State *L, int top)
{
API_FCT(get_worlds);
API_FCT(get_games);
- API_FCT(get_favorites);
API_FCT(get_mapgen_names);
+ API_FCT(get_user_path);
API_FCT(get_modpath);
API_FCT(get_clientmodpath);
API_FCT(get_gamepath);
API_FCT(get_texturepath);
API_FCT(get_texturepath_share);
API_FCT(get_cache_path);
+ API_FCT(get_temp_path);
API_FCT(create_dir);
API_FCT(delete_dir);
API_FCT(copy_dir);
+ API_FCT(is_dir);
//API_FCT(extract_zip); //TODO remove dependency to GuiEngine
API_FCT(may_modify_path);
API_FCT(download_file);
+ API_FCT(get_min_supp_proto);
+ API_FCT(get_max_supp_proto);
//API_FCT(gettext); (gettext lib isn't threadsafe)
}
diff --git a/src/script/lua_api/l_mainmenu.h b/src/script/lua_api/l_mainmenu.h
index 5a16b3bfe..49ce7c251 100644
--- a/src/script/lua_api/l_mainmenu.h
+++ b/src/script/lua_api/l_mainmenu.h
@@ -74,10 +74,6 @@ private:
static int l_get_mapgen_names(lua_State *L);
- static int l_get_favorites(lua_State *L);
-
- static int l_delete_favorite(lua_State *L);
-
static int l_gettext(lua_State *L);
//packages
@@ -112,6 +108,8 @@ private:
static int l_get_mainmenu_path(lua_State *L);
+ static int l_get_user_path(lua_State *L);
+
static int l_get_modpath(lua_State *L);
static int l_get_clientmodpath(lua_State *L);
@@ -124,12 +122,16 @@ private:
static int l_get_cache_path(lua_State *L);
+ static int l_get_temp_path(lua_State *L);
+
static int l_create_dir(lua_State *L);
static int l_delete_dir(lua_State *L);
static int l_copy_dir(lua_State *L);
+ static int l_is_dir(lua_State *L);
+
static int l_extract_zip(lua_State *L);
static int l_may_modify_path(lua_State *L);
@@ -148,6 +150,8 @@ private:
// other
static int l_open_url(lua_State *L);
+ static int l_open_dir(lua_State *L);
+
// async
static int l_do_async_callback(lua_State *L);
diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp
index 834938e56..12a497b1e 100644
--- a/src/script/lua_api/l_mapgen.cpp
+++ b/src/script/lua_api/l_mapgen.cpp
@@ -873,9 +873,6 @@ int ModApiMapgen::l_set_mapgen_params(lua_State *L)
if (lua_isnumber(L, -1))
settingsmgr->setMapSetting("chunksize", readParam<std::string>(L, -1), true);
- warn_if_field_exists(L, 1, "flagmask",
- "Obsolete: flags field now includes unset flags.");
-
lua_getfield(L, 1, "flags");
if (lua_isstring(L, -1))
settingsmgr->setMapSetting("mg_flags", readParam<std::string>(L, -1), true);
@@ -985,7 +982,7 @@ int ModApiMapgen::l_set_noiseparams(lua_State *L)
bool set_default = !lua_isboolean(L, 3) || readParam<bool>(L, 3);
- g_settings->setNoiseParams(name, np, set_default);
+ Settings::getLayer(set_default ? SL_DEFAULTS : SL_GLOBAL)->setNoiseParams(name, np);
return 0;
}
@@ -1338,11 +1335,9 @@ int ModApiMapgen::l_register_ore(lua_State *L)
lua_getfield(L, index, "noise_params");
if (read_noiseparams(L, -1, &ore->np)) {
ore->flags |= OREFLAG_USE_NOISE;
- } else if (ore->NEEDS_NOISE) {
- errorstream << "register_ore: specified ore type requires valid "
- "'noise_params' parameter" << std::endl;
- delete ore;
- return 0;
+ } else if (ore->needs_noise) {
+ log_deprecated(L,
+ "register_ore: ore type requires 'noise_params' but it is not specified, falling back to defaults");
}
lua_pop(L, 1);
diff --git a/src/script/lua_api/l_metadata.cpp b/src/script/lua_api/l_metadata.cpp
index 61a25a761..21002e6a7 100644
--- a/src/script/lua_api/l_metadata.cpp
+++ b/src/script/lua_api/l_metadata.cpp
@@ -153,9 +153,7 @@ int MetaDataRef::l_set_int(lua_State *L)
MetaDataRef *ref = checkobject(L, 1);
std::string name = luaL_checkstring(L, 2);
int a = luaL_checkint(L, 3);
- std::string str;
- if (a != 0)
- str = itos(a);
+ std::string str = itos(a);
Metadata *meta = ref->getmeta(true);
if (meta == NULL || str == meta->getString(name))
@@ -193,9 +191,7 @@ int MetaDataRef::l_set_float(lua_State *L)
MetaDataRef *ref = checkobject(L, 1);
std::string name = luaL_checkstring(L, 2);
float a = readParam<float>(L, 3);
- std::string str;
- if (a != 0)
- str = ftos(a);
+ std::string str = ftos(a);
Metadata *meta = ref->getmeta(true);
if (meta == NULL || str == meta->getString(name))
diff --git a/src/script/lua_api/l_minimap.cpp b/src/script/lua_api/l_minimap.cpp
index 5fba76eb8..3bbb6e5e3 100644
--- a/src/script/lua_api/l_minimap.cpp
+++ b/src/script/lua_api/l_minimap.cpp
@@ -89,7 +89,7 @@ int LuaMinimap::l_get_mode(lua_State *L)
LuaMinimap *ref = checkobject(L, 1);
Minimap *m = getobject(ref);
- lua_pushinteger(L, m->getMinimapMode());
+ lua_pushinteger(L, m->getModeIndex());
return 1;
}
@@ -98,13 +98,11 @@ int LuaMinimap::l_set_mode(lua_State *L)
LuaMinimap *ref = checkobject(L, 1);
Minimap *m = getobject(ref);
- s32 mode = lua_tointeger(L, 2);
- if (mode < MINIMAP_MODE_OFF ||
- mode >= MINIMAP_MODE_COUNT) {
+ u32 mode = lua_tointeger(L, 2);
+ if (mode >= m->getMaxModeIndex())
return 0;
- }
- m->setMinimapMode((MinimapMode) mode);
+ m->setModeIndex(mode);
return 1;
}
@@ -140,8 +138,11 @@ int LuaMinimap::l_show(lua_State *L)
LuaMinimap *ref = checkobject(L, 1);
Minimap *m = getobject(ref);
- if (m->getMinimapMode() == MINIMAP_MODE_OFF)
- m->setMinimapMode(MINIMAP_MODE_SURFACEx1);
+ // This is not very adapted to new minimap mode management. Btw, tried
+ // to do something compatible.
+
+ if (m->getModeIndex() == 0 && m->getMaxModeIndex() > 0)
+ m->setModeIndex(1);
client->showMinimap(true);
return 1;
@@ -155,8 +156,11 @@ int LuaMinimap::l_hide(lua_State *L)
LuaMinimap *ref = checkobject(L, 1);
Minimap *m = getobject(ref);
- if (m->getMinimapMode() != MINIMAP_MODE_OFF)
- m->setMinimapMode(MINIMAP_MODE_OFF);
+ // This is not very adapted to new minimap mode management. Btw, tried
+ // to do something compatible.
+
+ if (m->getModeIndex() != 0)
+ m->setModeIndex(0);
client->showMinimap(false);
return 1;
diff --git a/src/script/lua_api/l_noise.cpp b/src/script/lua_api/l_noise.cpp
index 9aeb15709..e0861126a 100644
--- a/src/script/lua_api/l_noise.cpp
+++ b/src/script/lua_api/l_noise.cpp
@@ -122,7 +122,6 @@ void LuaPerlinNoise::Register(lua_State *L)
lua_pop(L, 1);
- markAliasDeprecated(methods);
luaL_openlib(L, 0, methods, 0);
lua_pop(L, 1);
@@ -381,7 +380,6 @@ void LuaPerlinNoiseMap::Register(lua_State *L)
lua_pop(L, 1);
- markAliasDeprecated(methods);
luaL_openlib(L, 0, methods, 0);
lua_pop(L, 1);
diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp
index e7394133a..8ae99b929 100644
--- a/src/script/lua_api/l_object.cpp
+++ b/src/script/lua_api/l_object.cpp
@@ -44,43 +44,44 @@ ObjectRef* ObjectRef::checkobject(lua_State *L, int narg)
{
luaL_checktype(L, narg, LUA_TUSERDATA);
void *ud = luaL_checkudata(L, narg, className);
- if (!ud) luaL_typerror(L, narg, className);
+ if (ud == nullptr)
+ luaL_typerror(L, narg, className);
return *(ObjectRef**)ud; // unbox pointer
}
ServerActiveObject* ObjectRef::getobject(ObjectRef *ref)
{
- ServerActiveObject *co = ref->m_object;
- if (co && co->isGone())
- return NULL;
- return co;
+ ServerActiveObject *sao = ref->m_object;
+ if (sao && sao->isGone())
+ return nullptr;
+ return sao;
}
LuaEntitySAO* ObjectRef::getluaobject(ObjectRef *ref)
{
- ServerActiveObject *obj = getobject(ref);
- if (obj == NULL)
- return NULL;
- if (obj->getType() != ACTIVEOBJECT_TYPE_LUAENTITY)
- return NULL;
- return (LuaEntitySAO*)obj;
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
+ return nullptr;
+ if (sao->getType() != ACTIVEOBJECT_TYPE_LUAENTITY)
+ return nullptr;
+ return (LuaEntitySAO*)sao;
}
PlayerSAO* ObjectRef::getplayersao(ObjectRef *ref)
{
- ServerActiveObject *obj = getobject(ref);
- if (obj == NULL)
- return NULL;
- if (obj->getType() != ACTIVEOBJECT_TYPE_PLAYER)
- return NULL;
- return (PlayerSAO*)obj;
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
+ return nullptr;
+ if (sao->getType() != ACTIVEOBJECT_TYPE_PLAYER)
+ return nullptr;
+ return (PlayerSAO*)sao;
}
RemotePlayer *ObjectRef::getplayer(ObjectRef *ref)
{
PlayerSAO *playersao = getplayersao(ref);
- if (playersao == NULL)
- return NULL;
+ if (playersao == nullptr)
+ return nullptr;
return playersao->getPlayer();
}
@@ -88,9 +89,8 @@ RemotePlayer *ObjectRef::getplayer(ObjectRef *ref)
// garbage collector
int ObjectRef::gc_object(lua_State *L) {
- ObjectRef *o = *(ObjectRef **)(lua_touserdata(L, 1));
- //infostream<<"ObjectRef::gc_object: o="<<o<<std::endl;
- delete o;
+ ObjectRef *obj = *(ObjectRef **)(lua_touserdata(L, 1));
+ delete obj;
return 0;
}
@@ -100,29 +100,30 @@ int ObjectRef::l_remove(lua_State *L)
GET_ENV_PTR;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- if (co->getType() == ACTIVEOBJECT_TYPE_PLAYER)
+ if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER)
return 0;
- co->clearChildAttachments();
- co->clearParentAttachment();
+ sao->clearChildAttachments();
+ sao->clearParentAttachment();
- verbosestream << "ObjectRef::l_remove(): id=" << co->getId() << std::endl;
- co->m_pending_removal = true;
+ verbosestream << "ObjectRef::l_remove(): id=" << sao->getId() << std::endl;
+ sao->markForRemoval();
return 0;
}
// get_pos(self)
-// returns: {x=num, y=num, z=num}
int ObjectRef::l_get_pos(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL) return 0;
- push_v3f(L, co->getBasePosition() / BS);
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
+ return 0;
+
+ push_v3f(L, sao->getBasePosition() / BS);
return 1;
}
@@ -131,28 +132,29 @@ int ObjectRef::l_set_pos(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL) return 0;
- // pos
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
+ return 0;
+
v3f pos = checkFloatPos(L, 2);
- // Do it
- co->setPos(pos);
+
+ sao->setPos(pos);
return 0;
}
-// move_to(self, pos, continuous=false)
+// move_to(self, pos, continuous)
int ObjectRef::l_move_to(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL) return 0;
- // pos
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
+ return 0;
+
v3f pos = checkFloatPos(L, 2);
- // continuous
bool continuous = readParam<bool>(L, 3);
- // Do it
- co->moveTo(pos, continuous);
+
+ sao->moveTo(pos, continuous);
return 0;
}
@@ -162,32 +164,26 @@ int ObjectRef::l_punch(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
ObjectRef *puncher_ref = checkobject(L, 2);
- ServerActiveObject *co = getobject(ref);
+ ServerActiveObject *sao = getobject(ref);
ServerActiveObject *puncher = getobject(puncher_ref);
- if (!co || !puncher)
+ if (sao == nullptr || puncher == nullptr)
return 0;
- v3f dir;
- if (lua_type(L, 5) != LUA_TTABLE)
- dir = co->getBasePosition() - puncher->getBasePosition();
- else
- dir = read_v3f(L, 5);
- float time_from_last_punch = 1000000;
- if (lua_isnumber(L, 3))
- time_from_last_punch = lua_tonumber(L, 3);
+
+ float time_from_last_punch = readParam<float>(L, 3, 1000000.0f);
ToolCapabilities toolcap = read_tool_capabilities(L, 4);
- dir.normalize();
+ v3f dir = readParam<v3f>(L, 5, sao->getBasePosition() - puncher->getBasePosition());
- u16 src_original_hp = co->getHP();
+ dir.normalize();
+ u16 src_original_hp = sao->getHP();
u16 dst_origin_hp = puncher->getHP();
- // Do it
- u16 wear = co->punch(dir, &toolcap, puncher, time_from_last_punch);
+ u16 wear = sao->punch(dir, &toolcap, puncher, time_from_last_punch);
lua_pushnumber(L, wear);
// If the punched is a player, and its HP changed
- if (src_original_hp != co->getHP() &&
- co->getType() == ACTIVEOBJECT_TYPE_PLAYER) {
- getServer(L)->SendPlayerHPOrDie((PlayerSAO *)co,
+ if (src_original_hp != sao->getHP() &&
+ sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) {
+ getServer(L)->SendPlayerHPOrDie((PlayerSAO *)sao,
PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, puncher));
}
@@ -195,45 +191,38 @@ int ObjectRef::l_punch(lua_State *L)
if (dst_origin_hp != puncher->getHP() &&
puncher->getType() == ACTIVEOBJECT_TYPE_PLAYER) {
getServer(L)->SendPlayerHPOrDie((PlayerSAO *)puncher,
- PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, co));
+ PlayerHPChangeReason(PlayerHPChangeReason::PLAYER_PUNCH, sao));
}
return 1;
}
-// right_click(self, clicker); clicker = an another ObjectRef
+// right_click(self, clicker)
int ObjectRef::l_right_click(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
ObjectRef *ref2 = checkobject(L, 2);
- ServerActiveObject *co = getobject(ref);
- ServerActiveObject *co2 = getobject(ref2);
- if (co == NULL) return 0;
- if (co2 == NULL) return 0;
- // Do it
- co->rightClick(co2);
+ ServerActiveObject *sao = getobject(ref);
+ ServerActiveObject *sao2 = getobject(ref2);
+ if (sao == nullptr || sao2 == nullptr)
+ return 0;
+
+ sao->rightClick(sao2);
return 0;
}
-// set_hp(self, hp)
-// hp = number of hitpoints (2 * number of hearts)
-// returns: nil
+// set_hp(self, hp, reason)
int ObjectRef::l_set_hp(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
-
- // Get Object
ObjectRef *ref = checkobject(L, 1);
- luaL_checknumber(L, 2);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- // Get HP
- int hp = lua_tonumber(L, 2);
-
- // Get Reason
+ int hp = readParam<float>(L, 2);
PlayerHPChangeReason reason(PlayerHPChangeReason::SET_HP);
+
reason.from_mod = true;
if (lua_istable(L, 3)) {
lua_pushvalue(L, 3);
@@ -248,35 +237,28 @@ int ObjectRef::l_set_hp(lua_State *L)
reason.lua_reference = luaL_ref(L, LUA_REGISTRYINDEX);
}
- // Do it
- co->setHP(hp, reason);
- if (co->getType() == ACTIVEOBJECT_TYPE_PLAYER)
- getServer(L)->SendPlayerHPOrDie((PlayerSAO *)co, reason);
-
+ sao->setHP(hp, reason);
+ if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER)
+ getServer(L)->SendPlayerHPOrDie((PlayerSAO *)sao, reason);
if (reason.hasLuaReference())
luaL_unref(L, LUA_REGISTRYINDEX, reason.lua_reference);
-
- // Return
return 0;
}
// get_hp(self)
-// returns: number of hitpoints (2 * number of hearts)
-// 0 if not applicable to this type of object
int ObjectRef::l_get_hp(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL) {
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr) {
// Default hp is 1
lua_pushnumber(L, 1);
return 1;
}
- int hp = co->getHP();
- /*infostream<<"ObjectRef::l_get_hp(): id="<<co->getId()
- <<" hp="<<hp<<std::endl;*/
- // Return
+
+ int hp = sao->getHP();
+
lua_pushnumber(L, hp);
return 1;
}
@@ -286,11 +268,12 @@ int ObjectRef::l_get_inventory(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL) return 0;
- // Do it
- InventoryLocation loc = co->getInventoryLocation();
- if (getServerInventoryMgr(L)->getInventory(loc) != NULL)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
+ return 0;
+
+ InventoryLocation loc = sao->getInventoryLocation();
+ if (getServerInventoryMgr(L)->getInventory(loc) != nullptr)
InvRef::create(L, loc);
else
lua_pushnil(L); // An object may have no inventory (nil)
@@ -302,11 +285,11 @@ int ObjectRef::l_get_wield_list(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (!co)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- lua_pushstring(L, co->getWieldList().c_str());
+ lua_pushstring(L, sao->getWieldList().c_str());
return 1;
}
@@ -315,11 +298,11 @@ int ObjectRef::l_get_wield_index(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (!co)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- lua_pushinteger(L, co->getWieldIndex() + 1);
+ lua_pushinteger(L, sao->getWieldIndex() + 1);
return 1;
}
@@ -328,31 +311,33 @@ int ObjectRef::l_get_wielded_item(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (!co) {
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr) {
// Empty ItemStack
LuaItemStack::create(L, ItemStack());
return 1;
}
ItemStack selected_item;
- co->getWieldedItem(&selected_item, nullptr);
+ sao->getWieldedItem(&selected_item, nullptr);
LuaItemStack::create(L, selected_item);
return 1;
}
-// set_wielded_item(self, itemstack or itemstring or table or nil)
+// set_wielded_item(self, item)
int ObjectRef::l_set_wielded_item(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL) return 0;
- // Do it
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
+ return 0;
+
ItemStack item = read_item(L, 2, getServer(L)->idef());
- bool success = co->setWieldedItem(item);
- if (success && co->getType() == ACTIVEOBJECT_TYPE_PLAYER) {
- getServer(L)->SendInventory((PlayerSAO *)co, true);
+
+ bool success = sao->setWieldedItem(item);
+ if (success && sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) {
+ getServer(L)->SendInventory((PlayerSAO *)sao, true);
}
lua_pushboolean(L, success);
return 1;
@@ -363,12 +348,23 @@ int ObjectRef::l_set_armor_groups(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL) return 0;
- // Do it
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
+ return 0;
+
ItemGroupList groups;
+
read_groups(L, 2, groups);
- co->setArmorGroups(groups);
+ if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) {
+ if (!g_settings->getBool("enable_damage") && !itemgroup_get(groups, "immortal")) {
+ warningstream << "Mod tried to enable damage for a player, but it's "
+ "disabled globally. Ignoring." << std::endl;
+ infostream << script_get_backtrace(L) << std::endl;
+ groups["immortal"] = 1;
+ }
+ }
+
+ sao->setArmorGroups(groups);
return 0;
}
@@ -377,77 +373,11 @@ int ObjectRef::l_get_armor_groups(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- // Do it
- push_groups(L, co->getArmorGroups());
- return 1;
-}
-
-// set_physics_override(self, physics_override_speed, physics_override_jump,
-// physics_override_gravity, sneak, sneak_glitch, new_move)
-int ObjectRef::l_set_physics_override(lua_State *L)
-{
- NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
- PlayerSAO *co = (PlayerSAO *) getobject(ref);
- if (co == NULL) return 0;
- // Do it
- if (lua_istable(L, 2)) {
- co->m_physics_override_speed = getfloatfield_default(
- L, 2, "speed", co->m_physics_override_speed);
- co->m_physics_override_jump = getfloatfield_default(
- L, 2, "jump", co->m_physics_override_jump);
- co->m_physics_override_gravity = getfloatfield_default(
- L, 2, "gravity", co->m_physics_override_gravity);
- co->m_physics_override_sneak = getboolfield_default(
- L, 2, "sneak", co->m_physics_override_sneak);
- co->m_physics_override_sneak_glitch = getboolfield_default(
- L, 2, "sneak_glitch", co->m_physics_override_sneak_glitch);
- co->m_physics_override_new_move = getboolfield_default(
- L, 2, "new_move", co->m_physics_override_new_move);
- co->m_physics_override_sent = false;
- } else {
- // old, non-table format
- if (!lua_isnil(L, 2)) {
- co->m_physics_override_speed = lua_tonumber(L, 2);
- co->m_physics_override_sent = false;
- }
- if (!lua_isnil(L, 3)) {
- co->m_physics_override_jump = lua_tonumber(L, 3);
- co->m_physics_override_sent = false;
- }
- if (!lua_isnil(L, 4)) {
- co->m_physics_override_gravity = lua_tonumber(L, 4);
- co->m_physics_override_sent = false;
- }
- }
- return 0;
-}
-// get_physics_override(self)
-int ObjectRef::l_get_physics_override(lua_State *L)
-{
- NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
- PlayerSAO *co = (PlayerSAO *)getobject(ref);
- if (co == NULL)
- return 0;
- // Do it
- lua_newtable(L);
- lua_pushnumber(L, co->m_physics_override_speed);
- lua_setfield(L, -2, "speed");
- lua_pushnumber(L, co->m_physics_override_jump);
- lua_setfield(L, -2, "jump");
- lua_pushnumber(L, co->m_physics_override_gravity);
- lua_setfield(L, -2, "gravity");
- lua_pushboolean(L, co->m_physics_override_sneak);
- lua_setfield(L, -2, "sneak");
- lua_pushboolean(L, co->m_physics_override_sneak_glitch);
- lua_setfield(L, -2, "sneak_glitch");
- lua_pushboolean(L, co->m_physics_override_new_move);
- lua_setfield(L, -2, "new_move");
+ push_groups(L, sao->getArmorGroups());
return 1;
}
@@ -456,22 +386,16 @@ int ObjectRef::l_set_animation(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL) return 0;
- // Do it
- v2f frames = v2f(1, 1);
- if (!lua_isnil(L, 2))
- frames = readParam<v2f>(L, 2);
- float frame_speed = 15;
- if (!lua_isnil(L, 3))
- frame_speed = lua_tonumber(L, 3);
- float frame_blend = 0;
- if (!lua_isnil(L, 4))
- frame_blend = lua_tonumber(L, 4);
- bool frame_loop = true;
- if (lua_isboolean(L, 5))
- frame_loop = readParam<bool>(L, 5);
- co->setAnimation(frames, frame_speed, frame_blend, frame_loop);
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
+ return 0;
+
+ v2f frame_range = readParam<v2f>(L, 2, v2f(1, 1));
+ float frame_speed = readParam<float>(L, 3, 15.0f);
+ float frame_blend = readParam<float>(L, 4, 0.0f);
+ bool frame_loop = readParam<bool>(L, 5, true);
+
+ sao->setAnimation(frame_range, frame_speed, frame_blend, frame_loop);
return 0;
}
@@ -480,16 +404,16 @@ int ObjectRef::l_get_animation(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- // Do it
- v2f frames = v2f(1,1);
+
+ v2f frames = v2f(1, 1);
float frame_speed = 15;
float frame_blend = 0;
bool frame_loop = true;
- co->getAnimation(&frames, &frame_speed, &frame_blend, &frame_loop);
+ sao->getAnimation(&frames, &frame_speed, &frame_blend, &frame_loop);
push_v2f(L, frames);
lua_pushnumber(L, frame_speed);
lua_pushnumber(L, frame_blend);
@@ -497,23 +421,21 @@ int ObjectRef::l_get_animation(lua_State *L)
return 4;
}
-// set_local_animation(self, {stand/idle}, {walk}, {dig}, {walk+dig}, frame_speed)
+// set_local_animation(self, idle, walk, dig, walk_while_dig, frame_speed)
int ObjectRef::l_set_local_animation(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
- // Do it
+
v2s32 frames[4];
for (int i=0;i<4;i++) {
if (!lua_isnil(L, 2+1))
frames[i] = read_v2s32(L, 2+i);
}
- float frame_speed = 30;
- if (!lua_isnil(L, 6))
- frame_speed = lua_tonumber(L, 6);
+ float frame_speed = readParam<float>(L, 6, 30.0f);
getServer(L)->setLocalPlayerAnimations(player, frames, frame_speed);
lua_pushboolean(L, true);
@@ -526,7 +448,7 @@ int ObjectRef::l_get_local_animation(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
v2s32 frames[4];
@@ -541,27 +463,22 @@ int ObjectRef::l_get_local_animation(lua_State *L)
return 5;
}
-// set_eye_offset(self, v3f first pv, v3f third pv)
+// set_eye_offset(self, firstperson, thirdperson)
int ObjectRef::l_set_eye_offset(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
- // Do it
- v3f offset_first = v3f(0, 0, 0);
- v3f offset_third = v3f(0, 0, 0);
- if (!lua_isnil(L, 2))
- offset_first = read_v3f(L, 2);
- if (!lua_isnil(L, 3))
- offset_third = read_v3f(L, 3);
+ v3f offset_first = readParam<v3f>(L, 2, v3f(0, 0, 0));
+ v3f offset_third = readParam<v3f>(L, 3, v3f(0, 0, 0));
// Prevent abuse of offset values (keep player always visible)
offset_third.X = rangelim(offset_third.X,-10,10);
offset_third.Z = rangelim(offset_third.Z,-5,5);
- /* TODO: if possible: improve the camera colision detetion to allow Y <= -1.5) */
+ /* TODO: if possible: improve the camera collision detection to allow Y <= -1.5) */
offset_third.Y = rangelim(offset_third.Y,-10,15); //1.5*BS
getServer(L)->setPlayerEyeOffset(player, offset_first, offset_third);
@@ -575,9 +492,9 @@ int ObjectRef::l_get_eye_offset(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
- // Do it
+
push_v3f(L, player->eye_offset_first);
push_v3f(L, player->eye_offset_third);
return 2;
@@ -588,14 +505,14 @@ int ObjectRef::l_send_mapblock(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
-
RemotePlayer *player = getplayer(ref);
- if (!player)
+ if (player == nullptr)
return 0;
- v3s16 p = read_v3s16(L, 2);
+
+ v3s16 pos = read_v3s16(L, 2);
session_t peer_id = player->getPeerId();
- bool r = getServer(L)->SendBlock(peer_id, p);
+ bool r = getServer(L)->SendBlock(peer_id, pos);
lua_pushboolean(L, r);
return 1;
@@ -606,14 +523,13 @@ int ObjectRef::l_set_animation_frame_speed(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- // Do it
if (!lua_isnil(L, 2)) {
- float frame_speed = lua_tonumber(L, 2);
- co->setAnimationSpeed(frame_speed);
+ float frame_speed = readParam<float>(L, 2);
+ sao->setAnimationSpeed(frame_speed);
lua_pushboolean(L, true);
} else {
lua_pushboolean(L, false);
@@ -621,24 +537,20 @@ int ObjectRef::l_set_animation_frame_speed(lua_State *L)
return 1;
}
-// set_bone_position(self, std::string bone, v3f position, v3f rotation)
+// set_bone_position(self, bone, position, rotation)
int ObjectRef::l_set_bone_position(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL) return 0;
- // Do it
- std::string bone;
- if (!lua_isnil(L, 2))
- bone = readParam<std::string>(L, 2);
- v3f position = v3f(0, 0, 0);
- if (!lua_isnil(L, 3))
- position = check_v3f(L, 3);
- v3f rotation = v3f(0, 0, 0);
- if (!lua_isnil(L, 4))
- rotation = check_v3f(L, 4);
- co->setBonePosition(bone, position, rotation);
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
+ return 0;
+
+ std::string bone = readParam<std::string>(L, 2, "");
+ v3f position = readParam<v3f>(L, 3, v3f(0, 0, 0));
+ v3f rotation = readParam<v3f>(L, 4, v3f(0, 0, 0));
+
+ sao->setBonePosition(bone, position, rotation);
return 0;
}
@@ -647,63 +559,53 @@ int ObjectRef::l_get_bone_position(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- // Do it
- std::string bone;
- if (!lua_isnil(L, 2))
- bone = readParam<std::string>(L, 2);
+
+ std::string bone = readParam<std::string>(L, 2, "");
v3f position = v3f(0, 0, 0);
v3f rotation = v3f(0, 0, 0);
- co->getBonePosition(bone, &position, &rotation);
+ sao->getBonePosition(bone, &position, &rotation);
push_v3f(L, position);
push_v3f(L, rotation);
return 2;
}
-// set_attach(self, parent, bone, position, rotation)
+// set_attach(self, parent, bone, position, rotation, force_visible)
int ObjectRef::l_set_attach(lua_State *L)
{
GET_ENV_PTR;
-
ObjectRef *ref = checkobject(L, 1);
ObjectRef *parent_ref = checkobject(L, 2);
- ServerActiveObject *co = getobject(ref);
+ ServerActiveObject *sao = getobject(ref);
ServerActiveObject *parent = getobject(parent_ref);
- if (co == NULL)
- return 0;
-
- if (parent == NULL)
+ if (sao == nullptr || parent == nullptr)
return 0;
-
- if (co == parent)
+ if (sao == parent)
throw LuaError("ObjectRef::set_attach: attaching object to itself is not allowed.");
- // Do it
- int parent_id = 0;
+ int parent_id;
std::string bone;
- v3f position = v3f(0, 0, 0);
- v3f rotation = v3f(0, 0, 0);
- co->getAttachment(&parent_id, &bone, &position, &rotation);
+ v3f position;
+ v3f rotation;
+ bool force_visible;
+
+ sao->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible);
if (parent_id) {
ServerActiveObject *old_parent = env->getActiveObject(parent_id);
- old_parent->removeAttachmentChild(co->getId());
+ old_parent->removeAttachmentChild(sao->getId());
}
- bone = "";
- if (!lua_isnil(L, 3))
- bone = readParam<std::string>(L, 3);
- position = v3f(0, 0, 0);
- if (!lua_isnil(L, 4))
- position = read_v3f(L, 4);
- rotation = v3f(0, 0, 0);
- if (!lua_isnil(L, 5))
- rotation = read_v3f(L, 5);
- co->setAttachment(parent->getId(), bone, position, rotation);
- parent->addAttachmentChild(co->getId());
+ bone = readParam<std::string>(L, 3, "");
+ position = readParam<v3f>(L, 4, v3f(0, 0, 0));
+ rotation = readParam<v3f>(L, 5, v3f(0, 0, 0));
+ force_visible = readParam<bool>(L, 6, false);
+
+ sao->setAttachment(parent->getId(), bone, position, rotation, force_visible);
+ parent->addAttachmentChild(sao->getId());
return 0;
}
@@ -711,40 +613,61 @@ int ObjectRef::l_set_attach(lua_State *L)
int ObjectRef::l_get_attach(lua_State *L)
{
GET_ENV_PTR;
-
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- // Do it
- int parent_id = 0;
+ int parent_id;
std::string bone;
- v3f position = v3f(0, 0, 0);
- v3f rotation = v3f(0, 0, 0);
- co->getAttachment(&parent_id, &bone, &position, &rotation);
- if (!parent_id)
+ v3f position;
+ v3f rotation;
+ bool force_visible;
+
+ sao->getAttachment(&parent_id, &bone, &position, &rotation, &force_visible);
+ if (parent_id == 0)
return 0;
- ServerActiveObject *parent = env->getActiveObject(parent_id);
+ ServerActiveObject *parent = env->getActiveObject(parent_id);
getScriptApiBase(L)->objectrefGetOrCreate(L, parent);
lua_pushlstring(L, bone.c_str(), bone.size());
push_v3f(L, position);
push_v3f(L, rotation);
- return 4;
+ lua_pushboolean(L, force_visible);
+ return 5;
+}
+
+// get_children(self)
+int ObjectRef::l_get_children(lua_State *L)
+{
+ GET_ENV_PTR;
+ ObjectRef *ref = checkobject(L, 1);
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
+ return 0;
+
+ const std::unordered_set<int> child_ids = sao->getAttachmentChildIds();
+ int i = 0;
+
+ lua_createtable(L, child_ids.size(), 0);
+ for (const int id : child_ids) {
+ ServerActiveObject *child = env->getActiveObject(id);
+ getScriptApiBase(L)->objectrefGetOrCreate(L, child);
+ lua_rawseti(L, -2, ++i);
+ }
+ return 1;
}
// set_detach(self)
int ObjectRef::l_set_detach(lua_State *L)
{
GET_ENV_PTR;
-
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- co->clearParentAttachment();
+ sao->clearParentAttachment();
return 0;
}
@@ -753,16 +676,16 @@ int ObjectRef::l_set_properties(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (!co)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- ObjectProperties *prop = co->accessObjectProperties();
- if (!prop)
+ ObjectProperties *prop = sao->accessObjectProperties();
+ if (prop == nullptr)
return 0;
- read_object_properties(L, 2, co, prop, getServer(L)->idef());
- co->notifyObjectPropertiesModified();
+ read_object_properties(L, 2, sao, prop, getServer(L)->idef());
+ sao->notifyObjectPropertiesModified();
return 0;
}
@@ -771,12 +694,14 @@ int ObjectRef::l_get_properties(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
- if (co == NULL)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- ObjectProperties *prop = co->accessObjectProperties();
- if (!prop)
+
+ ObjectProperties *prop = sao->accessObjectProperties();
+ if (prop == nullptr)
return 0;
+
push_object_properties(L, prop);
return 1;
}
@@ -787,7 +712,7 @@ int ObjectRef::l_is_player(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- lua_pushboolean(L, (player != NULL));
+ lua_pushboolean(L, (player != nullptr));
return 1;
}
@@ -796,12 +721,12 @@ int ObjectRef::l_set_nametag_attributes(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
-
- if (co == NULL)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- ObjectProperties *prop = co->accessObjectProperties();
- if (!prop)
+
+ ObjectProperties *prop = sao->accessObjectProperties();
+ if (prop == nullptr)
return 0;
lua_getfield(L, 2, "color");
@@ -812,10 +737,22 @@ int ObjectRef::l_set_nametag_attributes(lua_State *L)
}
lua_pop(L, 1);
+ lua_getfield(L, -1, "bgcolor");
+ if (!lua_isnil(L, -1)) {
+ if (lua_toboolean(L, -1)) {
+ video::SColor color;
+ if (read_color(L, -1, &color))
+ prop->nametag_bgcolor = color;
+ } else {
+ prop->nametag_bgcolor = nullopt;
+ }
+ }
+ lua_pop(L, 1);
+
std::string nametag = getstringfield_default(L, 2, "text", "");
prop->nametag = nametag;
- co->notifyObjectPropertiesModified();
+ sao->notifyObjectPropertiesModified();
lua_pushboolean(L, true);
return 1;
}
@@ -825,50 +762,72 @@ int ObjectRef::l_get_nametag_attributes(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- ServerActiveObject *co = getobject(ref);
-
- if (co == NULL)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- ObjectProperties *prop = co->accessObjectProperties();
+
+ ObjectProperties *prop = sao->accessObjectProperties();
if (!prop)
return 0;
- video::SColor color = prop->nametag_color;
-
lua_newtable(L);
- push_ARGB8(L, color);
+
+ push_ARGB8(L, prop->nametag_color);
lua_setfield(L, -2, "color");
+
+ if (prop->nametag_bgcolor) {
+ push_ARGB8(L, prop->nametag_bgcolor.value());
+ lua_setfield(L, -2, "bgcolor");
+ } else {
+ lua_pushboolean(L, false);
+ lua_setfield(L, -2, "bgcolor");
+ }
+
lua_pushstring(L, prop->nametag.c_str());
lua_setfield(L, -2, "text");
+
+
+
return 1;
}
/* LuaEntitySAO-only */
-// set_velocity(self, {x=num, y=num, z=num})
+// set_velocity(self, velocity)
int ObjectRef::l_set_velocity(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
- if (co == NULL) return 0;
- v3f pos = checkFloatPos(L, 2);
- // Do it
- co->setVelocity(pos);
+ LuaEntitySAO *sao = getluaobject(ref);
+ if (sao == nullptr)
+ return 0;
+
+ v3f vel = checkFloatPos(L, 2);
+
+ sao->setVelocity(vel);
return 0;
}
-// add_velocity(self, {x=num, y=num, z=num})
+// add_velocity(self, velocity)
int ObjectRef::l_add_velocity(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
- if (!co)
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
return 0;
- v3f pos = checkFloatPos(L, 2);
- // Do it
- co->addVelocity(pos);
+
+ v3f vel = checkFloatPos(L, 2);
+
+ if (sao->getType() == ACTIVEOBJECT_TYPE_LUAENTITY) {
+ LuaEntitySAO *entitysao = dynamic_cast<LuaEntitySAO*>(sao);
+ entitysao->addVelocity(vel);
+ } else if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) {
+ PlayerSAO *playersao = dynamic_cast<PlayerSAO*>(sao);
+ playersao->setMaxSpeedOverride(vel);
+ getServer(L)->SendPlayerSpeed(playersao->getPeerID(), vel);
+ }
+
return 0;
}
@@ -877,25 +836,37 @@ int ObjectRef::l_get_velocity(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
- if (co == NULL) return 0;
- // Do it
- v3f v = co->getVelocity();
- pushFloatPos(L, v);
+ ServerActiveObject *sao = getobject(ref);
+ if (sao == nullptr)
+ return 0;
+
+ if (sao->getType() == ACTIVEOBJECT_TYPE_LUAENTITY) {
+ LuaEntitySAO *entitysao = dynamic_cast<LuaEntitySAO*>(sao);
+ v3f vel = entitysao->getVelocity();
+ pushFloatPos(L, vel);
+ return 1;
+ } else if (sao->getType() == ACTIVEOBJECT_TYPE_PLAYER) {
+ RemotePlayer *player = dynamic_cast<PlayerSAO*>(sao)->getPlayer();
+ push_v3f(L, player->getSpeed() / BS);
+ return 1;
+ }
+
+ lua_pushnil(L);
return 1;
}
-// set_acceleration(self, {x=num, y=num, z=num})
+// set_acceleration(self, acceleration)
int ObjectRef::l_set_acceleration(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
- if (co == NULL) return 0;
- // pos
- v3f pos = checkFloatPos(L, 2);
- // Do it
- co->setAcceleration(pos);
+ LuaEntitySAO *entitysao = getluaobject(ref);
+ if (entitysao == nullptr)
+ return 0;
+
+ v3f acceleration = checkFloatPos(L, 2);
+
+ entitysao->setAcceleration(acceleration);
return 0;
}
@@ -904,59 +875,58 @@ int ObjectRef::l_get_acceleration(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
- if (co == NULL) return 0;
- // Do it
- v3f v = co->getAcceleration();
- pushFloatPos(L, v);
+ LuaEntitySAO *entitysao = getluaobject(ref);
+ if (entitysao == nullptr)
+ return 0;
+
+ v3f acceleration = entitysao->getAcceleration();
+ pushFloatPos(L, acceleration);
return 1;
}
-// set_rotation(self, {x=num, y=num, z=num})
-// Each 'num' is in radians
+// set_rotation(self, rotation)
int ObjectRef::l_set_rotation(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
- if (!co)
+ LuaEntitySAO *entitysao = getluaobject(ref);
+ if (entitysao == nullptr)
return 0;
v3f rotation = check_v3f(L, 2) * core::RADTODEG;
- co->setRotation(rotation);
+
+ entitysao->setRotation(rotation);
return 0;
}
// get_rotation(self)
-// returns: {x=num, y=num, z=num}
-// Each 'num' is in radians
int ObjectRef::l_get_rotation(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
- if (!co)
+ LuaEntitySAO *entitysao = getluaobject(ref);
+ if (entitysao == nullptr)
return 0;
+ v3f rotation = entitysao->getRotation() * core::DEGTORAD;
+
lua_newtable(L);
- v3f rotation = co->getRotation() * core::DEGTORAD;
push_v3f(L, rotation);
return 1;
}
-// set_yaw(self, radians)
+// set_yaw(self, yaw)
int ObjectRef::l_set_yaw(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
-
- if (co == NULL) return 0;
- if (isNaN(L, 2))
- throw LuaError("ObjectRef::set_yaw: NaN value is not allowed.");
+ LuaEntitySAO *entitysao = getluaobject(ref);
+ if (entitysao == nullptr)
+ return 0;
float yaw = readParam<float>(L, 2) * core::RADTODEG;
- co->setRotation(v3f(0, yaw, 0));
+
+ entitysao->setRotation(v3f(0, yaw, 0));
return 0;
}
@@ -965,11 +935,12 @@ int ObjectRef::l_get_yaw(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
- if (!co)
+ LuaEntitySAO *entitysao = getluaobject(ref);
+ if (entitysao == nullptr)
return 0;
- float yaw = co->getRotation().Y * core::DEGTORAD;
+ float yaw = entitysao->getRotation().Y * core::DEGTORAD;
+
lua_pushnumber(L, yaw);
return 1;
}
@@ -979,11 +950,13 @@ int ObjectRef::l_set_texture_mod(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
- if (co == NULL) return 0;
- // Do it
- std::string mod = luaL_checkstring(L, 2);
- co->setTextureMod(mod);
+ LuaEntitySAO *entitysao = getluaobject(ref);
+ if (entitysao == nullptr)
+ return 0;
+
+ std::string mod = readParam<std::string>(L, 2);
+
+ entitysao->setTextureMod(mod);
return 0;
}
@@ -992,36 +965,31 @@ int ObjectRef::l_get_texture_mod(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
- if (co == NULL) return 0;
- // Do it
- std::string mod = co->getTextureMod();
+ LuaEntitySAO *entitysao = getluaobject(ref);
+ if (entitysao == nullptr)
+ return 0;
+
+ std::string mod = entitysao->getTextureMod();
+
lua_pushstring(L, mod.c_str());
return 1;
}
-// set_sprite(self, p={x=0,y=0}, num_frames=1, framelength=0.2,
-// select_horiz_by_yawpitch=false)
+// set_sprite(self, start_frame, num_frames, framelength, select_x_by_camera)
int ObjectRef::l_set_sprite(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
- if (co == NULL) return 0;
- // Do it
- v2s16 p(0,0);
- if (!lua_isnil(L, 2))
- p = readParam<v2s16>(L, 2);
- int num_frames = 1;
- if (!lua_isnil(L, 3))
- num_frames = lua_tonumber(L, 3);
- float framelength = 0.2;
- if (!lua_isnil(L, 4))
- framelength = lua_tonumber(L, 4);
- bool select_horiz_by_yawpitch = false;
- if (!lua_isnil(L, 5))
- select_horiz_by_yawpitch = readParam<bool>(L, 5);
- co->setSprite(p, num_frames, framelength, select_horiz_by_yawpitch);
+ LuaEntitySAO *entitysao = getluaobject(ref);
+ if (entitysao == nullptr)
+ return 0;
+
+ v2s16 start_frame = readParam<v2s16>(L, 2, v2s16(0,0));
+ int num_frames = readParam<int>(L, 3, 1);
+ float framelength = readParam<float>(L, 4, 0.2f);
+ bool select_x_by_camera = readParam<bool>(L, 5, false);
+
+ entitysao->setSprite(start_frame, num_frames, framelength, select_x_by_camera);
return 0;
}
@@ -1031,11 +999,13 @@ int ObjectRef::l_get_entity_name(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
+ LuaEntitySAO *entitysao = getluaobject(ref);
log_deprecated(L,"Deprecated call to \"get_entity_name");
- if (co == NULL) return 0;
- // Do it
- std::string name = co->getName();
+ if (entitysao == nullptr)
+ return 0;
+
+ std::string name = entitysao->getName();
+
lua_pushstring(L, name.c_str());
return 1;
}
@@ -1045,87 +1015,45 @@ int ObjectRef::l_get_luaentity(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- LuaEntitySAO *co = getluaobject(ref);
- if (co == NULL) return 0;
- // Do it
- luaentity_get(L, co->getId());
+ LuaEntitySAO *entitysao = getluaobject(ref);
+ if (entitysao == nullptr)
+ return 0;
+
+ luaentity_get(L, entitysao->getId());
return 1;
}
/* Player-only */
-// is_player_connected(self)
-int ObjectRef::l_is_player_connected(lua_State *L)
-{
- NO_MAP_LOCK_REQUIRED;
- // This method was once added for a bugfix, but never documented
- log_deprecated(L, "is_player_connected is undocumented and "
- "will be removed in a future release");
- ObjectRef *ref = checkobject(L, 1);
- RemotePlayer *player = getplayer(ref);
- lua_pushboolean(L, (player != NULL && player->getPeerId() != PEER_ID_INEXISTENT));
- return 1;
-}
-
// get_player_name(self)
int ObjectRef::l_get_player_name(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL) {
+ if (player == nullptr) {
lua_pushlstring(L, "", 0);
return 1;
}
- // Do it
- lua_pushstring(L, player->getName());
- return 1;
-}
-// get_player_velocity(self)
-int ObjectRef::l_get_player_velocity(lua_State *L)
-{
- NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
- RemotePlayer *player = getplayer(ref);
- if (player == NULL) {
- lua_pushnil(L);
- return 1;
- }
- // Do it
- push_v3f(L, player->getSpeed() / BS);
+ lua_pushstring(L, player->getName());
return 1;
}
-// add_player_velocity(self, {x=num, y=num, z=num})
-int ObjectRef::l_add_player_velocity(lua_State *L)
-{
- NO_MAP_LOCK_REQUIRED;
- ObjectRef *ref = checkobject(L, 1);
- v3f vel = checkFloatPos(L, 2);
-
- PlayerSAO *co = getplayersao(ref);
- if (!co)
- return 0;
-
- // Do it
- co->setMaxSpeedOverride(vel);
- getServer(L)->SendPlayerSpeed(co->getPeerID(), vel);
- return 0;
-}
-
// get_look_dir(self)
int ObjectRef::l_get_look_dir(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL) return 0;
- // Do it
- float pitch = co->getRadLookPitchDep();
- float yaw = co->getRadYawDep();
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
+ float pitch = playersao->getRadLookPitchDep();
+ float yaw = playersao->getRadYawDep();
v3f v(std::cos(pitch) * std::cos(yaw), std::sin(pitch), std::cos(pitch) *
std::sin(yaw));
+
push_v3f(L, v);
return 1;
}
@@ -1140,10 +1068,11 @@ int ObjectRef::l_get_look_pitch(lua_State *L)
"Deprecated call to get_look_pitch, use get_look_vertical instead");
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL) return 0;
- // Do it
- lua_pushnumber(L, co->getRadLookPitchDep());
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
+ lua_pushnumber(L, playersao->getRadLookPitchDep());
return 1;
}
@@ -1157,34 +1086,37 @@ int ObjectRef::l_get_look_yaw(lua_State *L)
"Deprecated call to get_look_yaw, use get_look_horizontal instead");
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL) return 0;
- // Do it
- lua_pushnumber(L, co->getRadYawDep());
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
+ lua_pushnumber(L, playersao->getRadYawDep());
return 1;
}
-// get_look_pitch2(self)
+// get_look_vertical(self)
int ObjectRef::l_get_look_vertical(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL) return 0;
- // Do it
- lua_pushnumber(L, co->getRadLookPitch());
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
+ lua_pushnumber(L, playersao->getRadLookPitch());
return 1;
}
-// get_look_yaw2(self)
+// get_look_horizontal(self)
int ObjectRef::l_get_look_horizontal(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL) return 0;
- // Do it
- lua_pushnumber(L, co->getRadRotation().Y);
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
+ lua_pushnumber(L, playersao->getRadRotation().Y);
return 1;
}
@@ -1193,11 +1125,13 @@ int ObjectRef::l_set_look_vertical(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL) return 0;
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
float pitch = readParam<float>(L, 2) * core::RADTODEG;
- // Do it
- co->setLookPitchAndSend(pitch);
+
+ playersao->setLookPitchAndSend(pitch);
return 1;
}
@@ -1206,11 +1140,13 @@ int ObjectRef::l_set_look_horizontal(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL) return 0;
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
float yaw = readParam<float>(L, 2) * core::RADTODEG;
- // Do it
- co->setPlayerYawAndSend(yaw);
+
+ playersao->setPlayerYawAndSend(yaw);
return 1;
}
@@ -1224,11 +1160,13 @@ int ObjectRef::l_set_look_pitch(lua_State *L)
"Deprecated call to set_look_pitch, use set_look_vertical instead.");
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL) return 0;
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
float pitch = readParam<float>(L, 2) * core::RADTODEG;
- // Do it
- co->setLookPitchAndSend(pitch);
+
+ playersao->setLookPitchAndSend(pitch);
return 1;
}
@@ -1242,30 +1180,32 @@ int ObjectRef::l_set_look_yaw(lua_State *L)
"Deprecated call to set_look_yaw, use set_look_horizontal instead.");
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL) return 0;
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
float yaw = readParam<float>(L, 2) * core::RADTODEG;
- // Do it
- co->setPlayerYawAndSend(yaw);
+
+ playersao->setPlayerYawAndSend(yaw);
return 1;
}
-// set_fov(self, degrees[, is_multiplier, transition_time])
+// set_fov(self, degrees, is_multiplier, transition_time)
int ObjectRef::l_set_fov(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (!player)
+ if (player == nullptr)
return 0;
- player->setFov({
- static_cast<f32>(luaL_checknumber(L, 2)),
- readParam<bool>(L, 3, false),
- lua_isnumber(L, 4) ? static_cast<f32>(luaL_checknumber(L, 4)) : 0.0f
- });
- getServer(L)->SendPlayerFov(player->getPeerId());
+ float degrees = static_cast<f32>(luaL_checknumber(L, 2));
+ bool is_multiplier = readParam<bool>(L, 3, false);
+ float transition_time = lua_isnumber(L, 4) ?
+ static_cast<f32>(luaL_checknumber(L, 4)) : 0.0f;
+ player->setFov({degrees, is_multiplier, transition_time});
+ getServer(L)->SendPlayerFov(player->getPeerId());
return 0;
}
@@ -1275,14 +1215,14 @@ int ObjectRef::l_get_fov(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (!player)
+ if (player == nullptr)
return 0;
PlayerFovSpec fov_spec = player->getFov();
+
lua_pushnumber(L, fov_spec.fov);
lua_pushboolean(L, fov_spec.is_multiplier);
lua_pushnumber(L, fov_spec.transition_time);
-
return 3;
}
@@ -1291,11 +1231,13 @@ int ObjectRef::l_set_breath(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL) return 0;
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
u16 breath = luaL_checknumber(L, 2);
- co->setBreath(breath);
+ playersao->setBreath(breath);
return 0;
}
@@ -1304,11 +1246,13 @@ int ObjectRef::l_get_breath(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL) return 0;
- // Do it
- u16 breath = co->getBreath();
- lua_pushinteger (L, breath);
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
+ u16 breath = playersao->getBreath();
+
+ lua_pushinteger(L, breath);
return 1;
}
@@ -1319,16 +1263,16 @@ int ObjectRef::l_set_attribute(lua_State *L)
"Deprecated call to set_attribute, use MetaDataRef methods instead.");
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL)
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
return 0;
std::string attr = luaL_checkstring(L, 2);
if (lua_isnil(L, 3)) {
- co->getMeta().removeString(attr);
+ playersao->getMeta().removeString(attr);
} else {
std::string value = luaL_checkstring(L, 3);
- co->getMeta().setString(attr, value);
+ playersao->getMeta().setString(attr, value);
}
return 1;
}
@@ -1340,14 +1284,14 @@ int ObjectRef::l_get_attribute(lua_State *L)
"Deprecated call to get_attribute, use MetaDataRef methods instead.");
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO* co = getplayersao(ref);
- if (co == NULL)
+ PlayerSAO* playersao = getplayersao(ref);
+ if (playersao == nullptr)
return 0;
std::string attr = luaL_checkstring(L, 2);
std::string value;
- if (co->getMeta().getStringToRef(attr, value)) {
+ if (playersao->getMeta().getStringToRef(attr, value)) {
lua_pushstring(L, value.c_str());
return 1;
}
@@ -1360,11 +1304,11 @@ int ObjectRef::l_get_attribute(lua_State *L)
int ObjectRef::l_get_meta(lua_State *L)
{
ObjectRef *ref = checkobject(L, 1);
- PlayerSAO *co = getplayersao(ref);
- if (co == NULL)
+ PlayerSAO *playersao = getplayersao(ref);
+ if (playersao == nullptr)
return 0;
- PlayerMetaRef::create(L, &co->getMeta());
+ PlayerMetaRef::create(L, &playersao->getMeta());
return 1;
}
@@ -1375,7 +1319,9 @@ int ObjectRef::l_set_inventory_formspec(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL) return 0;
+ if (player == nullptr)
+ return 0;
+
std::string formspec = luaL_checkstring(L, 2);
player->inventory_formspec = formspec;
@@ -1390,9 +1336,11 @@ int ObjectRef::l_get_inventory_formspec(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL) return 0;
+ if (player == nullptr)
+ return 0;
std::string formspec = player->inventory_formspec;
+
lua_pushlstring(L, formspec.c_str(), formspec.size());
return 1;
}
@@ -1403,7 +1351,7 @@ int ObjectRef::l_set_formspec_prepend(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
std::string formspec = luaL_checkstring(L, 2);
@@ -1414,16 +1362,17 @@ int ObjectRef::l_set_formspec_prepend(lua_State *L)
return 1;
}
-// get_formspec_prepend(self) -> formspec
+// get_formspec_prepend(self)
int ObjectRef::l_get_formspec_prepend(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
std::string formspec = player->formspec_prepend;
+
lua_pushlstring(L, formspec.c_str(), formspec.size());
return 1;
}
@@ -1434,7 +1383,7 @@ int ObjectRef::l_get_player_control(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL) {
+ if (player == nullptr) {
lua_pushlstring(L, "", 0);
return 1;
}
@@ -1455,9 +1404,14 @@ int ObjectRef::l_get_player_control(lua_State *L)
lua_setfield(L, -2, "aux1");
lua_pushboolean(L, control.sneak);
lua_setfield(L, -2, "sneak");
- lua_pushboolean(L, control.LMB);
+ lua_pushboolean(L, control.dig);
+ lua_setfield(L, -2, "dig");
+ lua_pushboolean(L, control.place);
+ lua_setfield(L, -2, "place");
+ // Legacy fields to ensure mod compatibility
+ lua_pushboolean(L, control.dig);
lua_setfield(L, -2, "LMB");
- lua_pushboolean(L, control.RMB);
+ lua_pushboolean(L, control.place);
lua_setfield(L, -2, "RMB");
lua_pushboolean(L, control.zoom);
lua_setfield(L, -2, "zoom");
@@ -1470,22 +1424,87 @@ int ObjectRef::l_get_player_control_bits(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL) {
+ if (player == nullptr) {
lua_pushlstring(L, "", 0);
return 1;
}
- // Do it
+
lua_pushnumber(L, player->keyPressed);
return 1;
}
-// hud_add(self, form)
+// set_physics_override(self, override_table)
+int ObjectRef::l_set_physics_override(lua_State *L)
+{
+ NO_MAP_LOCK_REQUIRED;
+ ObjectRef *ref = checkobject(L, 1);
+ PlayerSAO *playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
+ if (lua_istable(L, 2)) {
+ bool modified = false;
+ modified |= getfloatfield(L, 2, "speed", playersao->m_physics_override_speed);
+ modified |= getfloatfield(L, 2, "jump", playersao->m_physics_override_jump);
+ modified |= getfloatfield(L, 2, "gravity", playersao->m_physics_override_gravity);
+ modified |= getboolfield(L, 2, "sneak", playersao->m_physics_override_sneak);
+ modified |= getboolfield(L, 2, "sneak_glitch", playersao->m_physics_override_sneak_glitch);
+ modified |= getboolfield(L, 2, "new_move", playersao->m_physics_override_new_move);
+ if (modified)
+ playersao->m_physics_override_sent = false;
+ } else {
+ // old, non-table format
+ // TODO: Remove this code after version 5.4.0
+ log_deprecated(L, "Deprecated use of set_physics_override(num, num, num)");
+
+ if (!lua_isnil(L, 2)) {
+ playersao->m_physics_override_speed = lua_tonumber(L, 2);
+ playersao->m_physics_override_sent = false;
+ }
+ if (!lua_isnil(L, 3)) {
+ playersao->m_physics_override_jump = lua_tonumber(L, 3);
+ playersao->m_physics_override_sent = false;
+ }
+ if (!lua_isnil(L, 4)) {
+ playersao->m_physics_override_gravity = lua_tonumber(L, 4);
+ playersao->m_physics_override_sent = false;
+ }
+ }
+ return 0;
+}
+
+// get_physics_override(self)
+int ObjectRef::l_get_physics_override(lua_State *L)
+{
+ NO_MAP_LOCK_REQUIRED;
+ ObjectRef *ref = checkobject(L, 1);
+ PlayerSAO *playersao = getplayersao(ref);
+ if (playersao == nullptr)
+ return 0;
+
+ lua_newtable(L);
+ lua_pushnumber(L, playersao->m_physics_override_speed);
+ lua_setfield(L, -2, "speed");
+ lua_pushnumber(L, playersao->m_physics_override_jump);
+ lua_setfield(L, -2, "jump");
+ lua_pushnumber(L, playersao->m_physics_override_gravity);
+ lua_setfield(L, -2, "gravity");
+ lua_pushboolean(L, playersao->m_physics_override_sneak);
+ lua_setfield(L, -2, "sneak");
+ lua_pushboolean(L, playersao->m_physics_override_sneak_glitch);
+ lua_setfield(L, -2, "sneak_glitch");
+ lua_pushboolean(L, playersao->m_physics_override_new_move);
+ lua_setfield(L, -2, "new_move");
+ return 1;
+}
+
+// hud_add(self, hud)
int ObjectRef::l_hud_add(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
HudElement *elem = new HudElement;
@@ -1507,12 +1526,10 @@ int ObjectRef::l_hud_remove(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
- u32 id = -1;
- if (!lua_isnil(L, 2))
- id = lua_tonumber(L, 2);
+ u32 id = luaL_checkint(L, 2);
if (!getServer(L)->hudRemove(player, id))
return 0;
@@ -1527,17 +1544,17 @@ int ObjectRef::l_hud_change(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
- u32 id = lua_isnumber(L, 2) ? lua_tonumber(L, 2) : -1;
+ u32 id = luaL_checkint(L, 2);
- HudElement *e = player->getHud(id);
- if (!e)
+ HudElement *elem = player->getHud(id);
+ if (elem == nullptr)
return 0;
- void *value = NULL;
- HudElementStat stat = read_hud_change(L, e, &value);
+ void *value = nullptr;
+ HudElementStat stat = read_hud_change(L, elem, &value);
getServer(L)->hudChange(player, id, stat, value);
@@ -1551,15 +1568,16 @@ int ObjectRef::l_hud_get(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
- u32 id = lua_tonumber(L, -1);
+ u32 id = luaL_checkint(L, 2);
- HudElement *e = player->getHud(id);
- if (!e)
+ HudElement *elem = player->getHud(id);
+ if (elem == nullptr)
return 0;
- push_hud_element(L, e);
+
+ push_hud_element(L, elem);
return 1;
}
@@ -1569,7 +1587,7 @@ int ObjectRef::l_hud_set_flags(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
u32 flags = 0;
@@ -1590,12 +1608,13 @@ int ObjectRef::l_hud_set_flags(lua_State *L)
return 1;
}
+// hud_get_flags(self)
int ObjectRef::l_hud_get_flags(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
lua_newtable(L);
@@ -1613,7 +1632,6 @@ int ObjectRef::l_hud_get_flags(lua_State *L)
lua_setfield(L, -2, "minimap");
lua_pushboolean(L, player->hud_flags & HUD_FLAG_MINIMAP_RADAR_VISIBLE);
lua_setfield(L, -2, "minimap_radar");
-
return 1;
}
@@ -1623,10 +1641,10 @@ int ObjectRef::l_hud_set_hotbar_itemcount(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
- s32 hotbar_itemcount = lua_tonumber(L, 2);
+ s32 hotbar_itemcount = luaL_checkint(L, 2);
if (!getServer(L)->hudSetHotbarItemcount(player, hotbar_itemcount))
return 0;
@@ -1641,7 +1659,7 @@ int ObjectRef::l_hud_get_hotbar_itemcount(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
lua_pushnumber(L, player->getHotbarItemcount());
@@ -1654,7 +1672,7 @@ int ObjectRef::l_hud_set_hotbar_image(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
std::string name = readParam<std::string>(L, 2);
@@ -1669,10 +1687,11 @@ int ObjectRef::l_hud_get_hotbar_image(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
const std::string &name = player->getHotbarImage();
+
lua_pushlstring(L, name.c_str(), name.size());
return 1;
}
@@ -1683,7 +1702,7 @@ int ObjectRef::l_hud_set_hotbar_selected_image(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
std::string name = readParam<std::string>(L, 2);
@@ -1698,44 +1717,45 @@ int ObjectRef::l_hud_get_hotbar_selected_image(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
const std::string &name = player->getHotbarSelectedImage();
+
lua_pushlstring(L, name.c_str(), name.size());
return 1;
}
-// set_sky(self, {base_color=, type=, textures=, clouds=, sky_colors={}})
+// set_sky(self, sky_parameters)
int ObjectRef::l_set_sky(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (!player)
+ if (player == nullptr)
return 0;
+ SkyboxParams sky_params = player->getSkyParams();
bool is_colorspec = is_color_table(L, 2);
- SkyboxParams skybox_params = player->getSkyParams();
if (lua_istable(L, 2) && !is_colorspec) {
lua_getfield(L, 2, "base_color");
if (!lua_isnil(L, -1))
- read_color(L, -1, &skybox_params.bgcolor);
+ read_color(L, -1, &sky_params.bgcolor);
lua_pop(L, 1);
lua_getfield(L, 2, "type");
if (!lua_isnil(L, -1))
- skybox_params.type = luaL_checkstring(L, -1);
+ sky_params.type = luaL_checkstring(L, -1);
lua_pop(L, 1);
lua_getfield(L, 2, "textures");
- skybox_params.textures.clear();
- if (lua_istable(L, -1) && skybox_params.type == "skybox") {
+ sky_params.textures.clear();
+ if (lua_istable(L, -1) && sky_params.type == "skybox") {
lua_pushnil(L);
while (lua_next(L, -2) != 0) {
// Key is at index -2 and value at index -1
- skybox_params.textures.emplace_back(readParam<std::string>(L, -1));
+ sky_params.textures.emplace_back(readParam<std::string>(L, -1));
// Removes the value, but keeps the key for iteration
lua_pop(L, 1);
}
@@ -1748,56 +1768,56 @@ int ObjectRef::l_set_sky(lua_State *L)
using "regular" or "plain" skybox modes as textures aren't needed.
*/
- if (skybox_params.textures.size() != 6 && skybox_params.textures.size() > 0)
+ if (sky_params.textures.size() != 6 && sky_params.textures.size() > 0)
throw LuaError("Skybox expects 6 textures!");
- skybox_params.clouds = getboolfield_default(L, 2,
- "clouds", skybox_params.clouds);
+ sky_params.clouds = getboolfield_default(L, 2,
+ "clouds", sky_params.clouds);
lua_getfield(L, 2, "sky_color");
if (lua_istable(L, -1)) {
lua_getfield(L, -1, "day_sky");
- read_color(L, -1, &skybox_params.sky_color.day_sky);
+ read_color(L, -1, &sky_params.sky_color.day_sky);
lua_pop(L, 1);
lua_getfield(L, -1, "day_horizon");
- read_color(L, -1, &skybox_params.sky_color.day_horizon);
+ read_color(L, -1, &sky_params.sky_color.day_horizon);
lua_pop(L, 1);
lua_getfield(L, -1, "dawn_sky");
- read_color(L, -1, &skybox_params.sky_color.dawn_sky);
+ read_color(L, -1, &sky_params.sky_color.dawn_sky);
lua_pop(L, 1);
lua_getfield(L, -1, "dawn_horizon");
- read_color(L, -1, &skybox_params.sky_color.dawn_horizon);
+ read_color(L, -1, &sky_params.sky_color.dawn_horizon);
lua_pop(L, 1);
lua_getfield(L, -1, "night_sky");
- read_color(L, -1, &skybox_params.sky_color.night_sky);
+ read_color(L, -1, &sky_params.sky_color.night_sky);
lua_pop(L, 1);
lua_getfield(L, -1, "night_horizon");
- read_color(L, -1, &skybox_params.sky_color.night_horizon);
+ read_color(L, -1, &sky_params.sky_color.night_horizon);
lua_pop(L, 1);
lua_getfield(L, -1, "indoors");
- read_color(L, -1, &skybox_params.sky_color.indoors);
+ read_color(L, -1, &sky_params.sky_color.indoors);
lua_pop(L, 1);
// Prevent flickering clouds at dawn/dusk:
- skybox_params.fog_sun_tint = video::SColor(255, 255, 255, 255);
+ sky_params.fog_sun_tint = video::SColor(255, 255, 255, 255);
lua_getfield(L, -1, "fog_sun_tint");
- read_color(L, -1, &skybox_params.fog_sun_tint);
+ read_color(L, -1, &sky_params.fog_sun_tint);
lua_pop(L, 1);
- skybox_params.fog_moon_tint = video::SColor(255, 255, 255, 255);
+ sky_params.fog_moon_tint = video::SColor(255, 255, 255, 255);
lua_getfield(L, -1, "fog_moon_tint");
- read_color(L, -1, &skybox_params.fog_moon_tint);
+ read_color(L, -1, &sky_params.fog_moon_tint);
lua_pop(L, 1);
lua_getfield(L, -1, "fog_tint_type");
if (!lua_isnil(L, -1))
- skybox_params.fog_tint_type = luaL_checkstring(L, -1);
+ sky_params.fog_tint_type = luaL_checkstring(L, -1);
lua_pop(L, 1);
// Because we need to leave the "sky_color" table.
@@ -1813,14 +1833,14 @@ int ObjectRef::l_set_sky(lua_State *L)
StarParams star_params = player->getStarParams();
// Prevent erroneous background colors
- skybox_params.bgcolor = video::SColor(255, 255, 255, 255);
- read_color(L, 2, &skybox_params.bgcolor);
+ sky_params.bgcolor = video::SColor(255, 255, 255, 255);
+ read_color(L, 2, &sky_params.bgcolor);
- skybox_params.type = luaL_checkstring(L, 3);
+ sky_params.type = luaL_checkstring(L, 3);
// Preserve old behaviour of the sun, moon and stars
// when using the old set_sky call.
- if (skybox_params.type == "regular") {
+ if (sky_params.type == "regular") {
sun_params.visible = true;
sun_params.sunrise_visible = true;
moon_params.visible = true;
@@ -1832,31 +1852,31 @@ int ObjectRef::l_set_sky(lua_State *L)
star_params.visible = false;
}
- skybox_params.textures.clear();
+ sky_params.textures.clear();
if (lua_istable(L, 4)) {
lua_pushnil(L);
while (lua_next(L, 4) != 0) {
// Key at index -2, and value at index -1
if (lua_isstring(L, -1))
- skybox_params.textures.emplace_back(readParam<std::string>(L, -1));
+ sky_params.textures.emplace_back(readParam<std::string>(L, -1));
else
- skybox_params.textures.emplace_back("");
+ sky_params.textures.emplace_back("");
// Remove the value, keep the key for the next iteration
lua_pop(L, 1);
}
}
- if (skybox_params.type == "skybox" && skybox_params.textures.size() != 6)
+ if (sky_params.type == "skybox" && sky_params.textures.size() != 6)
throw LuaError("Skybox expects 6 textures.");
- skybox_params.clouds = true;
+ sky_params.clouds = true;
if (lua_isboolean(L, 5))
- skybox_params.clouds = readParam<bool>(L, 5);
+ sky_params.clouds = readParam<bool>(L, 5);
getServer(L)->setSun(player, sun_params);
getServer(L)->setMoon(player, moon_params);
getServer(L)->setStars(player, star_params);
}
- getServer(L)->setSky(player, skybox_params);
+ getServer(L)->setSky(player, sky_params);
lua_pushboolean(L, true);
return 1;
}
@@ -1867,18 +1887,17 @@ int ObjectRef::l_get_sky(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
-
- if (!player)
+ if (player == nullptr)
return 0;
- SkyboxParams skybox_params;
- skybox_params = player->getSkyParams();
+
+ SkyboxParams skybox_params = player->getSkyParams();
push_ARGB8(L, skybox_params.bgcolor);
lua_pushlstring(L, skybox_params.type.c_str(), skybox_params.type.size());
lua_newtable(L);
s16 i = 1;
- for (const std::string& texture : skybox_params.textures) {
+ for (const std::string &texture : skybox_params.textures) {
lua_pushlstring(L, texture.c_str(), texture.size());
lua_rawseti(L, -2, i++);
}
@@ -1892,11 +1911,10 @@ int ObjectRef::l_get_sky_color(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
-
- if (!player)
+ if (player == nullptr)
return 0;
- const SkyboxParams& skybox_params = player->getSkyParams();
+ const SkyboxParams &skybox_params = player->getSkyParams();
lua_newtable(L);
if (skybox_params.type == "regular") {
@@ -1924,18 +1942,16 @@ int ObjectRef::l_get_sky_color(lua_State *L)
return 1;
}
-// set_sun(self, {visible, texture=, tonemap=, sunrise=, rotation=, scale=})
+// set_sun(self, sun_parameters)
int ObjectRef::l_set_sun(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (!player)
- return 0;
-
- if (!lua_istable(L, 2))
+ if (player == nullptr)
return 0;
+ luaL_checktype(L, 2, LUA_TTABLE);
SunParams sun_params = player->getSunParams();
sun_params.visible = getboolfield_default(L, 2,
@@ -1962,8 +1978,9 @@ int ObjectRef::l_get_sun(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (!player)
+ if (player == nullptr)
return 0;
+
const SunParams &sun_params = player->getSunParams();
lua_newtable(L);
@@ -1979,21 +1996,19 @@ int ObjectRef::l_get_sun(lua_State *L)
lua_setfield(L, -2, "sunrise_visible");
lua_pushnumber(L, sun_params.scale);
lua_setfield(L, -2, "scale");
-
return 1;
}
-// set_moon(self, {visible, texture=, tonemap=, sunrise=, rotation=, scale=})
+// set_moon(self, moon_parameters)
int ObjectRef::l_set_moon(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (!player)
- return 0;
- if (!lua_istable(L, 2))
+ if (player == nullptr)
return 0;
+ luaL_checktype(L, 2, LUA_TTABLE);
MoonParams moon_params = player->getMoonParams();
moon_params.visible = getboolfield_default(L, 2,
@@ -2016,8 +2031,9 @@ int ObjectRef::l_get_moon(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (!player)
+ if (player == nullptr)
return 0;
+
const MoonParams &moon_params = player->getMoonParams();
lua_newtable(L);
@@ -2029,21 +2045,19 @@ int ObjectRef::l_get_moon(lua_State *L)
lua_setfield(L, -2, "tonemap");
lua_pushnumber(L, moon_params.scale);
lua_setfield(L, -2, "scale");
-
return 1;
}
-// set_stars(self, {visible, count=, starcolor=, rotation=, scale=})
+// set_stars(self, star_parameters)
int ObjectRef::l_set_stars(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (!player)
- return 0;
- if (!lua_istable(L, 2))
+ if (player == nullptr)
return 0;
+ luaL_checktype(L, 2, LUA_TTABLE);
StarParams star_params = player->getStarParams();
star_params.visible = getboolfield_default(L, 2,
@@ -2070,8 +2084,9 @@ int ObjectRef::l_get_stars(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (!player)
+ if (player == nullptr)
return 0;
+
const StarParams &star_params = player->getStarParams();
lua_newtable(L);
@@ -2083,21 +2098,19 @@ int ObjectRef::l_get_stars(lua_State *L)
lua_setfield(L, -2, "star_color");
lua_pushnumber(L, star_params.scale);
lua_setfield(L, -2, "scale");
-
return 1;
}
-// set_clouds(self, {density=, color=, ambient=, height=, thickness=, speed=})
+// set_clouds(self, cloud_parameters)
int ObjectRef::l_set_clouds(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (!player)
- return 0;
- if (!lua_istable(L, 2))
+ if (player == nullptr)
return 0;
+ luaL_checktype(L, 2, LUA_TTABLE);
CloudParams cloud_params = player->getCloudParams();
cloud_params.density = getfloatfield_default(L, 2, "density", cloud_params.density);
@@ -2133,8 +2146,9 @@ int ObjectRef::l_get_clouds(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (!player)
+ if (player == nullptr)
return 0;
+
const CloudParams &cloud_params = player->getCloudParams();
lua_newtable(L);
@@ -2154,25 +2168,27 @@ int ObjectRef::l_get_clouds(lua_State *L)
lua_pushnumber(L, cloud_params.speed.Y);
lua_setfield(L, -2, "y");
lua_setfield(L, -2, "speed");
-
return 1;
}
-// override_day_night_ratio(self, brightness=0...1)
+// override_day_night_ratio(self, ratio)
int ObjectRef::l_override_day_night_ratio(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
bool do_override = false;
float ratio = 0.0f;
+
if (!lua_isnil(L, 2)) {
do_override = true;
ratio = readParam<float>(L, 2);
+ luaL_argcheck(L, ratio >= 0.0f && ratio <= 1.0f, 1,
+ "value must be between 0 and 1");
}
getServer(L)->overrideDayNightRatio(player, do_override, ratio);
@@ -2186,7 +2202,7 @@ int ObjectRef::l_get_day_night_ratio(lua_State *L)
NO_MAP_LOCK_REQUIRED;
ObjectRef *ref = checkobject(L, 1);
RemotePlayer *player = getplayer(ref);
- if (player == NULL)
+ if (player == nullptr)
return 0;
bool do_override;
@@ -2201,27 +2217,77 @@ int ObjectRef::l_get_day_night_ratio(lua_State *L)
return 1;
}
-ObjectRef::ObjectRef(ServerActiveObject *object):
- m_object(object)
+// set_minimap_modes(self, modes, selected_mode)
+int ObjectRef::l_set_minimap_modes(lua_State *L)
{
- //infostream<<"ObjectRef created for id="<<m_object->getId()<<std::endl;
+ NO_MAP_LOCK_REQUIRED;
+ ObjectRef *ref = checkobject(L, 1);
+ RemotePlayer *player = getplayer(ref);
+ if (player == nullptr)
+ return 0;
+
+ luaL_checktype(L, 2, LUA_TTABLE);
+ std::vector<MinimapMode> modes;
+ s16 selected_mode = readParam<s16>(L, 3);
+
+ lua_pushnil(L);
+ while (lua_next(L, 2) != 0) {
+ /* key is at index -2, value is at index -1 */
+ if (lua_istable(L, -1)) {
+ bool ok = true;
+ MinimapMode mode;
+ std::string type = getstringfield_default(L, -1, "type", "");
+ if (type == "off")
+ mode.type = MINIMAP_TYPE_OFF;
+ else if (type == "surface")
+ mode.type = MINIMAP_TYPE_SURFACE;
+ else if (type == "radar")
+ mode.type = MINIMAP_TYPE_RADAR;
+ else if (type == "texture") {
+ mode.type = MINIMAP_TYPE_TEXTURE;
+ mode.texture = getstringfield_default(L, -1, "texture", "");
+ mode.scale = getintfield_default(L, -1, "scale", 1);
+ } else {
+ warningstream << "Minimap mode of unknown type \"" << type.c_str()
+ << "\" ignored.\n" << std::endl;
+ ok = false;
+ }
+
+ if (ok) {
+ mode.label = getstringfield_default(L, -1, "label", "");
+ // Size is limited to 512. Performance gets poor if size too large, and
+ // segfaults have been experienced.
+ mode.size = rangelim(getintfield_default(L, -1, "size", 0), 1, 512);
+ modes.push_back(mode);
+ }
+ }
+ /* removes 'value'; keeps 'key' for next iteration */
+ lua_pop(L, 1);
+ }
+ lua_pop(L, 1); // Remove key
+
+ getServer(L)->SendMinimapModes(player->getPeerId(), modes, selected_mode);
+ return 0;
}
+ObjectRef::ObjectRef(ServerActiveObject *object):
+ m_object(object)
+{}
+
// Creates an ObjectRef and leaves it on top of stack
// Not callable from Lua; all references are created on the C side.
void ObjectRef::create(lua_State *L, ServerActiveObject *object)
{
- ObjectRef *o = new ObjectRef(object);
- //infostream<<"ObjectRef::create: o="<<o<<std::endl;
- *(void **)(lua_newuserdata(L, sizeof(void *))) = o;
+ ObjectRef *obj = new ObjectRef(object);
+ *(void **)(lua_newuserdata(L, sizeof(void *))) = obj;
luaL_getmetatable(L, className);
lua_setmetatable(L, -2);
}
void ObjectRef::set_null(lua_State *L)
{
- ObjectRef *o = checkobject(L, -1);
- o->m_object = NULL;
+ ObjectRef *obj = checkobject(L, -1);
+ obj->m_object = nullptr;
}
void ObjectRef::Register(lua_State *L)
@@ -2245,12 +2311,8 @@ void ObjectRef::Register(lua_State *L)
lua_pop(L, 1); // drop metatable
- markAliasDeprecated(methods);
luaL_openlib(L, 0, methods, 0); // fill methodtable
lua_pop(L, 1); // drop methodtable
-
- // Cannot be created from Lua
- //lua_register(L, className, create_object);
}
const char ObjectRef::className[] = "ObjectRef";
@@ -2278,15 +2340,19 @@ luaL_Reg ObjectRef::methods[] = {
luamethod(ObjectRef, get_bone_position),
luamethod(ObjectRef, set_attach),
luamethod(ObjectRef, get_attach),
+ luamethod(ObjectRef, get_children),
luamethod(ObjectRef, set_detach),
luamethod(ObjectRef, set_properties),
luamethod(ObjectRef, get_properties),
luamethod(ObjectRef, set_nametag_attributes),
luamethod(ObjectRef, get_nametag_attributes),
- // LuaEntitySAO-only
+
luamethod_aliased(ObjectRef, set_velocity, setvelocity),
- luamethod(ObjectRef, add_velocity),
+ luamethod_aliased(ObjectRef, add_velocity, add_player_velocity),
luamethod_aliased(ObjectRef, get_velocity, getvelocity),
+ luamethod_dep(ObjectRef, get_velocity, get_player_velocity),
+
+ // LuaEntitySAO-only
luamethod_aliased(ObjectRef, set_acceleration, setacceleration),
luamethod_aliased(ObjectRef, get_acceleration, getacceleration),
luamethod_aliased(ObjectRef, set_yaw, setyaw),
@@ -2294,15 +2360,14 @@ luaL_Reg ObjectRef::methods[] = {
luamethod(ObjectRef, set_rotation),
luamethod(ObjectRef, get_rotation),
luamethod_aliased(ObjectRef, set_texture_mod, settexturemod),
+ luamethod(ObjectRef, get_texture_mod),
luamethod_aliased(ObjectRef, set_sprite, setsprite),
luamethod(ObjectRef, get_entity_name),
luamethod(ObjectRef, get_luaentity),
+
// Player-only
luamethod(ObjectRef, is_player),
- luamethod(ObjectRef, is_player_connected),
luamethod(ObjectRef, get_player_name),
- luamethod(ObjectRef, get_player_velocity),
- luamethod(ObjectRef, add_player_velocity),
luamethod(ObjectRef, get_look_dir),
luamethod(ObjectRef, get_look_pitch),
luamethod(ObjectRef, get_look_yaw),
@@ -2357,5 +2422,6 @@ luaL_Reg ObjectRef::methods[] = {
luamethod(ObjectRef, set_eye_offset),
luamethod(ObjectRef, get_eye_offset),
luamethod(ObjectRef, send_mapblock),
+ luamethod(ObjectRef, set_minimap_modes),
{0,0}
};
diff --git a/src/script/lua_api/l_object.h b/src/script/lua_api/l_object.h
index a75c59fd9..db3a3a7cf 100644
--- a/src/script/lua_api/l_object.h
+++ b/src/script/lua_api/l_object.h
@@ -69,29 +69,24 @@ private:
static int l_remove(lua_State *L);
// get_pos(self)
- // returns: {x=num, y=num, z=num}
static int l_get_pos(lua_State *L);
// set_pos(self, pos)
static int l_set_pos(lua_State *L);
- // move_to(self, pos, continuous=false)
+ // move_to(self, pos, continuous)
static int l_move_to(lua_State *L);
// punch(self, puncher, time_from_last_punch, tool_capabilities, dir)
static int l_punch(lua_State *L);
- // right_click(self, clicker); clicker = an another ObjectRef
+ // right_click(self, clicker)
static int l_right_click(lua_State *L);
- // set_hp(self, hp)
- // hp = number of hitpoints (2 * number of hearts)
- // returns: nil
+ // set_hp(self, hp, reason)
static int l_set_hp(lua_State *L);
// get_hp(self)
- // returns: number of hitpoints (2 * number of hearts)
- // 0 if not applicable to this type of object
static int l_get_hp(lua_State *L);
// get_inventory(self)
@@ -106,7 +101,7 @@ private:
// get_wielded_item(self)
static int l_get_wielded_item(lua_State *L);
- // set_wielded_item(self, itemstack or itemstring or table or nil)
+ // set_wielded_item(self, item)
static int l_set_wielded_item(lua_State *L);
// set_armor_groups(self, groups)
@@ -115,8 +110,7 @@ private:
// get_armor_groups(self)
static int l_get_armor_groups(lua_State *L);
- // set_physics_override(self, physics_override_speed, physics_override_jump,
- // physics_override_gravity, sneak, sneak_glitch, new_move)
+ // set_physics_override(self, override_table)
static int l_set_physics_override(lua_State *L);
// get_physics_override(self)
@@ -131,7 +125,7 @@ private:
// get_animation(self)
static int l_get_animation(lua_State *L);
- // set_bone_position(self, std::string bone, v3f position, v3f rotation)
+ // set_bone_position(self, bone, position, rotation)
static int l_set_bone_position(lua_State *L);
// get_bone_position(self, bone)
@@ -143,6 +137,9 @@ private:
// get_attach(self)
static int l_get_attach(lua_State *L);
+ // get_children(self)
+ static int l_get_children(lua_State *L);
+
// set_detach(self)
static int l_set_detach(lua_State *L);
@@ -157,28 +154,28 @@ private:
/* LuaEntitySAO-only */
- // set_velocity(self, {x=num, y=num, z=num})
+ // set_velocity(self, velocity)
static int l_set_velocity(lua_State *L);
- // add_velocity(self, {x=num, y=num, z=num})
+ // add_velocity(self, velocity)
static int l_add_velocity(lua_State *L);
// get_velocity(self)
static int l_get_velocity(lua_State *L);
- // set_acceleration(self, {x=num, y=num, z=num})
+ // set_acceleration(self, acceleration)
static int l_set_acceleration(lua_State *L);
// get_acceleration(self)
static int l_get_acceleration(lua_State *L);
- // set_rotation(self, {x=num, y=num, z=num})
+ // set_rotation(self, rotation)
static int l_set_rotation(lua_State *L);
// get_rotation(self)
static int l_get_rotation(lua_State *L);
- // set_yaw(self, radians)
+ // set_yaw(self, yaw)
static int l_set_yaw(lua_State *L);
// get_yaw(self)
@@ -190,8 +187,7 @@ private:
// l_get_texture_mod(self)
static int l_get_texture_mod(lua_State *L);
- // set_sprite(self, p={x=0,y=0}, num_frames=1, framelength=0.2,
- // select_horiz_by_yawpitch=false)
+ // set_sprite(self, start_frame, num_frames, framelength, select_x_by_camera)
static int l_set_sprite(lua_State *L);
// DEPRECATED
@@ -203,18 +199,9 @@ private:
/* Player-only */
- // is_player_connected(self)
- static int l_is_player_connected(lua_State *L);
-
// get_player_name(self)
static int l_get_player_name(lua_State *L);
- // get_player_velocity(self)
- static int l_get_player_velocity(lua_State *L);
-
- // add_player_velocity(self, {x=num, y=num, z=num})
- static int l_add_player_velocity(lua_State *L);
-
// get_fov(self)
static int l_get_fov(lua_State *L);
@@ -235,7 +222,7 @@ private:
// get_look_yaw2(self)
static int l_get_look_horizontal(lua_State *L);
- // set_fov(self, degrees, is_multiplier)
+ // set_fov(self, degrees, is_multiplier, transition_time)
static int l_set_fov(lua_State *L);
// set_look_vertical(self, radians)
@@ -258,9 +245,11 @@ private:
// get_breath(self, breath)
static int l_get_breath(lua_State *L);
+ // DEPRECATED
// set_attribute(self, attribute, value)
static int l_set_attribute(lua_State *L);
+ // DEPRECATED
// get_attribute(self, attribute)
static int l_get_attribute(lua_State *L);
@@ -270,13 +259,13 @@ private:
// set_inventory_formspec(self, formspec)
static int l_set_inventory_formspec(lua_State *L);
- // get_inventory_formspec(self) -> formspec
+ // get_inventory_formspec(self)
static int l_get_inventory_formspec(lua_State *L);
// set_formspec_prepend(self, formspec)
static int l_set_formspec_prepend(lua_State *L);
- // get_formspec_prepend(self) -> formspec
+ // get_formspec_prepend(self)
static int l_get_formspec_prepend(lua_State *L);
// get_player_control(self)
@@ -324,7 +313,7 @@ private:
// hud_get_hotbar_selected_image(self)
static int l_hud_get_hotbar_selected_image(lua_State *L);
- // set_sky({base_color=, type=, textures=, clouds=, sky_colors={}})
+ // set_sky(self, sky_parameters)
static int l_set_sky(lua_State *L);
// get_sky(self)
@@ -333,25 +322,25 @@ private:
// get_sky_color(self)
static int l_get_sky_color(lua_State* L);
- // set_sun(self, {visible, texture=, tonemap=, sunrise=, rotation=, scale=})
+ // set_sun(self, sun_parameters)
static int l_set_sun(lua_State *L);
// get_sun(self)
static int l_get_sun(lua_State *L);
- // set_moon(self, {visible, texture=, tonemap=, rotation, scale=})
+ // set_moon(self, moon_parameters)
static int l_set_moon(lua_State *L);
// get_moon(self)
static int l_get_moon(lua_State *L);
- // set_stars(self, {visible, count=, starcolor=, rotation, scale=})
+ // set_stars(self, star_parameters)
static int l_set_stars(lua_State *L);
// get_stars(self)
static int l_get_stars(lua_State *L);
- // set_clouds(self, {density=, color=, ambient=, height=, thickness=, speed=})
+ // set_clouds(self, cloud_parameters)
static int l_set_clouds(lua_State *L);
// get_clouds(self)
@@ -363,13 +352,13 @@ private:
// get_day_night_ratio(self)
static int l_get_day_night_ratio(lua_State *L);
- // set_local_animation(self, {stand/idle}, {walk}, {dig}, {walk+dig}, frame_speed)
+ // set_local_animation(self, idle, walk, dig, walk_while_dig, frame_speed)
static int l_set_local_animation(lua_State *L);
// get_local_animation(self)
static int l_get_local_animation(lua_State *L);
- // set_eye_offset(self, v3f first pv, v3f third pv)
+ // set_eye_offset(self, firstperson, thirdperson)
static int l_set_eye_offset(lua_State *L);
// get_eye_offset(self)
@@ -383,4 +372,7 @@ private:
// send_mapblock(pos)
static int l_send_mapblock(lua_State *L);
+
+ // set_minimap_modes(self, modes, wanted_mode)
+ static int l_set_minimap_modes(lua_State *L);
};
diff --git a/src/script/lua_api/l_server.cpp b/src/script/lua_api/l_server.cpp
index 6f934bb9d..bf5292521 100644
--- a/src/script/lua_api/l_server.cpp
+++ b/src/script/lua_api/l_server.cpp
@@ -44,7 +44,7 @@ int ModApiServer::l_request_shutdown(lua_State *L)
int ModApiServer::l_get_server_status(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- lua_pushstring(L, wide_to_narrow(getServer(L)->getStatusString()).c_str());
+ lua_pushstring(L, getServer(L)->getStatusString().c_str());
return 1;
}
@@ -116,24 +116,18 @@ int ModApiServer::l_get_player_privs(lua_State *L)
int ModApiServer::l_get_player_ip(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- const char * name = luaL_checkstring(L, 1);
- RemotePlayer *player = dynamic_cast<ServerEnvironment *>(getEnv(L))->getPlayer(name);
- if(player == NULL)
- {
+
+ Server *server = getServer(L);
+
+ const char *name = luaL_checkstring(L, 1);
+ RemotePlayer *player = server->getEnv().getPlayer(name);
+ if (!player) {
lua_pushnil(L); // no such player
return 1;
}
- try
- {
- Address addr = getServer(L)->getPeerAddress(player->getPeerId());
- std::string ip_str = addr.serializeString();
- lua_pushstring(L, ip_str.c_str());
- return 1;
- } catch (const con::PeerNotFoundException &) {
- dstream << FUNCTION_NAME << ": peer was not found" << std::endl;
- lua_pushnil(L); // error
- return 1;
- }
+
+ lua_pushstring(L, server->getPeerAddress(player->getPeerId()).serializeString().c_str());
+ return 1;
}
// get_player_information(name)
@@ -150,26 +144,18 @@ int ModApiServer::l_get_player_information(lua_State *L)
return 1;
}
- Address addr;
- try {
- addr = server->getPeerAddress(player->getPeerId());
- } catch (const con::PeerNotFoundException &) {
- dstream << FUNCTION_NAME << ": peer was not found" << std::endl;
- lua_pushnil(L); // error
- return 1;
- }
-
- float min_rtt, max_rtt, avg_rtt, min_jitter, max_jitter, avg_jitter;
- ClientState state;
- u32 uptime;
- u16 prot_vers;
- u8 ser_vers, major, minor, patch;
- std::string vers_string, lang_code;
+ /*
+ Be careful not to introduce a depdendency on the connection to
+ the peer here. This function is >>REQUIRED<< to still be able to return
+ values even when the peer unexpectedly disappears.
+ Hence all the ConInfo values here are optional.
+ */
auto getConInfo = [&] (con::rtt_stat_type type, float *value) -> bool {
return server->getClientConInfo(player->getPeerId(), type, value);
};
+ float min_rtt, max_rtt, avg_rtt, min_jitter, max_jitter, avg_jitter;
bool have_con_info =
getConInfo(con::MIN_RTT, &min_rtt) &&
getConInfo(con::MAX_RTT, &max_rtt) &&
@@ -178,11 +164,9 @@ int ModApiServer::l_get_player_information(lua_State *L)
getConInfo(con::MAX_JITTER, &max_jitter) &&
getConInfo(con::AVG_JITTER, &avg_jitter);
- bool r = server->getClientInfo(player->getPeerId(), &state, &uptime,
- &ser_vers, &prot_vers, &major, &minor, &patch, &vers_string,
- &lang_code);
- if (!r) {
- dstream << FUNCTION_NAME << ": peer was not found" << std::endl;
+ ClientInfo info;
+ if (!server->getClientInfo(player->getPeerId(), info)) {
+ warningstream << FUNCTION_NAME << ": no client info?!" << std::endl;
lua_pushnil(L); // error
return 1;
}
@@ -191,13 +175,13 @@ int ModApiServer::l_get_player_information(lua_State *L)
int table = lua_gettop(L);
lua_pushstring(L,"address");
- lua_pushstring(L, addr.serializeString().c_str());
+ lua_pushstring(L, info.addr.serializeString().c_str());
lua_settable(L, table);
lua_pushstring(L,"ip_version");
- if (addr.getFamily() == AF_INET) {
+ if (info.addr.getFamily() == AF_INET) {
lua_pushnumber(L, 4);
- } else if (addr.getFamily() == AF_INET6) {
+ } else if (info.addr.getFamily() == AF_INET6) {
lua_pushnumber(L, 6);
} else {
lua_pushnumber(L, 0);
@@ -231,11 +215,11 @@ int ModApiServer::l_get_player_information(lua_State *L)
}
lua_pushstring(L,"connection_uptime");
- lua_pushnumber(L, uptime);
+ lua_pushnumber(L, info.uptime);
lua_settable(L, table);
lua_pushstring(L,"protocol_version");
- lua_pushnumber(L, prot_vers);
+ lua_pushnumber(L, info.prot_vers);
lua_settable(L, table);
lua_pushstring(L, "formspec_version");
@@ -243,32 +227,32 @@ int ModApiServer::l_get_player_information(lua_State *L)
lua_settable(L, table);
lua_pushstring(L, "lang_code");
- lua_pushstring(L, lang_code.c_str());
+ lua_pushstring(L, info.lang_code.c_str());
lua_settable(L, table);
#ifndef NDEBUG
lua_pushstring(L,"serialization_version");
- lua_pushnumber(L, ser_vers);
+ lua_pushnumber(L, info.ser_vers);
lua_settable(L, table);
lua_pushstring(L,"major");
- lua_pushnumber(L, major);
+ lua_pushnumber(L, info.major);
lua_settable(L, table);
lua_pushstring(L,"minor");
- lua_pushnumber(L, minor);
+ lua_pushnumber(L, info.minor);
lua_settable(L, table);
lua_pushstring(L,"patch");
- lua_pushnumber(L, patch);
+ lua_pushnumber(L, info.patch);
lua_settable(L, table);
lua_pushstring(L,"version_string");
- lua_pushstring(L, vers_string.c_str());
+ lua_pushstring(L, info.vers_string.c_str());
lua_settable(L, table);
lua_pushstring(L,"state");
- lua_pushstring(L,ClientInterface::state2Name(state).c_str());
+ lua_pushstring(L, ClientInterface::state2Name(info.state).c_str());
lua_settable(L, table);
#endif
@@ -296,23 +280,18 @@ int ModApiServer::l_get_ban_description(lua_State *L)
int ModApiServer::l_ban_player(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- const char * name = luaL_checkstring(L, 1);
- RemotePlayer *player = dynamic_cast<ServerEnvironment *>(getEnv(L))->getPlayer(name);
- if (player == NULL) {
+
+ Server *server = getServer(L);
+
+ const char *name = luaL_checkstring(L, 1);
+ RemotePlayer *player = server->getEnv().getPlayer(name);
+ if (!player) {
lua_pushboolean(L, false); // no such player
return 1;
}
- try
- {
- Address addr = getServer(L)->getPeerAddress(
- dynamic_cast<ServerEnvironment *>(getEnv(L))->getPlayer(name)->getPeerId());
- std::string ip_str = addr.serializeString();
- getServer(L)->setIpBanned(ip_str, name);
- } catch(const con::PeerNotFoundException &) {
- dstream << FUNCTION_NAME << ": peer was not found" << std::endl;
- lua_pushboolean(L, false); // error
- return 1;
- }
+
+ std::string ip_str = server->getPeerAddress(player->getPeerId()).serializeString();
+ server->setIpBanned(ip_str, name);
lua_pushboolean(L, true);
return 1;
}
@@ -473,19 +452,30 @@ int ModApiServer::l_sound_fade(lua_State *L)
}
// dynamic_add_media(filepath)
-int ModApiServer::l_dynamic_add_media(lua_State *L)
+int ModApiServer::l_dynamic_add_media_raw(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- // Reject adding media before the server has started up
if (!getEnv(L))
throw LuaError("Dynamic media cannot be added before server has started up");
std::string filepath = readParam<std::string>(L, 1);
CHECK_SECURE_PATH(L, filepath.c_str(), false);
- bool ok = getServer(L)->dynamicAddMedia(filepath);
- lua_pushboolean(L, ok);
+ std::vector<RemotePlayer*> sent_to;
+ bool ok = getServer(L)->dynamicAddMedia(filepath, sent_to);
+ if (ok) {
+ // (see wrapper code in builtin)
+ lua_createtable(L, sent_to.size(), 0);
+ int i = 0;
+ for (RemotePlayer *player : sent_to) {
+ lua_pushstring(L, player->getName());
+ lua_rawseti(L, -2, ++i);
+ }
+ } else {
+ lua_pushboolean(L, false);
+ }
+
return 1;
}
@@ -553,7 +543,7 @@ void ModApiServer::Initialize(lua_State *L, int top)
API_FCT(sound_play);
API_FCT(sound_stop);
API_FCT(sound_fade);
- API_FCT(dynamic_add_media);
+ API_FCT(dynamic_add_media_raw);
API_FCT(get_player_information);
API_FCT(get_player_privs);
diff --git a/src/script/lua_api/l_server.h b/src/script/lua_api/l_server.h
index 938bfa8ef..2df180b17 100644
--- a/src/script/lua_api/l_server.h
+++ b/src/script/lua_api/l_server.h
@@ -71,7 +71,7 @@ private:
static int l_sound_fade(lua_State *L);
// dynamic_add_media(filepath)
- static int l_dynamic_add_media(lua_State *L);
+ static int l_dynamic_add_media_raw(lua_State *L);
// get_player_privs(name, text)
static int l_get_player_privs(lua_State *L);
diff --git a/src/script/lua_api/l_settings.cpp b/src/script/lua_api/l_settings.cpp
index 33eb02392..bcbaf15fa 100644
--- a/src/script/lua_api/l_settings.cpp
+++ b/src/script/lua_api/l_settings.cpp
@@ -197,7 +197,7 @@ int LuaSettings::l_set_np_group(lua_State *L)
SET_SECURITY_CHECK(L, key);
- o->m_settings->setNoiseParams(key, value, false);
+ o->m_settings->setNoiseParams(key, value);
return 0;
}
diff --git a/src/script/lua_api/l_util.cpp b/src/script/lua_api/l_util.cpp
index cd63e20c2..203a0dd28 100644
--- a/src/script/lua_api/l_util.cpp
+++ b/src/script/lua_api/l_util.cpp
@@ -239,21 +239,23 @@ int ModApiUtil::l_is_yes(lua_State *L)
return 1;
}
-// is_nan(arg)
-int ModApiUtil::l_is_nan(lua_State *L)
+// get_builtin_path()
+int ModApiUtil::l_get_builtin_path(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- lua_pushboolean(L, isNaN(L, 1));
+ std::string path = porting::path_share + DIR_DELIM + "builtin" + DIR_DELIM;
+ lua_pushstring(L, path.c_str());
+
return 1;
}
-// get_builtin_path()
-int ModApiUtil::l_get_builtin_path(lua_State *L)
+// get_user_path()
+int ModApiUtil::l_get_user_path(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
- std::string path = porting::path_share + DIR_DELIM + "builtin" + DIR_DELIM;
+ std::string path = porting::path_user;
lua_pushstring(L, path.c_str());
return 1;
@@ -493,9 +495,9 @@ void ModApiUtil::Initialize(lua_State *L, int top)
API_FCT(get_password_hash);
API_FCT(is_yes);
- API_FCT(is_nan);
API_FCT(get_builtin_path);
+ API_FCT(get_user_path);
API_FCT(compress);
API_FCT(decompress);
@@ -526,7 +528,6 @@ void ModApiUtil::InitializeClient(lua_State *L, int top)
API_FCT(write_json);
API_FCT(is_yes);
- API_FCT(is_nan);
API_FCT(compress);
API_FCT(decompress);
@@ -550,6 +551,7 @@ void ModApiUtil::InitializeAsync(lua_State *L, int top)
API_FCT(is_yes);
API_FCT(get_builtin_path);
+ API_FCT(get_user_path);
API_FCT(compress);
API_FCT(decompress);
diff --git a/src/script/lua_api/l_util.h b/src/script/lua_api/l_util.h
index 9ff91bb53..dbdd62b99 100644
--- a/src/script/lua_api/l_util.h
+++ b/src/script/lua_api/l_util.h
@@ -65,12 +65,12 @@ private:
// is_yes(arg)
static int l_is_yes(lua_State *L);
- // is_nan(arg)
- static int l_is_nan(lua_State *L);
-
// get_builtin_path()
static int l_get_builtin_path(lua_State *L);
+ // get_user_path()
+ static int l_get_user_path(lua_State *L);
+
// compress(data, method, ...)
static int l_compress(lua_State *L);
diff --git a/src/script/scripting_mainmenu.cpp b/src/script/scripting_mainmenu.cpp
index 0f672f917..b102a66a1 100644
--- a/src/script/scripting_mainmenu.cpp
+++ b/src/script/scripting_mainmenu.cpp
@@ -31,7 +31,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
extern "C" {
#include "lualib.h"
}
-
#define MAINMENU_NUM_ASYNC_THREADS 4
diff --git a/src/server.cpp b/src/server.cpp
index fe2bb3840..81cdd1f8d 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -213,7 +213,8 @@ Server::Server(
bool simple_singleplayer_mode,
Address bind_addr,
bool dedicated,
- ChatInterface *iface
+ ChatInterface *iface,
+ std::string *on_shutdown_errmsg
):
m_bind_addr(bind_addr),
m_path_world(path_world),
@@ -232,6 +233,7 @@ Server::Server(
m_thread(new ServerThread(this)),
m_clients(m_con),
m_admin_chat(iface),
+ m_on_shutdown_errmsg(on_shutdown_errmsg),
m_modchannel_mgr(new ModChannelMgr())
{
if (m_path_world.empty())
@@ -314,7 +316,18 @@ Server::~Server()
// Execute script shutdown hooks
infostream << "Executing shutdown hooks" << std::endl;
- m_script->on_shutdown();
+ try {
+ m_script->on_shutdown();
+ } catch (ModError &e) {
+ errorstream << "ModError: " << e.what() << std::endl;
+ if (m_on_shutdown_errmsg) {
+ if (m_on_shutdown_errmsg->empty()) {
+ *m_on_shutdown_errmsg = std::string("ModError: ") + e.what();
+ } else {
+ *m_on_shutdown_errmsg += std::string("\nModError: ") + e.what();
+ }
+ }
+ }
infostream << "Server: Saving environment metadata" << std::endl;
m_env->saveMeta();
@@ -338,6 +351,8 @@ Server::~Server()
// Deinitialize scripting
infostream << "Server: Deinitializing scripting" << std::endl;
delete m_script;
+ delete m_startup_server_map; // if available
+ delete m_game_settings;
while (!m_unsent_map_edit_queue.empty()) {
delete m_unsent_map_edit_queue.front();
@@ -355,9 +370,16 @@ void Server::init()
infostream << "- world: " << m_path_world << std::endl;
infostream << "- game: " << m_gamespec.path << std::endl;
+ m_game_settings = Settings::createLayer(SL_GAME);
+
// Create world if it doesn't exist
- if (!loadGameConfAndInitWorld(m_path_world, m_gamespec))
- throw ServerError("Failed to initialize world");
+ try {
+ loadGameConfAndInitWorld(m_path_world,
+ fs::GetFilenameFromPath(m_path_world.c_str()),
+ m_gamespec, false);
+ } catch (const BaseException &e) {
+ throw ServerError(std::string("Failed to initialize world: ") + e.what());
+ }
// Create emerge manager
m_emerge = new EmergeManager(this);
@@ -378,6 +400,7 @@ void Server::init()
// Create the Map (loads map_meta.txt, overriding configured mapgen params)
ServerMap *servermap = new ServerMap(m_path_world, this, m_emerge, m_metrics_backend.get());
+ m_startup_server_map = servermap;
// Initialize scripting
infostream << "Server: Initializing Lua" << std::endl;
@@ -419,6 +442,7 @@ void Server::init()
m_craftdef->initHashes(this);
// Initialize Environment
+ m_startup_server_map = nullptr; // Ownership moved to ServerEnvironment
m_env = new ServerEnvironment(servermap, m_script, this, m_path_world);
m_inventory_mgr->setEnv(m_env);
@@ -635,7 +659,12 @@ void Server::AsyncRunStep(bool initial_step)
}
m_clients.step(dtime);
- m_lag_gauge->increment((m_lag_gauge->get() > dtime ? -1 : 1) * dtime/100);
+ // increase/decrease lag gauge gradually
+ if (m_lag_gauge->get() > dtime) {
+ m_lag_gauge->decrement(dtime/100);
+ } else {
+ m_lag_gauge->increment(dtime/100);
+ }
#if USE_CURL
// send masterserver announce
{
@@ -779,7 +808,7 @@ void Server::AsyncRunStep(bool initial_step)
// u16 id
// std::string data
buffer.append(idbuf, sizeof(idbuf));
- buffer.append(serializeString(aom.datastring));
+ buffer.append(serializeString16(aom.datastring));
}
}
/*
@@ -1216,20 +1245,8 @@ bool Server::getClientConInfo(session_t peer_id, con::rtt_stat_type type, float*
return *retval != -1;
}
-bool Server::getClientInfo(
- session_t peer_id,
- ClientState* state,
- u32* uptime,
- u8* ser_vers,
- u16* prot_vers,
- u8* major,
- u8* minor,
- u8* patch,
- std::string* vers_string,
- std::string* lang_code
- )
-{
- *state = m_clients.getClientState(peer_id);
+bool Server::getClientInfo(session_t peer_id, ClientInfo &ret)
+{
m_clients.lock();
RemoteClient* client = m_clients.lockedGetClientNoEx(peer_id, CS_Invalid);
@@ -1238,15 +1255,18 @@ bool Server::getClientInfo(
return false;
}
- *uptime = client->uptime();
- *ser_vers = client->serialization_version;
- *prot_vers = client->net_proto_version;
+ ret.state = client->getState();
+ ret.addr = client->getAddress();
+ ret.uptime = client->uptime();
+ ret.ser_vers = client->serialization_version;
+ ret.prot_vers = client->net_proto_version;
- *major = client->getMajor();
- *minor = client->getMinor();
- *patch = client->getPatch();
- *vers_string = client->getFull();
- *lang_code = client->getLangCode();
+ ret.major = client->getMajor();
+ ret.minor = client->getMinor();
+ ret.patch = client->getPatch();
+ ret.vers_string = client->getFullVer();
+
+ ret.lang_code = client->getLangCode();
m_clients.unlock();
@@ -1332,7 +1352,7 @@ void Server::SendPlayerHPOrDie(PlayerSAO *playersao, const PlayerHPChangeReason
return;
session_t peer_id = playersao->getPeerID();
- bool is_alive = playersao->getHP() > 0;
+ bool is_alive = !playersao->isDead();
if (is_alive)
SendPlayerHP(peer_id);
@@ -1465,7 +1485,8 @@ void Server::SendChatMessage(session_t peer_id, const ChatMessage &message)
NetworkPacket pkt(TOCLIENT_CHAT_MESSAGE, 0, peer_id);
u8 version = 1;
u8 type = message.type;
- pkt << version << type << std::wstring(L"") << message.message << (u64)message.timestamp;
+ pkt << version << type << message.sender << message.message
+ << static_cast<u64>(message.timestamp);
if (peer_id != PEER_ID_INEXISTENT) {
RemotePlayer *player = m_env->getPlayer(peer_id);
@@ -1800,6 +1821,9 @@ void Server::SendMovePlayer(session_t peer_id)
PlayerSAO *sao = player->getPlayerSAO();
assert(sao);
+ // Send attachment updates instantly to the client prior updating position
+ sao->sendOutdatedData();
+
NetworkPacket pkt(TOCLIENT_MOVE_PLAYER, sizeof(v3f) + sizeof(f32) * 2, peer_id);
pkt << sao->getBasePosition() << sao->getLookPitch() << sao->getRotation().Y;
@@ -1970,7 +1994,7 @@ void Server::SendActiveObjectRemoveAdd(RemoteClient *client, PlayerSAO *playersa
writeU8((u8*)buf, type);
data.append(buf, 1);
- data.append(serializeLongString(
+ data.append(serializeString32(
obj->getClientInitializationData(client->net_proto_version)));
// Add to known objects
@@ -2309,13 +2333,13 @@ void Server::SendBlockNoLock(session_t peer_id, MapBlock *block, u8 ver,
/*
Create a packet with the block in the right format
*/
-
+ thread_local const int net_compression_level = rangelim(g_settings->getS16("map_compression_level_net"), -1, 9);
std::ostringstream os(std::ios_base::binary);
- block->serialize(os, ver, false);
+ block->serialize(os, ver, false, net_compression_level);
block->serializeNetworkSpecific(os);
std::string s = os.str();
- NetworkPacket pkt(TOCLIENT_BLOCKDATA, 2 + 2 + 2 + 2 + s.size(), peer_id);
+ NetworkPacket pkt(TOCLIENT_BLOCKDATA, 2 + 2 + 2 + s.size(), peer_id);
pkt << block->getPos();
pkt.putRawString(s.c_str(), s.size());
@@ -2433,31 +2457,14 @@ bool Server::addMediaFile(const std::string &filename,
// Ok, attempt to load the file and add to cache
// Read data
- std::ifstream fis(filepath.c_str(), std::ios_base::binary);
- if (!fis.good()) {
- errorstream << "Server::addMediaFile(): Could not open \""
- << filename << "\" for reading" << std::endl;
- return false;
- }
std::string filedata;
- bool bad = false;
- for (;;) {
- char buf[1024];
- fis.read(buf, sizeof(buf));
- std::streamsize len = fis.gcount();
- filedata.append(buf, len);
- if (fis.eof())
- break;
- if (!fis.good()) {
- bad = true;
- break;
- }
- }
- if (bad) {
- errorstream << "Server::addMediaFile(): Failed to read \""
- << filename << "\"" << std::endl;
+ if (!fs::ReadFile(filepath, filedata)) {
+ errorstream << "Server::addMediaFile(): Failed to open \""
+ << filename << "\" for reading" << std::endl;
return false;
- } else if (filedata.empty()) {
+ }
+
+ if (filedata.empty()) {
errorstream << "Server::addMediaFile(): Empty file \""
<< filepath << "\"" << std::endl;
return false;
@@ -2489,19 +2496,25 @@ void Server::fillMediaCache()
// Collect all media file paths
std::vector<std::string> paths;
- m_modmgr->getModsMediaPaths(paths);
- fs::GetRecursiveDirs(paths, m_gamespec.path + DIR_DELIM + "textures");
+ // The paths are ordered in descending priority
fs::GetRecursiveDirs(paths, porting::path_user + DIR_DELIM + "textures" + DIR_DELIM + "server");
+ fs::GetRecursiveDirs(paths, m_gamespec.path + DIR_DELIM + "textures");
+ m_modmgr->getModsMediaPaths(paths);
// Collect media file information from paths into cache
for (const std::string &mediapath : paths) {
std::vector<fs::DirListNode> dirlist = fs::GetDirListing(mediapath);
for (const fs::DirListNode &dln : dirlist) {
- if (dln.dir) // Ignore dirs
+ if (dln.dir) // Ignore dirs (already in paths)
continue;
+
+ const std::string &filename = dln.name;
+ if (m_media.find(filename) != m_media.end()) // Do not override
+ continue;
+
std::string filepath = mediapath;
- filepath.append(DIR_DELIM).append(dln.name);
- addMediaFile(dln.name, filepath);
+ filepath.append(DIR_DELIM).append(filename);
+ addMediaFile(filename, filepath);
}
}
@@ -2650,6 +2663,23 @@ void Server::sendRequestedMedia(session_t peer_id,
}
}
+void Server::SendMinimapModes(session_t peer_id,
+ std::vector<MinimapMode> &modes, size_t wanted_mode)
+{
+ RemotePlayer *player = m_env->getPlayer(peer_id);
+ assert(player);
+ if (player->getPeerId() == PEER_ID_INEXISTENT)
+ return;
+
+ NetworkPacket pkt(TOCLIENT_MINIMAP_MODES, 0, peer_id);
+ pkt << (u16)modes.size() << (u16)wanted_mode;
+
+ for (auto &mode : modes)
+ pkt << (u16)mode.type << mode.label << mode.size << mode.texture << mode.scale;
+
+ Send(&pkt);
+}
+
void Server::sendDetachedInventory(Inventory *inventory, const std::string &name, session_t peer_id)
{
NetworkPacket pkt(TOCLIENT_DETACHED_INVENTORY, 0, peer_id);
@@ -2932,7 +2962,7 @@ void Server::handleChatInterfaceEvent(ChatEvent *evt)
}
}
-std::wstring Server::handleChat(const std::string &name, const std::wstring &wname,
+std::wstring Server::handleChat(const std::string &name,
std::wstring wmessage, bool check_shout_priv, RemotePlayer *player)
{
// If something goes wrong, this player is to blame
@@ -2970,7 +3000,7 @@ std::wstring Server::handleChat(const std::string &name, const std::wstring &wna
auto message = trim(wide_to_utf8(wmessage));
if (message.find_first_of("\n\r") != std::wstring::npos) {
- return L"New lines are not permitted in chat messages";
+ return L"Newlines are not permitted in chat messages";
}
// Run script hook, exit if script ate the chat message
@@ -2991,10 +3021,10 @@ std::wstring Server::handleChat(const std::string &name, const std::wstring &wna
the Cyrillic alphabet and some characters on older Android devices
*/
#ifdef __ANDROID__
- line += L"<" + wname + L"> " + wmessage;
+ line += L"<" + utf8_to_wide(name) + L"> " + wmessage;
#else
- line += narrow_to_wide(m_script->formatChatMessage(name,
- wide_to_narrow(wmessage)));
+ line += utf8_to_wide(m_script->formatChatMessage(name,
+ wide_to_utf8(wmessage)));
#endif
}
@@ -3007,35 +3037,23 @@ std::wstring Server::handleChat(const std::string &name, const std::wstring &wna
/*
Send the message to others
*/
- actionstream << "CHAT: " << wide_to_narrow(unescape_enriched(line)) << std::endl;
-
- std::vector<session_t> clients = m_clients.getClientIDs();
-
- /*
- Send the message back to the inital sender
- if they are using protocol version >= 29
- */
+ actionstream << "CHAT: " << wide_to_utf8(unescape_enriched(line)) << std::endl;
- session_t peer_id_to_avoid_sending =
- (player ? player->getPeerId() : PEER_ID_INEXISTENT);
+ ChatMessage chatmsg(line);
- if (player && player->protocol_version >= 29)
- peer_id_to_avoid_sending = PEER_ID_INEXISTENT;
+ std::vector<session_t> clients = m_clients.getClientIDs();
+ for (u16 cid : clients)
+ SendChatMessage(cid, chatmsg);
- for (u16 cid : clients) {
- if (cid != peer_id_to_avoid_sending)
- SendChatMessage(cid, ChatMessage(line));
- }
return L"";
}
void Server::handleAdminChat(const ChatEventChat *evt)
{
std::string name = evt->nick;
- std::wstring wname = utf8_to_wide(name);
std::wstring wmessage = evt->evt_msg;
- std::wstring answer = handleChat(name, wname, wmessage);
+ std::wstring answer = handleChat(name, wmessage);
// If asked to send answer to sender
if (!answer.empty()) {
@@ -3072,46 +3090,43 @@ PlayerSAO *Server::getPlayerSAO(session_t peer_id)
return player->getPlayerSAO();
}
-std::wstring Server::getStatusString()
+std::string Server::getStatusString()
{
- std::wostringstream os(std::ios_base::binary);
- os << L"# Server: ";
+ std::ostringstream os(std::ios_base::binary);
+ os << "# Server: ";
// Version
- os << L"version=" << narrow_to_wide(g_version_string);
+ os << "version=" << g_version_string;
// Uptime
- os << L", uptime=" << m_uptime_counter->get();
+ os << ", uptime=" << m_uptime_counter->get();
// Max lag estimate
- os << L", max_lag=" << (m_env ? m_env->getMaxLagEstimate() : 0);
+ os << ", max_lag=" << (m_env ? m_env->getMaxLagEstimate() : 0);
// Information about clients
bool first = true;
- os << L", clients={";
+ os << ", clients={";
if (m_env) {
std::vector<session_t> clients = m_clients.getClientIDs();
for (session_t client_id : clients) {
RemotePlayer *player = m_env->getPlayer(client_id);
// Get name of player
- std::wstring name = L"unknown";
- if (player)
- name = narrow_to_wide(player->getName());
+ const char *name = player ? player->getName() : "<unknown>";
// Add name to information string
if (!first)
- os << L", ";
+ os << ", ";
else
first = false;
-
os << name;
}
}
- os << L"}";
+ os << "}";
if (m_env && !((ServerMap*)(&m_env->getMap()))->isSavingEnabled())
- os << std::endl << L"# Server: " << " WARNING: Map saving is disabled.";
+ os << std::endl << "# Server: " << " WARNING: Map saving is disabled.";
if (!g_settings->get("motd").empty())
- os << std::endl << L"# Server: " << narrow_to_wide(g_settings->get("motd"));
+ os << std::endl << "# Server: " << g_settings->get("motd");
return os.str();
}
@@ -3307,7 +3322,8 @@ void Server::hudSetHotbarSelectedImage(RemotePlayer *player, const std::string &
Address Server::getPeerAddress(session_t peer_id)
{
- return m_con->GetPeerAddress(peer_id);
+ // Note that this is only set after Init was received in Server::handleCommand_Init
+ return getClient(peer_id, CS_Invalid)->getAddress();
}
void Server::setLocalPlayerAnimations(RemotePlayer *player,
@@ -3441,7 +3457,8 @@ void Server::deleteParticleSpawner(const std::string &playername, u32 id)
SendDeleteParticleSpawner(peer_id, id);
}
-bool Server::dynamicAddMedia(const std::string &filepath)
+bool Server::dynamicAddMedia(const std::string &filepath,
+ std::vector<RemotePlayer*> &sent_to)
{
std::string filename = fs::GetFilenameFromPath(filepath.c_str());
if (m_media.find(filename) != m_media.end()) {
@@ -3461,9 +3478,17 @@ bool Server::dynamicAddMedia(const std::string &filepath)
pkt << raw_hash << filename << (bool) true;
pkt.putLongString(filedata);
- auto client_ids = m_clients.getClientIDs(CS_DefinitionsSent);
- for (session_t client_id : client_ids) {
+ m_clients.lock();
+ for (auto &pair : m_clients.getClientList()) {
+ if (pair.second->getState() < CS_DefinitionsSent)
+ continue;
+ if (pair.second->net_proto_version < 39)
+ continue;
+
+ if (auto player = m_env->getPlayer(pair.second->peer_id))
+ sent_to.emplace_back(player);
/*
+ FIXME: this is a very awful hack
The network layer only guarantees ordered delivery inside a channel.
Since the very next packet could be one that uses the media, we have
to push the media over ALL channels to ensure it is processed before
@@ -3472,9 +3497,10 @@ bool Server::dynamicAddMedia(const std::string &filepath)
- channel 1 (HUD)
- channel 0 (everything else: e.g. play_sound, object messages)
*/
- m_clients.send(client_id, 1, &pkt, true);
- m_clients.send(client_id, 0, &pkt, true);
+ m_clients.send(pair.second->peer_id, 1, &pkt, true);
+ m_clients.send(pair.second->peer_id, 0, &pkt, true);
}
+ m_clients.unlock();
return true;
}
@@ -3866,19 +3892,27 @@ void Server::broadcastModChannelMessage(const std::string &channel,
}
}
-void Server::loadTranslationLanguage(const std::string &lang_code)
+Translations *Server::getTranslationLanguage(const std::string &lang_code)
{
- if (g_server_translations->count(lang_code))
- return; // Already loaded
+ if (lang_code.empty())
+ return nullptr;
+
+ auto it = server_translations.find(lang_code);
+ if (it != server_translations.end())
+ return &it->second; // Already loaded
+
+ // [] will create an entry
+ auto *translations = &server_translations[lang_code];
std::string suffix = "." + lang_code + ".tr";
for (const auto &i : m_media) {
if (str_ends_with(i.first, suffix)) {
- std::ifstream t(i.second.path);
- std::string data((std::istreambuf_iterator<char>(t)),
- std::istreambuf_iterator<char>());
-
- (*g_server_translations)[lang_code].loadTranslation(data);
+ std::string data;
+ if (fs::ReadFile(i.second.path, data)) {
+ translations->loadTranslation(data);
+ }
}
}
+
+ return translations;
}
diff --git a/src/server.h b/src/server.h
index f44716531..9857215d0 100644
--- a/src/server.h
+++ b/src/server.h
@@ -38,6 +38,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "serverenvironment.h"
#include "clientiface.h"
#include "chatmessage.h"
+#include "translation.h"
#include <string>
#include <list>
#include <map>
@@ -117,6 +118,25 @@ struct ServerPlayingSound
std::unordered_set<session_t> clients; // peer ids
};
+struct MinimapMode {
+ MinimapType type = MINIMAP_TYPE_OFF;
+ std::string label;
+ u16 size = 0;
+ std::string texture;
+ u16 scale = 1;
+};
+
+// structure for everything getClientInfo returns, for convenience
+struct ClientInfo {
+ ClientState state;
+ Address addr;
+ u32 uptime;
+ u8 ser_vers;
+ u16 prot_vers;
+ u8 major, minor, patch;
+ std::string vers_string, lang_code;
+};
+
class Server : public con::PeerHandler, public MapEventReceiver,
public IGameDef
{
@@ -131,7 +151,8 @@ public:
bool simple_singleplayer_mode,
Address bind_addr,
bool dedicated,
- ChatInterface *iface = nullptr
+ ChatInterface *iface = nullptr,
+ std::string *on_shutdown_errmsg = nullptr
);
~Server();
DISABLE_CLASS_COPY(Server);
@@ -198,7 +219,7 @@ public:
void onMapEditEvent(const MapEditEvent &event);
// Connection must be locked when called
- std::wstring getStatusString();
+ std::string getStatusString();
inline double getUptime() const { return m_uptime_counter->get(); }
// read shutdown state
@@ -236,7 +257,7 @@ public:
void deleteParticleSpawner(const std::string &playername, u32 id);
- bool dynamicAddMedia(const std::string &filepath);
+ bool dynamicAddMedia(const std::string &filepath, std::vector<RemotePlayer*> &sent_to);
ServerInventoryManager *getInventoryMgr() const { return m_inventory_mgr.get(); }
void sendDetachedInventory(Inventory *inventory, const std::string &name, session_t peer_id);
@@ -316,9 +337,7 @@ public:
void DenyAccess_Legacy(session_t peer_id, const std::wstring &reason);
void DisconnectPeer(session_t peer_id);
bool getClientConInfo(session_t peer_id, con::rtt_stat_type type, float *retval);
- bool getClientInfo(session_t peer_id, ClientState *state, u32 *uptime,
- u8* ser_vers, u16* prot_vers, u8* major, u8* minor, u8* patch,
- std::string* vers_string, std::string* lang_code);
+ bool getClientInfo(session_t peer_id, ClientInfo &ret);
void printToConsoleOnly(const std::string &text);
@@ -329,6 +348,10 @@ public:
void SendPlayerSpeed(session_t peer_id, const v3f &added_vel);
void SendPlayerFov(session_t peer_id);
+ void SendMinimapModes(session_t peer_id,
+ std::vector<MinimapMode> &modes,
+ size_t wanted_mode);
+
void sendDetachedInventories(session_t peer_id, bool incremental);
virtual bool registerModStorage(ModMetadata *storage);
@@ -342,8 +365,8 @@ public:
// Send block to specific player only
bool SendBlock(session_t peer_id, const v3s16 &blockpos);
- // Load translations for a language
- void loadTranslationLanguage(const std::string &lang_code);
+ // Get or load translations for a language
+ Translations *getTranslationLanguage(const std::string &lang_code);
// Bind address
Address m_bind_addr;
@@ -472,10 +495,8 @@ private:
void handleChatInterfaceEvent(ChatEvent *evt);
// This returns the answer to the sender of wmessage, or "" if there is none
- std::wstring handleChat(const std::string &name, const std::wstring &wname,
- std::wstring wmessage_input,
- bool check_shout_priv = false,
- RemotePlayer *player = NULL);
+ std::wstring handleChat(const std::string &name, std::wstring wmessage_input,
+ bool check_shout_priv = false, RemotePlayer *player = nullptr);
void handleAdminChat(const ChatEventChat *evt);
// When called, connection mutex should be locked
@@ -510,6 +531,7 @@ private:
u16 m_max_chatmessage_length;
// For "dedicated" server list flag
bool m_dedicated;
+ Settings *m_game_settings = nullptr;
// Thread can set; step() will throw as ServerError
MutexedVariable<std::string> m_async_fatal_error;
@@ -525,6 +547,10 @@ private:
// Environment
ServerEnvironment *m_env = nullptr;
+ // Reference to the server map until ServerEnvironment is initialized
+ // after that this variable must be a nullptr
+ ServerMap *m_startup_server_map = nullptr;
+
// server connection
std::shared_ptr<con::Connection> m_con;
@@ -550,12 +576,11 @@ private:
// Craft definition manager
IWritableCraftDefManager *m_craftdef;
- // Event manager
- EventManager *m_event;
-
// Mods
std::unique_ptr<ServerModManager> m_modmgr;
+ std::unordered_map<std::string, Translations> server_translations;
+
/*
Threads
*/
@@ -596,6 +621,10 @@ private:
ChatInterface *m_admin_chat;
std::string m_admin_nick;
+ // if a mod-error occurs in the on_shutdown callback, the error message will
+ // be written into this
+ std::string *const m_on_shutdown_errmsg;
+
/*
Map edit event queue. Automatically receives all map edits.
The constructor of this class registers us to receive them through
diff --git a/src/server/activeobjectmgr.cpp b/src/server/activeobjectmgr.cpp
index 1b8e31409..acd6611f4 100644
--- a/src/server/activeobjectmgr.cpp
+++ b/src/server/activeobjectmgr.cpp
@@ -127,6 +127,21 @@ void ActiveObjectMgr::getObjectsInsideRadius(const v3f &pos, float radius,
}
}
+void ActiveObjectMgr::getObjectsInArea(const aabb3f &box,
+ std::vector<ServerActiveObject *> &result,
+ std::function<bool(ServerActiveObject *obj)> include_obj_cb)
+{
+ for (auto &activeObject : m_active_objects) {
+ ServerActiveObject *obj = activeObject.second;
+ const v3f &objectpos = obj->getBasePosition();
+ if (!box.isPointInside(objectpos))
+ continue;
+
+ if (!include_obj_cb || include_obj_cb(obj))
+ result.push_back(obj);
+ }
+}
+
void ActiveObjectMgr::getAddedActiveObjectsAroundPos(const v3f &player_pos, f32 radius,
f32 player_radius, std::set<u16> &current_objects,
std::queue<u16> &added_objects)
diff --git a/src/server/activeobjectmgr.h b/src/server/activeobjectmgr.h
index bc2085499..d43f5643c 100644
--- a/src/server/activeobjectmgr.h
+++ b/src/server/activeobjectmgr.h
@@ -38,6 +38,9 @@ public:
void getObjectsInsideRadius(const v3f &pos, float radius,
std::vector<ServerActiveObject *> &result,
std::function<bool(ServerActiveObject *obj)> include_obj_cb);
+ void getObjectsInArea(const aabb3f &box,
+ std::vector<ServerActiveObject *> &result,
+ std::function<bool(ServerActiveObject *obj)> include_obj_cb);
void getAddedActiveObjectsAroundPos(const v3f &player_pos, f32 radius,
f32 player_radius, std::set<u16> &current_objects,
diff --git a/src/server/luaentity_sao.cpp b/src/server/luaentity_sao.cpp
index d504c42ca..3bcbe107b 100644
--- a/src/server/luaentity_sao.cpp
+++ b/src/server/luaentity_sao.cpp
@@ -42,8 +42,8 @@ LuaEntitySAO::LuaEntitySAO(ServerEnvironment *env, v3f pos, const std::string &d
u8 version2 = 0;
u8 version = readU8(is);
- name = deSerializeString(is);
- state = deSerializeLongString(is);
+ name = deSerializeString16(is);
+ state = deSerializeString32(is);
if (version < 1)
break;
@@ -112,6 +112,15 @@ void LuaEntitySAO::addedToEnvironment(u32 dtime_s)
}
}
+void LuaEntitySAO::dispatchScriptDeactivate()
+{
+ // Ensure that this is in fact a registered entity,
+ // and that it isn't already gone.
+ // The latter also prevents this from ever being called twice.
+ if (m_registered && !isGone())
+ m_env->getScriptIface()->luaentity_Deactivate(m_id);
+}
+
void LuaEntitySAO::step(float dtime, bool send_recommended)
{
if(!m_properties_sent)
@@ -137,15 +146,11 @@ void LuaEntitySAO::step(float dtime, bool send_recommended)
// Each frame, parent position is copied if the object is attached, otherwise it's calculated normally
// If the object gets detached this comes into effect automatically from the last known origin
- if(isAttached())
- {
- v3f pos = m_env->getActiveObject(m_attachment_parent_id)->getBasePosition();
- m_base_position = pos;
+ if (auto *parent = getParent()) {
+ m_base_position = parent->getBasePosition();
m_velocity = v3f(0,0,0);
m_acceleration = v3f(0,0,0);
- }
- else
- {
+ } else {
if(m_prop.physical){
aabb3f box = m_prop.collisionbox;
box.MinEdge *= BS;
@@ -225,7 +230,7 @@ std::string LuaEntitySAO::getClientInitializationData(u16 protocol_version)
// PROTOCOL_VERSION >= 37
writeU8(os, 1); // version
- os << serializeString(""); // name
+ os << serializeString16(""); // name
writeU8(os, 0); // is_player
writeU16(os, getId()); //id
writeV3F32(os, m_base_position);
@@ -233,26 +238,26 @@ std::string LuaEntitySAO::getClientInitializationData(u16 protocol_version)
writeU16(os, m_hp);
std::ostringstream msg_os(std::ios::binary);
- msg_os << serializeLongString(getPropertyPacket()); // message 1
- msg_os << serializeLongString(generateUpdateArmorGroupsCommand()); // 2
- msg_os << serializeLongString(generateUpdateAnimationCommand()); // 3
+ msg_os << serializeString32(getPropertyPacket()); // message 1
+ msg_os << serializeString32(generateUpdateArmorGroupsCommand()); // 2
+ msg_os << serializeString32(generateUpdateAnimationCommand()); // 3
for (const auto &bone_pos : m_bone_position) {
- msg_os << serializeLongString(generateUpdateBonePositionCommand(
- bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // m_bone_position.size
+ msg_os << serializeString32(generateUpdateBonePositionCommand(
+ bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // 3 + N
}
- msg_os << serializeLongString(generateUpdateAttachmentCommand()); // 4
+ msg_os << serializeString32(generateUpdateAttachmentCommand()); // 4 + m_bone_position.size
int message_count = 4 + m_bone_position.size();
for (const auto &id : getAttachmentChildIds()) {
if (ServerActiveObject *obj = m_env->getActiveObject(id)) {
message_count++;
- msg_os << serializeLongString(obj->generateUpdateInfantCommand(
+ msg_os << serializeString32(obj->generateUpdateInfantCommand(
id, protocol_version));
}
}
- msg_os << serializeLongString(generateSetTextureModCommand());
+ msg_os << serializeString32(generateSetTextureModCommand());
message_count++;
writeU8(os, message_count);
@@ -270,14 +275,14 @@ void LuaEntitySAO::getStaticData(std::string *result) const
// version must be 1 to keep backwards-compatibility. See version2
writeU8(os, 1);
// name
- os<<serializeString(m_init_name);
+ os<<serializeString16(m_init_name);
// state
if(m_registered){
std::string state = m_env->getScriptIface()->
luaentity_GetStaticdata(m_id);
- os<<serializeLongString(state);
+ os<<serializeString32(state);
} else {
- os<<serializeLongString(m_init_state);
+ os<<serializeString32(m_init_state);
}
writeU16(os, m_hp);
writeV3F1000(os, m_velocity);
@@ -302,7 +307,7 @@ u16 LuaEntitySAO::punch(v3f dir,
{
if (!m_registered) {
// Delete unknown LuaEntities when punched
- m_pending_removal = true;
+ markForRemoval();
return 0;
}
@@ -335,7 +340,7 @@ u16 LuaEntitySAO::punch(v3f dir,
clearParentAttachment();
clearChildAttachments();
m_env->getScriptIface()->luaentity_on_death(m_id, puncher);
- m_pending_removal = true;
+ markForRemoval();
}
actionstream << puncher->getDescription() << " (id=" << puncher->getId() <<
@@ -436,7 +441,7 @@ std::string LuaEntitySAO::generateSetTextureModCommand() const
// command
writeU8(os, AO_CMD_SET_TEXTURE_MOD);
// parameters
- os << serializeString(m_current_texture_modifier);
+ os << serializeString16(m_current_texture_modifier);
return os.str();
}
@@ -483,6 +488,9 @@ void LuaEntitySAO::sendPosition(bool do_interpolate, bool is_movement_end)
if(isAttached())
return;
+ // Send attachment updates instantly to the client prior updating position
+ sendOutdatedData();
+
m_last_sent_move_precision = m_base_position.getDistanceFrom(
m_last_sent_position);
m_last_sent_position_timer = 0;
diff --git a/src/server/luaentity_sao.h b/src/server/luaentity_sao.h
index 2520c8f5d..6883ae1b9 100644
--- a/src/server/luaentity_sao.h
+++ b/src/server/luaentity_sao.h
@@ -42,6 +42,7 @@ public:
void step(float dtime, bool send_recommended);
std::string getClientInitializationData(u16 protocol_version);
bool isStaticAllowed() const { return m_prop.static_save; }
+ bool shouldUnload() const { return true; }
void getStaticData(std::string *result) const;
u16 punch(v3f dir, const ToolCapabilities *toolcap = nullptr,
ServerActiveObject *puncher = nullptr,
@@ -70,6 +71,11 @@ public:
bool getSelectionBox(aabb3f *toset) const;
bool collideWithObjects() const;
+protected:
+ void dispatchScriptDeactivate();
+ virtual void onMarkedForDeactivation() { dispatchScriptDeactivate(); }
+ virtual void onMarkedForRemoval() { dispatchScriptDeactivate(); }
+
private:
std::string getPropertyPacket();
void sendPosition(bool do_interpolate, bool is_movement_end);
diff --git a/src/server/mods.cpp b/src/server/mods.cpp
index 6ac530739..83fa12da9 100644
--- a/src/server/mods.cpp
+++ b/src/server/mods.cpp
@@ -98,11 +98,12 @@ void ServerModManager::getModNames(std::vector<std::string> &modlist) const
void ServerModManager::getModsMediaPaths(std::vector<std::string> &paths) const
{
- for (const ModSpec &spec : m_sorted_mods) {
- paths.push_back(spec.path + DIR_DELIM + "textures");
- paths.push_back(spec.path + DIR_DELIM + "sounds");
- paths.push_back(spec.path + DIR_DELIM + "media");
- paths.push_back(spec.path + DIR_DELIM + "models");
- paths.push_back(spec.path + DIR_DELIM + "locale");
+ for (auto it = m_sorted_mods.crbegin(); it != m_sorted_mods.crend(); it++) {
+ const ModSpec &spec = *it;
+ fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "textures");
+ fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "sounds");
+ fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "media");
+ fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "models");
+ fs::GetRecursiveDirs(paths, spec.path + DIR_DELIM + "locale");
}
}
diff --git a/src/server/mods.h b/src/server/mods.h
index 54774bd86..8954bbf72 100644
--- a/src/server/mods.h
+++ b/src/server/mods.h
@@ -42,5 +42,13 @@ public:
void loadMods(ServerScripting *script);
const ModSpec *getModSpec(const std::string &modname) const;
void getModNames(std::vector<std::string> &modlist) const;
+ /**
+ * Recursively gets all paths of mod folders that can contain media files.
+ *
+ * Result is ordered in descending priority, ie. files from an earlier path
+ * should not be replaced by files from a latter one.
+ *
+ * @param paths result vector
+ */
void getModsMediaPaths(std::vector<std::string> &paths) const;
};
diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp
index 67efed210..0d31f2e0b 100644
--- a/src/server/player_sao.cpp
+++ b/src/server/player_sao.cpp
@@ -55,6 +55,7 @@ PlayerSAO::PlayerSAO(ServerEnvironment *env_, RemotePlayer *player_, session_t p
m_prop.backface_culling = false;
m_prop.makes_footstep_sound = true;
m_prop.stepheight = PLAYER_DEFAULT_STEPHEIGHT * BS;
+ m_prop.show_on_minimap = true;
m_hp = m_prop.hp_max;
m_breath = m_prop.breath_max;
// Disable zoom in survival mode using a value of 0
@@ -109,7 +110,7 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version)
// Protocol >= 15
writeU8(os, 1); // version
- os << serializeString(m_player->getName()); // name
+ os << serializeString16(m_player->getName()); // name
writeU8(os, 1); // is_player
writeS16(os, getId()); // id
writeV3F32(os, m_base_position);
@@ -117,22 +118,22 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version)
writeU16(os, getHP());
std::ostringstream msg_os(std::ios::binary);
- msg_os << serializeLongString(getPropertyPacket()); // message 1
- msg_os << serializeLongString(generateUpdateArmorGroupsCommand()); // 2
- msg_os << serializeLongString(generateUpdateAnimationCommand()); // 3
+ msg_os << serializeString32(getPropertyPacket()); // message 1
+ msg_os << serializeString32(generateUpdateArmorGroupsCommand()); // 2
+ msg_os << serializeString32(generateUpdateAnimationCommand()); // 3
for (const auto &bone_pos : m_bone_position) {
- msg_os << serializeLongString(generateUpdateBonePositionCommand(
- bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // m_bone_position.size
+ msg_os << serializeString32(generateUpdateBonePositionCommand(
+ bone_pos.first, bone_pos.second.X, bone_pos.second.Y)); // 3 + N
}
- msg_os << serializeLongString(generateUpdateAttachmentCommand()); // 4
- msg_os << serializeLongString(generateUpdatePhysicsOverrideCommand()); // 5
+ msg_os << serializeString32(generateUpdateAttachmentCommand()); // 4 + m_bone_position.size
+ msg_os << serializeString32(generateUpdatePhysicsOverrideCommand()); // 5 + m_bone_position.size
int message_count = 5 + m_bone_position.size();
for (const auto &id : getAttachmentChildIds()) {
if (ServerActiveObject *obj = m_env->getActiveObject(id)) {
message_count++;
- msg_os << serializeLongString(obj->generateUpdateInfantCommand(
+ msg_os << serializeString32(obj->generateUpdateInfantCommand(
id, protocol_version));
}
}
@@ -147,7 +148,7 @@ std::string PlayerSAO::getClientInitializationData(u16 protocol_version)
void PlayerSAO::getStaticData(std::string * result) const
{
- FATAL_ERROR("Obsolete function");
+ FATAL_ERROR("This function shall not be called for PlayerSAO");
}
void PlayerSAO::step(float dtime, bool send_recommended)
@@ -259,10 +260,13 @@ void PlayerSAO::step(float dtime, bool send_recommended)
// otherwise it's calculated normally.
// If the object gets detached this comes into effect automatically from
// the last known origin.
- if (isAttached()) {
- v3f pos = m_env->getActiveObject(m_attachment_parent_id)->getBasePosition();
+ if (auto *parent = getParent()) {
+ v3f pos = parent->getBasePosition();
m_last_good_position = pos;
setBasePosition(pos);
+
+ if (m_player)
+ m_player->setSpeed(v3f());
}
if (!send_recommended)
@@ -455,22 +459,32 @@ u16 PlayerSAO::punch(v3f dir,
return hitparams.wear;
}
+void PlayerSAO::rightClick(ServerActiveObject *clicker)
+{
+ m_env->getScriptIface()->on_rightclickplayer(this, clicker);
+}
+
void PlayerSAO::setHP(s32 hp, const PlayerHPChangeReason &reason)
{
- s32 oldhp = m_hp;
+ if (hp == (s32)m_hp)
+ return; // Nothing to do
- hp = rangelim(hp, 0, m_prop.hp_max);
+ if (m_hp <= 0 && hp < (s32)m_hp)
+ return; // Cannot take more damage
- if (oldhp != hp) {
- s32 hp_change = m_env->getScriptIface()->on_player_hpchange(this, hp - oldhp, reason);
+ {
+ s32 hp_change = m_env->getScriptIface()->on_player_hpchange(this, hp - m_hp, reason);
if (hp_change == 0)
return;
- hp = rangelim(oldhp + hp_change, 0, m_prop.hp_max);
+ hp = m_hp + hp_change;
}
+ s32 oldhp = m_hp;
+ hp = rangelim(hp, 0, m_prop.hp_max);
+
if (hp < oldhp && isImmortal())
- return;
+ return; // Do not allow immortal players to be damaged
m_hp = hp;
@@ -525,7 +539,7 @@ bool PlayerSAO::setWieldedItem(const ItemStack &item)
void PlayerSAO::disconnected()
{
m_peer_id = PEER_ID_INEXISTENT;
- m_pending_removal = true;
+ markForRemoval();
}
void PlayerSAO::unlinkPlayerSessionAndSave()
@@ -558,7 +572,8 @@ void PlayerSAO::setMaxSpeedOverride(const v3f &vel)
bool PlayerSAO::checkMovementCheat()
{
- if (isAttached() || m_is_singleplayer ||
+ if (m_is_singleplayer ||
+ isAttached() ||
g_settings->getBool("disable_anticheat")) {
m_last_good_position = m_base_position;
return false;
diff --git a/src/server/player_sao.h b/src/server/player_sao.h
index 8571bd4f9..8e2d8803f 100644
--- a/src/server/player_sao.h
+++ b/src/server/player_sao.h
@@ -83,6 +83,7 @@ public:
void addedToEnvironment(u32 dtime_s);
void removingFromEnvironment();
bool isStaticAllowed() const { return false; }
+ bool shouldUnload() const { return false; }
std::string getClientInitializationData(u16 protocol_version);
void getStaticData(std::string *result) const;
void step(float dtime, bool send_recommended);
@@ -110,10 +111,9 @@ public:
u16 punch(v3f dir, const ToolCapabilities *toolcap, ServerActiveObject *puncher,
float time_from_last_punch);
- void rightClick(ServerActiveObject *clicker) {}
+ void rightClick(ServerActiveObject *clicker);
void setHP(s32 hp, const PlayerHPChangeReason &reason);
void setHPRaw(u16 hp) { m_hp = hp; }
- s16 readDamage();
u16 getBreath() const { return m_breath; }
void setBreath(const u16 breath, bool send = true);
diff --git a/src/server/serveractiveobject.cpp b/src/server/serveractiveobject.cpp
index 3341dc008..96b433d1d 100644
--- a/src/server/serveractiveobject.cpp
+++ b/src/server/serveractiveobject.cpp
@@ -61,7 +61,7 @@ std::string ServerActiveObject::generateUpdateInfantCommand(u16 infant_id, u16 p
// Clients since 4aa9a66 so no longer need this data
// Version 38 is the first bump after that commit.
// See also: ClientEnvironment::addActiveObject
- os << serializeLongString(getClientInitializationData(protocol_version));
+ os << serializeString32(getClientInitializationData(protocol_version));
}
return os.str();
}
@@ -73,3 +73,19 @@ void ServerActiveObject::dumpAOMessagesToQueue(std::queue<ActiveObjectMessage> &
m_messages_out.pop();
}
}
+
+void ServerActiveObject::markForRemoval()
+{
+ if (!m_pending_removal) {
+ onMarkedForRemoval();
+ m_pending_removal = true;
+ }
+}
+
+void ServerActiveObject::markForDeactivation()
+{
+ if (!m_pending_deactivation) {
+ onMarkedForDeactivation();
+ m_pending_deactivation = true;
+ }
+}
diff --git a/src/server/serveractiveobject.h b/src/server/serveractiveobject.h
index 927009aef..51f445914 100644
--- a/src/server/serveractiveobject.h
+++ b/src/server/serveractiveobject.h
@@ -70,6 +70,10 @@ public:
virtual bool environmentDeletes() const
{ return true; }
+ // Safely mark the object for removal or deactivation
+ void markForRemoval();
+ void markForDeactivation();
+
// Create a certain type of ServerActiveObject
static ServerActiveObject* create(ActiveObjectType type,
ServerEnvironment *env, u16 id, v3f pos,
@@ -125,6 +129,7 @@ public:
assert(isStaticAllowed());
*result = "";
}
+
/*
Return false in here to never save and instead remove object
on unload. getStaticData() will not be called in that case.
@@ -132,6 +137,14 @@ public:
virtual bool isStaticAllowed() const
{return true;}
+ /*
+ Return false here to never unload the object.
+ isStaticAllowed && shouldUnload -> unload when out of active block range
+ !isStaticAllowed && shouldUnload -> unload when block is unloaded
+ */
+ virtual bool shouldUnload() const
+ { return true; }
+
// Returns tool wear
virtual u16 punch(v3f dir,
const ToolCapabilities *toolcap = nullptr,
@@ -149,8 +162,6 @@ public:
{}
virtual const ItemGroupList &getArmorGroups() const
{ static ItemGroupList rv; return rv; }
- virtual void setPhysicsOverride(float physics_override_speed, float physics_override_jump, float physics_override_gravity)
- {}
virtual void setAnimation(v2f frames, float frame_speed, float frame_blend, bool frame_loop)
{}
virtual void getAnimation(v2f *frames, float *frame_speed, float *frame_blend, bool *frame_loop)
@@ -193,7 +204,6 @@ public:
}
std::string generateUpdateInfantCommand(u16 infant_id, u16 protocol_version);
- std::string generateUpdateNametagAttributesCommand(const video::SColor &color) const;
void dumpAOMessagesToQueue(std::queue<ActiveObjectMessage> &queue);
@@ -205,31 +215,15 @@ public:
u16 m_known_by_count = 0;
/*
- - Whether this object is to be removed when nobody knows about
- it anymore.
- - Removal is delayed to preserve the id for the time during which
- it could be confused to some other object by some client.
- - This is usually set to true by the step() method when the object wants
- to be deleted but can be set by anything else too.
- */
- bool m_pending_removal = false;
-
- /*
- Same purpose as m_pending_removal but for deactivation.
- deactvation = save static data in block, remove active object
-
- If this is set alongside with m_pending_removal, removal takes
- priority.
- */
- bool m_pending_deactivation = false;
-
- /*
A getter that unifies the above to answer the question:
"Can the environment still interact with this object?"
*/
inline bool isGone() const
{ return m_pending_removal || m_pending_deactivation; }
+ inline bool isPendingRemoval() const
+ { return m_pending_removal; }
+
/*
Whether the object's static data has been stored to a block
*/
@@ -241,6 +235,9 @@ public:
v3s16 m_static_block = v3s16(1337,1337,1337);
protected:
+ virtual void onMarkedForDeactivation() {}
+ virtual void onMarkedForRemoval() {}
+
virtual void onAttach(int parent_id) {}
virtual void onDetach(int parent_id) {}
@@ -249,6 +246,27 @@ protected:
std::unordered_set<u32> m_attached_particle_spawners;
/*
+ Same purpose as m_pending_removal but for deactivation.
+ deactvation = save static data in block, remove active object
+
+ If this is set alongside with m_pending_removal, removal takes
+ priority.
+ Note: Do not assign this directly, use markForDeactivation() instead.
+ */
+ bool m_pending_deactivation = false;
+
+ /*
+ - Whether this object is to be removed when nobody knows about
+ it anymore.
+ - Removal is delayed to preserve the id for the time during which
+ it could be confused to some other object by some client.
+ - This is usually set to true by the step() method when the object wants
+ to be deleted but can be set by anything else too.
+ Note: Do not assign this directly, use markForRemoval() instead.
+ */
+ bool m_pending_removal = false;
+
+ /*
Queue of messages to be sent to the client
*/
std::queue<ActiveObjectMessage> m_messages_out;
diff --git a/src/server/unit_sao.cpp b/src/server/unit_sao.cpp
index ef0e87f2c..2371640ca 100644
--- a/src/server/unit_sao.cpp
+++ b/src/server/unit_sao.cpp
@@ -121,8 +121,8 @@ void UnitSAO::sendOutdatedData()
}
// clang-format on
-void UnitSAO::setAttachment(
- int parent_id, const std::string &bone, v3f position, v3f rotation)
+void UnitSAO::setAttachment(int parent_id, const std::string &bone, v3f position,
+ v3f rotation, bool force_visible)
{
// Attachments need to be handled on both the server and client.
// If we just attach on the server, we can only copy the position of the parent.
@@ -137,6 +137,7 @@ void UnitSAO::setAttachment(
m_attachment_bone = bone;
m_attachment_position = position;
m_attachment_rotation = rotation;
+ m_force_visible = force_visible;
m_attachment_sent = false;
if (parent_id != old_parent) {
@@ -145,13 +146,14 @@ void UnitSAO::setAttachment(
}
}
-void UnitSAO::getAttachment(
- int *parent_id, std::string *bone, v3f *position, v3f *rotation) const
+void UnitSAO::getAttachment(int *parent_id, std::string *bone, v3f *position,
+ v3f *rotation, bool *force_visible) const
{
*parent_id = m_attachment_parent_id;
*bone = m_attachment_bone;
*position = m_attachment_position;
*rotation = m_attachment_rotation;
+ *force_visible = m_force_visible;
}
void UnitSAO::clearChildAttachments()
@@ -159,7 +161,7 @@ void UnitSAO::clearChildAttachments()
for (int child_id : m_attachment_child_ids) {
// Child can be NULL if it was deleted earlier
if (ServerActiveObject *child = m_env->getActiveObject(child_id))
- child->setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0));
+ child->setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0), false);
}
m_attachment_child_ids.clear();
}
@@ -169,9 +171,9 @@ void UnitSAO::clearParentAttachment()
ServerActiveObject *parent = nullptr;
if (m_attachment_parent_id) {
parent = m_env->getActiveObject(m_attachment_parent_id);
- setAttachment(0, "", m_attachment_position, m_attachment_rotation);
+ setAttachment(0, "", m_attachment_position, m_attachment_rotation, false);
} else {
- setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0));
+ setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0), false);
}
// Do it
if (parent)
@@ -242,9 +244,10 @@ std::string UnitSAO::generateUpdateAttachmentCommand() const
writeU8(os, AO_CMD_ATTACH_TO);
// parameters
writeS16(os, m_attachment_parent_id);
- os << serializeString(m_attachment_bone);
+ os << serializeString16(m_attachment_bone);
writeV3F32(os, m_attachment_position);
writeV3F32(os, m_attachment_rotation);
+ writeU8(os, m_force_visible);
return os.str();
}
@@ -255,7 +258,7 @@ std::string UnitSAO::generateUpdateBonePositionCommand(
// command
writeU8(os, AO_CMD_SET_BONE_POSITION);
// parameters
- os << serializeString(bone);
+ os << serializeString16(bone);
writeV3F32(os, position);
writeV3F32(os, rotation);
return os.str();
@@ -291,7 +294,7 @@ std::string UnitSAO::generateUpdateArmorGroupsCommand() const
writeU8(os, AO_CMD_UPDATE_ARMOR_GROUPS);
writeU16(os, m_armor_groups.size());
for (const auto &armor_group : m_armor_groups) {
- os << serializeString(armor_group.first);
+ os << serializeString16(armor_group.first);
writeS16(os, armor_group.second);
}
return os.str();
diff --git a/src/server/unit_sao.h b/src/server/unit_sao.h
index 3cb7f0ad5..a21e055c5 100644
--- a/src/server/unit_sao.h
+++ b/src/server/unit_sao.h
@@ -64,9 +64,9 @@ public:
ServerActiveObject *getParent() const;
inline bool isAttached() const { return getParent(); }
void setAttachment(int parent_id, const std::string &bone, v3f position,
- v3f rotation);
+ v3f rotation, bool force_visible);
void getAttachment(int *parent_id, std::string *bone, v3f *position,
- v3f *rotation) const;
+ v3f *rotation, bool *force_visible) const;
void clearChildAttachments();
void clearParentAttachment();
void addAttachmentChild(int child_id);
@@ -133,4 +133,5 @@ private:
v3f m_attachment_position;
v3f m_attachment_rotation;
bool m_attachment_sent = false;
+ bool m_force_visible = false;
};
diff --git a/src/serverenvironment.cpp b/src/serverenvironment.cpp
index ad2ffc9a4..3d9ba132b 100644
--- a/src/serverenvironment.cpp
+++ b/src/serverenvironment.cpp
@@ -632,7 +632,7 @@ void ServerEnvironment::saveMeta()
// Open file and serialize
std::ostringstream ss(std::ios_base::binary);
- Settings args;
+ Settings args("EnvArgsEnd");
args.setU64("game_time", m_game_time);
args.setU64("time_of_day", getTimeOfDay());
args.setU64("last_clear_objects_time", m_last_clear_objects_time);
@@ -641,7 +641,6 @@ void ServerEnvironment::saveMeta()
m_lbm_mgr.createIntroductionTimesString());
args.setU64("day_count", m_day_count);
args.writeLines(ss);
- ss<<"EnvArgsEnd\n";
if(!fs::safeWriteToFile(path, ss.str()))
{
@@ -676,9 +675,9 @@ void ServerEnvironment::loadMeta()
throw SerializationError("Couldn't load env meta");
}
- Settings args;
+ Settings args("EnvArgsEnd");
- if (!args.parseConfigLines(is, "EnvArgsEnd")) {
+ if (!args.parseConfigLines(is)) {
throw SerializationError("ServerEnvironment::loadMeta(): "
"EnvArgsEnd not found!");
}
@@ -1066,6 +1065,91 @@ bool ServerEnvironment::swapNode(v3s16 p, const MapNode &n)
return true;
}
+u8 ServerEnvironment::findSunlight(v3s16 pos) const
+{
+ // Directions for neighbouring nodes with specified order
+ static const v3s16 dirs[] = {
+ v3s16(-1, 0, 0), v3s16(1, 0, 0), v3s16(0, 0, -1), v3s16(0, 0, 1),
+ v3s16(0, -1, 0), v3s16(0, 1, 0)
+ };
+
+ const NodeDefManager *ndef = m_server->ndef();
+
+ // found_light remembers the highest known sunlight value at pos
+ u8 found_light = 0;
+
+ struct stack_entry {
+ v3s16 pos;
+ s16 dist;
+ };
+ std::stack<stack_entry> stack;
+ stack.push({pos, 0});
+
+ std::unordered_map<s64, s8> dists;
+ dists[MapDatabase::getBlockAsInteger(pos)] = 0;
+
+ while (!stack.empty()) {
+ struct stack_entry e = stack.top();
+ stack.pop();
+
+ v3s16 currentPos = e.pos;
+ s8 dist = e.dist + 1;
+
+ for (const v3s16& off : dirs) {
+ v3s16 neighborPos = currentPos + off;
+ s64 neighborHash = MapDatabase::getBlockAsInteger(neighborPos);
+
+ // Do not walk neighborPos multiple times unless the distance to the start
+ // position is shorter
+ auto it = dists.find(neighborHash);
+ if (it != dists.end() && dist >= it->second)
+ continue;
+
+ // Position to walk
+ bool is_position_ok;
+ MapNode node = m_map->getNode(neighborPos, &is_position_ok);
+ if (!is_position_ok) {
+ // This happens very rarely because the map at currentPos is loaded
+ m_map->emergeBlock(neighborPos, false);
+ node = m_map->getNode(neighborPos, &is_position_ok);
+ if (!is_position_ok)
+ continue; // not generated
+ }
+
+ const ContentFeatures &def = ndef->get(node);
+ if (!def.sunlight_propagates) {
+ // Do not test propagation here again
+ dists[neighborHash] = -1;
+ continue;
+ }
+
+ // Sunlight could have come from here
+ dists[neighborHash] = dist;
+ u8 daylight = node.param1 & 0x0f;
+
+ // In the special case where sunlight shines from above and thus
+ // does not decrease with upwards distance, daylight is always
+ // bigger than nightlight, which never reaches 15
+ int possible_finlight = daylight - dist;
+ if (possible_finlight <= found_light) {
+ // Light from here cannot make a brighter light at currentPos than
+ // found_light
+ continue;
+ }
+
+ u8 nightlight = node.param1 >> 4;
+ if (daylight > nightlight) {
+ // Found a valid daylight
+ found_light = possible_finlight;
+ } else {
+ // Sunlight may be darker, so walk the neighbours
+ stack.push({neighborPos, dist});
+ }
+ }
+ }
+ return found_light;
+}
+
void ServerEnvironment::clearObjects(ClearObjectsMode mode)
{
infostream << "ServerEnvironment::clearObjects(): "
@@ -1079,7 +1163,7 @@ void ServerEnvironment::clearObjects(ClearObjectsMode mode)
// If known by some client, don't delete immediately
if (obj->m_known_by_count > 0) {
- obj->m_pending_removal = true;
+ obj->markForRemoval();
return false;
}
@@ -1354,8 +1438,8 @@ void ServerEnvironment::step(float dtime)
std::shuffle(output.begin(), output.end(), m_rgen);
int i = 0;
- // The time budget for ABMs is 20%.
- u32 max_time_ms = m_cache_abm_interval * 1000 / 5;
+ // determine the time budget for ABMs
+ u32 max_time_ms = m_cache_abm_interval * 1000 * m_cache_abm_time_budget;
for (const v3s16 &p : output) {
MapBlock *block = m_map->getBlockNoCreateNoEx(p);
if (!block)
@@ -1707,7 +1791,7 @@ void ServerEnvironment::removeRemovedObjects()
/*
Delete static data from block if removed
*/
- if (obj->m_pending_removal)
+ if (obj->isPendingRemoval())
deleteStaticFromBlock(obj, id, MOD_REASON_REMOVE_OBJECTS_REMOVE, false);
// If still known by clients, don't actually remove. On some future
@@ -1718,7 +1802,7 @@ void ServerEnvironment::removeRemovedObjects()
/*
Move static data from active to stored if deactivated
*/
- if (!obj->m_pending_removal && obj->m_static_exists) {
+ if (!obj->isPendingRemoval() && obj->m_static_exists) {
MapBlock *block = m_map->emergeBlock(obj->m_static_block, false);
if (block) {
const auto i = block->m_static_objects.m_active.find(id);
@@ -1887,8 +1971,8 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete)
// force_delete might be overriden per object
bool force_delete = _force_delete;
- // Do not deactivate if static data creation not allowed
- if (!force_delete && !obj->isStaticAllowed())
+ // Do not deactivate if disallowed
+ if (!force_delete && !obj->shouldUnload())
return false;
// removeRemovedObjects() is responsible for these
@@ -1906,6 +1990,7 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete)
if (!force_delete && obj->m_static_exists &&
!m_active_blocks.contains(obj->m_static_block) &&
m_active_blocks.contains(blockpos_o)) {
+
// Delete from block where object was located
deleteStaticFromBlock(obj, id, MOD_REASON_STATIC_DATA_REMOVED, false);
@@ -1917,7 +2002,10 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete)
}
// If block is still active, don't remove
- if (!force_delete && m_active_blocks.contains(blockpos_o))
+ bool still_active = obj->isStaticAllowed() ?
+ m_active_blocks.contains(blockpos_o) :
+ getMap().getBlockNoCreateNoEx(blockpos_o) != nullptr;
+ if (!force_delete && still_active)
return false;
verbosestream << "ServerEnvironment::deactivateFarObjects(): "
@@ -1980,6 +2068,10 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete)
force_delete = true;
}
+ // Regardless of what happens to the object at this point, deactivate it first.
+ // This ensures that LuaEntity on_deactivate is always called.
+ obj->markForDeactivation();
+
/*
If known by some client, set pending deactivation.
Otherwise delete it immediately.
@@ -1989,7 +2081,6 @@ void ServerEnvironment::deactivateFarObjects(bool _force_delete)
<< "object id=" << id << " is known by clients"
<< "; not deleting yet" << std::endl;
- obj->m_pending_deactivation = true;
return false;
}
diff --git a/src/serverenvironment.h b/src/serverenvironment.h
index af742e290..a11c814ed 100644
--- a/src/serverenvironment.h
+++ b/src/serverenvironment.h
@@ -190,14 +190,6 @@ enum ClearObjectsMode {
CLEAR_OBJECTS_MODE_QUICK,
};
-/*
- The server-side environment.
-
- This is not thread-safe. Server uses an environment mutex.
-*/
-
-typedef std::unordered_map<u16, ServerActiveObject *> ServerActiveObjectMap;
-
class ServerEnvironment : public Environment
{
public:
@@ -322,6 +314,9 @@ public:
bool removeNode(v3s16 p);
bool swapNode(v3s16 p, const MapNode &n);
+ // Find the daylight value at pos with a Depth First Search
+ u8 findSunlight(v3s16 pos) const;
+
// Find all active objects inside a radius around a point
void getObjectsInsideRadius(std::vector<ServerActiveObject *> &objects, const v3f &pos, float radius,
std::function<bool(ServerActiveObject *obj)> include_obj_cb)
@@ -329,6 +324,13 @@ public:
return m_ao_manager.getObjectsInsideRadius(pos, radius, objects, include_obj_cb);
}
+ // Find all active objects inside a box
+ void getObjectsInArea(std::vector<ServerActiveObject *> &objects, const aabb3f &box,
+ std::function<bool(ServerActiveObject *obj)> include_obj_cb)
+ {
+ return m_ao_manager.getObjectsInArea(box, objects, include_obj_cb);
+ }
+
// Clear objects, loading and going through every MapBlock
void clearObjects(ClearObjectsMode mode);
diff --git a/src/serverlist.cpp b/src/serverlist.cpp
index 18264e933..3bcab3d58 100644
--- a/src/serverlist.cpp
+++ b/src/serverlist.cpp
@@ -17,189 +17,19 @@ with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include <fstream>
#include <iostream>
-#include <sstream>
-#include <algorithm>
-
#include "version.h"
#include "settings.h"
#include "serverlist.h"
#include "filesys.h"
-#include "porting.h"
#include "log.h"
#include "network/networkprotocol.h"
#include <json/json.h>
#include "convert_json.h"
#include "httpfetch.h"
-#include "util/string.h"
namespace ServerList
{
-
-std::string getFilePath()
-{
- std::string serverlist_file = g_settings->get("serverlist_file");
-
- std::string dir_path = "client" DIR_DELIM "serverlist" DIR_DELIM;
- fs::CreateDir(porting::path_user + DIR_DELIM "client");
- fs::CreateDir(porting::path_user + DIR_DELIM + dir_path);
- return porting::path_user + DIR_DELIM + dir_path + serverlist_file;
-}
-
-
-std::vector<ServerListSpec> getLocal()
-{
- std::string path = ServerList::getFilePath();
- std::string liststring;
- if (fs::PathExists(path)) {
- std::ifstream istream(path.c_str());
- if (istream.is_open()) {
- std::ostringstream ostream;
- ostream << istream.rdbuf();
- liststring = ostream.str();
- istream.close();
- }
- }
-
- return deSerialize(liststring);
-}
-
-
-std::vector<ServerListSpec> getOnline()
-{
- std::ostringstream geturl;
-
- u16 proto_version_min = CLIENT_PROTOCOL_VERSION_MIN;
-
- geturl << g_settings->get("serverlist_url") <<
- "/list?proto_version_min=" << proto_version_min <<
- "&proto_version_max=" << CLIENT_PROTOCOL_VERSION_MAX;
- Json::Value root = fetchJsonValue(geturl.str(), NULL);
-
- std::vector<ServerListSpec> server_list;
-
- if (!root.isObject()) {
- return server_list;
- }
-
- root = root["list"];
- if (!root.isArray()) {
- return server_list;
- }
-
- for (const Json::Value &i : root) {
- if (i.isObject()) {
- server_list.push_back(i);
- }
- }
-
- return server_list;
-}
-
-
-// Delete a server from the local favorites list
-bool deleteEntry(const ServerListSpec &server)
-{
- std::vector<ServerListSpec> serverlist = ServerList::getLocal();
- for (std::vector<ServerListSpec>::iterator it = serverlist.begin();
- it != serverlist.end();) {
- if ((*it)["address"] == server["address"] &&
- (*it)["port"] == server["port"]) {
- it = serverlist.erase(it);
- } else {
- ++it;
- }
- }
-
- std::string path = ServerList::getFilePath();
- std::ostringstream ss(std::ios_base::binary);
- ss << ServerList::serialize(serverlist);
- if (!fs::safeWriteToFile(path, ss.str()))
- return false;
- return true;
-}
-
-// Insert a server to the local favorites list
-bool insert(const ServerListSpec &server)
-{
- // Remove duplicates
- ServerList::deleteEntry(server);
-
- std::vector<ServerListSpec> serverlist = ServerList::getLocal();
-
- // Insert new server at the top of the list
- serverlist.insert(serverlist.begin(), server);
-
- std::string path = ServerList::getFilePath();
- std::ostringstream ss(std::ios_base::binary);
- ss << ServerList::serialize(serverlist);
- if (!fs::safeWriteToFile(path, ss.str()))
- return false;
-
- return true;
-}
-
-std::vector<ServerListSpec> deSerialize(const std::string &liststring)
-{
- std::vector<ServerListSpec> serverlist;
- std::istringstream stream(liststring);
- std::string line, tmp;
- while (std::getline(stream, line)) {
- std::transform(line.begin(), line.end(), line.begin(), ::toupper);
- if (line == "[SERVER]") {
- ServerListSpec server;
- std::getline(stream, tmp);
- server["name"] = tmp;
- std::getline(stream, tmp);
- server["address"] = tmp;
- std::getline(stream, tmp);
- server["port"] = tmp;
- bool unique = true;
- for (const ServerListSpec &added : serverlist) {
- if (server["name"] == added["name"]
- && server["port"] == added["port"]) {
- unique = false;
- break;
- }
- }
- if (!unique)
- continue;
- std::getline(stream, tmp);
- server["description"] = tmp;
- serverlist.push_back(server);
- }
- }
- return serverlist;
-}
-
-const std::string serialize(const std::vector<ServerListSpec> &serverlist)
-{
- std::string liststring;
- for (const ServerListSpec &it : serverlist) {
- liststring += "[server]\n";
- liststring += it["name"].asString() + '\n';
- liststring += it["address"].asString() + '\n';
- liststring += it["port"].asString() + '\n';
- liststring += it["description"].asString() + '\n';
- liststring += '\n';
- }
- return liststring;
-}
-
-const std::string serializeJson(const std::vector<ServerListSpec> &serverlist)
-{
- Json::Value root;
- Json::Value list(Json::arrayValue);
- for (const ServerListSpec &it : serverlist) {
- list.append(it);
- }
- root["list"] = list;
-
- return fastWriteJson(root);
-}
-
-
#if USE_CURL
void sendAnnounce(AnnounceAction action,
const u16 port,
@@ -253,19 +83,26 @@ void sendAnnounce(AnnounceAction action,
for (const ModSpec &mod : mods) {
server["mods"].append(mod.name);
}
- actionstream << "Announcing to " << g_settings->get("serverlist_url") << std::endl;
} else if (action == AA_UPDATE) {
if (lag)
server["lag"] = lag;
}
+ if (action == AA_START) {
+ actionstream << "Announcing " << aa_names[action] << " to " <<
+ g_settings->get("serverlist_url") << std::endl;
+ } else {
+ infostream << "Announcing " << aa_names[action] << " to " <<
+ g_settings->get("serverlist_url") << std::endl;
+ }
+
HTTPFetchRequest fetch_request;
fetch_request.url = g_settings->get("serverlist_url") + std::string("/announce");
- fetch_request.post_fields["json"] = fastWriteJson(server);
+ fetch_request.method = HTTP_POST;
+ fetch_request.fields["json"] = fastWriteJson(server);
fetch_request.multipart = true;
httpfetch_async(fetch_request);
}
#endif
} // namespace ServerList
-
diff --git a/src/serverlist.h b/src/serverlist.h
index 2b82b7431..4a0bd5efa 100644
--- a/src/serverlist.h
+++ b/src/serverlist.h
@@ -24,21 +24,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#pragma once
-typedef Json::Value ServerListSpec;
-
namespace ServerList
{
-std::vector<ServerListSpec> getLocal();
-std::vector<ServerListSpec> getOnline();
-
-bool deleteEntry(const ServerListSpec &server);
-bool insert(const ServerListSpec &server);
-
-std::vector<ServerListSpec> deSerialize(const std::string &liststring);
-const std::string serialize(const std::vector<ServerListSpec> &serverlist);
-std::vector<ServerListSpec> deSerializeJson(const std::string &liststring);
-const std::string serializeJson(const std::vector<ServerListSpec> &serverlist);
-
#if USE_CURL
enum AnnounceAction {AA_START, AA_UPDATE, AA_DELETE};
void sendAnnounce(AnnounceAction, u16 port,
diff --git a/src/settings.cpp b/src/settings.cpp
index 55404319e..3415ff818 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -33,21 +33,50 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <cctype>
#include <algorithm>
-static Settings main_settings;
-Settings *g_settings = &main_settings;
+Settings *g_settings = nullptr; // Populated in main()
std::string g_settings_path;
-Settings::~Settings()
+Settings *Settings::s_layers[SL_TOTAL_COUNT] = {0}; // Zeroed by compiler
+std::unordered_map<std::string, const FlagDesc *> Settings::s_flags;
+
+
+Settings *Settings::createLayer(SettingsLayer sl, const std::string &end_tag)
{
- clear();
+ if ((int)sl < 0 || sl >= SL_TOTAL_COUNT)
+ throw new BaseException("Invalid settings layer");
+
+ Settings *&pos = s_layers[(size_t)sl];
+ if (pos)
+ throw new BaseException("Setting layer " + std::to_string(sl) + " already exists");
+
+ pos = new Settings(end_tag);
+ pos->m_settingslayer = sl;
+
+ if (sl == SL_GLOBAL)
+ g_settings = pos;
+ return pos;
}
-Settings & Settings::operator += (const Settings &other)
+Settings *Settings::getLayer(SettingsLayer sl)
{
- update(other);
+ sanity_check((int)sl >= 0 && sl < SL_TOTAL_COUNT);
+ return s_layers[(size_t)sl];
+}
- return *this;
+
+Settings::~Settings()
+{
+ MutexAutoLock lock(m_mutex);
+
+ if (m_settingslayer < SL_TOTAL_COUNT)
+ s_layers[(size_t)m_settingslayer] = nullptr;
+
+ // Compatibility
+ if (m_settingslayer == SL_GLOBAL)
+ g_settings = nullptr;
+
+ clearNoLock();
}
@@ -56,11 +85,16 @@ Settings & Settings::operator = (const Settings &other)
if (&other == this)
return *this;
+ // TODO: Avoid copying Settings objects. Make this private.
+ FATAL_ERROR_IF(m_settingslayer != SL_TOTAL_COUNT && other.m_settingslayer != SL_TOTAL_COUNT,
+ ("Tried to copy unique Setting layer " + std::to_string(m_settingslayer)).c_str());
+
MutexAutoLock lock(m_mutex);
MutexAutoLock lock2(other.m_mutex);
clearNoLock();
- updateNoLock(other);
+ m_settings = other.m_settings;
+ m_callbacks = other.m_callbacks;
return *this;
}
@@ -124,11 +158,11 @@ bool Settings::readConfigFile(const char *filename)
if (!is.good())
return false;
- return parseConfigLines(is, "");
+ return parseConfigLines(is);
}
-bool Settings::parseConfigLines(std::istream &is, const std::string &end)
+bool Settings::parseConfigLines(std::istream &is)
{
MutexAutoLock lock(m_mutex);
@@ -136,7 +170,7 @@ bool Settings::parseConfigLines(std::istream &is, const std::string &end)
while (is.good()) {
std::getline(is, line);
- SettingsParseEvent event = parseConfigObject(line, end, name, value);
+ SettingsParseEvent event = parseConfigObject(line, name, value);
switch (event) {
case SPE_NONE:
@@ -149,8 +183,8 @@ bool Settings::parseConfigLines(std::istream &is, const std::string &end)
case SPE_END:
return true;
case SPE_GROUP: {
- Settings *group = new Settings;
- if (!group->parseConfigLines(is, "}")) {
+ Settings *group = new Settings("}");
+ if (!group->parseConfigLines(is)) {
delete group;
return false;
}
@@ -163,7 +197,8 @@ bool Settings::parseConfigLines(std::istream &is, const std::string &end)
}
}
- return end.empty();
+ // false (failure) if end tag not found
+ return m_end_tag.empty();
}
@@ -173,6 +208,14 @@ void Settings::writeLines(std::ostream &os, u32 tab_depth) const
for (const auto &setting_it : m_settings)
printEntry(os, setting_it.first, setting_it.second, tab_depth);
+
+ // For groups this must be "}" !
+ if (!m_end_tag.empty()) {
+ for (u32 i = 0; i < tab_depth; i++)
+ os << "\t";
+
+ os << m_end_tag << "\n";
+ }
}
@@ -187,9 +230,7 @@ void Settings::printEntry(std::ostream &os, const std::string &name,
entry.group->writeLines(os, tab_depth + 1);
- for (u32 i = 0; i != tab_depth; i++)
- os << "\t";
- os << "}\n";
+ // Closing bracket handled by writeLines
} else {
os << name << " = ";
@@ -201,8 +242,7 @@ void Settings::printEntry(std::ostream &os, const std::string &name,
}
-bool Settings::updateConfigObject(std::istream &is, std::ostream &os,
- const std::string &end, u32 tab_depth)
+bool Settings::updateConfigObject(std::istream &is, std::ostream &os, u32 tab_depth)
{
SettingEntries::const_iterator it;
std::set<std::string> present_entries;
@@ -214,11 +254,11 @@ bool Settings::updateConfigObject(std::istream &is, std::ostream &os,
// in the object if existing
while (is.good() && !end_found) {
std::getline(is, line);
- SettingsParseEvent event = parseConfigObject(line, end, name, value);
+ SettingsParseEvent event = parseConfigObject(line, name, value);
switch (event) {
case SPE_END:
- os << line << (is.eof() ? "" : "\n");
+ // Skip end tag. Append later.
end_found = true;
break;
case SPE_MULTILINE:
@@ -246,14 +286,13 @@ bool Settings::updateConfigObject(std::istream &is, std::ostream &os,
if (it != m_settings.end() && it->second.is_group) {
os << line << "\n";
sanity_check(it->second.group != NULL);
- was_modified |= it->second.group->updateConfigObject(is, os,
- "}", tab_depth + 1);
+ was_modified |= it->second.group->updateConfigObject(is, os, tab_depth + 1);
} else if (it == m_settings.end()) {
// Remove by skipping
was_modified = true;
- Settings removed_group; // Move 'is' to group end
+ Settings removed_group("}"); // Move 'is' to group end
std::stringstream ss;
- removed_group.updateConfigObject(is, ss, "}", tab_depth + 1);
+ removed_group.updateConfigObject(is, ss, tab_depth + 1);
break;
} else {
printEntry(os, name, it->second, tab_depth);
@@ -267,6 +306,9 @@ bool Settings::updateConfigObject(std::istream &is, std::ostream &os,
}
}
+ if (!line.empty() && is.eof())
+ os << "\n";
+
// Add any settings in the object that don't exist in the config file yet
for (it = m_settings.begin(); it != m_settings.end(); ++it) {
if (present_entries.find(it->first) != present_entries.end())
@@ -276,6 +318,12 @@ bool Settings::updateConfigObject(std::istream &is, std::ostream &os,
was_modified = true;
}
+ // Append ending tag
+ if (!m_end_tag.empty()) {
+ os << m_end_tag << "\n";
+ was_modified |= !end_found;
+ }
+
return was_modified;
}
@@ -287,7 +335,7 @@ bool Settings::updateConfigFile(const char *filename)
std::ifstream is(filename);
std::ostringstream os(std::ios_base::binary);
- bool was_modified = updateConfigObject(is, os, "");
+ bool was_modified = updateConfigObject(is, os);
is.close();
if (!was_modified)
@@ -360,29 +408,37 @@ bool Settings::parseCommandLine(int argc, char *argv[],
* Getters *
***********/
-
-const SettingsEntry &Settings::getEntry(const std::string &name) const
+Settings *Settings::getParent() const
{
- MutexAutoLock lock(m_mutex);
+ // If the Settings object is within the hierarchy structure,
+ // iterate towards the origin (0) to find the next fallback layer
+ if (m_settingslayer >= SL_TOTAL_COUNT)
+ return nullptr;
- SettingEntries::const_iterator n;
- if ((n = m_settings.find(name)) == m_settings.end()) {
- if ((n = m_defaults.find(name)) == m_defaults.end())
- throw SettingNotFoundException("Setting [" + name + "] not found.");
+ for (int i = (int)m_settingslayer - 1; i >= 0; --i) {
+ if (s_layers[i])
+ return s_layers[i];
}
- return n->second;
+
+ // No parent
+ return nullptr;
}
-const SettingsEntry &Settings::getEntryDefault(const std::string &name) const
+const SettingsEntry &Settings::getEntry(const std::string &name) const
{
- MutexAutoLock lock(m_mutex);
+ {
+ MutexAutoLock lock(m_mutex);
- SettingEntries::const_iterator n;
- if ((n = m_defaults.find(name)) == m_defaults.end()) {
- throw SettingNotFoundException("Setting [" + name + "] not found.");
+ SettingEntries::const_iterator n;
+ if ((n = m_settings.find(name)) != m_settings.end())
+ return n->second;
}
- return n->second;
+
+ if (auto parent = getParent())
+ return parent->getEntry(name);
+
+ throw SettingNotFoundException("Setting [" + name + "] not found.");
}
@@ -404,15 +460,6 @@ const std::string &Settings::get(const std::string &name) const
}
-const std::string &Settings::getDefault(const std::string &name) const
-{
- const SettingsEntry &entry = getEntryDefault(name);
- if (entry.is_group)
- throw SettingNotFoundException("Setting [" + name + "] is a group.");
- return entry.value;
-}
-
-
bool Settings::getBool(const std::string &name) const
{
return is_yes(get(name));
@@ -485,56 +532,38 @@ u32 Settings::getFlagStr(const std::string &name, const FlagDesc *flagdesc,
u32 *flagmask) const
{
u32 flags = 0;
- u32 mask_default = 0;
- std::string value;
// Read default value (if there is any)
- if (getDefaultNoEx(name, value)) {
- flags = std::isdigit(value[0])
- ? stoi(value)
- : readFlagString(value, flagdesc, &mask_default);
- }
+ if (auto parent = getParent())
+ flags = parent->getFlagStr(name, flagdesc, flagmask);
// Apply custom flags "on top"
- value = get(name);
- u32 flags_user;
- u32 mask_user = U32_MAX;
- flags_user = std::isdigit(value[0])
- ? stoi(value) // Override default
- : readFlagString(value, flagdesc, &mask_user);
-
- flags &= ~mask_user;
- flags |= flags_user;
-
- if (flagmask)
- *flagmask = mask_default | mask_user;
-
- return flags;
-}
-
-// N.B. if getStruct() is used to read a non-POD aggregate type,
-// the behavior is undefined.
-bool Settings::getStruct(const std::string &name, const std::string &format,
- void *out, size_t olen) const
-{
- std::string valstr;
-
- try {
- valstr = get(name);
- } catch (SettingNotFoundException &e) {
- return false;
+ if (m_settings.find(name) != m_settings.end()) {
+ std::string value = get(name);
+ u32 flags_user;
+ u32 mask_user = U32_MAX;
+ flags_user = std::isdigit(value[0])
+ ? stoi(value) // Override default
+ : readFlagString(value, flagdesc, &mask_user);
+
+ flags &= ~mask_user;
+ flags |= flags_user;
+ if (flagmask)
+ *flagmask |= mask_user;
}
- if (!deSerializeStringToStruct(valstr, format, out, olen))
- return false;
-
- return true;
+ return flags;
}
bool Settings::getNoiseParams(const std::string &name, NoiseParams &np) const
{
- return getNoiseParamsFromGroup(name, np) || getNoiseParamsFromValue(name, np);
+ if (getNoiseParamsFromGroup(name, np) || getNoiseParamsFromValue(name, np))
+ return true;
+ if (auto parent = getParent())
+ return parent->getNoiseParams(name, np);
+
+ return false;
}
@@ -546,6 +575,7 @@ bool Settings::getNoiseParamsFromValue(const std::string &name,
if (!getNoEx(name, value))
return false;
+ // Format: f32,f32,(f32,f32,f32),s32,s32,f32[,f32]
Strfnd f(value);
np.offset = stof(f.next(","));
@@ -595,13 +625,18 @@ bool Settings::exists(const std::string &name) const
{
MutexAutoLock lock(m_mutex);
- return (m_settings.find(name) != m_settings.end() ||
- m_defaults.find(name) != m_defaults.end());
+ if (m_settings.find(name) != m_settings.end())
+ return true;
+ if (auto parent = getParent())
+ return parent->exists(name);
+ return false;
}
std::vector<std::string> Settings::getNames() const
{
+ MutexAutoLock lock(m_mutex);
+
std::vector<std::string> names;
for (const auto &settings_it : m_settings) {
names.push_back(settings_it.first);
@@ -615,28 +650,6 @@ std::vector<std::string> Settings::getNames() const
* Getters that don't throw exceptions *
***************************************/
-bool Settings::getEntryNoEx(const std::string &name, SettingsEntry &val) const
-{
- try {
- val = getEntry(name);
- return true;
- } catch (SettingNotFoundException &e) {
- return false;
- }
-}
-
-
-bool Settings::getEntryDefaultNoEx(const std::string &name, SettingsEntry &val) const
-{
- try {
- val = getEntryDefault(name);
- return true;
- } catch (SettingNotFoundException &e) {
- return false;
- }
-}
-
-
bool Settings::getGroupNoEx(const std::string &name, Settings *&val) const
{
try {
@@ -659,17 +672,6 @@ bool Settings::getNoEx(const std::string &name, std::string &val) const
}
-bool Settings::getDefaultNoEx(const std::string &name, std::string &val) const
-{
- try {
- val = getDefault(name);
- return true;
- } catch (SettingNotFoundException &e) {
- return false;
- }
-}
-
-
bool Settings::getFlag(const std::string &name) const
{
try {
@@ -780,24 +782,25 @@ bool Settings::getFlagStrNoEx(const std::string &name, u32 &val,
***********/
bool Settings::setEntry(const std::string &name, const void *data,
- bool set_group, bool set_default)
+ bool set_group)
{
- Settings *old_group = NULL;
-
if (!checkNameValid(name))
return false;
if (!set_group && !checkValueValid(*(const std::string *)data))
return false;
+ Settings *old_group = NULL;
{
MutexAutoLock lock(m_mutex);
- SettingsEntry &entry = set_default ? m_defaults[name] : m_settings[name];
+ SettingsEntry &entry = m_settings[name];
old_group = entry.group;
entry.value = set_group ? "" : *(const std::string *)data;
entry.group = set_group ? *(Settings **)data : NULL;
entry.is_group = set_group;
+ if (set_group)
+ entry.group->m_end_tag = "}";
}
delete old_group;
@@ -808,7 +811,7 @@ bool Settings::setEntry(const std::string &name, const void *data,
bool Settings::set(const std::string &name, const std::string &value)
{
- if (!setEntry(name, &value, false, false))
+ if (!setEntry(name, &value, false))
return false;
doCallbacks(name);
@@ -816,21 +819,20 @@ bool Settings::set(const std::string &name, const std::string &value)
}
+// TODO: Remove this function
bool Settings::setDefault(const std::string &name, const std::string &value)
{
- return setEntry(name, &value, false, true);
-}
-
-
-bool Settings::setGroup(const std::string &name, Settings *group)
-{
- return setEntry(name, &group, true, false);
+ return getLayer(SL_DEFAULTS)->set(name, value);
}
-bool Settings::setGroupDefault(const std::string &name, Settings *group)
+bool Settings::setGroup(const std::string &name, const Settings &group)
{
- return setEntry(name, &group, true, true);
+ // Settings must own the group pointer
+ // avoid double-free by copying the source
+ Settings *copy = new Settings();
+ *copy = group;
+ return setEntry(name, &copy, true);
}
@@ -900,19 +902,7 @@ bool Settings::setFlagStr(const std::string &name, u32 flags,
}
-bool Settings::setStruct(const std::string &name, const std::string &format,
- void *value)
-{
- std::string structstr;
- if (!serializeStructToString(&structstr, format, value))
- return false;
-
- return set(name, structstr);
-}
-
-
-bool Settings::setNoiseParams(const std::string &name,
- const NoiseParams &np, bool set_default)
+bool Settings::setNoiseParams(const std::string &name, const NoiseParams &np)
{
Settings *group = new Settings;
@@ -925,7 +915,7 @@ bool Settings::setNoiseParams(const std::string &name,
group->setFloat("lacunarity", np.lacunarity);
group->setFlagStr("flags", np.flags, flagdesc_noiseparams, np.flags);
- return setEntry(name, &group, true, set_default);
+ return setEntry(name, &group, true);
}
@@ -949,46 +939,8 @@ bool Settings::remove(const std::string &name)
}
-void Settings::clear()
-{
- MutexAutoLock lock(m_mutex);
- clearNoLock();
-}
-
-void Settings::clearDefaults()
-{
- MutexAutoLock lock(m_mutex);
- clearDefaultsNoLock();
-}
-
-void Settings::updateValue(const Settings &other, const std::string &name)
-{
- if (&other == this)
- return;
-
- MutexAutoLock lock(m_mutex);
-
- try {
- m_settings[name] = other.get(name);
- } catch (SettingNotFoundException &e) {
- }
-}
-
-
-void Settings::update(const Settings &other)
-{
- if (&other == this)
- return;
-
- MutexAutoLock lock(m_mutex);
- MutexAutoLock lock2(other.m_mutex);
-
- updateNoLock(other);
-}
-
-
SettingsParseEvent Settings::parseConfigObject(const std::string &line,
- const std::string &end, std::string &name, std::string &value)
+ std::string &name, std::string &value)
{
std::string trimmed_line = trim(line);
@@ -996,7 +948,7 @@ SettingsParseEvent Settings::parseConfigObject(const std::string &line,
return SPE_NONE;
if (trimmed_line[0] == '#')
return SPE_COMMENT;
- if (trimmed_line == end)
+ if (trimmed_line == m_end_tag)
return SPE_END;
size_t pos = trimmed_line.find('=');
@@ -1015,67 +967,26 @@ SettingsParseEvent Settings::parseConfigObject(const std::string &line,
}
-void Settings::updateNoLock(const Settings &other)
-{
- m_settings.insert(other.m_settings.begin(), other.m_settings.end());
- m_defaults.insert(other.m_defaults.begin(), other.m_defaults.end());
-}
-
-
void Settings::clearNoLock()
{
-
for (SettingEntries::const_iterator it = m_settings.begin();
it != m_settings.end(); ++it)
delete it->second.group;
m_settings.clear();
-
- clearDefaultsNoLock();
}
-void Settings::clearDefaultsNoLock()
-{
- for (SettingEntries::const_iterator it = m_defaults.begin();
- it != m_defaults.end(); ++it)
- delete it->second.group;
- m_defaults.clear();
-}
void Settings::setDefault(const std::string &name, const FlagDesc *flagdesc,
u32 flags)
{
- m_flags[name] = flagdesc;
+ s_flags[name] = flagdesc;
setDefault(name, writeFlagString(flags, flagdesc, U32_MAX));
}
-void Settings::overrideDefaults(Settings *other)
-{
- for (const auto &setting : other->m_settings) {
- if (setting.second.is_group) {
- setGroupDefault(setting.first, setting.second.group);
- continue;
- }
- const FlagDesc *flagdesc = getFlagDescFallback(setting.first);
- if (flagdesc) {
- // Flags cannot be copied directly.
- // 1) Get the current set flags
- u32 flags = getFlagStr(setting.first, flagdesc, nullptr);
- // 2) Set the flags as defaults
- other->setDefault(setting.first, flagdesc, flags);
- // 3) Get the newly set flags and override the default setting value
- setDefault(setting.first, flagdesc,
- other->getFlagStr(setting.first, flagdesc, nullptr));
- continue;
- }
- // Also covers FlagDesc settings
- setDefault(setting.first, setting.second.value);
- }
-}
-
const FlagDesc *Settings::getFlagDescFallback(const std::string &name) const
{
- auto it = m_flags.find(name);
- return it == m_flags.end() ? nullptr : it->second;
+ auto it = s_flags.find(name);
+ return it == s_flags.end() ? nullptr : it->second;
}
void Settings::registerChangedCallback(const std::string &name,
@@ -1102,6 +1013,19 @@ void Settings::deregisterChangedCallback(const std::string &name,
}
}
+void Settings::removeSecureSettings()
+{
+ for (const auto &name : getNames()) {
+ if (name.compare(0, 7, "secure.") != 0)
+ continue;
+
+ errorstream << "Secure setting " << name
+ << " isn't allowed, so was ignored."
+ << std::endl;
+ remove(name);
+ }
+}
+
void Settings::doCallbacks(const std::string &name) const
{
MutexAutoLock lock(m_callback_mutex);
diff --git a/src/settings.h b/src/settings.h
index 0c9a155db..b5e859ee0 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -30,7 +30,7 @@ class Settings;
struct NoiseParams;
// Global objects
-extern Settings *g_settings;
+extern Settings *g_settings; // Same as Settings::getLayer(SL_GLOBAL);
extern std::string g_settings_path;
// Type for a settings changed callback function
@@ -60,6 +60,14 @@ enum SettingsParseEvent {
SPE_MULTILINE,
};
+enum SettingsLayer {
+ SL_DEFAULTS,
+ SL_GAME,
+ SL_GLOBAL,
+ SL_MAP,
+ SL_TOTAL_COUNT
+};
+
struct ValueSpec {
ValueSpec(ValueType a_type, const char *a_help=NULL)
{
@@ -92,8 +100,13 @@ typedef std::unordered_map<std::string, SettingsEntry> SettingEntries;
class Settings {
public:
- Settings() = default;
+ static Settings *createLayer(SettingsLayer sl, const std::string &end_tag = "");
+ static Settings *getLayer(SettingsLayer sl);
+ SettingsLayer getLayerType() const { return m_settingslayer; }
+ Settings(const std::string &end_tag = "") :
+ m_end_tag(end_tag)
+ {}
~Settings();
Settings & operator += (const Settings &other);
@@ -110,29 +123,15 @@ public:
// NOTE: Types of allowed_options are ignored. Returns success.
bool parseCommandLine(int argc, char *argv[],
std::map<std::string, ValueSpec> &allowed_options);
- bool parseConfigLines(std::istream &is, const std::string &end = "");
+ bool parseConfigLines(std::istream &is);
void writeLines(std::ostream &os, u32 tab_depth=0) const;
- SettingsParseEvent parseConfigObject(const std::string &line,
- const std::string &end, std::string &name, std::string &value);
- bool updateConfigObject(std::istream &is, std::ostream &os,
- const std::string &end, u32 tab_depth=0);
-
- static bool checkNameValid(const std::string &name);
- static bool checkValueValid(const std::string &value);
- static std::string getMultiline(std::istream &is, size_t *num_lines=NULL);
- static void printEntry(std::ostream &os, const std::string &name,
- const SettingsEntry &entry, u32 tab_depth=0);
-
/***********
* Getters *
***********/
- const SettingsEntry &getEntry(const std::string &name) const;
- const SettingsEntry &getEntryDefault(const std::string &name) const;
Settings *getGroup(const std::string &name) const;
const std::string &get(const std::string &name) const;
- const std::string &getDefault(const std::string &name) const;
bool getBool(const std::string &name) const;
u16 getU16(const std::string &name) const;
s16 getS16(const std::string &name) const;
@@ -144,10 +143,6 @@ public:
v3f getV3F(const std::string &name) const;
u32 getFlagStr(const std::string &name, const FlagDesc *flagdesc,
u32 *flagmask) const;
- // N.B. if getStruct() is used to read a non-POD aggregate type,
- // the behavior is undefined.
- bool getStruct(const std::string &name, const std::string &format,
- void *out, size_t olen) const;
bool getNoiseParams(const std::string &name, NoiseParams &np) const;
bool getNoiseParamsFromValue(const std::string &name, NoiseParams &np) const;
bool getNoiseParamsFromGroup(const std::string &name, NoiseParams &np) const;
@@ -161,11 +156,8 @@ public:
* Getters that don't throw exceptions *
***************************************/
- bool getEntryNoEx(const std::string &name, SettingsEntry &val) const;
- bool getEntryDefaultNoEx(const std::string &name, SettingsEntry &val) const;
bool getGroupNoEx(const std::string &name, Settings *&val) const;
bool getNoEx(const std::string &name, std::string &val) const;
- bool getDefaultNoEx(const std::string &name, std::string &val) const;
bool getFlag(const std::string &name) const;
bool getU16NoEx(const std::string &name, u16 &val) const;
bool getS16NoEx(const std::string &name, s16 &val) const;
@@ -189,11 +181,10 @@ public:
// N.B. Groups not allocated with new must be set to NULL in the settings
// tree before object destruction.
bool setEntry(const std::string &name, const void *entry,
- bool set_group, bool set_default);
+ bool set_group);
bool set(const std::string &name, const std::string &value);
bool setDefault(const std::string &name, const std::string &value);
- bool setGroup(const std::string &name, Settings *group);
- bool setGroupDefault(const std::string &name, Settings *group);
+ bool setGroup(const std::string &name, const Settings &group);
bool setBool(const std::string &name, bool value);
bool setS16(const std::string &name, s16 value);
bool setU16(const std::string &name, u16 value);
@@ -204,26 +195,16 @@ public:
bool setV3F(const std::string &name, v3f value);
bool setFlagStr(const std::string &name, u32 flags,
const FlagDesc *flagdesc = nullptr, u32 flagmask = U32_MAX);
- bool setNoiseParams(const std::string &name, const NoiseParams &np,
- bool set_default=false);
- // N.B. if setStruct() is used to write a non-POD aggregate type,
- // the behavior is undefined.
- bool setStruct(const std::string &name, const std::string &format, void *value);
+ bool setNoiseParams(const std::string &name, const NoiseParams &np);
// remove a setting
bool remove(const std::string &name);
- void clear();
- void clearDefaults();
- void updateValue(const Settings &other, const std::string &name);
- void update(const Settings &other);
/**************
* Miscellany *
**************/
void setDefault(const std::string &name, const FlagDesc *flagdesc, u32 flags);
- // Takes the provided setting values and uses them as new defaults
- void overrideDefaults(Settings *other);
const FlagDesc *getFlagDescFallback(const std::string &name) const;
void registerChangedCallback(const std::string &name,
@@ -231,7 +212,34 @@ public:
void deregisterChangedCallback(const std::string &name,
SettingsChangedCallback cbf, void *userdata = NULL);
+ void removeSecureSettings();
+
private:
+ /***********************
+ * Reading and writing *
+ ***********************/
+
+ SettingsParseEvent parseConfigObject(const std::string &line,
+ std::string &name, std::string &value);
+ bool updateConfigObject(std::istream &is, std::ostream &os,
+ u32 tab_depth=0);
+
+ static bool checkNameValid(const std::string &name);
+ static bool checkValueValid(const std::string &value);
+ static std::string getMultiline(std::istream &is, size_t *num_lines=NULL);
+ static void printEntry(std::ostream &os, const std::string &name,
+ const SettingsEntry &entry, u32 tab_depth=0);
+
+ /***********
+ * Getters *
+ ***********/
+ Settings *getParent() const;
+
+ const SettingsEntry &getEntry(const std::string &name) const;
+
+ // Allow TestSettings to run sanity checks using private functions.
+ friend class TestSettings;
+
void updateNoLock(const Settings &other);
void clearNoLock();
void clearDefaultsNoLock();
@@ -239,14 +247,15 @@ private:
void doCallbacks(const std::string &name) const;
SettingEntries m_settings;
- SettingEntries m_defaults;
- std::unordered_map<std::string, const FlagDesc *> m_flags;
-
SettingsCallbackMap m_callbacks;
+ std::string m_end_tag;
mutable std::mutex m_callback_mutex;
// All methods that access m_settings/m_defaults directly should lock this.
mutable std::mutex m_mutex;
+ static Settings *s_layers[SL_TOTAL_COUNT];
+ SettingsLayer m_settingslayer = SL_TOTAL_COUNT;
+ static std::unordered_map<std::string, const FlagDesc *> s_flags;
};
diff --git a/src/settings_translation_file.cpp b/src/settings_translation_file.cpp
index febfbb9d3..317186e94 100644
--- a/src/settings_translation_file.cpp
+++ b/src/settings_translation_file.cpp
@@ -30,8 +30,8 @@ fake_function() {
gettext("Double-tapping the jump key toggles fly mode.");
gettext("Always fly and fast");
gettext("If disabled, \"special\" key is used to fly fast if both fly and fast mode are\nenabled.");
- gettext("Rightclick repetition interval");
- gettext("The time in seconds it takes between repeated right clicks when holding the right\nmouse button.");
+ gettext("Place repetition interval");
+ gettext("The time in seconds it takes between repeated node placements when holding\nthe place button.");
gettext("Automatic jumping");
gettext("Automatically jump up single-node obstacles.");
gettext("Safe digging and placing");
@@ -54,6 +54,8 @@ fake_function() {
gettext("The type of joystick");
gettext("Joystick button repetition interval");
gettext("The time in seconds it takes between repeated events\nwhen holding down a joystick button combination.");
+ gettext("Joystick deadzone");
+ gettext("The deadzone of the joystick");
gettext("Joystick frustum sensitivity");
gettext("The sensitivity of the joystick axes for moving the\ningame view frustum around.");
gettext("Forward key");
@@ -68,6 +70,10 @@ fake_function() {
gettext("Key for jumping.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
gettext("Sneak key");
gettext("Key for sneaking.\nAlso used for climbing down and descending in water if aux1_descends is disabled.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
+ gettext("Dig key");
+ gettext("Key for digging.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
+ gettext("Place key");
+ gettext("Key for placing.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
gettext("Inventory key");
gettext("Key for opening the inventory.\nSee http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3");
gettext("Special key");
@@ -197,6 +203,8 @@ fake_function() {
gettext("Graphics");
gettext("In-Game");
gettext("Basic");
+ gettext("Show nametag backgrounds by default");
+ gettext("Whether nametag backgrounds should be shown by default.\nMods may still set a background.");
gettext("VBO");
gettext("Enable vertex buffer objects.\nThis should greatly improve graphics performance.");
gettext("Fog");
@@ -229,7 +237,7 @@ fake_function() {
gettext("Minimum texture size");
gettext("When using bilinear/trilinear/anisotropic filters, low-resolution textures\ncan be blurred, so automatically upscale them with nearest-neighbor\ninterpolation to preserve crisp pixels. This sets the minimum texture size\nfor the upscaled textures; higher values look sharper, but require more\nmemory. Powers of 2 are recommended. Setting this higher than 1 may not\nhave a visible effect unless bilinear/trilinear/anisotropic filtering is\nenabled.\nThis is also used as the base node texture size for world-aligned\ntexture autoscaling.");
gettext("FSAA");
- gettext("Experimental option, might cause visible spaces between blocks\nwhen set to higher number than 0.");
+ gettext("Use multi-sample antialiasing (MSAA) to smooth out block edges.\nThis algorithm smooths out the 3D viewport while keeping the image sharp,\nbut it doesn't affect the insides of textures\n(which is especially noticeable with transparent textures).\nVisible spaces appear between nodes when shaders are disabled.\nIf set to 0, MSAA is disabled.\nA restart is required after changing this option.");
gettext("Undersampling");
gettext("Undersampling is similar to using a lower screen resolution, but it applies\nto the game world only, keeping the GUI intact.\nIt should give a significant performance boost at the cost of less detailed image.\nHigher values result in a less detailed image.");
gettext("Shaders");
@@ -240,26 +248,6 @@ fake_function() {
gettext("Tone Mapping");
gettext("Filmic tone mapping");
gettext("Enables Hable's 'Uncharted 2' filmic tone mapping.\nSimulates the tone curve of photographic film and how this approximates the\nappearance of high dynamic range images. Mid-range contrast is slightly\nenhanced, highlights and shadows are gradually compressed.");
- gettext("Bumpmapping");
- gettext("Bumpmapping");
- gettext("Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack\nor need to be auto-generated.\nRequires shaders to be enabled.");
- gettext("Generate normalmaps");
- gettext("Enables on the fly normalmap generation (Emboss effect).\nRequires bumpmapping to be enabled.");
- gettext("Normalmaps strength");
- gettext("Strength of generated normalmaps.");
- gettext("Normalmaps sampling");
- gettext("Defines sampling step of texture.\nA higher value results in smoother normal maps.");
- gettext("Parallax Occlusion");
- gettext("Parallax occlusion");
- gettext("Enables parallax occlusion mapping.\nRequires shaders to be enabled.");
- gettext("Parallax occlusion mode");
- gettext("0 = parallax occlusion with slope information (faster).\n1 = relief mapping (slower, more accurate).");
- gettext("Parallax occlusion iterations");
- gettext("Number of parallax occlusion iterations.");
- gettext("Parallax occlusion scale");
- gettext("Overall scale of parallax occlusion effect.");
- gettext("Parallax occlusion bias");
- gettext("Overall bias of parallax occlusion effect, usually scale/2.");
gettext("Waving Nodes");
gettext("Waving liquids");
gettext("Set to true to enable waving liquids (like water).\nRequires shaders to be enabled.");
@@ -278,8 +266,8 @@ fake_function() {
gettext("Arm inertia, gives a more realistic movement of\nthe arm when the camera moves.");
gettext("Maximum FPS");
gettext("If FPS would go higher than this, limit it by sleeping\nto not waste CPU power for no benefit.");
- gettext("FPS in pause menu");
- gettext("Maximum FPS when game is paused.");
+ gettext("FPS when unfocused or paused");
+ gettext("Maximum FPS when the window is not focused, or when the game is paused.");
gettext("Pause on lost window focus");
gettext("Open the pause menu when the window's focus is lost. Does not pause if a formspec is\nopen.");
gettext("Viewing range");
@@ -315,7 +303,7 @@ fake_function() {
gettext("Texture path");
gettext("Path to texture directory. All textures are first searched from here.");
gettext("Video driver");
- gettext("The rendering back-end for Irrlicht.\nA restart is required after changing this.\nNote: On Android, stick with OGLES1 if unsure! App may fail to start otherwise.\nOn other platforms, OpenGL is recommended, and it’s the only driver with\nshader support currently.");
+ gettext("The rendering back-end for Irrlicht.\nA restart is required after changing this.\nNote: On Android, stick with OGLES1 if unsure! App may fail to start otherwise.\nOn other platforms, OpenGL is recommended.\nShaders are supported by OpenGL (desktop only) and OGLES2 (experimental)");
gettext("Cloud radius");
gettext("Radius of cloud area stated in number of 64 node cloud squares.\nValues larger than 26 will start to produce sharp cutoffs at cloud area corners.");
gettext("View bobbing factor");
@@ -345,9 +333,9 @@ fake_function() {
gettext("Selection box width");
gettext("Width of the selection box lines around nodes.");
gettext("Crosshair color");
- gettext("Crosshair color (R,G,B).");
+ gettext("Crosshair color (R,G,B).\nAlso controls the object crosshair color");
gettext("Crosshair alpha");
- gettext("Crosshair alpha (opaqueness, between 0 and 255).");
+ gettext("Crosshair alpha (opaqueness, between 0 and 255).\nAlso controls the object crosshair color");
gettext("Recent Chat Messages");
gettext("Maximum number of recent chat messages to show");
gettext("Desynchronize block animation");
@@ -383,7 +371,7 @@ fake_function() {
gettext("Autoscaling mode");
gettext("World-aligned textures may be scaled to span several nodes. However,\nthe server may not send the scale you want, especially if you use\na specially-designed texture pack; with this option, the client tries\nto determine the scale automatically basing on the texture size.\nSee also texture_min_size.\nWarning: This option is EXPERIMENTAL!");
gettext("Show entity selection boxes");
- gettext("Show entity selection boxes");
+ gettext("Show entity selection boxes\nA restart is required after changing this.");
gettext("Menus");
gettext("Clouds in menu");
gettext("Use a cloud animation for the main menu background.");
@@ -509,6 +497,8 @@ fake_function() {
gettext("To reduce lag, block transfers are slowed down when a player is building something.\nThis determines how long they are slowed down after placing or removing a node.");
gettext("Max. packets per iteration");
gettext("Maximum number of packets sent per send step, if you have a slow connection\ntry reducing it, but don't reduce it to a number below double of targeted\nclient number.");
+ gettext("Map Compression Level for Network Transfer");
+ gettext("ZLib compression level to use when sending mapblocks to the client.\n-1 - Zlib's default compression level\n0 - no compresson, fastest\n9 - best compression, slowest\n(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)");
gettext("Game");
gettext("Default game");
gettext("Default game when creating a new world.\nThis will be overridden when creating a world from the main menu.");
@@ -525,7 +515,7 @@ fake_function() {
gettext("Damage");
gettext("Enable players getting damage and dying.");
gettext("Creative");
- gettext("Enable creative mode for new created maps.");
+ gettext("Enable creative mode for all players");
gettext("Fixed map seed");
gettext("A chosen map seed for a new map, leave empty for random.\nWill be overridden when creating a new world in the main menu.");
gettext("Default password");
@@ -607,7 +597,7 @@ fake_function() {
gettext("Acceleration of gravity, in nodes per second per second.");
gettext("Advanced");
gettext("Deprecated Lua API handling");
- gettext("Handling for deprecated Lua API calls:\n- legacy: (try to) mimic old behaviour (default for release).\n- log: mimic and log backtrace of deprecated call (default for debug).\n- error: abort on usage of deprecated call (suggested for mod developers).");
+ gettext("Handling for deprecated Lua API calls:\n- none: Do not log deprecated calls\n- log: mimic and log backtrace of deprecated call (default).\n- error: abort on usage of deprecated call (suggested for mod developers).");
gettext("Max. clearobjects extra blocks");
gettext("Number of extra blocks that can be loaded by /clearobjects at once.\nThis is a trade-off between sqlite transaction overhead and\nmemory consumption (4096=100MB, as a rule of thumb).");
gettext("Unload unused server data");
@@ -616,12 +606,16 @@ fake_function() {
gettext("Maximum number of statically stored objects in a block.");
gettext("Synchronous SQLite");
gettext("See https://www.sqlite.org/pragma.html#pragma_synchronous");
+ gettext("Map Compression Level for Disk Storage");
+ gettext("ZLib compression level to use when saving mapblocks to disk.\n-1 - Zlib's default compression level\n0 - no compresson, fastest\n9 - best compression, slowest\n(levels 1-3 use Zlib's \"fast\" method, 4-9 use the normal method)");
gettext("Dedicated server step");
gettext("Length of a server tick and the interval at which objects are generally updated over\nnetwork.");
gettext("Active block management interval");
gettext("Length of time between active block management cycles");
gettext("ABM interval");
gettext("Length of time between Active Block Modifier (ABM) execution cycles");
+ gettext("ABM time budget");
+ gettext("The time budget allowed for ABMs to execute on each step\n(as a fraction of the ABM Interval)");
gettext("NodeTimer interval");
gettext("Length of time between NodeTimer execution cycles");
gettext("Ignore world errors");
@@ -693,8 +687,6 @@ fake_function() {
gettext("Maximum time in ms a file download (e.g. a mod download) may take.");
gettext("High-precision FPU");
gettext("Makes DirectX work with LuaJIT. Disable if it causes troubles.");
- gettext("Main menu style");
- gettext("Changes the main menu UI:\n- Full: Multiple singleplayer worlds, game choice, texture pack chooser, etc.\n- Simple: One singleplayer world, no game or texture pack choosers. May be\nnecessary for smaller screens.");
gettext("Main menu script");
gettext("Replaces the default main menu with a custom one.");
gettext("Engine profiling data print interval");
@@ -964,6 +956,12 @@ fake_function() {
gettext("Terrain noise threshold for hills.\nControls proportion of world area covered by hills.\nAdjust towards 0.0 for a larger proportion.");
gettext("Hill steepness");
gettext("Controls steepness/height of hills.");
+ gettext("Cavern limit");
+ gettext("Y-level of cavern upper limit.");
+ gettext("Cavern taper");
+ gettext("Y-distance over which caverns expand to full size.");
+ gettext("Cavern threshold");
+ gettext("Defines full size of caverns, smaller values create larger caverns.");
gettext("Dungeon minimum Y");
gettext("Lower Y limit of dungeons.");
gettext("Dungeon maximum Y");
@@ -977,6 +975,8 @@ fake_function() {
gettext("First of two 3D noises that together define tunnels.");
gettext("Cave2 noise");
gettext("Second of two 3D noises that together define tunnels.");
+ gettext("Cavern noise");
+ gettext("3D noise defining giant caverns.");
gettext("Dungeon noise");
gettext("3D noise that determines number of dungeons per mapchunk.");
gettext("Mapgen Fractal");
@@ -1103,4 +1103,6 @@ fake_function() {
gettext("The URL for the content repository");
gettext("ContentDB Flag Blacklist");
gettext("Comma-separated list of flags to hide in the content repository.\n\"nonfree\" can be used to hide packages which do not qualify as 'free software',\nas defined by the Free Software Foundation.\nYou can also specify content ratings.\nThese flags are independent from Minetest versions,\nso see a full list at https://content.minetest.net/help/content_flags/");
+ gettext("ContentDB Max Concurrent Downloads");
+ gettext("Maximum number of concurrent downloads. Downloads exceeding this limit will be queued.\nThis should be lower than curl_parallel_limit.");
}
diff --git a/src/sound.h b/src/sound.h
index 6cbd55e8f..6f7b0a1af 100644
--- a/src/sound.h
+++ b/src/sound.h
@@ -39,7 +39,7 @@ struct SimpleSoundSpec
// keep in sync with item definitions
void serialize(std::ostream &os, u8 cf_version) const
{
- os << serializeString(name);
+ os << serializeString16(name);
writeF32(os, gain);
writeF32(os, pitch);
writeF32(os, fade);
@@ -49,7 +49,7 @@ struct SimpleSoundSpec
void deSerialize(std::istream &is, u8 cf_version)
{
- name = deSerializeString(is);
+ name = deSerializeString16(is);
gain = readF32(is);
pitch = readF32(is);
fade = readF32(is);
diff --git a/src/staticobject.cpp b/src/staticobject.cpp
index 5ccb7baf5..86e455b9f 100644
--- a/src/staticobject.cpp
+++ b/src/staticobject.cpp
@@ -35,7 +35,7 @@ void StaticObject::serialize(std::ostream &os)
// pos
writeV3F1000(os, pos);
// data
- os<<serializeString(data);
+ os<<serializeString16(data);
}
void StaticObject::deSerialize(std::istream &is, u8 version)
{
@@ -44,7 +44,7 @@ void StaticObject::deSerialize(std::istream &is, u8 version)
// pos
pos = readV3F1000(is);
// data
- data = deSerializeString(is);
+ data = deSerializeString16(is);
}
void StaticObjectList::serialize(std::ostream &os)
diff --git a/src/texture_override.cpp b/src/texture_override.cpp
index 10d129b87..effdb0efd 100644
--- a/src/texture_override.cpp
+++ b/src/texture_override.cpp
@@ -24,6 +24,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <algorithm>
#include <fstream>
+#define override_cast static_cast<override_t>
+
TextureOverrideSource::TextureOverrideSource(std::string filepath)
{
std::ifstream infile(filepath.c_str());
@@ -56,25 +58,37 @@ TextureOverrideSource::TextureOverrideSource(std::string filepath)
std::vector<std::string> targets = str_split(splitted[1], ',');
for (const std::string &target : targets) {
if (target == "top")
- texture_override.target |= static_cast<u8>(OverrideTarget::TOP);
+ texture_override.target |= override_cast(OverrideTarget::TOP);
else if (target == "bottom")
- texture_override.target |= static_cast<u8>(OverrideTarget::BOTTOM);
+ texture_override.target |= override_cast(OverrideTarget::BOTTOM);
else if (target == "left")
- texture_override.target |= static_cast<u8>(OverrideTarget::LEFT);
+ texture_override.target |= override_cast(OverrideTarget::LEFT);
else if (target == "right")
- texture_override.target |= static_cast<u8>(OverrideTarget::RIGHT);
+ texture_override.target |= override_cast(OverrideTarget::RIGHT);
else if (target == "front")
- texture_override.target |= static_cast<u8>(OverrideTarget::FRONT);
+ texture_override.target |= override_cast(OverrideTarget::FRONT);
else if (target == "back")
- texture_override.target |= static_cast<u8>(OverrideTarget::BACK);
+ texture_override.target |= override_cast(OverrideTarget::BACK);
else if (target == "inventory")
- texture_override.target |= static_cast<u8>(OverrideTarget::INVENTORY);
+ texture_override.target |= override_cast(OverrideTarget::INVENTORY);
else if (target == "wield")
- texture_override.target |= static_cast<u8>(OverrideTarget::WIELD);
+ texture_override.target |= override_cast(OverrideTarget::WIELD);
+ else if (target == "special1")
+ texture_override.target |= override_cast(OverrideTarget::SPECIAL_1);
+ else if (target == "special2")
+ texture_override.target |= override_cast(OverrideTarget::SPECIAL_2);
+ else if (target == "special3")
+ texture_override.target |= override_cast(OverrideTarget::SPECIAL_3);
+ else if (target == "special4")
+ texture_override.target |= override_cast(OverrideTarget::SPECIAL_4);
+ else if (target == "special5")
+ texture_override.target |= override_cast(OverrideTarget::SPECIAL_5);
+ else if (target == "special6")
+ texture_override.target |= override_cast(OverrideTarget::SPECIAL_6);
else if (target == "sides")
- texture_override.target |= static_cast<u8>(OverrideTarget::SIDES);
+ texture_override.target |= override_cast(OverrideTarget::SIDES);
else if (target == "all" || target == "*")
- texture_override.target |= static_cast<u8>(OverrideTarget::ALL_FACES);
+ texture_override.target |= override_cast(OverrideTarget::ALL_FACES);
else {
// Report invalid target
warningstream << filepath << ":" << line_index
@@ -85,7 +99,7 @@ TextureOverrideSource::TextureOverrideSource(std::string filepath)
}
// If there are no valid targets, skip adding this override
- if (texture_override.target == static_cast<u8>(OverrideTarget::INVALID)) {
+ if (texture_override.target == override_cast(OverrideTarget::INVALID)) {
continue;
}
@@ -112,7 +126,7 @@ std::vector<TextureOverride> TextureOverrideSource::getNodeTileOverrides()
std::vector<TextureOverride> found_overrides;
for (const TextureOverride &texture_override : m_overrides) {
- if (texture_override.hasTarget(OverrideTarget::ALL_FACES))
+ if (texture_override.hasTarget(OverrideTarget::NODE_TARGETS))
found_overrides.push_back(texture_override);
}
diff --git a/src/texture_override.h b/src/texture_override.h
index db03bd014..bdc95e732 100644
--- a/src/texture_override.h
+++ b/src/texture_override.h
@@ -23,8 +23,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <string>
#include <vector>
+typedef u16 override_t;
+
//! Bitmask enum specifying what a texture override should apply to
-enum class OverrideTarget : u8
+enum class OverrideTarget : override_t
{
INVALID = 0,
TOP = 1 << 0,
@@ -35,23 +37,33 @@ enum class OverrideTarget : u8
BACK = 1 << 5,
INVENTORY = 1 << 6,
WIELD = 1 << 7,
+ SPECIAL_1 = 1 << 8,
+ SPECIAL_2 = 1 << 9,
+ SPECIAL_3 = 1 << 10,
+ SPECIAL_4 = 1 << 11,
+ SPECIAL_5 = 1 << 12,
+ SPECIAL_6 = 1 << 13,
+ // clang-format off
SIDES = LEFT | RIGHT | FRONT | BACK,
ALL_FACES = TOP | BOTTOM | SIDES,
+ ALL_SPECIAL = SPECIAL_1 | SPECIAL_2 | SPECIAL_3 | SPECIAL_4 | SPECIAL_5 | SPECIAL_6,
+ NODE_TARGETS = ALL_FACES | ALL_SPECIAL,
ITEM_TARGETS = INVENTORY | WIELD,
+ // clang-format on
};
struct TextureOverride
{
std::string id;
std::string texture;
- u8 target;
+ override_t target;
// Helper function for checking if an OverrideTarget is found in
// a TextureOverride without casting
inline bool hasTarget(OverrideTarget overrideTarget) const
{
- return (target & static_cast<u8>(overrideTarget)) != 0;
+ return (target & static_cast<override_t>(overrideTarget)) != 0;
}
};
diff --git a/src/threading/thread.cpp b/src/threading/thread.cpp
index e0f808c4d..5cfc60995 100644
--- a/src/threading/thread.cpp
+++ b/src/threading/thread.cpp
@@ -33,6 +33,8 @@ DEALINGS IN THE SOFTWARE.
#include <sys/prctl.h>
#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
#include <pthread_np.h>
+#elif defined(__NetBSD__)
+ #include <sched.h>
#elif defined(_MSC_VER)
struct THREADNAME_INFO {
DWORD dwType; // Must be 0x1000
@@ -71,7 +73,28 @@ Thread::Thread(const std::string &name) :
Thread::~Thread()
{
- kill();
+ // kill the thread if running
+ if (!m_running) {
+ wait();
+ } else {
+
+ m_running = false;
+
+#if defined(_WIN32)
+ // See https://msdn.microsoft.com/en-us/library/hh920601.aspx#thread__native_handle_method
+ TerminateThread((HANDLE) m_thread_obj->native_handle(), 0);
+ CloseHandle((HANDLE) m_thread_obj->native_handle());
+#else
+ // We need to pthread_kill instead on Android since NDKv5's pthread
+ // implementation is incomplete.
+# ifdef __ANDROID__
+ pthread_kill(getThreadHandle(), SIGKILL);
+# else
+ pthread_cancel(getThreadHandle());
+# endif
+ wait();
+#endif
+ }
// Make sure start finished mutex is unlocked before it's destroyed
if (m_start_finished_mutex.try_lock())
@@ -136,37 +159,6 @@ bool Thread::wait()
}
-bool Thread::kill()
-{
- if (!m_running) {
- wait();
- return false;
- }
-
- m_running = false;
-
-#if defined(_WIN32)
- // See https://msdn.microsoft.com/en-us/library/hh920601.aspx#thread__native_handle_method
- TerminateThread((HANDLE) m_thread_obj->native_handle(), 0);
- CloseHandle((HANDLE) m_thread_obj->native_handle());
-#else
- // We need to pthread_kill instead on Android since NDKv5's pthread
- // implementation is incomplete.
-# ifdef __ANDROID__
- pthread_kill(getThreadHandle(), SIGKILL);
-# else
- pthread_cancel(getThreadHandle());
-# endif
- wait();
-#endif
-
- m_retval = nullptr;
- m_joinable = false;
- m_request_stop = false;
-
- return true;
-}
-
bool Thread::getReturnValue(void **ret)
{
@@ -219,12 +211,16 @@ void Thread::setName(const std::string &name)
#elif defined(__NetBSD__)
- pthread_setname_np(pthread_self(), name.c_str());
+ pthread_setname_np(pthread_self(), "%s", const_cast<char*>(name.c_str()));
#elif defined(__APPLE__)
pthread_setname_np(name.c_str());
+#elif defined(__HAIKU__)
+
+ rename_thread(find_thread(NULL), name.c_str());
+
#elif defined(_MSC_VER)
// Windows itself doesn't support thread names,
@@ -281,7 +277,14 @@ bool Thread::bindToProcessor(unsigned int proc_number)
CPU_SET(proc_number, &cpuset);
return pthread_setaffinity_np(getThreadHandle(), sizeof(cpuset), &cpuset) == 0;
+#elif defined(__NetBSD__)
+ cpuset_t *cpuset = cpuset_create();
+ if (cpuset == NULL)
+ return false;
+ int r = pthread_setaffinity_np(getThreadHandle(), cpuset_size(cpuset), cpuset);
+ cpuset_destroy(cpuset);
+ return r == 0;
#elif defined(__sun) || defined(sun)
return processor_bind(P_LWPID, P_MYID, proc_number, NULL) == 0
diff --git a/src/threading/thread.h b/src/threading/thread.h
index cea92226f..45fb171da 100644
--- a/src/threading/thread.h
+++ b/src/threading/thread.h
@@ -36,6 +36,10 @@ DEALINGS IN THE SOFTWARE.
#include <sys/thread.h> // for tid_t
#endif
+#ifdef __HAIKU__
+ #include <kernel/OS.h>
+#endif
+
/*
* On platforms using pthreads, these five priority classes correlate to
* even divisions between the minimum and maximum reported thread priority.
@@ -71,14 +75,6 @@ public:
bool stop();
/*
- * Immediately terminates the thread.
- * This should be used with extreme caution, as the thread will not have
- * any opportunity to release resources it may be holding (such as memory
- * or locks).
- */
- bool kill();
-
- /*
* Waits for thread to finish.
* Note: This does not stop a thread, you have to do this on your own.
* Returns false immediately if the thread is not started or has been waited
diff --git a/src/tool.cpp b/src/tool.cpp
index 22e41d28e..90f4f9c12 100644
--- a/src/tool.cpp
+++ b/src/tool.cpp
@@ -66,7 +66,7 @@ void ToolCapabilities::serialize(std::ostream &os, u16 protocol_version) const
for (const auto &groupcap : groupcaps) {
const std::string *name = &groupcap.first;
const ToolGroupCap *cap = &groupcap.second;
- os << serializeString(*name);
+ os << serializeString16(*name);
writeS16(os, cap->uses);
writeS16(os, cap->maxlevel);
writeU32(os, cap->times.size());
@@ -79,7 +79,7 @@ void ToolCapabilities::serialize(std::ostream &os, u16 protocol_version) const
writeU32(os, damageGroups.size());
for (const auto &damageGroup : damageGroups) {
- os << serializeString(damageGroup.first);
+ os << serializeString16(damageGroup.first);
writeS16(os, damageGroup.second);
}
@@ -98,7 +98,7 @@ void ToolCapabilities::deSerialize(std::istream &is)
groupcaps.clear();
u32 groupcaps_size = readU32(is);
for (u32 i = 0; i < groupcaps_size; i++) {
- std::string name = deSerializeString(is);
+ std::string name = deSerializeString16(is);
ToolGroupCap cap;
cap.uses = readS16(is);
cap.maxlevel = readS16(is);
@@ -113,7 +113,7 @@ void ToolCapabilities::deSerialize(std::istream &is)
u32 damage_groups_size = readU32(is);
for (u32 i = 0; i < damage_groups_size; i++) {
- std::string name = deSerializeString(is);
+ std::string name = deSerializeString16(is);
s16 rating = readS16(is);
damageGroups[name] = rating;
}
diff --git a/src/translation.cpp b/src/translation.cpp
index 8bbaee0a3..55c958fa2 100644
--- a/src/translation.cpp
+++ b/src/translation.cpp
@@ -29,14 +29,6 @@ Translations client_translations;
Translations *g_client_translations = &client_translations;
#endif
-// Per language server translations
-std::unordered_map<std::string,Translations> server_translations;
-std::unordered_map<std::string,Translations> *g_server_translations = &server_translations;
-
-Translations::~Translations()
-{
- clear();
-}
void Translations::clear()
{
@@ -152,14 +144,13 @@ void Translations::loadTranslation(const std::string &data)
}
std::wstring oword1 = word1.str(), oword2 = word2.str();
- if (oword2.empty()) {
- oword2 = oword1;
- errorstream << "Ignoring empty translation for \""
- << wide_to_utf8(oword1) << "\"" << std::endl;
+ if (!oword2.empty()) {
+ std::wstring translation_index = textdomain + L"|";
+ translation_index.append(oword1);
+ m_translations[translation_index] = oword2;
+ } else {
+ infostream << "Ignoring empty translation for \""
+ << wide_to_utf8(oword1) << "\"" << std::endl;
}
-
- std::wstring translation_index = textdomain + L"|";
- translation_index.append(oword1);
- m_translations[translation_index] = oword2;
}
}
diff --git a/src/translation.h b/src/translation.h
index 71423b15e..f1a336fca 100644
--- a/src/translation.h
+++ b/src/translation.h
@@ -23,7 +23,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <string>
class Translations;
-extern std::unordered_map<std::string, Translations> *g_server_translations;
#ifndef SERVER
extern Translations *g_client_translations;
#endif
@@ -31,10 +30,6 @@ extern Translations *g_client_translations;
class Translations
{
public:
- Translations() = default;
-
- ~Translations();
-
void loadTranslation(const std::string &data);
void clear();
const std::wstring &getTranslation(
diff --git a/src/unittest/test.cpp b/src/unittest/test.cpp
index a783ccd32..af324e1b1 100644
--- a/src/unittest/test.cpp
+++ b/src/unittest/test.cpp
@@ -180,7 +180,7 @@ void TestGameDef::defineSomeNodes()
"{default_water.png";
f = ContentFeatures();
f.name = itemdef.name;
- f.alpha = 128;
+ f.alpha = ALPHAMODE_BLEND;
f.liquid_type = LIQUID_SOURCE;
f.liquid_viscosity = 4;
f.is_ground_content = true;
@@ -201,7 +201,7 @@ void TestGameDef::defineSomeNodes()
"{default_lava.png";
f = ContentFeatures();
f.name = itemdef.name;
- f.alpha = 128;
+ f.alpha = ALPHAMODE_OPAQUE;
f.liquid_type = LIQUID_SOURCE;
f.liquid_viscosity = 7;
f.light_source = LIGHT_MAX-1;
diff --git a/src/unittest/test_connection.cpp b/src/unittest/test_connection.cpp
index c5e4085e1..c3aacc536 100644
--- a/src/unittest/test_connection.cpp
+++ b/src/unittest/test_connection.cpp
@@ -39,6 +39,7 @@ public:
void runTests(IGameDef *gamedef);
+ void testNetworkPacketSerialize();
void testHelpers();
void testConnectSendReceive();
};
@@ -47,6 +48,7 @@ static TestConnection g_test_instance;
void TestConnection::runTests(IGameDef *gamedef)
{
+ TEST(testNetworkPacketSerialize);
TEST(testHelpers);
TEST(testConnectSendReceive);
}
@@ -78,6 +80,39 @@ struct Handler : public con::PeerHandler
const char *name;
};
+void TestConnection::testNetworkPacketSerialize()
+{
+ const static u8 expected[] = {
+ 0x00, 0x7b,
+ 0x00, 0x02, 0xd8, 0x42, 0xdf, 0x9a
+ };
+
+ if (sizeof(wchar_t) == 2)
+ warningstream << __func__ << " may fail on this platform." << std::endl;
+
+ {
+ NetworkPacket pkt(123, 0);
+
+ // serializing wide strings should do surrogate encoding, we test that here
+ pkt << std::wstring(L"\U00020b9a");
+
+ SharedBuffer<u8> buf = pkt.oldForgePacket();
+ UASSERTEQ(int, buf.getSize(), sizeof(expected));
+ UASSERT(!memcmp(expected, &buf[0], buf.getSize()));
+ }
+
+ {
+ NetworkPacket pkt;
+ pkt.putRawPacket(expected, sizeof(expected), 0);
+
+ // same for decoding
+ std::wstring pkt_s;
+ pkt >> pkt_s;
+
+ UASSERT(pkt_s == L"\U00020b9a");
+ }
+}
+
void TestConnection::testHelpers()
{
// Some constants for testing
diff --git a/src/unittest/test_map_settings_manager.cpp b/src/unittest/test_map_settings_manager.cpp
index 0a5c971b9..81ca68705 100644
--- a/src/unittest/test_map_settings_manager.cpp
+++ b/src/unittest/test_map_settings_manager.cpp
@@ -30,7 +30,7 @@ public:
TestMapSettingsManager() { TestManager::registerTestModule(this); }
const char *getName() { return "TestMapSettingsManager"; }
- void makeUserConfig(Settings *conf);
+ void makeUserConfig();
std::string makeMetaFile(bool make_corrupt);
void runTests(IGameDef *gamedef);
@@ -65,33 +65,11 @@ void check_noise_params(const NoiseParams *np1, const NoiseParams *np2)
}
-std::string read_file_to_string(const std::string &filepath)
+void TestMapSettingsManager::makeUserConfig()
{
- std::string buf;
- FILE *f = fopen(filepath.c_str(), "rb");
- if (!f)
- return "";
+ delete Settings::getLayer(SL_GLOBAL);
+ Settings *conf = Settings::createLayer(SL_GLOBAL);
- fseek(f, 0, SEEK_END);
-
- long filesize = ftell(f);
- if (filesize == -1) {
- fclose(f);
- return "";
- }
- rewind(f);
-
- buf.resize(filesize);
-
- UASSERTEQ(size_t, fread(&buf[0], 1, filesize, f), 1);
-
- fclose(f);
- return buf;
-}
-
-
-void TestMapSettingsManager::makeUserConfig(Settings *conf)
-{
conf->set("mg_name", "v7");
conf->set("seed", "5678");
conf->set("water_level", "20");
@@ -128,12 +106,11 @@ std::string TestMapSettingsManager::makeMetaFile(bool make_corrupt)
void TestMapSettingsManager::testMapSettingsManager()
{
- Settings user_settings;
- makeUserConfig(&user_settings);
+ makeUserConfig();
std::string test_mapmeta_path = makeMetaFile(false);
- MapSettingsManager mgr(&user_settings, test_mapmeta_path);
+ MapSettingsManager mgr(test_mapmeta_path);
std::string value;
UASSERT(mgr.getMapSetting("mg_name", &value));
@@ -165,6 +142,12 @@ void TestMapSettingsManager::testMapSettingsManager()
mgr.setMapSettingNoiseParams("mgv5_np_height", &script_np_height);
mgr.setMapSettingNoiseParams("mgv5_np_factor", &script_np_factor);
+ {
+ NoiseParams dummy;
+ mgr.getMapSettingNoiseParams("mgv5_np_factor", &dummy);
+ check_noise_params(&dummy, &script_np_factor);
+ }
+
// Now make our Params and see if the values are correctly sourced
MapgenParams *params = mgr.makeMapgenParams();
UASSERT(params->mgtype == MAPGEN_V5);
@@ -199,7 +182,8 @@ void TestMapSettingsManager::testMapSettingsManager()
};
SHA1 ctx;
- std::string metafile_contents = read_file_to_string(test_mapmeta_path);
+ std::string metafile_contents;
+ UASSERT(fs::ReadFile(test_mapmeta_path, metafile_contents));
ctx.addBytes(&metafile_contents[0], metafile_contents.size());
unsigned char *sha1_result = ctx.getDigest();
int resultdiff = memcmp(sha1_result, expected_contents_hash, 20);
@@ -212,50 +196,66 @@ void TestMapSettingsManager::testMapSettingsManager()
void TestMapSettingsManager::testMapMetaSaveLoad()
{
- Settings conf;
std::string path = getTestTempDirectory()
+ DIR_DELIM + "foobar" + DIR_DELIM + "map_meta.txt";
+ makeUserConfig();
+ Settings &conf = *Settings::getLayer(SL_GLOBAL);
+
+ // There cannot be two MapSettingsManager
+ // copy the mapgen params to compare them
+ MapgenParams params1, params2;
// Create a set of mapgen params and save them to map meta
- conf.set("seed", "12345");
- conf.set("water_level", "5");
- MapSettingsManager mgr1(&conf, path);
- MapgenParams *params1 = mgr1.makeMapgenParams();
- UASSERT(params1);
- UASSERT(mgr1.saveMapMeta());
+ {
+ conf.set("seed", "12345");
+ conf.set("water_level", "5");
+ MapSettingsManager mgr(path);
+ MapgenParams *params = mgr.makeMapgenParams();
+ UASSERT(params);
+ params1 = *params;
+ params1.bparams = nullptr; // No double-free
+ UASSERT(mgr.saveMapMeta());
+ }
// Now try loading the map meta to mapgen params
- conf.set("seed", "67890");
- conf.set("water_level", "32");
- MapSettingsManager mgr2(&conf, path);
- UASSERT(mgr2.loadMapMeta());
- MapgenParams *params2 = mgr2.makeMapgenParams();
- UASSERT(params2);
+ {
+ conf.set("seed", "67890");
+ conf.set("water_level", "32");
+ MapSettingsManager mgr(path);
+ UASSERT(mgr.loadMapMeta());
+ MapgenParams *params = mgr.makeMapgenParams();
+ UASSERT(params);
+ params2 = *params;
+ params2.bparams = nullptr; // No double-free
+ }
// Check that both results are correct
- UASSERTEQ(u64, params1->seed, 12345);
- UASSERTEQ(s16, params1->water_level, 5);
- UASSERTEQ(u64, params2->seed, 12345);
- UASSERTEQ(s16, params2->water_level, 5);
+ UASSERTEQ(u64, params1.seed, 12345);
+ UASSERTEQ(s16, params1.water_level, 5);
+ UASSERTEQ(u64, params2.seed, 12345);
+ UASSERTEQ(s16, params2.water_level, 5);
}
void TestMapSettingsManager::testMapMetaFailures()
{
std::string test_mapmeta_path;
- Settings conf;
// Check to see if it'll fail on a non-existent map meta file
- test_mapmeta_path = "woobawooba/fgdfg/map_meta.txt";
- UASSERT(!fs::PathExists(test_mapmeta_path));
+ {
+ test_mapmeta_path = "woobawooba/fgdfg/map_meta.txt";
+ UASSERT(!fs::PathExists(test_mapmeta_path));
- MapSettingsManager mgr1(&conf, test_mapmeta_path);
- UASSERT(!mgr1.loadMapMeta());
+ MapSettingsManager mgr1(test_mapmeta_path);
+ UASSERT(!mgr1.loadMapMeta());
+ }
// Check to see if it'll fail on a corrupt map meta file
- test_mapmeta_path = makeMetaFile(true);
- UASSERT(fs::PathExists(test_mapmeta_path));
+ {
+ test_mapmeta_path = makeMetaFile(true);
+ UASSERT(fs::PathExists(test_mapmeta_path));
- MapSettingsManager mgr2(&conf, test_mapmeta_path);
- UASSERT(!mgr2.loadMapMeta());
+ MapSettingsManager mgr2(test_mapmeta_path);
+ UASSERT(!mgr2.loadMapMeta());
+ }
}
diff --git a/src/unittest/test_serialization.cpp b/src/unittest/test_serialization.cpp
index 51e28f144..660d77d02 100644
--- a/src/unittest/test_serialization.cpp
+++ b/src/unittest/test_serialization.cpp
@@ -32,25 +32,19 @@ public:
void buildTestStrings();
void testSerializeString();
- void testSerializeWideString();
void testSerializeLongString();
void testSerializeJsonString();
- void testSerializeHex();
void testDeSerializeString();
- void testDeSerializeWideString();
void testDeSerializeLongString();
void testStreamRead();
void testStreamWrite();
- void testVecPut();
- void testStringLengthLimits();
- void testBufReader();
void testFloatFormat();
std::string teststring2;
std::wstring teststring2_w;
std::string teststring2_w_encoded;
- static const u8 test_serialized_data[12 * 13 - 8];
+ static const u8 test_serialized_data[12 * 11 - 2];
};
static TestSerialization g_test_instance;
@@ -61,17 +55,11 @@ void TestSerialization::runTests(IGameDef *gamedef)
TEST(testSerializeString);
TEST(testDeSerializeString);
- TEST(testSerializeWideString);
- TEST(testDeSerializeWideString);
TEST(testSerializeLongString);
TEST(testDeSerializeLongString);
TEST(testSerializeJsonString);
- TEST(testSerializeHex);
TEST(testStreamRead);
TEST(testStreamWrite);
- TEST(testVecPut);
- TEST(testStringLengthLimits);
- TEST(testBufReader);
TEST(testFloatFormat);
}
@@ -103,21 +91,21 @@ void TestSerialization::buildTestStrings()
void TestSerialization::testSerializeString()
{
// Test blank string
- UASSERT(serializeString("") == mkstr("\0\0"));
+ UASSERT(serializeString16("") == mkstr("\0\0"));
// Test basic string
- UASSERT(serializeString("Hello world!") == mkstr("\0\14Hello world!"));
+ UASSERT(serializeString16("Hello world!") == mkstr("\0\14Hello world!"));
// Test character range
- UASSERT(serializeString(teststring2) == mkstr("\1\0") + teststring2);
+ UASSERT(serializeString16(teststring2) == mkstr("\1\0") + teststring2);
}
void TestSerialization::testDeSerializeString()
{
// Test deserialize
{
- std::istringstream is(serializeString(teststring2), std::ios::binary);
- UASSERT(deSerializeString(is) == teststring2);
+ std::istringstream is(serializeString16(teststring2), std::ios::binary);
+ UASSERT(deSerializeString16(is) == teststring2);
UASSERT(!is.eof());
is.get();
UASSERT(is.eof());
@@ -126,78 +114,34 @@ void TestSerialization::testDeSerializeString()
// Test deserialize an incomplete length specifier
{
std::istringstream is(mkstr("\x53"), std::ios::binary);
- EXCEPTION_CHECK(SerializationError, deSerializeString(is));
+ EXCEPTION_CHECK(SerializationError, deSerializeString16(is));
}
// Test deserialize a string with incomplete data
{
std::istringstream is(mkstr("\x00\x55 abcdefg"), std::ios::binary);
- EXCEPTION_CHECK(SerializationError, deSerializeString(is));
- }
-}
-
-void TestSerialization::testSerializeWideString()
-{
- // Test blank string
- UASSERT(serializeWideString(L"") == mkstr("\0\0"));
-
- // Test basic string
- UASSERT(serializeWideString(utf8_to_wide("Hello world!")) ==
- mkstr("\0\14\0H\0e\0l\0l\0o\0 \0w\0o\0r\0l\0d\0!"));
-
- // Test character range
- UASSERT(serializeWideString(teststring2_w) ==
- mkstr("\1\0") + teststring2_w_encoded);
-}
-
-void TestSerialization::testDeSerializeWideString()
-{
- // Test deserialize
- {
- std::istringstream is(serializeWideString(teststring2_w), std::ios::binary);
- UASSERT(deSerializeWideString(is) == teststring2_w);
- UASSERT(!is.eof());
- is.get();
- UASSERT(is.eof());
- }
-
- // Test deserialize an incomplete length specifier
- {
- std::istringstream is(mkstr("\x53"), std::ios::binary);
- EXCEPTION_CHECK(SerializationError, deSerializeWideString(is));
- }
-
- // Test deserialize a string with an incomplete character
- {
- std::istringstream is(mkstr("\x00\x07\0a\0b\0c\0d\0e\0f\0"), std::ios::binary);
- EXCEPTION_CHECK(SerializationError, deSerializeWideString(is));
- }
-
- // Test deserialize a string with incomplete data
- {
- std::istringstream is(mkstr("\x00\x08\0a\0b\0c\0d\0e\0f"), std::ios::binary);
- EXCEPTION_CHECK(SerializationError, deSerializeWideString(is));
+ EXCEPTION_CHECK(SerializationError, deSerializeString16(is));
}
}
void TestSerialization::testSerializeLongString()
{
// Test blank string
- UASSERT(serializeLongString("") == mkstr("\0\0\0\0"));
+ UASSERT(serializeString32("") == mkstr("\0\0\0\0"));
// Test basic string
- UASSERT(serializeLongString("Hello world!") == mkstr("\0\0\0\14Hello world!"));
+ UASSERT(serializeString32("Hello world!") == mkstr("\0\0\0\14Hello world!"));
// Test character range
- UASSERT(serializeLongString(teststring2) == mkstr("\0\0\1\0") + teststring2);
+ UASSERT(serializeString32(teststring2) == mkstr("\0\0\1\0") + teststring2);
}
void TestSerialization::testDeSerializeLongString()
{
// Test deserialize
{
- std::istringstream is(serializeLongString(teststring2), std::ios::binary);
- UASSERT(deSerializeLongString(is) == teststring2);
+ std::istringstream is(serializeString32(teststring2), std::ios::binary);
+ UASSERT(deSerializeString32(is) == teststring2);
UASSERT(!is.eof());
is.get();
UASSERT(is.eof());
@@ -206,19 +150,19 @@ void TestSerialization::testDeSerializeLongString()
// Test deserialize an incomplete length specifier
{
std::istringstream is(mkstr("\x53"), std::ios::binary);
- EXCEPTION_CHECK(SerializationError, deSerializeLongString(is));
+ EXCEPTION_CHECK(SerializationError, deSerializeString32(is));
}
// Test deserialize a string with incomplete data
{
std::istringstream is(mkstr("\x00\x00\x00\x05 abc"), std::ios::binary);
- EXCEPTION_CHECK(SerializationError, deSerializeLongString(is));
+ EXCEPTION_CHECK(SerializationError, deSerializeString32(is));
}
// Test deserialize a string with a length too large
{
std::istringstream is(mkstr("\xFF\xFF\xFF\xFF blah"), std::ios::binary);
- EXCEPTION_CHECK(SerializationError, deSerializeLongString(is));
+ EXCEPTION_CHECK(SerializationError, deSerializeString32(is));
}
}
@@ -268,25 +212,6 @@ void TestSerialization::testSerializeJsonString()
UASSERT(is.eof());
}
-void TestSerialization::testSerializeHex()
-{
- // Test blank string
- UASSERT(serializeHexString("") == "");
- UASSERT(serializeHexString("", true) == "");
-
- // Test basic string
- UASSERT(serializeHexString("Hello world!") ==
- "48656c6c6f20776f726c6421");
- UASSERT(serializeHexString("Hello world!", true) ==
- "48 65 6c 6c 6f 20 77 6f 72 6c 64 21");
-
- // Test binary string
- UASSERT(serializeHexString(mkstr("\x00\x0a\xb0\x63\x1f\x00\xff")) ==
- "000ab0631f00ff");
- UASSERT(serializeHexString(mkstr("\x00\x0a\xb0\x63\x1f\x00\xff"), true) ==
- "00 0a b0 63 1f 00 ff");
-}
-
void TestSerialization::testStreamRead()
{
@@ -310,19 +235,17 @@ void TestSerialization::testStreamRead()
UASSERT(readF1000(is) == F1000_MIN);
UASSERT(readF1000(is) == F1000_MAX);
- UASSERT(deSerializeString(is) == "foobar!");
+ UASSERT(deSerializeString16(is) == "foobar!");
UASSERT(readV2S16(is) == v2s16(500, 500));
UASSERT(readV3S16(is) == v3s16(4207, 604, -30));
UASSERT(readV2S32(is) == v2s32(1920, 1080));
UASSERT(readV3S32(is) == v3s32(-400, 6400054, 290549855));
- UASSERT(deSerializeWideString(is) == L"\x02~woof~\x5455");
-
UASSERT(readV3F1000(is) == v3f(500, 10024.2f, -192.54f));
UASSERT(readARGB8(is) == video::SColor(255, 128, 50, 128));
- UASSERT(deSerializeLongString(is) == "some longer string here");
+ UASSERT(deSerializeString32(is) == "some longer string here");
UASSERT(is.rdbuf()->in_avail() == 2);
UASSERT(readU16(is) == 0xF00D);
@@ -350,7 +273,7 @@ void TestSerialization::testStreamWrite()
writeF1000(os, F1000_MIN);
writeF1000(os, F1000_MAX);
- os << serializeString("foobar!");
+ os << serializeString16("foobar!");
data = os.str();
UASSERT(data.size() < sizeof(test_serialized_data));
@@ -361,12 +284,10 @@ void TestSerialization::testStreamWrite()
writeV2S32(os, v2s32(1920, 1080));
writeV3S32(os, v3s32(-400, 6400054, 290549855));
- os << serializeWideString(L"\x02~woof~\x5455");
-
writeV3F1000(os, v3f(500, 10024.2f, -192.54f));
writeARGB8(os, video::SColor(255, 128, 50, 128));
- os << serializeLongString("some longer string here");
+ os << serializeString32("some longer string here");
writeU16(os, 0xF00D);
@@ -376,255 +297,6 @@ void TestSerialization::testStreamWrite()
}
-void TestSerialization::testVecPut()
-{
- std::vector<u8> buf;
-
- putU8(&buf, 0x11);
- putU16(&buf, 0x2233);
- putU32(&buf, 0x44556677);
- putU64(&buf, 0x8899AABBCCDDEEFFLL);
-
- putS8(&buf, -128);
- putS16(&buf, 30000);
- putS32(&buf, -6);
- putS64(&buf, -43);
-
- putF1000(&buf, 53.53467f);
- putF1000(&buf, -300000.32f);
- putF1000(&buf, F1000_MIN);
- putF1000(&buf, F1000_MAX);
-
- putString(&buf, "foobar!");
-
- putV2S16(&buf, v2s16(500, 500));
- putV3S16(&buf, v3s16(4207, 604, -30));
- putV2S32(&buf, v2s32(1920, 1080));
- putV3S32(&buf, v3s32(-400, 6400054, 290549855));
-
- putWideString(&buf, L"\x02~woof~\x5455");
-
- putV3F1000(&buf, v3f(500, 10024.2f, -192.54f));
- putARGB8(&buf, video::SColor(255, 128, 50, 128));
-
- putLongString(&buf, "some longer string here");
-
- putU16(&buf, 0xF00D);
-
- UASSERT(buf.size() == sizeof(test_serialized_data));
- UASSERT(!memcmp(&buf[0], test_serialized_data, sizeof(test_serialized_data)));
-}
-
-
-void TestSerialization::testStringLengthLimits()
-{
- std::vector<u8> buf;
- std::string too_long(STRING_MAX_LEN + 1, 'A');
- std::string way_too_large(LONG_STRING_MAX_LEN + 1, 'B');
- std::wstring too_long_wide(WIDE_STRING_MAX_LEN + 1, L'C');
-
- EXCEPTION_CHECK(SerializationError, putString(&buf, too_long));
-
- putLongString(&buf, too_long);
- too_long.resize(too_long.size() - 1);
- putString(&buf, too_long);
-
- EXCEPTION_CHECK(SerializationError, putWideString(&buf, too_long_wide));
- too_long_wide.resize(too_long_wide.size() - 1);
- putWideString(&buf, too_long_wide);
-}
-
-
-void TestSerialization::testBufReader()
-{
- u8 u8_data;
- u16 u16_data;
- u32 u32_data;
- u64 u64_data;
- s8 s8_data;
- s16 s16_data;
- s32 s32_data;
- s64 s64_data;
- f32 f32_data, f32_data2, f32_data3, f32_data4;
- video::SColor scolor_data;
- v2s16 v2s16_data;
- v3s16 v3s16_data;
- v2s32 v2s32_data;
- v3s32 v3s32_data;
- v3f v3f_data;
- std::string string_data;
- std::wstring widestring_data;
- std::string longstring_data;
- u8 raw_data[10] = {0};
-
- BufReader buf(test_serialized_data, sizeof(test_serialized_data));
-
- // Try reading data like normal
- UASSERT(buf.getU8() == 0x11);
- UASSERT(buf.getU16() == 0x2233);
- UASSERT(buf.getU32() == 0x44556677);
- UASSERT(buf.getU64() == 0x8899AABBCCDDEEFFLL);
- UASSERT(buf.getS8() == -128);
- UASSERT(buf.getS16() == 30000);
- UASSERT(buf.getS32() == -6);
- UASSERT(buf.getS64() == -43);
- UASSERT(buf.getF1000() == 53.534f);
- UASSERT(buf.getF1000() == -300000.32f);
- UASSERT(buf.getF1000() == F1000_MIN);
- UASSERT(buf.getF1000() == F1000_MAX);
- UASSERT(buf.getString() == "foobar!");
- UASSERT(buf.getV2S16() == v2s16(500, 500));
- UASSERT(buf.getV3S16() == v3s16(4207, 604, -30));
- UASSERT(buf.getV2S32() == v2s32(1920, 1080));
- UASSERT(buf.getV3S32() == v3s32(-400, 6400054, 290549855));
- UASSERT(buf.getWideString() == L"\x02~woof~\x5455");
- UASSERT(buf.getV3F1000() == v3f(500, 10024.2f, -192.54f));
- UASSERT(buf.getARGB8() == video::SColor(255, 128, 50, 128));
- UASSERT(buf.getLongString() == "some longer string here");
-
- // Verify the offset and data is unchanged after a failed read
- size_t orig_pos = buf.pos;
- u32_data = 0;
- UASSERT(buf.getU32NoEx(&u32_data) == false);
- UASSERT(buf.pos == orig_pos);
- UASSERT(u32_data == 0);
-
- // Now try the same for a failed string read
- UASSERT(buf.getStringNoEx(&string_data) == false);
- UASSERT(buf.pos == orig_pos);
- UASSERT(string_data == "");
-
- // Now try the same for a failed string read
- UASSERT(buf.getWideStringNoEx(&widestring_data) == false);
- UASSERT(buf.pos == orig_pos);
- UASSERT(widestring_data == L"");
-
- UASSERT(buf.getU16() == 0xF00D);
-
- UASSERT(buf.remaining() == 0);
-
- // Check to make sure these each blow exceptions as they're supposed to
- EXCEPTION_CHECK(SerializationError, buf.getU8());
- EXCEPTION_CHECK(SerializationError, buf.getU16());
- EXCEPTION_CHECK(SerializationError, buf.getU32());
- EXCEPTION_CHECK(SerializationError, buf.getU64());
-
- EXCEPTION_CHECK(SerializationError, buf.getS8());
- EXCEPTION_CHECK(SerializationError, buf.getS16());
- EXCEPTION_CHECK(SerializationError, buf.getS32());
- EXCEPTION_CHECK(SerializationError, buf.getS64());
-
- EXCEPTION_CHECK(SerializationError, buf.getF1000());
- EXCEPTION_CHECK(SerializationError, buf.getARGB8());
-
- EXCEPTION_CHECK(SerializationError, buf.getV2S16());
- EXCEPTION_CHECK(SerializationError, buf.getV3S16());
- EXCEPTION_CHECK(SerializationError, buf.getV2S32());
- EXCEPTION_CHECK(SerializationError, buf.getV3S32());
- EXCEPTION_CHECK(SerializationError, buf.getV3F1000());
-
- EXCEPTION_CHECK(SerializationError, buf.getString());
- EXCEPTION_CHECK(SerializationError, buf.getWideString());
- EXCEPTION_CHECK(SerializationError, buf.getLongString());
- EXCEPTION_CHECK(SerializationError,
- buf.getRawData(raw_data, sizeof(raw_data)));
-
- // See if we can skip backwards
- buf.pos = 5;
- UASSERT(buf.getRawDataNoEx(raw_data, 3) == true);
- UASSERT(raw_data[0] == 0x66);
- UASSERT(raw_data[1] == 0x77);
- UASSERT(raw_data[2] == 0x88);
-
- UASSERT(buf.getU32() == 0x99AABBCC);
- UASSERT(buf.pos == 12);
-
- // Now let's try it all over again using the NoEx variants
- buf.pos = 0;
-
- UASSERT(buf.getU8NoEx(&u8_data));
- UASSERT(buf.getU16NoEx(&u16_data));
- UASSERT(buf.getU32NoEx(&u32_data));
- UASSERT(buf.getU64NoEx(&u64_data));
-
- UASSERT(buf.getS8NoEx(&s8_data));
- UASSERT(buf.getS16NoEx(&s16_data));
- UASSERT(buf.getS32NoEx(&s32_data));
- UASSERT(buf.getS64NoEx(&s64_data));
-
- UASSERT(buf.getF1000NoEx(&f32_data));
- UASSERT(buf.getF1000NoEx(&f32_data2));
- UASSERT(buf.getF1000NoEx(&f32_data3));
- UASSERT(buf.getF1000NoEx(&f32_data4));
-
- UASSERT(buf.getStringNoEx(&string_data));
- UASSERT(buf.getV2S16NoEx(&v2s16_data));
- UASSERT(buf.getV3S16NoEx(&v3s16_data));
- UASSERT(buf.getV2S32NoEx(&v2s32_data));
- UASSERT(buf.getV3S32NoEx(&v3s32_data));
- UASSERT(buf.getWideStringNoEx(&widestring_data));
- UASSERT(buf.getV3F1000NoEx(&v3f_data));
- UASSERT(buf.getARGB8NoEx(&scolor_data));
-
- UASSERT(buf.getLongStringNoEx(&longstring_data));
-
- // and make sure we got the correct data
- UASSERT(u8_data == 0x11);
- UASSERT(u16_data == 0x2233);
- UASSERT(u32_data == 0x44556677);
- UASSERT(u64_data == 0x8899AABBCCDDEEFFLL);
- UASSERT(s8_data == -128);
- UASSERT(s16_data == 30000);
- UASSERT(s32_data == -6);
- UASSERT(s64_data == -43);
- UASSERT(f32_data == 53.534f);
- UASSERT(f32_data2 == -300000.32f);
- UASSERT(f32_data3 == F1000_MIN);
- UASSERT(f32_data4 == F1000_MAX);
- UASSERT(string_data == "foobar!");
- UASSERT(v2s16_data == v2s16(500, 500));
- UASSERT(v3s16_data == v3s16(4207, 604, -30));
- UASSERT(v2s32_data == v2s32(1920, 1080));
- UASSERT(v3s32_data == v3s32(-400, 6400054, 290549855));
- UASSERT(widestring_data == L"\x02~woof~\x5455");
- UASSERT(v3f_data == v3f(500, 10024.2f, -192.54f));
- UASSERT(scolor_data == video::SColor(255, 128, 50, 128));
- UASSERT(longstring_data == "some longer string here");
-
- UASSERT(buf.remaining() == 2);
- UASSERT(buf.getRawDataNoEx(raw_data, 3) == false);
- UASSERT(buf.remaining() == 2);
- UASSERT(buf.getRawDataNoEx(raw_data, 2) == true);
- UASSERT(raw_data[0] == 0xF0);
- UASSERT(raw_data[1] == 0x0D);
- UASSERT(buf.remaining() == 0);
-
- // Make sure no more available data causes a failure
- UASSERT(!buf.getU8NoEx(&u8_data));
- UASSERT(!buf.getU16NoEx(&u16_data));
- UASSERT(!buf.getU32NoEx(&u32_data));
- UASSERT(!buf.getU64NoEx(&u64_data));
-
- UASSERT(!buf.getS8NoEx(&s8_data));
- UASSERT(!buf.getS16NoEx(&s16_data));
- UASSERT(!buf.getS32NoEx(&s32_data));
- UASSERT(!buf.getS64NoEx(&s64_data));
-
- UASSERT(!buf.getF1000NoEx(&f32_data));
- UASSERT(!buf.getARGB8NoEx(&scolor_data));
-
- UASSERT(!buf.getV2S16NoEx(&v2s16_data));
- UASSERT(!buf.getV3S16NoEx(&v3s16_data));
- UASSERT(!buf.getV2S32NoEx(&v2s32_data));
- UASSERT(!buf.getV3S32NoEx(&v3s32_data));
- UASSERT(!buf.getV3F1000NoEx(&v3f_data));
-
- UASSERT(!buf.getStringNoEx(&string_data));
- UASSERT(!buf.getWideStringNoEx(&widestring_data));
- UASSERT(!buf.getLongStringNoEx(&longstring_data));
- UASSERT(!buf.getRawDataNoEx(raw_data, sizeof(raw_data)));
-}
-
void TestSerialization::testFloatFormat()
{
FloatType type = getFloatSerializationType();
@@ -708,7 +380,7 @@ void TestSerialization::testFloatFormat()
UASSERT(test_single(i));
}
-const u8 TestSerialization::test_serialized_data[12 * 13 - 8] = {
+const u8 TestSerialization::test_serialized_data[12 * 11 - 2] = {
0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc,
0xdd, 0xee, 0xff, 0x80, 0x75, 0x30, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x00, 0x00, 0xd1, 0x1e, 0xee, 0x1e,
@@ -716,9 +388,7 @@ const u8 TestSerialization::test_serialized_data[12 * 13 - 8] = {
0x66, 0x6f, 0x6f, 0x62, 0x61, 0x72, 0x21, 0x01, 0xf4, 0x01, 0xf4, 0x10,
0x6f, 0x02, 0x5c, 0xff, 0xe2, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x04,
0x38, 0xff, 0xff, 0xfe, 0x70, 0x00, 0x61, 0xa8, 0x36, 0x11, 0x51, 0x70,
- 0x5f, 0x00, 0x08, 0x00,
- 0x02, 0x00, 0x7e, 0x00, 'w', 0x00, 'o', 0x00, 'o', 0x00, 'f', 0x00, // \x02~woof~\x5455
- 0x7e, 0x54, 0x55, 0x00, 0x07, 0xa1, 0x20, 0x00, 0x98, 0xf5, 0x08, 0xff,
+ 0x5f, 0x00, 0x07, 0xa1, 0x20, 0x00, 0x98, 0xf5, 0x08, 0xff,
0xfd, 0x0f, 0xe4, 0xff, 0x80, 0x32, 0x80, 0x00, 0x00, 0x00, 0x17, 0x73,
0x6f, 0x6d, 0x65, 0x20, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x72, 0x20, 0x73,
0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x65, 0x72, 0x65, 0xF0, 0x0D,
diff --git a/src/unittest/test_servermodmanager.cpp b/src/unittest/test_servermodmanager.cpp
index 799936757..e3edb0c32 100644
--- a/src/unittest/test_servermodmanager.cpp
+++ b/src/unittest/test_servermodmanager.cpp
@@ -169,6 +169,4 @@ void TestServerModManager::testGetModMediaPaths()
std::vector<std::string> result;
sm.getModsMediaPaths(result);
UASSERTEQ(bool, result.empty(), false);
- // We should have 5 folders for each mod (textures, media, locale, model, sounds)
- UASSERTEQ(unsigned long, result.size() % 5, 0);
}
diff --git a/src/unittest/test_settings.cpp b/src/unittest/test_settings.cpp
index aa56f3e06..6b493c9e4 100644
--- a/src/unittest/test_settings.cpp
+++ b/src/unittest/test_settings.cpp
@@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <cmath>
#include "settings.h"
+#include "defaultsettings.h"
#include "noise.h"
class TestSettings : public TestBase {
@@ -31,6 +32,7 @@ public:
void runTests(IGameDef *gamedef);
void testAllSettings();
+ void testDefaults();
void testFlagDesc();
static const char *config_text_before;
@@ -42,6 +44,7 @@ static TestSettings g_test_instance;
void TestSettings::runTests(IGameDef *gamedef)
{
TEST(testAllSettings);
+ TEST(testDefaults);
TEST(testFlagDesc);
}
@@ -70,7 +73,8 @@ const char *TestSettings::config_text_before =
" with leading whitespace!\n"
"\"\"\"\n"
"np_terrain = 5, 40, (250, 250, 250), 12341, 5, 0.7, 2.4\n"
- "zoop = true";
+ "zoop = true\n"
+ "[dummy_eof_end_tag]\n";
const std::string TestSettings::config_text_after =
"leet = 1337\n"
@@ -111,12 +115,34 @@ const std::string TestSettings::config_text_after =
" animals = cute\n"
" num_apples = 4\n"
" num_oranges = 53\n"
- "}\n";
+ "}\n"
+ "[dummy_eof_end_tag]";
+
+void compare_settings(const std::string &name, Settings *a, Settings *b)
+{
+ auto keys = a->getNames();
+ Settings *group1, *group2;
+ std::string value1, value2;
+ for (auto &key : keys) {
+ if (a->getGroupNoEx(key, group1)) {
+ UASSERT(b->getGroupNoEx(key, group2));
+
+ compare_settings(name + "->" + key, group1, group2);
+ continue;
+ }
+
+ UASSERT(b->getNoEx(key, value1));
+ // For identification
+ value1 = name + "->" + key + "=" + value1;
+ value2 = name + "->" + key + "=" + a->get(key);
+ UASSERTCMP(std::string, ==, value2, value1);
+ }
+}
void TestSettings::testAllSettings()
{
try {
- Settings s;
+ Settings s("[dummy_eof_end_tag]");
// Test reading of settings
std::istringstream is(config_text_before);
@@ -149,15 +175,15 @@ void TestSettings::testAllSettings()
UASSERT(group->getS16("a") == 5);
UASSERT(fabs(group->getFloat("bb") - 2.5) < 0.001);
- Settings *group3 = new Settings;
- group3->set("cat", "meow");
- group3->set("dog", "woof");
+ Settings group3;
+ group3.set("cat", "meow");
+ group3.set("dog", "woof");
- Settings *group2 = new Settings;
- group2->setS16("num_apples", 4);
- group2->setS16("num_oranges", 53);
- group2->setGroup("animals", group3);
- group2->set("animals", "cute"); //destroys group 3
+ Settings group2;
+ group2.setS16("num_apples", 4);
+ group2.setS16("num_oranges", 53);
+ group2.setGroup("animals", group3);
+ group2.set("animals", "cute"); //destroys group 3
s.setGroup("groupy_thing", group2);
// Test set failure conditions
@@ -197,21 +223,44 @@ void TestSettings::testAllSettings()
is.clear();
is.seekg(0);
- UASSERT(s.updateConfigObject(is, os, "", 0) == true);
- //printf(">>>> expected config:\n%s\n", TEST_CONFIG_TEXT_AFTER);
- //printf(">>>> actual config:\n%s\n", os.str().c_str());
-#if __cplusplus < 201103L
- // This test only works in older C++ versions than C++11 because we use unordered_map
- UASSERT(os.str() == config_text_after);
-#endif
+ UASSERT(s.updateConfigObject(is, os, 0) == true);
+
+ {
+ // Confirm settings
+ Settings s2("[dummy_eof_end_tag]");
+ std::istringstream is(config_text_after, std::ios_base::binary);
+ UASSERT(s2.parseConfigLines(is) == true);
+
+ compare_settings("(main)", &s, &s2);
+ }
+
} catch (SettingNotFoundException &e) {
UASSERT(!"Setting not found!");
}
}
+void TestSettings::testDefaults()
+{
+ Settings *game = Settings::createLayer(SL_GAME);
+ Settings *def = Settings::getLayer(SL_DEFAULTS);
+
+ def->set("name", "FooBar");
+ UASSERT(def->get("name") == "FooBar");
+ UASSERT(game->get("name") == "FooBar");
+
+ game->set("name", "Baz");
+ UASSERT(game->get("name") == "Baz");
+
+ delete game;
+
+ // Restore default settings
+ delete Settings::getLayer(SL_DEFAULTS);
+ set_default_settings();
+}
+
void TestSettings::testFlagDesc()
{
- Settings s;
+ Settings &s = *Settings::createLayer(SL_GAME);
FlagDesc flagdesc[] = {
{ "biomes", 0x01 },
{ "trees", 0x02 },
@@ -242,4 +291,6 @@ void TestSettings::testFlagDesc()
// Enabled: tables
s.set("test_flags", "16");
UASSERT(s.getFlagStr("test_flags", flagdesc, nullptr) == 0x10);
+
+ delete &s;
}
diff --git a/src/unittest/test_threading.cpp b/src/unittest/test_threading.cpp
index 8d4d814fd..65ef7c02d 100644
--- a/src/unittest/test_threading.cpp
+++ b/src/unittest/test_threading.cpp
@@ -31,7 +31,6 @@ public:
void runTests(IGameDef *gamedef);
void testStartStopWait();
- void testThreadKill();
void testAtomicSemaphoreThread();
};
@@ -40,7 +39,6 @@ static TestThreading g_test_instance;
void TestThreading::runTests(IGameDef *gamedef)
{
TEST(testStartStopWait);
- TEST(testThreadKill);
TEST(testAtomicSemaphoreThread);
}
@@ -111,29 +109,6 @@ void TestThreading::testStartStopWait()
}
-void TestThreading::testThreadKill()
-{
- SimpleTestThread *thread = new SimpleTestThread(300);
-
- UASSERT(thread->start() == true);
-
- // kill()ing is quite violent, so let's make sure our victim is sleeping
- // before we do this... so we don't corrupt the rest of the program's state
- sleep_ms(100);
- UASSERT(thread->kill() == true);
-
- // The state of the thread object should be reset if all went well
- UASSERT(thread->isRunning() == false);
- UASSERT(thread->start() == true);
- UASSERT(thread->stop() == true);
- UASSERT(thread->wait() == true);
-
- // kill() after already waiting should fail.
- UASSERT(thread->kill() == false);
-
- delete thread;
-}
-
class AtomicTestThread : public Thread {
public:
diff --git a/src/unittest/test_utilities.cpp b/src/unittest/test_utilities.cpp
index 447b591e1..93ba3f844 100644
--- a/src/unittest/test_utilities.cpp
+++ b/src/unittest/test_utilities.cpp
@@ -247,8 +247,8 @@ void TestUtilities::testStartsWith()
void TestUtilities::testStrEqual()
{
- UASSERT(str_equal(narrow_to_wide("abc"), narrow_to_wide("abc")));
- UASSERT(str_equal(narrow_to_wide("ABC"), narrow_to_wide("abc"), true));
+ UASSERT(str_equal(utf8_to_wide("abc"), utf8_to_wide("abc")));
+ UASSERT(str_equal(utf8_to_wide("ABC"), utf8_to_wide("abc"), true));
}
@@ -302,9 +302,18 @@ void TestUtilities::testAsciiPrintableHelper()
void TestUtilities::testUTF8()
{
- UASSERT(wide_to_utf8(utf8_to_wide("")) == "");
- UASSERT(wide_to_utf8(utf8_to_wide("the shovel dug a crumbly node!"))
- == "the shovel dug a crumbly node!");
+ UASSERT(utf8_to_wide("¤") == L"¤");
+
+ UASSERT(wide_to_utf8(L"¤") == "¤");
+
+ UASSERTEQ(std::string, wide_to_utf8(utf8_to_wide("")), "");
+ UASSERTEQ(std::string, wide_to_utf8(utf8_to_wide("the shovel dug a crumbly node!")),
+ "the shovel dug a crumbly node!");
+ UASSERTEQ(std::string, wide_to_utf8(utf8_to_wide("-ä-")),
+ "-ä-");
+ UASSERTEQ(std::string, wide_to_utf8(utf8_to_wide("-\xF0\xA0\x80\x8B-")),
+ "-\xF0\xA0\x80\x8B-");
+
}
void TestUtilities::testRemoveEscapes()
diff --git a/src/util/Optional.h b/src/util/Optional.h
new file mode 100644
index 000000000..9c2842b43
--- /dev/null
+++ b/src/util/Optional.h
@@ -0,0 +1,77 @@
+/*
+Minetest
+Copyright (C) 2021 rubenwardy
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#pragma once
+
+#include "debug.h"
+
+struct nullopt_t
+{
+};
+constexpr nullopt_t nullopt{};
+
+/**
+ * An implementation of optional for C++11, which aims to be
+ * compatible with a subset of std::optional features.
+ *
+ * Unfortunately, Minetest doesn't use C++17 yet.
+ *
+ * @tparam T The type to be stored
+ */
+template <typename T>
+class Optional
+{
+ bool m_has_value = false;
+ T m_value;
+
+public:
+ Optional() noexcept {}
+ Optional(nullopt_t) noexcept {}
+ Optional(const T &value) noexcept : m_has_value(true), m_value(value) {}
+ Optional(const Optional<T> &other) noexcept :
+ m_has_value(other.m_has_value), m_value(other.m_value)
+ {
+ }
+
+ void operator=(nullopt_t) noexcept { m_has_value = false; }
+
+ void operator=(const Optional<T> &other) noexcept
+ {
+ m_has_value = other.m_has_value;
+ m_value = other.m_value;
+ }
+
+ T &value()
+ {
+ FATAL_ERROR_IF(!m_has_value, "optional doesn't have value");
+ return m_value;
+ }
+
+ const T &value() const
+ {
+ FATAL_ERROR_IF(!m_has_value, "optional doesn't have value");
+ return m_value;
+ }
+
+ const T &value_or(const T &def) const { return m_has_value ? m_value : def; }
+
+ bool has_value() const noexcept { return m_has_value; }
+
+ explicit operator bool() const { return m_has_value; }
+};
diff --git a/src/util/base64.cpp b/src/util/base64.cpp
index c75f98598..6e1584410 100644
--- a/src/util/base64.cpp
+++ b/src/util/base64.cpp
@@ -34,8 +34,9 @@ static const std::string base64_chars =
"0123456789+/";
-static inline bool is_base64(unsigned char c) {
- return (isalnum(c) || (c == '+') || (c == '/'));
+static inline bool is_base64(unsigned char c)
+{
+ return isalnum(c) || c == '+' || c == '/' || c == '=';
}
bool base64_is_valid(std::string const& s)
diff --git a/src/util/md32_common.h b/src/util/md32_common.h
index a4c2099c9..2c050b72a 100644
--- a/src/util/md32_common.h
+++ b/src/util/md32_common.h
@@ -301,7 +301,7 @@
int HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len)
{
- const unsigned char *data = data_;
+ const unsigned char *data = (const unsigned char *)data_;
unsigned char *p;
HASH_LONG l;
size_t n;
diff --git a/src/util/serialize.cpp b/src/util/serialize.cpp
index 5b276668d..d770101f2 100644
--- a/src/util/serialize.cpp
+++ b/src/util/serialize.cpp
@@ -30,86 +30,18 @@ with this program; if not, write to the Free Software Foundation, Inc.,
FloatType g_serialize_f32_type = FLOATTYPE_UNKNOWN;
-////
-//// BufReader
-////
-
-bool BufReader::getStringNoEx(std::string *val)
-{
- u16 num_chars;
- if (!getU16NoEx(&num_chars))
- return false;
-
- if (pos + num_chars > size) {
- pos -= sizeof(num_chars);
- return false;
- }
-
- val->assign((const char *)data + pos, num_chars);
- pos += num_chars;
-
- return true;
-}
-
-bool BufReader::getWideStringNoEx(std::wstring *val)
-{
- u16 num_chars;
- if (!getU16NoEx(&num_chars))
- return false;
-
- if (pos + num_chars * 2 > size) {
- pos -= sizeof(num_chars);
- return false;
- }
-
- for (size_t i = 0; i != num_chars; i++) {
- val->push_back(readU16(data + pos));
- pos += 2;
- }
-
- return true;
-}
-
-bool BufReader::getLongStringNoEx(std::string *val)
-{
- u32 num_chars;
- if (!getU32NoEx(&num_chars))
- return false;
-
- if (pos + num_chars > size) {
- pos -= sizeof(num_chars);
- return false;
- }
-
- val->assign((const char *)data + pos, num_chars);
- pos += num_chars;
-
- return true;
-}
-
-bool BufReader::getRawDataNoEx(void *val, size_t len)
-{
- if (pos + len > size)
- return false;
-
- memcpy(val, data + pos, len);
- pos += len;
-
- return true;
-}
-
////
//// String
////
-std::string serializeString(const std::string &plain)
+std::string serializeString16(const std::string &plain)
{
std::string s;
char buf[2];
if (plain.size() > STRING_MAX_LEN)
- throw SerializationError("String too long for serializeString");
+ throw SerializationError("String too long for serializeString16");
s.reserve(2 + plain.size());
writeU16((u8 *)&buf[0], plain.size());
@@ -119,14 +51,14 @@ std::string serializeString(const std::string &plain)
return s;
}
-std::string deSerializeString(std::istream &is)
+std::string deSerializeString16(std::istream &is)
{
std::string s;
char buf[2];
is.read(buf, 2);
if (is.gcount() != 2)
- throw SerializationError("deSerializeString: size not read");
+ throw SerializationError("deSerializeString16: size not read");
u16 s_size = readU16((u8 *)buf);
if (s_size == 0)
@@ -135,66 +67,17 @@ std::string deSerializeString(std::istream &is)
s.resize(s_size);
is.read(&s[0], s_size);
if (is.gcount() != s_size)
- throw SerializationError("deSerializeString: couldn't read all chars");
+ throw SerializationError("deSerializeString16: couldn't read all chars");
return s;
}
-////
-//// Wide String
-////
-
-std::string serializeWideString(const std::wstring &plain)
-{
- std::string s;
- char buf[2];
-
- if (plain.size() > WIDE_STRING_MAX_LEN)
- throw SerializationError("String too long for serializeWideString");
- s.reserve(2 + 2 * plain.size());
-
- writeU16((u8 *)buf, plain.size());
- s.append(buf, 2);
-
- for (wchar_t i : plain) {
- writeU16((u8 *)buf, i);
- s.append(buf, 2);
- }
- return s;
-}
-
-std::wstring deSerializeWideString(std::istream &is)
-{
- std::wstring s;
- char buf[2];
-
- is.read(buf, 2);
- if (is.gcount() != 2)
- throw SerializationError("deSerializeWideString: size not read");
-
- u16 s_size = readU16((u8 *)buf);
- if (s_size == 0)
- return s;
-
- s.reserve(s_size);
- for (u32 i = 0; i < s_size; i++) {
- is.read(&buf[0], 2);
- if (is.gcount() != 2) {
- throw SerializationError(
- "deSerializeWideString: couldn't read all chars");
- }
-
- wchar_t c16 = readU16((u8 *)buf);
- s.append(&c16, 1);
- }
- return s;
-}
////
//// Long String
////
-std::string serializeLongString(const std::string &plain)
+std::string serializeString32(const std::string &plain)
{
std::string s;
char buf[4];
@@ -209,7 +92,7 @@ std::string serializeLongString(const std::string &plain)
return s;
}
-std::string deSerializeLongString(std::istream &is)
+std::string deSerializeString32(std::istream &is)
{
std::string s;
char buf[4];
@@ -404,284 +287,3 @@ std::string deSerializeJsonStringIfNeeded(std::istream &is)
return tmp_os.str();
}
-////
-//// String/Struct conversions
-////
-
-bool deSerializeStringToStruct(std::string valstr,
- std::string format, void *out, size_t olen)
-{
- size_t len = olen;
- std::vector<std::string *> strs_alloced;
- std::string *str;
- char *f, *snext;
- size_t pos;
-
- char *s = &valstr[0];
- char *buf = new char[len];
- char *bufpos = buf;
-
- char *fmtpos, *fmt = &format[0];
- while ((f = strtok_r(fmt, ",", &fmtpos)) && s) {
- fmt = nullptr;
-
- bool is_unsigned = false;
- int width = 0;
- char valtype = *f;
-
- width = (int)strtol(f + 1, &f, 10);
- if (width && valtype == 's')
- valtype = 'i';
-
- switch (valtype) {
- case 'u':
- is_unsigned = true;
- /* FALLTHROUGH */
- case 'i':
- if (width == 16) {
- bufpos += PADDING(bufpos, u16);
- if ((bufpos - buf) + sizeof(u16) <= len) {
- if (is_unsigned)
- *(u16 *)bufpos = (u16)strtoul(s, &s, 10);
- else
- *(s16 *)bufpos = (s16)strtol(s, &s, 10);
- }
- bufpos += sizeof(u16);
- } else if (width == 32) {
- bufpos += PADDING(bufpos, u32);
- if ((bufpos - buf) + sizeof(u32) <= len) {
- if (is_unsigned)
- *(u32 *)bufpos = (u32)strtoul(s, &s, 10);
- else
- *(s32 *)bufpos = (s32)strtol(s, &s, 10);
- }
- bufpos += sizeof(u32);
- } else if (width == 64) {
- bufpos += PADDING(bufpos, u64);
- if ((bufpos - buf) + sizeof(u64) <= len) {
- if (is_unsigned)
- *(u64 *)bufpos = (u64)strtoull(s, &s, 10);
- else
- *(s64 *)bufpos = (s64)strtoll(s, &s, 10);
- }
- bufpos += sizeof(u64);
- }
- s = strchr(s, ',');
- break;
- case 'b':
- snext = strchr(s, ',');
- if (snext)
- *snext++ = 0;
-
- bufpos += PADDING(bufpos, bool);
- if ((bufpos - buf) + sizeof(bool) <= len)
- *(bool *)bufpos = is_yes(std::string(s));
- bufpos += sizeof(bool);
-
- s = snext;
- break;
- case 'f':
- bufpos += PADDING(bufpos, float);
- if ((bufpos - buf) + sizeof(float) <= len)
- *(float *)bufpos = strtof(s, &s);
- bufpos += sizeof(float);
-
- s = strchr(s, ',');
- break;
- case 's':
- while (*s == ' ' || *s == '\t')
- s++;
- if (*s++ != '"') //error, expected string
- goto fail;
- snext = s;
-
- while (snext[0] && !(snext[-1] != '\\' && snext[0] == '"'))
- snext++;
- *snext++ = 0;
-
- bufpos += PADDING(bufpos, std::string *);
-
- str = new std::string(s);
- pos = 0;
- while ((pos = str->find("\\\"", pos)) != std::string::npos)
- str->erase(pos, 1);
-
- if ((bufpos - buf) + sizeof(std::string *) <= len)
- *(std::string **)bufpos = str;
- bufpos += sizeof(std::string *);
- strs_alloced.push_back(str);
-
- s = *snext ? snext + 1 : nullptr;
- break;
- case 'v':
- while (*s == ' ' || *s == '\t')
- s++;
- if (*s++ != '(') //error, expected vector
- goto fail;
-
- if (width == 2) {
- bufpos += PADDING(bufpos, v2f);
-
- if ((bufpos - buf) + sizeof(v2f) <= len) {
- v2f *v = (v2f *)bufpos;
- v->X = strtof(s, &s);
- s++;
- v->Y = strtof(s, &s);
- }
-
- bufpos += sizeof(v2f);
- } else if (width == 3) {
- bufpos += PADDING(bufpos, v3f);
- if ((bufpos - buf) + sizeof(v3f) <= len) {
- v3f *v = (v3f *)bufpos;
- v->X = strtof(s, &s);
- s++;
- v->Y = strtof(s, &s);
- s++;
- v->Z = strtof(s, &s);
- }
-
- bufpos += sizeof(v3f);
- }
- s = strchr(s, ',');
- break;
- default: //error, invalid format specifier
- goto fail;
- }
-
- if (s && *s == ',')
- s++;
-
- if ((size_t)(bufpos - buf) > len) //error, buffer too small
- goto fail;
- }
-
- if (f && *f) { //error, mismatched number of fields and values
-fail:
- for (size_t i = 0; i != strs_alloced.size(); i++)
- delete strs_alloced[i];
- delete[] buf;
- return false;
- }
-
- memcpy(out, buf, olen);
- delete[] buf;
- return true;
-}
-
-// Casts *buf to a signed or unsigned fixed-width integer of 'w' width
-#define SIGN_CAST(w, buf) (is_unsigned ? *((u##w *) buf) : *((s##w *) buf))
-
-bool serializeStructToString(std::string *out,
- std::string format, void *value)
-{
- std::ostringstream os;
- std::string str;
- char *f;
- size_t strpos;
-
- char *bufpos = (char *) value;
- char *fmtpos, *fmt = &format[0];
- while ((f = strtok_r(fmt, ",", &fmtpos))) {
- fmt = nullptr;
- bool is_unsigned = false;
- int width = 0;
- char valtype = *f;
-
- width = (int)strtol(f + 1, &f, 10);
- if (width && valtype == 's')
- valtype = 'i';
-
- switch (valtype) {
- case 'u':
- is_unsigned = true;
- /* FALLTHROUGH */
- case 'i':
- if (width == 16) {
- bufpos += PADDING(bufpos, u16);
- os << SIGN_CAST(16, bufpos);
- bufpos += sizeof(u16);
- } else if (width == 32) {
- bufpos += PADDING(bufpos, u32);
- os << SIGN_CAST(32, bufpos);
- bufpos += sizeof(u32);
- } else if (width == 64) {
- bufpos += PADDING(bufpos, u64);
- os << SIGN_CAST(64, bufpos);
- bufpos += sizeof(u64);
- }
- break;
- case 'b':
- bufpos += PADDING(bufpos, bool);
- os << std::boolalpha << *((bool *) bufpos);
- bufpos += sizeof(bool);
- break;
- case 'f':
- bufpos += PADDING(bufpos, float);
- os << *((float *) bufpos);
- bufpos += sizeof(float);
- break;
- case 's':
- bufpos += PADDING(bufpos, std::string *);
- str = **((std::string **) bufpos);
-
- strpos = 0;
- while ((strpos = str.find('"', strpos)) != std::string::npos) {
- str.insert(strpos, 1, '\\');
- strpos += 2;
- }
-
- os << str;
- bufpos += sizeof(std::string *);
- break;
- case 'v':
- if (width == 2) {
- bufpos += PADDING(bufpos, v2f);
- v2f *v = (v2f *) bufpos;
- os << '(' << v->X << ", " << v->Y << ')';
- bufpos += sizeof(v2f);
- } else {
- bufpos += PADDING(bufpos, v3f);
- v3f *v = (v3f *) bufpos;
- os << '(' << v->X << ", " << v->Y << ", " << v->Z << ')';
- bufpos += sizeof(v3f);
- }
- break;
- default:
- return false;
- }
- os << ", ";
- }
- *out = os.str();
-
- // Trim off the trailing comma and space
- if (out->size() >= 2)
- out->resize(out->size() - 2);
-
- return true;
-}
-
-#undef SIGN_CAST
-
-////
-//// Other
-////
-
-std::string serializeHexString(const std::string &data, bool insert_spaces)
-{
- std::string result;
- result.reserve(data.size() * (2 + insert_spaces));
-
- static const char hex_chars[] = "0123456789abcdef";
-
- const size_t len = data.size();
- for (size_t i = 0; i != len; i++) {
- u8 byte = data[i];
- result.push_back(hex_chars[(byte >> 4) & 0x0F]);
- result.push_back(hex_chars[(byte >> 0) & 0x0F]);
- if (insert_spaces && i != len - 1)
- result.push_back(' ');
- }
-
- return result;
-}
diff --git a/src/util/serialize.h b/src/util/serialize.h
index a4b5a234a..15bdd050d 100644
--- a/src/util/serialize.h
+++ b/src/util/serialize.h
@@ -290,7 +290,7 @@ inline void writeS8(u8 *data, s8 i)
inline void writeS16(u8 *data, s16 i)
{
- writeU16(data, (u16)i);
+ writeU16(data, (u16)i);
}
inline void writeS32(u8 *data, s32 i)
@@ -440,22 +440,16 @@ MAKE_STREAM_WRITE_FXN(video::SColor, ARGB8, 4);
////
// Creates a string with the length as the first two bytes
-std::string serializeString(const std::string &plain);
-
-// Creates a string with the length as the first two bytes from wide string
-std::string serializeWideString(const std::wstring &plain);
+std::string serializeString16(const std::string &plain);
// Reads a string with the length as the first two bytes
-std::string deSerializeString(std::istream &is);
-
-// Reads a wide string with the length as the first two bytes
-std::wstring deSerializeWideString(std::istream &is);
+std::string deSerializeString16(std::istream &is);
// Creates a string with the length as the first four bytes
-std::string serializeLongString(const std::string &plain);
+std::string serializeString32(const std::string &plain);
// Reads a string with the length as the first four bytes
-std::string deSerializeLongString(std::istream &is);
+std::string deSerializeString32(std::istream &is);
// Creates a string encoded in JSON format (almost equivalent to a C string literal)
std::string serializeJsonString(const std::string &plain);
@@ -469,239 +463,3 @@ std::string serializeJsonStringIfNeeded(const std::string &s);
// Parses a string serialized by serializeJsonStringIfNeeded.
std::string deSerializeJsonStringIfNeeded(std::istream &is);
-
-// Creates a string consisting of the hexadecimal representation of `data`
-std::string serializeHexString(const std::string &data, bool insert_spaces=false);
-
-// Creates a string containing comma delimited values of a struct whose layout is
-// described by the parameter format
-bool serializeStructToString(std::string *out,
- std::string format, void *value);
-
-// Reads a comma delimited string of values into a struct whose layout is
-// decribed by the parameter format
-bool deSerializeStringToStruct(std::string valstr,
- std::string format, void *out, size_t olen);
-
-////
-//// BufReader
-////
-
-#define MAKE_BUFREADER_GETNOEX_FXN(T, N, S) \
- inline bool get ## N ## NoEx(T *val) \
- { \
- if (pos + S > size) \
- return false; \
- *val = read ## N(data + pos); \
- pos += S; \
- return true; \
- }
-
-#define MAKE_BUFREADER_GET_FXN(T, N) \
- inline T get ## N() \
- { \
- T val; \
- if (!get ## N ## NoEx(&val)) \
- throw SerializationError("Attempted read past end of data"); \
- return val; \
- }
-
-class BufReader {
-public:
- BufReader(const u8 *data_, size_t size_) :
- data(data_),
- size(size_)
- {
- }
-
- MAKE_BUFREADER_GETNOEX_FXN(u8, U8, 1);
- MAKE_BUFREADER_GETNOEX_FXN(u16, U16, 2);
- MAKE_BUFREADER_GETNOEX_FXN(u32, U32, 4);
- MAKE_BUFREADER_GETNOEX_FXN(u64, U64, 8);
- MAKE_BUFREADER_GETNOEX_FXN(s8, S8, 1);
- MAKE_BUFREADER_GETNOEX_FXN(s16, S16, 2);
- MAKE_BUFREADER_GETNOEX_FXN(s32, S32, 4);
- MAKE_BUFREADER_GETNOEX_FXN(s64, S64, 8);
- MAKE_BUFREADER_GETNOEX_FXN(f32, F1000, 4);
- MAKE_BUFREADER_GETNOEX_FXN(v2s16, V2S16, 4);
- MAKE_BUFREADER_GETNOEX_FXN(v3s16, V3S16, 6);
- MAKE_BUFREADER_GETNOEX_FXN(v2s32, V2S32, 8);
- MAKE_BUFREADER_GETNOEX_FXN(v3s32, V3S32, 12);
- MAKE_BUFREADER_GETNOEX_FXN(v3f, V3F1000, 12);
- MAKE_BUFREADER_GETNOEX_FXN(video::SColor, ARGB8, 4);
-
- bool getStringNoEx(std::string *val);
- bool getWideStringNoEx(std::wstring *val);
- bool getLongStringNoEx(std::string *val);
- bool getRawDataNoEx(void *data, size_t len);
-
- MAKE_BUFREADER_GET_FXN(u8, U8);
- MAKE_BUFREADER_GET_FXN(u16, U16);
- MAKE_BUFREADER_GET_FXN(u32, U32);
- MAKE_BUFREADER_GET_FXN(u64, U64);
- MAKE_BUFREADER_GET_FXN(s8, S8);
- MAKE_BUFREADER_GET_FXN(s16, S16);
- MAKE_BUFREADER_GET_FXN(s32, S32);
- MAKE_BUFREADER_GET_FXN(s64, S64);
- MAKE_BUFREADER_GET_FXN(f32, F1000);
- MAKE_BUFREADER_GET_FXN(v2s16, V2S16);
- MAKE_BUFREADER_GET_FXN(v3s16, V3S16);
- MAKE_BUFREADER_GET_FXN(v2s32, V2S32);
- MAKE_BUFREADER_GET_FXN(v3s32, V3S32);
- MAKE_BUFREADER_GET_FXN(v3f, V3F1000);
- MAKE_BUFREADER_GET_FXN(video::SColor, ARGB8);
- MAKE_BUFREADER_GET_FXN(std::string, String);
- MAKE_BUFREADER_GET_FXN(std::wstring, WideString);
- MAKE_BUFREADER_GET_FXN(std::string, LongString);
-
- inline void getRawData(void *val, size_t len)
- {
- if (!getRawDataNoEx(val, len))
- throw SerializationError("Attempted read past end of data");
- }
-
- inline size_t remaining()
- {
- assert(pos <= size);
- return size - pos;
- }
-
- const u8 *data;
- size_t size;
- size_t pos = 0;
-};
-
-#undef MAKE_BUFREADER_GET_FXN
-#undef MAKE_BUFREADER_GETNOEX_FXN
-
-
-////
-//// Vector-based write routines
-////
-
-inline void putU8(std::vector<u8> *dest, u8 val)
-{
- dest->push_back((val >> 0) & 0xFF);
-}
-
-inline void putU16(std::vector<u8> *dest, u16 val)
-{
- dest->push_back((val >> 8) & 0xFF);
- dest->push_back((val >> 0) & 0xFF);
-}
-
-inline void putU32(std::vector<u8> *dest, u32 val)
-{
- dest->push_back((val >> 24) & 0xFF);
- dest->push_back((val >> 16) & 0xFF);
- dest->push_back((val >> 8) & 0xFF);
- dest->push_back((val >> 0) & 0xFF);
-}
-
-inline void putU64(std::vector<u8> *dest, u64 val)
-{
- dest->push_back((val >> 56) & 0xFF);
- dest->push_back((val >> 48) & 0xFF);
- dest->push_back((val >> 40) & 0xFF);
- dest->push_back((val >> 32) & 0xFF);
- dest->push_back((val >> 24) & 0xFF);
- dest->push_back((val >> 16) & 0xFF);
- dest->push_back((val >> 8) & 0xFF);
- dest->push_back((val >> 0) & 0xFF);
-}
-
-inline void putS8(std::vector<u8> *dest, s8 val)
-{
- putU8(dest, val);
-}
-
-inline void putS16(std::vector<u8> *dest, s16 val)
-{
- putU16(dest, val);
-}
-
-inline void putS32(std::vector<u8> *dest, s32 val)
-{
- putU32(dest, val);
-}
-
-inline void putS64(std::vector<u8> *dest, s64 val)
-{
- putU64(dest, val);
-}
-
-inline void putF1000(std::vector<u8> *dest, f32 val)
-{
- putS32(dest, val * FIXEDPOINT_FACTOR);
-}
-
-inline void putV2S16(std::vector<u8> *dest, v2s16 val)
-{
- putS16(dest, val.X);
- putS16(dest, val.Y);
-}
-
-inline void putV3S16(std::vector<u8> *dest, v3s16 val)
-{
- putS16(dest, val.X);
- putS16(dest, val.Y);
- putS16(dest, val.Z);
-}
-
-inline void putV2S32(std::vector<u8> *dest, v2s32 val)
-{
- putS32(dest, val.X);
- putS32(dest, val.Y);
-}
-
-inline void putV3S32(std::vector<u8> *dest, v3s32 val)
-{
- putS32(dest, val.X);
- putS32(dest, val.Y);
- putS32(dest, val.Z);
-}
-
-inline void putV3F1000(std::vector<u8> *dest, v3f val)
-{
- putF1000(dest, val.X);
- putF1000(dest, val.Y);
- putF1000(dest, val.Z);
-}
-
-inline void putARGB8(std::vector<u8> *dest, video::SColor val)
-{
- putU32(dest, val.color);
-}
-
-inline void putString(std::vector<u8> *dest, const std::string &val)
-{
- if (val.size() > STRING_MAX_LEN)
- throw SerializationError("String too long");
-
- putU16(dest, val.size());
- dest->insert(dest->end(), val.begin(), val.end());
-}
-
-inline void putWideString(std::vector<u8> *dest, const std::wstring &val)
-{
- if (val.size() > WIDE_STRING_MAX_LEN)
- throw SerializationError("String too long");
-
- putU16(dest, val.size());
- for (size_t i = 0; i != val.size(); i++)
- putU16(dest, val[i]);
-}
-
-inline void putLongString(std::vector<u8> *dest, const std::string &val)
-{
- if (val.size() > LONG_STRING_MAX_LEN)
- throw SerializationError("String too long");
-
- putU32(dest, val.size());
- dest->insert(dest->end(), val.begin(), val.end());
-}
-
-inline void putRawData(std::vector<u8> *dest, const void *src, size_t len)
-{
- dest->insert(dest->end(), (u8 *)src, (u8 *)src + len);
-}
diff --git a/src/util/sha256.c b/src/util/sha256.c
index 4241f31f3..5c8266f9a 100644
--- a/src/util/sha256.c
+++ b/src/util/sha256.c
@@ -18,13 +18,13 @@ const char SHA256_version[] = "SHA-256" OPENSSL_VERSION_PTEXT;
unsigned static char cleanse_ctr = 0;
static void OPENSSL_cleanse(void *ptr, size_t len)
{
- unsigned char *p = ptr;
+ unsigned char *p = (unsigned char *)ptr;
size_t loop = len, ctr = cleanse_ctr;
while (loop--) {
*(p++) = (unsigned char)ctr;
ctr += (17 + ((size_t)p & 0xF));
}
- p = memchr(ptr, (unsigned char)ctr, len);
+ p = (unsigned char *)memchr(ptr, (unsigned char)ctr, len);
if (p)
ctr += (63 + (size_t)p);
cleanse_ctr = (unsigned char)ctr;
@@ -262,7 +262,7 @@ static void sha256_block_data_order(SHA256_CTX *ctx, const void *in,
unsigned MD32_REG_T a, b, c, d, e, f, g, h, s0, s1, T1;
SHA_LONG X[16];
int i;
- const unsigned char *data = in;
+ const unsigned char *data = (const unsigned char *)in;
const union {
long one;
char little;
diff --git a/src/util/srp.cpp b/src/util/srp.cpp
index f4d369d68..ceb2fef9e 100644
--- a/src/util/srp.cpp
+++ b/src/util/srp.cpp
@@ -1015,10 +1015,10 @@ void srp_user_process_challenge(struct SRPUser *usr,
goto cleanup_and_exit;
*bytes_M = usr->M;
- if (len_M) *len_M = hash_length(usr->hash_alg);
+ *len_M = hash_length(usr->hash_alg);
} else {
*bytes_M = NULL;
- if (len_M) *len_M = 0;
+ *len_M = 0;
}
cleanup_and_exit:
diff --git a/src/util/string.cpp b/src/util/string.cpp
index 6e1db798c..611ad35cb 100644
--- a/src/util/string.cpp
+++ b/src/util/string.cpp
@@ -27,6 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "translation.h"
#include <algorithm>
+#include <array>
#include <sstream>
#include <iomanip>
#include <map>
@@ -49,8 +50,8 @@ static bool parseNamedColorString(const std::string &value, video::SColor &color
#ifndef _WIN32
-bool convert(const char *to, const char *from, char *outbuf,
- size_t outbuf_size, char *inbuf, size_t inbuf_size)
+static bool convert(const char *to, const char *from, char *outbuf,
+ size_t *outbuf_size, char *inbuf, size_t inbuf_size)
{
iconv_t cd = iconv_open(to, from);
@@ -59,15 +60,14 @@ bool convert(const char *to, const char *from, char *outbuf,
#else
char *inbuf_ptr = inbuf;
#endif
-
char *outbuf_ptr = outbuf;
size_t *inbuf_left_ptr = &inbuf_size;
- size_t *outbuf_left_ptr = &outbuf_size;
+ const size_t old_outbuf_size = *outbuf_size;
size_t old_size = inbuf_size;
while (inbuf_size > 0) {
- iconv(cd, &inbuf_ptr, inbuf_left_ptr, &outbuf_ptr, outbuf_left_ptr);
+ iconv(cd, &inbuf_ptr, inbuf_left_ptr, &outbuf_ptr, outbuf_size);
if (inbuf_size == old_size) {
iconv_close(cd);
return false;
@@ -76,11 +76,12 @@ bool convert(const char *to, const char *from, char *outbuf,
}
iconv_close(cd);
+ *outbuf_size = old_outbuf_size - *outbuf_size;
return true;
}
#ifdef __ANDROID__
-// Android need manual caring to support the full character set possible with wchar_t
+// On Android iconv disagrees how big a wchar_t is for whatever reason
const char *DEFAULT_ENCODING = "UTF-32LE";
#else
const char *DEFAULT_ENCODING = "WCHAR_T";
@@ -88,58 +89,52 @@ const char *DEFAULT_ENCODING = "WCHAR_T";
std::wstring utf8_to_wide(const std::string &input)
{
- size_t inbuf_size = input.length() + 1;
+ const size_t inbuf_size = input.length();
// maximum possible size, every character is sizeof(wchar_t) bytes
- size_t outbuf_size = (input.length() + 1) * sizeof(wchar_t);
+ size_t outbuf_size = input.length() * sizeof(wchar_t);
- char *inbuf = new char[inbuf_size];
+ char *inbuf = new char[inbuf_size]; // intentionally NOT null-terminated
memcpy(inbuf, input.c_str(), inbuf_size);
- char *outbuf = new char[outbuf_size];
- memset(outbuf, 0, outbuf_size);
+ std::wstring out;
+ out.resize(outbuf_size / sizeof(wchar_t));
#ifdef __ANDROID__
- // Android need manual caring to support the full character set possible with wchar_t
SANITY_CHECK(sizeof(wchar_t) == 4);
#endif
- if (!convert(DEFAULT_ENCODING, "UTF-8", outbuf, outbuf_size, inbuf, inbuf_size)) {
+ char *outbuf = reinterpret_cast<char*>(&out[0]);
+ if (!convert(DEFAULT_ENCODING, "UTF-8", outbuf, &outbuf_size, inbuf, inbuf_size)) {
infostream << "Couldn't convert UTF-8 string 0x" << hex_encode(input)
<< " into wstring" << std::endl;
delete[] inbuf;
- delete[] outbuf;
return L"<invalid UTF-8 string>";
}
- std::wstring out((wchar_t *)outbuf);
-
delete[] inbuf;
- delete[] outbuf;
+ out.resize(outbuf_size / sizeof(wchar_t));
return out;
}
std::string wide_to_utf8(const std::wstring &input)
{
- size_t inbuf_size = (input.length() + 1) * sizeof(wchar_t);
- // maximum possible size: utf-8 encodes codepoints using 1 up to 6 bytes
- size_t outbuf_size = (input.length() + 1) * 6;
+ const size_t inbuf_size = input.length() * sizeof(wchar_t);
+ // maximum possible size: utf-8 encodes codepoints using 1 up to 4 bytes
+ size_t outbuf_size = input.length() * 4;
- char *inbuf = new char[inbuf_size];
+ char *inbuf = new char[inbuf_size]; // intentionally NOT null-terminated
memcpy(inbuf, input.c_str(), inbuf_size);
- char *outbuf = new char[outbuf_size];
- memset(outbuf, 0, outbuf_size);
+ std::string out;
+ out.resize(outbuf_size);
- if (!convert("UTF-8", DEFAULT_ENCODING, outbuf, outbuf_size, inbuf, inbuf_size)) {
+ if (!convert("UTF-8", DEFAULT_ENCODING, &out[0], &outbuf_size, inbuf, inbuf_size)) {
infostream << "Couldn't convert wstring 0x" << hex_encode(inbuf, inbuf_size)
<< " into UTF-8 string" << std::endl;
delete[] inbuf;
- delete[] outbuf;
- return "<invalid wstring>";
+ return "<invalid wide string>";
}
- std::string out(outbuf);
-
delete[] inbuf;
- delete[] outbuf;
+ out.resize(outbuf_size);
return out;
}
@@ -171,74 +166,15 @@ std::string wide_to_utf8(const std::wstring &input)
#endif // _WIN32
-// You must free the returned string!
-// The returned string is allocated using new
wchar_t *utf8_to_wide_c(const char *str)
{
std::wstring ret = utf8_to_wide(std::string(str));
size_t len = ret.length();
wchar_t *ret_c = new wchar_t[len + 1];
- memset(ret_c, 0, (len + 1) * sizeof(wchar_t));
- memcpy(ret_c, ret.c_str(), len * sizeof(wchar_t));
+ memcpy(ret_c, ret.c_str(), (len + 1) * sizeof(wchar_t));
return ret_c;
}
-// You must free the returned string!
-// The returned string is allocated using new
-wchar_t *narrow_to_wide_c(const char *str)
-{
- wchar_t *nstr = nullptr;
-#if defined(_WIN32)
- int nResult = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR) str, -1, 0, 0);
- if (nResult == 0) {
- errorstream<<"gettext: MultiByteToWideChar returned null"<<std::endl;
- } else {
- nstr = new wchar_t[nResult];
- MultiByteToWideChar(CP_UTF8, 0, (LPCSTR) str, -1, (WCHAR *) nstr, nResult);
- }
-#else
- size_t len = strlen(str);
- nstr = new wchar_t[len + 1];
-
- std::wstring intermediate = narrow_to_wide(str);
- memset(nstr, 0, (len + 1) * sizeof(wchar_t));
- memcpy(nstr, intermediate.c_str(), len * sizeof(wchar_t));
-#endif
-
- return nstr;
-}
-
-std::wstring narrow_to_wide(const std::string &mbs) {
-#ifdef __ANDROID__
- return utf8_to_wide(mbs);
-#else
- size_t wcl = mbs.size();
- Buffer<wchar_t> wcs(wcl + 1);
- size_t len = mbstowcs(*wcs, mbs.c_str(), wcl);
- if (len == (size_t)(-1))
- return L"<invalid multibyte string>";
- wcs[len] = 0;
- return *wcs;
-#endif
-}
-
-
-std::string wide_to_narrow(const std::wstring &wcs)
-{
-#ifdef __ANDROID__
- return wide_to_utf8(wcs);
-#else
- size_t mbl = wcs.size() * 4;
- SharedBuffer<char> mbs(mbl+1);
- size_t len = wcstombs(*mbs, wcs.c_str(), mbl);
- if (len == (size_t)(-1))
- return "Character conversion failed!";
-
- mbs[len] = 0;
- return *mbs;
-#endif
-}
-
std::string urlencode(const std::string &str)
{
@@ -632,7 +568,7 @@ static bool parseNamedColorString(const std::string &value, video::SColor &color
color_name = value;
}
- color_name = lowercase(value);
+ color_name = lowercase(color_name);
std::map<const std::string, unsigned>::const_iterator it;
it = named_colors.colors.find(color_name);
@@ -765,7 +701,8 @@ void translate_string(const std::wstring &s, Translations *translations,
} else {
// This is an escape sequence *inside* the template string to translate itself.
// This should not happen, show an error message.
- errorstream << "Ignoring escape sequence '" << wide_to_narrow(escape_sequence) << "' in translation" << std::endl;
+ errorstream << "Ignoring escape sequence '"
+ << wide_to_utf8(escape_sequence) << "' in translation" << std::endl;
}
}
@@ -889,3 +826,70 @@ std::wstring translate_string(const std::wstring &s)
return translate_string(s, g_client_translations);
#endif
}
+
+static const std::array<std::wstring, 22> disallowed_dir_names = {
+ // Problematic filenames from here:
+ // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#file-and-directory-names
+ L"CON",
+ L"PRN",
+ L"AUX",
+ L"NUL",
+ L"COM1",
+ L"COM2",
+ L"COM3",
+ L"COM4",
+ L"COM5",
+ L"COM6",
+ L"COM7",
+ L"COM8",
+ L"COM9",
+ L"LPT1",
+ L"LPT2",
+ L"LPT3",
+ L"LPT4",
+ L"LPT5",
+ L"LPT6",
+ L"LPT7",
+ L"LPT8",
+ L"LPT9",
+};
+
+/**
+ * List of characters that are blacklisted from created directories
+ */
+static const std::wstring disallowed_path_chars = L"<>:\"/\\|?*.";
+
+/**
+ * Sanitize the name of a new directory. This consists of two stages:
+ * 1. Check for 'reserved filenames' that can't be used on some filesystems
+ * and add a prefix to them
+ * 2. Remove 'unsafe' characters from the name by replacing them with '_'
+ */
+std::string sanitizeDirName(const std::string &str, const std::string &optional_prefix)
+{
+ std::wstring safe_name = utf8_to_wide(str);
+
+ for (std::wstring disallowed_name : disallowed_dir_names) {
+ if (str_equal(safe_name, disallowed_name, true)) {
+ safe_name = utf8_to_wide(optional_prefix) + safe_name;
+ break;
+ }
+ }
+
+ for (unsigned long i = 0; i < safe_name.length(); i++) {
+ bool is_valid = true;
+
+ // Unlikely, but control characters should always be blacklisted
+ if (safe_name[i] < 32) {
+ is_valid = false;
+ } else if (safe_name[i] < 128) {
+ is_valid = disallowed_path_chars.find_first_of(safe_name[i])
+ == std::wstring::npos;
+ }
+
+ if (!is_valid)
+ safe_name[i] = '_';
+ }
+
+ return wide_to_utf8(safe_name);
+}
diff --git a/src/util/string.h b/src/util/string.h
index 185fb55e2..d4afcaec8 100644
--- a/src/util/string.h
+++ b/src/util/string.h
@@ -64,22 +64,14 @@ struct FlagDesc {
u32 flag;
};
-// try not to convert between wide/utf8 encodings; this can result in data loss
-// try to only convert between them when you need to input/output stuff via Irrlicht
+// Try to avoid converting between wide and UTF-8 unless you need to
+// input/output stuff via Irrlicht
std::wstring utf8_to_wide(const std::string &input);
std::string wide_to_utf8(const std::wstring &input);
-wchar_t *utf8_to_wide_c(const char *str);
-
-// NEVER use those two functions unless you have a VERY GOOD reason to
-// they just convert between wide and multibyte encoding
-// multibyte encoding depends on current locale, this is no good, especially on Windows
-
// You must free the returned string!
-// The returned string is allocated using new
-wchar_t *narrow_to_wide_c(const char *str);
-std::wstring narrow_to_wide(const std::string &mbs);
-std::string wide_to_narrow(const std::wstring &wcs);
+// The returned string is allocated using new[]
+wchar_t *utf8_to_wide_c(const char *str);
std::string urlencode(const std::string &str);
std::string urldecode(const std::string &str);
@@ -353,11 +345,6 @@ inline s32 mystoi(const std::string &str, s32 min, s32 max)
return i;
}
-
-// MSVC2010 includes it's own versions of these
-//#if !defined(_MSC_VER) || _MSC_VER < 1600
-
-
/**
* Returns a 32-bit value reprensented by the string \p str (decimal).
* @see atoi(3) for further limitations
@@ -367,17 +354,6 @@ inline s32 mystoi(const std::string &str)
return atoi(str.c_str());
}
-
-/**
- * Returns s 32-bit value represented by the wide string \p str (decimal).
- * @see atoi(3) for further limitations
- */
-inline s32 mystoi(const std::wstring &str)
-{
- return mystoi(wide_to_narrow(str));
-}
-
-
/**
* Returns a float reprensented by the string \p str (decimal).
* @see atof(3)
@@ -387,8 +363,6 @@ inline float mystof(const std::string &str)
return atof(str.c_str());
}
-//#endif
-
#define stoi mystoi
#define stof mystof
@@ -746,3 +720,11 @@ inline irr::core::stringw utf8_to_stringw(const std::string &input)
std::wstring str = utf8_to_wide(input);
return irr::core::stringw(str.c_str());
}
+
+/**
+ * Sanitize the name of a new directory. This consists of two stages:
+ * 1. Check for 'reserved filenames' that can't be used on some filesystems
+ * and prefix them
+ * 2. Remove 'unsafe' characters from the name by replacing them with '_'
+ */
+std::string sanitizeDirName(const std::string &str, const std::string &optional_prefix);
diff --git a/src/version.cpp b/src/version.cpp
index 241228a6a..c555f30af 100644
--- a/src/version.cpp
+++ b/src/version.cpp
@@ -33,11 +33,12 @@ const char *g_version_hash = VERSION_GITHASH;
const char *g_build_info =
"BUILD_TYPE=" BUILD_TYPE "\n"
"RUN_IN_PLACE=" STR(RUN_IN_PLACE) "\n"
+ "USE_CURL=" STR(USE_CURL) "\n"
+#ifndef SERVER
"USE_GETTEXT=" STR(USE_GETTEXT) "\n"
"USE_SOUND=" STR(USE_SOUND) "\n"
- "USE_CURL=" STR(USE_CURL) "\n"
"USE_FREETYPE=" STR(USE_FREETYPE) "\n"
- "USE_LUAJIT=" STR(USE_LUAJIT) "\n"
+#endif
"STATIC_SHAREDIR=" STR(STATIC_SHAREDIR)
#if USE_GETTEXT && defined(STATIC_LOCALEDIR)
"\n" "STATIC_LOCALEDIR=" STR(STATIC_LOCALEDIR)
diff --git a/textures/base/pack/cdb_add.png b/textures/base/pack/cdb_add.png
new file mode 100644
index 000000000..3e3d067e3
--- /dev/null
+++ b/textures/base/pack/cdb_add.png
Binary files differ
diff --git a/textures/base/pack/cdb_clear.png b/textures/base/pack/cdb_clear.png
new file mode 100644
index 000000000..4490d41cb
--- /dev/null
+++ b/textures/base/pack/cdb_clear.png
Binary files differ
diff --git a/textures/base/pack/cdb_downloading.png b/textures/base/pack/cdb_downloading.png
new file mode 100644
index 000000000..8cba383cc
--- /dev/null
+++ b/textures/base/pack/cdb_downloading.png
Binary files differ
diff --git a/textures/base/pack/cdb_queued.png b/textures/base/pack/cdb_queued.png
new file mode 100644
index 000000000..6972f7fb8
--- /dev/null
+++ b/textures/base/pack/cdb_queued.png
Binary files differ
diff --git a/textures/base/pack/cdb_update.png b/textures/base/pack/cdb_update.png
new file mode 100644
index 000000000..262e42d3b
--- /dev/null
+++ b/textures/base/pack/cdb_update.png
Binary files differ
diff --git a/textures/base/pack/cdb_viewonline.png b/textures/base/pack/cdb_viewonline.png
new file mode 100644
index 000000000..ae2a146b8
--- /dev/null
+++ b/textures/base/pack/cdb_viewonline.png
Binary files differ
diff --git a/textures/base/pack/clear.png b/textures/base/pack/clear.png
new file mode 100644
index 000000000..9244264ad
--- /dev/null
+++ b/textures/base/pack/clear.png
Binary files differ
diff --git a/textures/base/pack/no_texture_airlike.png b/textures/base/pack/no_texture_airlike.png
new file mode 100644
index 000000000..634ee8ca5
--- /dev/null
+++ b/textures/base/pack/no_texture_airlike.png
Binary files differ
diff --git a/textures/base/pack/search.png b/textures/base/pack/search.png
new file mode 100644
index 000000000..aace8044a
--- /dev/null
+++ b/textures/base/pack/search.png
Binary files differ
diff --git a/util/bump_version.sh b/util/bump_version.sh
index 996962199..4b12935bd 100755
--- a/util/bump_version.sh
+++ b/util/bump_version.sh
@@ -21,14 +21,14 @@ prompt_for_number() {
# * Commit the changes
# * Tag with current version
perform_release() {
+ RELEASE_DATE=$(date +%Y-%m-%d)
+
sed -i -re "s/^set\(DEVELOPMENT_BUILD TRUE\)$/set(DEVELOPMENT_BUILD FALSE)/" CMakeLists.txt
+ sed -i 's/project.ext.set("versionExtra", "-dev")/project.ext.set("versionExtra", "")/' build/android/build.gradle
sed -i -re "s/\"versionCode\", [0-9]+/\"versionCode\", $NEW_ANDROID_VERSION_CODE/" build/android/build.gradle
sed -i '/\<release/s/\(version\)="[^"]*"/\1="'"$RELEASE_VERSION"'"/' misc/net.minetest.minetest.appdata.xml
-
- RELEASE_DATE=`date +%Y-%m-%d`
-
sed -i 's/\(<release date\)="[^"]*"/\1="'"$RELEASE_DATE"'"/' misc/net.minetest.minetest.appdata.xml
git add -f CMakeLists.txt build/android/build.gradle misc/net.minetest.minetest.appdata.xml
@@ -47,20 +47,24 @@ perform_release() {
back_to_devel() {
echo 'Creating "return back to development" commit'
+ # Update CMakeList.txt versions
sed -i -re 's/^set\(DEVELOPMENT_BUILD FALSE\)$/set(DEVELOPMENT_BUILD TRUE)/' CMakeLists.txt
-
sed -i -re "s/^set\(VERSION_MAJOR [0-9]+\)$/set(VERSION_MAJOR $NEXT_VERSION_MAJOR)/" CMakeLists.txt
-
sed -i -re "s/^set\(VERSION_MINOR [0-9]+\)$/set(VERSION_MINOR $NEXT_VERSION_MINOR)/" CMakeLists.txt
-
sed -i -re "s/^set\(VERSION_PATCH [0-9]+\)$/set(VERSION_PATCH $NEXT_VERSION_PATCH)/" CMakeLists.txt
- sed -i -re "1s/[0-9]+\.[0-9]+\.[0-9]+/$NEXT_VERSION/g" doc/menu_lua_api.txt
+ # Update Android versions
+ sed -i 's/set("versionExtra", "")/set("versionExtra", "-dev")/' build/android/build.gradle
+ sed -i -re "s/set\(\"versionMajor\", [0-9]+\)/set(\"versionMajor\", $NEXT_VERSION_MAJOR)/" build/android/build.gradle
+ sed -i -re "s/set\(\"versionMinor\", [0-9]+\)/set(\"versionMinor\", $NEXT_VERSION_MINOR)/" build/android/build.gradle
+ sed -i -re "s/set\(\"versionPatch\", [0-9]+\)/set(\"versionPatch\", $NEXT_VERSION_PATCH)/" build/android/build.gradle
+ # Update doc versions
+ sed -i -re "1s/[0-9]+\.[0-9]+\.[0-9]+/$NEXT_VERSION/g" doc/menu_lua_api.txt
sed -i -re "1s/[0-9]+\.[0-9]+\.[0-9]+/$NEXT_VERSION/g" doc/client_lua_api.txt
- git add -f CMakeLists.txt doc/menu_lua_api.txt doc/client_lua_api.txt
-
+ # Commit
+ git add -f CMakeLists.txt build/android/build.gradle doc/menu_lua_api.txt doc/client_lua_api.txt
git commit -m "Continue with $NEXT_VERSION-dev"
}
##################################
diff --git a/util/ci/clang-format-whitelist.txt b/util/ci/clang-format-whitelist.txt
index 3334257ae..75d99f4cd 100644
--- a/util/ci/clang-format-whitelist.txt
+++ b/util/ci/clang-format-whitelist.txt
@@ -183,6 +183,8 @@ src/gui/guiMainMenu.h
src/gui/guiPasswordChange.cpp
src/gui/guiPathSelectMenu.cpp
src/gui/guiPathSelectMenu.h
+src/gui/guiScene.cpp
+src/gui/guiScene.h
src/gui/guiScrollBar.cpp
src/gui/guiSkin.cpp
src/gui/guiSkin.h
diff --git a/util/ci/common.sh b/util/ci/common.sh
index a2e4beac9..7523fa7ff 100644
--- a/util/ci/common.sh
+++ b/util/ci/common.sh
@@ -7,13 +7,9 @@ install_linux_deps() {
libhiredis-dev libogg-dev libgmp-dev libvorbis-dev libopenal-dev \
gettext libpq-dev postgresql-server-dev-all libleveldb-dev \
libcurl4-openssl-dev)
- # for better coverage, build some jobs with luajit
- if [ -n "$WITH_LUAJIT" ]; then
- pkgs+=(libluajit-5.1-dev)
- fi
sudo apt-get update
- sudo apt-get install -y --no-install-recommends ${pkgs[@]}
+ sudo apt-get install -y --no-install-recommends ${pkgs[@]} "$@"
}
# Mac OSX build only
diff --git a/util/ci/lint.sh b/util/ci/lint.sh
index 395445ca7..395445ca7 100644..100755
--- a/util/ci/lint.sh
+++ b/util/ci/lint.sh
diff --git a/util/gather_git_credits.py b/util/gather_git_credits.py
new file mode 100755
index 000000000..1b2865182
--- /dev/null
+++ b/util/gather_git_credits.py
@@ -0,0 +1,67 @@
+#!/usr/bin/env python3
+import subprocess
+import re
+from collections import defaultdict
+
+codefiles = r"(\.[ch](pp)?|\.lua|\.md|\.cmake|\.java|\.gradle|Makefile|CMakeLists\.txt)$"
+
+# two minor versions back, for "Active Contributors"
+REVS_ACTIVE = "5.2.0..HEAD"
+# all time, for "Previous Contributors"
+REVS_PREVIOUS = "HEAD"
+
+CUTOFF_ACTIVE = 3
+CUTOFF_PREVIOUS = 21
+
+# For a description of the points system see:
+# https://github.com/minetest/minetest/pull/9593#issue-398677198
+
+def load(revs):
+ points = defaultdict(int)
+ p = subprocess.Popen(["git", "log", "--mailmap", "--pretty=format:%h %aN <%aE>", revs],
+ stdout=subprocess.PIPE, universal_newlines=True)
+ for line in p.stdout:
+ hash, author = line.strip().split(" ", 1)
+ n = 0
+
+ p2 = subprocess.Popen(["git", "show", "--numstat", "--pretty=format:", hash],
+ stdout=subprocess.PIPE, universal_newlines=True)
+ for line in p2.stdout:
+ added, deleted, filename = re.split(r"\s+", line.strip(), 2)
+ if re.search(codefiles, filename) and added != "-":
+ n += int(added)
+ p2.wait()
+
+ if n == 0:
+ continue
+ if n > 1200:
+ n = 8
+ elif n > 700:
+ n = 4
+ elif n > 100:
+ n = 2
+ else:
+ n = 1
+ points[author] += n
+ p.wait()
+
+ # Some authors duplicate? Don't add manual workarounds here, edit the .mailmap!
+ for author in ("updatepo.sh <script@mt>", "Weblate <42@minetest.ru>"):
+ points.pop(author, None)
+ return points
+
+points_active = load(REVS_ACTIVE)
+points_prev = load(REVS_PREVIOUS)
+
+with open("results.txt", "w") as f:
+ for author, points in sorted(points_active.items(), key=(lambda e: e[1]), reverse=True):
+ if points < CUTOFF_ACTIVE: break
+ points_prev.pop(author, None) # active authors don't appear in previous
+ f.write("%d\t%s\n" % (points, author))
+ f.write('\n---------\n\n')
+ once = True
+ for author, points in sorted(points_prev.items(), key=(lambda e: e[1]), reverse=True):
+ if points < CUTOFF_PREVIOUS and once:
+ f.write('\n---------\n\n')
+ once = False
+ f.write("%d\t%s\n" % (points, author))
diff --git a/util/wireshark/minetest.lua b/util/wireshark/minetest.lua
index 13cd6d482..d954c7597 100644
--- a/util/wireshark/minetest.lua
+++ b/util/wireshark/minetest.lua
@@ -299,7 +299,7 @@ do
t:add(f_length, buffer(2,2))
local textlen = buffer(2,2):uint()
if minetest_check_length(buffer, 4 + textlen*2, t) then
- t:add(f_message, minetest_convert_utf16(buffer(4, textlen*2), "Converted chat message"))
+ t:add(f_message, buffer(4, textlen*2), buffer(4, textlen*2):ustring())
end
end
}
@@ -873,7 +873,7 @@ end
-- TOCLIENT_HP
do
- local f_hp = ProtoField.uint16("minetest.server.hp", "Hitpoints", base.DEC)
+ local f_hp = ProtoField.uint16("minetest.server.hp", "Health points", base.DEC)
minetest_server_commands[0x33] = {
"HP", 4,
@@ -1379,35 +1379,6 @@ function minetest_check_length(tvb, min_len, t)
end
end
--- Takes a Tvb or TvbRange (i.e. part of a packet) that
--- contains a UTF-16 string and returns a TvbRange containing
--- string converted to ASCII. Any characters outside the range
--- 0x20 to 0x7e are replaced by a question mark.
--- Parameter: tvb: Tvb or TvbRange that contains the UTF-16 data
--- Parameter: name: will be the name of the newly created Tvb.
--- Returns: New TvbRange containing the ASCII string.
--- TODO: Handle surrogates (should only produce one question mark)
--- TODO: Remove this when Wireshark supports UTF-16 strings natively.
-function minetest_convert_utf16(tvb, name)
- local hex, pos, char
- hex = ""
- for pos = 0, tvb:len() - 2, 2 do
- char = tvb(pos, 2):uint()
- if (char >= 0x20 and char <= 0x7e) or char == 0x0a then
- hex = hex .. string.format(" %02x", char)
- else
- hex = hex .. " 3F"
- end
- end
- if hex == "" then
- -- This is a hack to avoid a failed assertion in tvbuff.c
- -- (function: ensure_contiguous_no_exception)
- return ByteArray.new("00"):tvb(name):range(0,0)
- else
- return ByteArray.new(hex):tvb(name):range()
- end
-end
-
-- Decodes a variable-length string as ASCII text
-- t_textlen, t_text should be the ProtoFields created by minetest_field_helper
-- alternatively t_text can be a ProtoField.string and t_textlen can be nil
@@ -1438,7 +1409,7 @@ function minetest_decode_helper_utf16(tvb, t, lentype, offset, f_textlen, f_text
end
local textlen = tvb(offset, n):uint() * 2
if minetest_check_length(tvb, offset + n + textlen, t) then
- t:add(f_text, minetest_convert_utf16(tvb(offset + n, textlen), "UTF-16 text"))
+ t:add(f_text, tvb(offset + n, textlen), tvb(offset + n, textlen):ustring())
return offset + n + textlen
end
end